Difference between revisions of "SpriteSheetApplicationSAB"

From The Battle for Wesnoth Wiki
Line 12: Line 12:
 
==IRC==
 
==IRC==
 
Aishiko, Aishiko_laptop
 
Aishiko, Aishiko_laptop
 +
 +
==Prelim Implementation Ideas==
  
 
4) Project
 
4) Project

Revision as of 03:50, 21 March 2014


This page is related to Summer of Code 2014
See the list of Summer of Code 2014 Ideas



This is a Summer of Code 2014 student page


Description

Aishiko GSOC 2014 SpriteSheets

My proposal is to take the current functions for drawing sprites and move it to allow for spritesheets, while hiding any of the changes from campaign designers. It should allow for the seemless intergration of spritesheets and allow for a period of conversion from multiple files to sheets.

IRC

Aishiko, Aishiko_laptop

Prelim Implementation Ideas

4) Project

4.1) Did you select a project from our list? If that is the case, what project did you select? What do you want to especially concentrate on?

I selected one from the list, the implementing the SpriteSheets. I would like to concentrate on 2 tasks, 1 getting SpriteSheets to just work in wesnoth, and two, provide a script/tool/utility to allow easy converting from the old single images to the sheet (assuming certian naming conventions are followed).

4.2) If you have invented your own project, please describe the project and the scope.

N/A

4.3) Why did you choose this project?

I chosse it because I understand the concepts behind it, and felt it was a task that I could handle. It will also force me to learn and will provide immediate gains to all users when the version that includes the change is pushed out.

4.4) Include an estimated timeline for your work on the project. Don't forget to mention special things like "I booked holidays between A and B" and "I got an exam at ABC and won't be doing much then".

I'm still working out a timeline but I would most likely do a commit at least weekly. And break out the commits so that similar changes are only in that commit. Example, comment changes in one, (assuming no code changes), a converted set of sprites (aka the spritesheet) as one, and then code making use of it. After checking to make sure that the spritesheet works, removal of the converted individual sprite image files.

4.5) Include as much technical detail about your implementation as you can

At this point I think I would take 1 sprite (character) and create a spritesheet of it, and then test with that one. To allow testing I'd likely have it check for a spritesheet if it finds one it uses that, otherwise it uses the individual sprite images, in this way the game still works, until all the sprites have been turned into spritesheets.

Once I have completed getting a character spritesheet to work, I'd then move on to the map sprites to spritesheets, again using the same methodology of check and if it finds a spritesheet use it otherwise, use the individual images. Though, on the grouping I'm not sure how I'd do that mordante and I'd have to discuss grouping, since a map can have any or all of the different tiles, and they are not chained like the unit/character sprites are, I'd have to group similar tiles together. Like the water images, shorelines, docks, and water villages, as one. The fields, human villages and castles in one. Swamp things together, and so on.

       I've heard that some devs think that a spritesheet might cause issues 
       with larger images that don't fit in a hex, I'll intentional create some 
       sprite sheets just for testing this purpose.  I'll also see about creating 
       some tests to check and see if the performance gains are really showing up.
       

4.6) What do you expect to gain from this project?

Experience, learning to work on a team where most actually pull their own weight and the success of the project as a whole is not on my shoulders. This is too big a project for me to even think of that! and I'd not be able to, not in 3 months.

4.7) What would make you stay in the Wesnoth community after the conclusion of SOC?

Finding that the community is a non-hostile place to contribute, that individuals are treated with courtsey or the respect they have earned. That I'm encouraged to help other areas of the code, such as, "Aishi, the spritesheets work, do you think you could help with the transistion effects for the map?"


 **************Comments and Suggestions**************
Please place them after this line, all are appreciated and if I can't thank you 

personally (IE you don't attach your name to it, Thank you.