Reduce video memory consumption by merging animation frames
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Widelands media development |
Won't Fix
|
Undecided
|
Unassigned | ||
widelands |
Won't Fix
|
Wishlist
|
GunChleoc |
Bug Description
The game currently requires a lot of video memory to store all the animation frames of in-game objects.
In many cases, there is a lot of redundancy in those frames. For example. the barbarian headquarters animation has 20 frames, each of size 120x120, adding up to 288000 pixels or slightly more than 1MB of video memory. However, those frames differ only by the fairly small animation of the building's flags.
It could be quite beneficial to extract one base texture plus difference images. In the case of the barbarian headquarters, this could probably get video memory consumption down to about 40000 pixels or around 160kB, an improvement by a factor 6. Admittedly, this particular example is probably one of the cases that would benefit most, but the concept seems worthy of investigation.
Any implementation would have to be as transparent as possible, and should especially avoid putting any additional work on the graphics developers.
Conversion Status:
Yet to be converted: all global animations, plus
atlantean: armoursmith, baker, bakery, blackroot_farmer, builder, burner, burners_house, carrier, constructionsite, crysatalmine, farmer, fish_breeder, fisher, forester, geologist, goldmine, horse, horse_breeder, hunter, ironmine, mill, miller, miner, flags, sawmill, sawyer, scout, scouts_house, ship, shipwright, shipyard, smelter, smoker, smokery, soldier, spiderbreeder, stonecutter, toolsmith, trainer, weaponsmith, weaver, woodcutter
barbarian: baker, barrier, blacksmith, brewer, builder, burner, carrier, cattlebreeder, chief-miner, citadel, coalmine, constructionsite, deep_coalmine, deep_goldmine, deep_oremine, deeper_coalmine, deeper_goldmine, deeper_oremine, deer, donjon, farmer, ferner, fisher, flags, fortress, gamekeeper, geologist, gold_mine, granitemine, headquarters_
empire: arena, armoursmith, armoursmithy, baker, bakery, brewer, builder, burner, carpenter, carrier, constructionsite, donkey, donkeybreeder, farm, farmer, fisher, forester, fortress, geologist, hunter, innkeeper, lumberjack, master-miner, miller, miner, outpost, flags, pig-breeder, scout, scouts_house, shepherd, ship, shipwright, smelter, soldier, stonemason, toolsmith, tower, trainer, vinefarmer, weaponsmith, weaponsmithy, weaver, weaving-mill
Related branches
- Widelands Developers: Pending requested
-
Diff: 12636 lines (+2872/-1800)589 files modifiedglobal/bobs/bar-ruin00/conf (+0/-1)
global/bobs/bar-ruin01/conf (+0/-1)
global/bobs/bar-ruin02/conf (+0/-1)
global/bobs/bar-ruin03/conf (+0/-1)
global/bobs/debris00/conf (+0/-1)
global/bobs/debris01/conf (+0/-1)
global/bobs/debris02/conf (+0/-1)
global/militarysites/barrier.barbarians/conf (+0/-1)
global/militarysites/castle.atlanteans/conf (+0/-1)
global/militarysites/citadel.barbarians/conf (+0/-1)
global/militarysites/donjon.barbarians/conf (+0/-1)
global/militarysites/fortress.barbarians/conf (+0/-1)
global/militarysites/guardhall.atlanteans/conf (+0/-1)
global/militarysites/guardhouse.atlanteans/conf (+0/-1)
global/militarysites/high_tower.atlanteans/conf (+0/-1)
global/militarysites/sentry.barbarians/conf (+0/-1)
global/militarysites/small_tower.atlanteans/conf (+0/-1)
global/militarysites/tower.atlanteans/conf (+0/-1)
manual_test/richtext/test.py (+1/-1)
src/editor/editorinteractive.cc (+1/-4)
src/editor/ui_menus/editor_main_menu_new_map.cc (+1/-2)
src/editor/ui_menus/editor_main_menu_random_map.cc (+1/-2)
src/editor/ui_menus/editor_tool_place_bob_options_menu.cc (+7/-4)
src/editor/ui_menus/editor_tool_place_immovable_options_menu.cc (+6/-4)
src/graphic/animation.cc (+712/-207)
src/graphic/animation.h (+69/-43)
src/graphic/animation_gfx.cc (+0/-170)
src/graphic/animation_gfx.h (+0/-48)
src/graphic/diranimations.h (+3/-2)
src/graphic/graphic.cc (+4/-76)
src/graphic/graphic.h (+7/-18)
src/graphic/render/gamerenderer.cc (+15/-13)
src/graphic/rendertarget.cc (+82/-130)
src/graphic/rendertarget.h (+14/-29)
src/helper.cc (+37/-6)
src/helper.h (+18/-0)
src/logic/bob.cc (+3/-3)
src/logic/bob.h (+2/-3)
src/logic/building.cc (+8/-9)
src/logic/constructionsite.cc (+19/-19)
src/logic/critter_bob.cc (+4/-7)
src/logic/dismantlesite.cc (+7/-6)
src/logic/editor_game_base.cc (+1/-16)
src/logic/editor_game_base.h (+1/-2)
src/logic/game.cc (+2/-6)
src/logic/game.h (+1/-2)
src/logic/immovable.cc (+10/-17)
src/logic/immovable.h (+0/-3)
src/logic/production_program.cc (+2/-4)
src/logic/replay.cc (+1/-1)
src/logic/ship.cc (+5/-9)
src/logic/soldier.cc (+3/-12)
src/logic/tribe.cc (+4/-3)
src/logic/ware_descr.cc (+1/-1)
src/logic/worker_descr.cc (+4/-13)
src/logic/worker_program.cc (+3/-4)
src/profile/profile.cc (+21/-13)
src/profile/profile.h (+6/-4)
src/ui_fsmenu/options.cc (+1/-0)
src/wui/buildingwindow.cc (+6/-4)
src/wui/game_debug_ui.cc (+2/-3)
tribes/atlanteans/armoursmith/conf (+0/-3)
tribes/atlanteans/armoursmithy/conf (+0/-2)
tribes/atlanteans/ashes/conf (+0/-1)
tribes/atlanteans/baker/conf (+0/-3)
tribes/atlanteans/bakery/conf (+0/-2)
tribes/atlanteans/blackroot_farm/conf (+0/-1)
tribes/atlanteans/blackroot_farmer/conf (+0/-6)
tribes/atlanteans/blackrootfield_m/conf (+0/-1)
tribes/atlanteans/blackrootfield_s/conf (+0/-1)
tribes/atlanteans/blackrootfield_t/conf (+0/-1)
tribes/atlanteans/builder/conf (+0/-4)
tribes/atlanteans/burner/conf (+0/-3)
tribes/atlanteans/burners_house/conf (+0/-2)
tribes/atlanteans/carrier/conf (+0/-3)
tribes/atlanteans/castle/conf (+0/-1)
tribes/atlanteans/coalmine/conf (+0/-3)
tribes/atlanteans/conf (+0/-2)
tribes/atlanteans/cornfield_m/conf (+0/-1)
tribes/atlanteans/cornfield_s/conf (+0/-1)
tribes/atlanteans/cornfield_t/conf (+0/-1)
tribes/atlanteans/crystalmine/conf (+0/-3)
tribes/atlanteans/destroyed_building/conf (+0/-1)
tribes/atlanteans/dungeon/conf (+0/-1)
tribes/atlanteans/farm/conf (+0/-1)
tribes/atlanteans/farmer/conf (+0/-6)
tribes/atlanteans/fish_breeder/conf (+0/-4)
tribes/atlanteans/fish_breeders_house/conf (+0/-1)
tribes/atlanteans/fisher/conf (+0/-4)
tribes/atlanteans/fishers_house/conf (+0/-1)
tribes/atlanteans/forester/conf (+0/-6)
tribes/atlanteans/geologist/conf (+0/-4)
tribes/atlanteans/goldmine/conf (+0/-3)
tribes/atlanteans/goldweaver/conf (+0/-2)
tribes/atlanteans/guardhall/conf (+0/-1)
tribes/atlanteans/guardhouse/conf (+0/-1)
tribes/atlanteans/headquarters/conf (+0/-1)
tribes/atlanteans/high_tower/conf (+0/-1)
tribes/atlanteans/horsebreeder/conf (+0/-3)
tribes/atlanteans/hunter/conf (+0/-3)
tribes/atlanteans/hunters_house/conf (+0/-1)
tribes/atlanteans/ironmine/conf (+0/-3)
tribes/atlanteans/labyrinth/conf (+0/-1)
tribes/atlanteans/mill/conf (+0/-2)
tribes/atlanteans/miller/conf (+0/-3)
tribes/atlanteans/miner/conf (+0/-3)
tribes/atlanteans/port/conf (+0/-2)
tribes/atlanteans/quarry/conf (+0/-1)
tribes/atlanteans/resi_coal1/conf (+0/-1)
tribes/atlanteans/resi_coal2/conf (+0/-1)
tribes/atlanteans/resi_gold1/conf (+0/-1)
tribes/atlanteans/resi_gold2/conf (+0/-1)
tribes/atlanteans/resi_granit1/conf (+0/-1)
tribes/atlanteans/resi_granit2/conf (+0/-1)
tribes/atlanteans/resi_iron1/conf (+0/-1)
tribes/atlanteans/resi_iron2/conf (+0/-1)
tribes/atlanteans/resi_none/conf (+0/-1)
tribes/atlanteans/resi_water1/conf (+0/-1)
tribes/atlanteans/sawmill/conf (+0/-2)
tribes/atlanteans/sawyer/conf (+0/-3)
tribes/atlanteans/scout/conf (+0/-3)
tribes/atlanteans/scouts_house/conf (+0/-2)
tribes/atlanteans/ship/conf (+0/-3)
tribes/atlanteans/shipconstruction/conf (+0/-2)
tribes/atlanteans/shipwright/conf (+0/-3)
tribes/atlanteans/shipyard/conf (+0/-4)
tribes/atlanteans/small_tower/conf (+0/-1)
tribes/atlanteans/smelter/conf (+0/-3)
tribes/atlanteans/smelting_works/conf (+0/-2)
tribes/atlanteans/smoker/conf (+0/-3)
tribes/atlanteans/smokery/conf (+0/-2)
tribes/atlanteans/soldier/conf (+0/-12)
tribes/atlanteans/spiderfarm/conf (+0/-2)
tribes/atlanteans/stonecutter/conf (+0/-4)
tribes/atlanteans/toolsmith/conf (+0/-3)
tribes/atlanteans/toolsmithy/conf (+0/-2)
tribes/atlanteans/tower/conf (+0/-1)
tribes/atlanteans/trainer/conf (+0/-3)
tribes/atlanteans/warehouse/conf (+0/-1)
tribes/atlanteans/weaponsmith/conf (+0/-3)
tribes/atlanteans/weaponsmithy/conf (+0/-2)
tribes/atlanteans/weaver/conf (+0/-3)
tribes/atlanteans/weaving-mill/conf (+0/-1)
tribes/atlanteans/well/conf (+0/-2)
tribes/atlanteans/woodcutter/conf (+0/-4)
tribes/atlanteans/woodcutters_house/conf (+0/-1)
tribes/barbarians/ashes/conf (+0/-2)
tribes/barbarians/axefactory/conf (+0/-4)
tribes/barbarians/baker/conf (+0/-3)
tribes/barbarians/barrier/conf (+0/-1)
tribes/barbarians/battlearena/conf (+0/-4)
tribes/barbarians/blacksmith/conf (+1/-4)
tribes/barbarians/brewer/conf (+0/-3)
tribes/barbarians/builder/conf (+0/-4)
tribes/barbarians/burner/conf (+0/-3)
tribes/barbarians/carrier/conf (+0/-3)
tribes/barbarians/cattlebreeder/conf (+0/-3)
tribes/barbarians/chief-miner/conf (+0/-3)
tribes/barbarians/citadel/conf (+0/-1)
tribes/barbarians/coalmine/conf (+0/-4)
tribes/barbarians/conf (+0/-2)
tribes/barbarians/deep_coalmine/conf (+0/-4)
tribes/barbarians/deep_goldmine/conf (+0/-4)
tribes/barbarians/deep_oremine/conf (+0/-4)
tribes/barbarians/deeper_coalmine/conf (+0/-4)
tribes/barbarians/deeper_goldmine/conf (+0/-4)
tribes/barbarians/deeper_oremine/conf (+0/-4)
tribes/barbarians/destroyed_building/conf (+0/-1)
tribes/barbarians/donjon/conf (+0/-1)
tribes/barbarians/farmer/conf (+0/-6)
tribes/barbarians/ferner/conf (+0/-5)
tribes/barbarians/field0/conf (+0/-1)
tribes/barbarians/field0s/conf (+0/-1)
tribes/barbarians/field0t/conf (+0/-1)
tribes/barbarians/field1/conf (+1/-1)
tribes/barbarians/field2/conf (+1/-1)
tribes/barbarians/fisher/conf (+0/-3)
tribes/barbarians/fortress/conf (+0/-1)
tribes/barbarians/gamekeeper/conf (+0/-4)
tribes/barbarians/geologist/conf (+0/-4)
tribes/barbarians/goldmine/conf (+0/-4)
tribes/barbarians/granitemine/conf (+0/-4)
tribes/barbarians/headquarters/conf (+0/-1)
tribes/barbarians/headquarters_interim/conf (+0/-1)
tribes/barbarians/helmsmith/conf (+0/-3)
tribes/barbarians/helmsmithy/conf (+0/-4)
tribes/barbarians/hunter/conf (+0/-3)
tribes/barbarians/innkeeper/conf (+0/-3)
tribes/barbarians/lime-burner/conf (+0/-3)
tribes/barbarians/lumberjack/conf (+0/-4)
tribes/barbarians/mask/conf (+0/-1)
tribes/barbarians/master-blacksmith/conf (+0/-3)
tribes/barbarians/master-brewer/conf (+0/-3)
tribes/barbarians/master-miner/conf (+0/-3)
tribes/barbarians/metalworks/conf (+0/-4)
tribes/barbarians/miner/conf (+0/-2)
tribes/barbarians/oremine/conf (+0/-4)
tribes/barbarians/port/conf (+0/-1)
tribes/barbarians/ranger/conf (+0/-6)
tribes/barbarians/reed0/conf (+0/-1)
tribes/barbarians/reed0s/conf (+0/-1)
tribes/barbarians/reed0t/conf (+0/-1)
tribes/barbarians/resi_coal1/conf (+0/-1)
tribes/barbarians/resi_coal2/conf (+0/-1)
tribes/barbarians/resi_gold1/conf (+0/-1)
tribes/barbarians/resi_gold2/conf (+0/-1)
tribes/barbarians/resi_granit1/conf (+0/-1)
tribes/barbarians/resi_granit2/conf (+0/-1)
tribes/barbarians/resi_iron1/conf (+0/-1)
tribes/barbarians/resi_iron2/conf (+0/-1)
tribes/barbarians/resi_none/conf (+0/-1)
tribes/barbarians/resi_water1/conf (+0/-1)
tribes/barbarians/scout/conf (+0/-3)
tribes/barbarians/sentry/conf (+0/-1)
tribes/barbarians/ship/conf (+0/-2)
tribes/barbarians/shipconstruction/conf (+0/-2)
tribes/barbarians/shipwright/conf (+0/-4)
tribes/barbarians/shipyard/conf (+0/-4)
tribes/barbarians/smelter/conf (+0/-3)
tribes/barbarians/soldier/conf (+0/-12)
tribes/barbarians/stonemason/conf (+0/-4)
tribes/barbarians/trainer/conf (+0/-3)
tribes/barbarians/trainingscamp/conf (+0/-1)
tribes/barbarians/warhelmet/conf (+0/-1)
tribes/barbarians/warmill/conf (+0/-4)
tribes/barbarians/weaver/conf (+0/-3)
tribes/barbarians/well/conf (+0/-3)
tribes/empire/armoursmith/conf (+0/-3)
tribes/empire/armoursmithy/conf (+0/-2)
tribes/empire/ashes/conf (+0/-1)
tribes/empire/baker/conf (+2/-3)
tribes/empire/brewer/conf (+0/-3)
tribes/empire/builder/conf (+0/-4)
tribes/empire/burner/conf (+0/-3)
tribes/empire/carpenter/conf (+0/-3)
tribes/empire/carrier/conf (+0/-3)
tribes/empire/conf (+0/-2)
tribes/empire/destroyed_building/conf (+0/-1)
tribes/empire/donkeybreeder/conf (+0/-3)
tribes/empire/farmer/conf (+0/-6)
tribes/empire/field0/conf (+0/-1)
tribes/empire/field0s/conf (+0/-1)
tribes/empire/field0t/conf (+0/-1)
tribes/empire/fisher/conf (+0/-4)
tribes/empire/forester/conf (+0/-6)
tribes/empire/geologist/conf (+0/-4)
tribes/empire/headquarters_shipwreck/conf (+0/-1)
tribes/empire/helm/conf (+0/-1)
tribes/empire/hunter/conf (+0/-3)
tribes/empire/innkeeper/conf (+0/-3)
tribes/empire/lumberjack/conf (+0/-4)
tribes/empire/master-miner/conf (+0/-3)
tribes/empire/mill/conf (+0/-2)
tribes/empire/miller/conf (+0/-3)
tribes/empire/miner/conf (+0/-3)
tribes/empire/pig-breeder/conf (+0/-3)
tribes/empire/port/conf (+0/-2)
tribes/empire/resi_coal1/conf (+0/-1)
tribes/empire/resi_coal2/conf (+0/-1)
tribes/empire/resi_gold1/conf (+0/-1)
tribes/empire/resi_gold2/conf (+0/-1)
tribes/empire/resi_granit1/conf (+0/-1)
tribes/empire/resi_granit2/conf (+0/-1)
tribes/empire/resi_iron1/conf (+0/-1)
tribes/empire/resi_iron2/conf (+0/-1)
tribes/empire/resi_none/conf (+0/-1)
tribes/empire/resi_water1/conf (+0/-1)
tribes/empire/scout/conf (+0/-3)
tribes/empire/scouts_house/conf (+0/-1)
tribes/empire/shepherd/conf (+0/-3)
tribes/empire/ship/conf (+0/-2)
tribes/empire/shipconstruction/conf (+0/-2)
tribes/empire/shipwright/conf (+0/-4)
tribes/empire/shipyard/conf (+0/-4)
tribes/empire/smelter/conf (+0/-3)
tribes/empire/soldier/conf (+0/-12)
tribes/empire/stonemason/conf (+0/-4)
tribes/empire/toolsmith/conf (+0/-3)
tribes/empire/trainer/conf (+0/-3)
tribes/empire/vinefarmer/conf (+0/-6)
tribes/empire/weaponsmith/conf (+0/-3)
tribes/empire/weaver/conf (+0/-3)
tribes/empire/weaving-mill/conf (+0/-1)
tribes/empire/wine0/conf (+0/-1)
tribes/empire/wine0s/conf (+0/-1)
tribes/empire/wine0t/conf (+0/-1)
utils/crop_animation.py (+3/-2)
utils/make_spritemap.py (+767/-0)
utils/pywi/__init__.py (+4/-0)
utils/pywi/animation.py (+435/-0)
utils/pywi/config.py (+184/-0)
utils/pywi/packing.py (+101/-0)
utils/pywi/tests.py (+117/-0)
utils/test/test_make_spritemap.py (+161/-0)
worlds/blackland/bush1/conf (+0/-1)
worlds/blackland/bush2/conf (+0/-1)
worlds/blackland/bush3/conf (+0/-1)
worlds/blackland/bush4/conf (+0/-1)
worlds/blackland/bush5/conf (+0/-1)
worlds/blackland/cactus1/conf (+0/-1)
worlds/blackland/cactus2/conf (+0/-1)
worlds/blackland/deadtree1/conf (+0/-1)
worlds/blackland/deadtree2/conf (+0/-1)
worlds/blackland/deadtree3/conf (+0/-1)
worlds/blackland/deadtree4/conf (+0/-1)
worlds/blackland/duck/conf (+0/-1)
worlds/blackland/grass1/conf (+0/-1)
worlds/blackland/grass2/conf (+0/-1)
worlds/blackland/grass3/conf (+0/-1)
worlds/blackland/mushroom1/conf (+0/-1)
worlds/blackland/mushroom2/conf (+0/-1)
worlds/blackland/pebble1/conf (+0/-1)
worlds/blackland/pebble2/conf (+0/-1)
worlds/blackland/pebble3/conf (+0/-1)
worlds/blackland/pebble4/conf (+0/-1)
worlds/blackland/pebble5/conf (+0/-1)
worlds/blackland/pebble6/conf (+0/-1)
worlds/blackland/sheep/conf (+0/-1)
worlds/blackland/skeleton1/conf (+0/-1)
worlds/blackland/skeleton2/conf (+0/-1)
worlds/blackland/skeleton3/conf (+0/-1)
worlds/blackland/sstones1/conf (+0/-1)
worlds/blackland/sstones2/conf (+0/-1)
worlds/blackland/sstones3/conf (+0/-1)
worlds/blackland/sstones4/conf (+0/-1)
worlds/blackland/sstones5/conf (+0/-1)
worlds/blackland/sstones6/conf (+0/-1)
worlds/blackland/sstones7/conf (+0/-1)
worlds/blackland/stones1/conf (+0/-1)
worlds/blackland/stones2/conf (+0/-1)
worlds/blackland/stones3/conf (+0/-1)
worlds/blackland/stones4/conf (+0/-1)
worlds/blackland/stones5/conf (+0/-1)
worlds/blackland/stones6/conf (+0/-1)
worlds/blackland/tree1/conf (+0/-1)
worlds/blackland/tree1_m/conf (+0/-1)
worlds/blackland/tree1_s/conf (+0/-1)
worlds/blackland/tree1_t/conf (+0/-1)
worlds/blackland/tree2/conf (+0/-1)
worlds/blackland/tree2_m/conf (+0/-1)
worlds/blackland/tree2_s/conf (+0/-1)
worlds/blackland/tree2_t/conf (+0/-1)
worlds/blackland/tree3/conf (+0/-1)
worlds/blackland/tree3_m/conf (+0/-1)
worlds/blackland/tree3_s/conf (+0/-1)
worlds/blackland/tree3_t/conf (+0/-1)
worlds/blackland/tree4/conf (+0/-1)
worlds/blackland/tree4_m/conf (+0/-1)
worlds/blackland/tree4_s/conf (+0/-1)
worlds/blackland/tree4_t/conf (+0/-1)
worlds/blackland/tree5/conf (+0/-1)
worlds/blackland/tree5_m/conf (+0/-1)
worlds/blackland/tree5_s/conf (+0/-1)
worlds/blackland/tree5_t/conf (+0/-1)
worlds/blackland/tree6/conf (+0/-1)
worlds/blackland/tree6_m/conf (+0/-1)
worlds/blackland/tree6_s/conf (+0/-1)
worlds/blackland/tree6_t/conf (+0/-1)
worlds/blackland/tree7/conf (+0/-1)
worlds/blackland/tree7_m/conf (+0/-1)
worlds/blackland/tree7_s/conf (+0/-1)
worlds/blackland/tree7_t/conf (+0/-1)
worlds/blackland/tree8/conf (+0/-1)
worlds/blackland/tree8_m/conf (+0/-1)
worlds/blackland/tree8_s/conf (+0/-1)
worlds/blackland/tree8_t/conf (+0/-1)
worlds/desert/bush1/conf (+0/-1)
worlds/desert/bush4/conf (+0/-1)
worlds/desert/bush5/conf (+0/-1)
worlds/desert/cactus1/conf (+0/-1)
worlds/desert/cactus2/conf (+0/-1)
worlds/desert/cactus3/conf (+0/-1)
worlds/desert/cactus4/conf (+0/-1)
worlds/desert/deadtree1/conf (+0/-1)
worlds/desert/deadtree2/conf (+0/-1)
worlds/desert/deadtree3/conf (+0/-1)
worlds/desert/deadtree4/conf (+0/-1)
worlds/desert/duck/conf (+0/-1)
worlds/desert/grass1/conf (+0/-1)
worlds/desert/grass2/conf (+0/-1)
worlds/desert/grass3/conf (+0/-1)
worlds/desert/mushroom1/conf (+0/-1)
worlds/desert/mushroom2/conf (+0/-1)
worlds/desert/pebble1/conf (+0/-1)
worlds/desert/pebble2/conf (+0/-1)
worlds/desert/pebble3/conf (+0/-1)
worlds/desert/pebble4/conf (+0/-1)
worlds/desert/pebble5/conf (+0/-1)
worlds/desert/pebble6/conf (+0/-1)
worlds/desert/ruin1/conf (+0/-1)
worlds/desert/ruin2/conf (+0/-1)
worlds/desert/ruin3/conf (+0/-1)
worlds/desert/ruin4/conf (+0/-1)
worlds/desert/ruin5/conf (+0/-1)
worlds/desert/sheep/conf (+0/-1)
worlds/desert/skeleton1/conf (+0/-1)
worlds/desert/skeleton2/conf (+0/-1)
worlds/desert/skeleton3/conf (+0/-1)
worlds/desert/skeleton4/conf (+0/-1)
worlds/desert/sstones1/conf (+0/-1)
worlds/desert/sstones2/conf (+0/-1)
worlds/desert/sstones3/conf (+0/-1)
worlds/desert/sstones4/conf (+0/-1)
worlds/desert/sstones5/conf (+0/-1)
worlds/desert/sstones6/conf (+0/-1)
worlds/desert/sstones7/conf (+0/-1)
worlds/desert/stones1/conf (+0/-1)
worlds/desert/stones2/conf (+0/-1)
worlds/desert/stones3/conf (+0/-1)
worlds/desert/stones4/conf (+0/-1)
worlds/desert/stones5/conf (+0/-1)
worlds/desert/stones6/conf (+0/-1)
worlds/desert/tree1/conf (+0/-1)
worlds/desert/tree1_m/conf (+0/-1)
worlds/desert/tree1_s/conf (+0/-1)
worlds/desert/tree1_t/conf (+0/-1)
worlds/desert/tree2/conf (+0/-1)
worlds/desert/tree2_m/conf (+0/-1)
worlds/desert/tree2_s/conf (+0/-1)
worlds/desert/tree2_t/conf (+0/-1)
worlds/desert/tree3/conf (+0/-1)
worlds/desert/tree3_m/conf (+0/-1)
worlds/desert/tree3_s/conf (+0/-1)
worlds/desert/tree3_t/conf (+0/-1)
worlds/desert/tree4/conf (+0/-1)
worlds/desert/tree4_m/conf (+0/-1)
worlds/desert/tree4_s/conf (+0/-1)
worlds/desert/tree4_t/conf (+0/-1)
worlds/desert/tree5/conf (+0/-1)
worlds/desert/tree5_m/conf (+0/-1)
worlds/desert/tree5_s/conf (+0/-1)
worlds/desert/tree5_t/conf (+0/-1)
worlds/desert/tree6/conf (+0/-1)
worlds/desert/tree6_m/conf (+0/-1)
worlds/desert/tree6_s/conf (+0/-1)
worlds/desert/tree6_t/conf (+0/-1)
worlds/desert/tree7/conf (+0/-1)
worlds/desert/tree7_m/conf (+0/-1)
worlds/desert/tree7_s/conf (+0/-1)
worlds/desert/tree7_t/conf (+0/-1)
worlds/desert/tree8/conf (+0/-1)
worlds/desert/tree8_m/conf (+0/-1)
worlds/desert/tree8_s/conf (+0/-1)
worlds/desert/tree8_t/conf (+0/-1)
worlds/greenland/bush1/conf (+0/-1)
worlds/greenland/bush2/conf (+0/-1)
worlds/greenland/bush3/conf (+0/-1)
worlds/greenland/bush4/conf (+0/-1)
worlds/greenland/bush5/conf (+0/-1)
worlds/greenland/cactus1/conf (+0/-1)
worlds/greenland/cactus2/conf (+0/-1)
worlds/greenland/deadtree1/conf (+0/-1)
worlds/greenland/deadtree2/conf (+0/-1)
worlds/greenland/deadtree3/conf (+0/-1)
worlds/greenland/deadtree4/conf (+0/-1)
worlds/greenland/duck/conf (+0/-1)
worlds/greenland/fallentree/conf (+0/-1)
worlds/greenland/grass1/conf (+0/-1)
worlds/greenland/grass2/conf (+0/-1)
worlds/greenland/grass3/conf (+0/-1)
worlds/greenland/mushroom1/conf (+0/-1)
worlds/greenland/mushroom2/conf (+0/-1)
worlds/greenland/pebble1/conf (+0/-1)
worlds/greenland/pebble2/conf (+0/-1)
worlds/greenland/pebble3/conf (+0/-1)
worlds/greenland/pebble4/conf (+0/-1)
worlds/greenland/pebble5/conf (+0/-1)
worlds/greenland/pebble6/conf (+0/-1)
worlds/greenland/sheep/conf (+0/-1)
worlds/greenland/skeleton1/conf (+0/-1)
worlds/greenland/skeleton2/conf (+0/-1)
worlds/greenland/skeleton3/conf (+0/-1)
worlds/greenland/sstones1/conf (+0/-1)
worlds/greenland/sstones2/conf (+0/-1)
worlds/greenland/sstones3/conf (+0/-1)
worlds/greenland/sstones4/conf (+0/-1)
worlds/greenland/sstones5/conf (+0/-1)
worlds/greenland/sstones6/conf (+0/-1)
worlds/greenland/sstones7/conf (+0/-1)
worlds/greenland/stones1/conf (+0/-1)
worlds/greenland/stones2/conf (+0/-1)
worlds/greenland/stones3/conf (+0/-1)
worlds/greenland/stones4/conf (+0/-1)
worlds/greenland/stones5/conf (+0/-1)
worlds/greenland/stones6/conf (+0/-1)
worlds/greenland/tree1/conf (+0/-1)
worlds/greenland/tree1_m/conf (+0/-1)
worlds/greenland/tree1_s/conf (+0/-1)
worlds/greenland/tree1_t/conf (+0/-1)
worlds/greenland/tree2/conf (+0/-1)
worlds/greenland/tree2_m/conf (+0/-1)
worlds/greenland/tree2_s/conf (+0/-1)
worlds/greenland/tree2_t/conf (+0/-1)
worlds/greenland/tree3/conf (+0/-1)
worlds/greenland/tree3_m/conf (+0/-1)
worlds/greenland/tree3_s/conf (+0/-1)
worlds/greenland/tree3_t/conf (+0/-1)
worlds/greenland/tree4/conf (+0/-1)
worlds/greenland/tree4_m/conf (+0/-1)
worlds/greenland/tree4_s/conf (+0/-1)
worlds/greenland/tree4_t/conf (+0/-1)
worlds/greenland/tree5/conf (+0/-1)
worlds/greenland/tree5_m/conf (+0/-1)
worlds/greenland/tree5_s/conf (+0/-1)
worlds/greenland/tree5_t/conf (+0/-1)
worlds/greenland/tree6/conf (+0/-1)
worlds/greenland/tree6_m/conf (+0/-1)
worlds/greenland/tree6_s/conf (+0/-1)
worlds/greenland/tree6_t/conf (+0/-1)
worlds/greenland/tree7/conf (+0/-1)
worlds/greenland/tree7_m/conf (+0/-1)
worlds/greenland/tree7_s/conf (+0/-1)
worlds/greenland/tree7_t/conf (+0/-1)
worlds/greenland/tree8/conf (+0/-1)
worlds/greenland/tree8_m/conf (+0/-1)
worlds/greenland/tree8_s/conf (+0/-1)
worlds/greenland/tree8_t/conf (+0/-1)
worlds/winterland/bush1/conf (+0/-1)
worlds/winterland/bush2/conf (+0/-1)
worlds/winterland/bush3/conf (+0/-1)
worlds/winterland/bush4/conf (+0/-1)
worlds/winterland/bush5/conf (+0/-1)
worlds/winterland/deadtree1/conf (+0/-1)
worlds/winterland/deadtree2/conf (+0/-1)
worlds/winterland/deadtree3/conf (+0/-1)
worlds/winterland/deadtree4/conf (+0/-1)
worlds/winterland/duck/conf (+0/-1)
worlds/winterland/grass1/conf (+0/-1)
worlds/winterland/grass2/conf (+0/-1)
worlds/winterland/grass3/conf (+0/-1)
worlds/winterland/mushroom1/conf (+0/-1)
worlds/winterland/mushroom2/conf (+0/-1)
worlds/winterland/pebble1/conf (+0/-1)
worlds/winterland/pebble2/conf (+0/-1)
worlds/winterland/pebble3/conf (+0/-1)
worlds/winterland/pebble4/conf (+0/-1)
worlds/winterland/pebble5/conf (+0/-1)
worlds/winterland/pebble6/conf (+0/-1)
worlds/winterland/sheep/conf (+0/-1)
worlds/winterland/skeleton1/conf (+0/-1)
worlds/winterland/skeleton2/conf (+0/-1)
worlds/winterland/skeleton3/conf (+0/-1)
worlds/winterland/snowman/conf (+0/-1)
worlds/winterland/sstones1/conf (+0/-1)
worlds/winterland/sstones2/conf (+0/-1)
worlds/winterland/sstones3/conf (+0/-1)
worlds/winterland/sstones4/conf (+0/-1)
worlds/winterland/sstones5/conf (+0/-1)
worlds/winterland/sstones6/conf (+0/-1)
worlds/winterland/sstones7/conf (+0/-1)
worlds/winterland/stones1/conf (+0/-1)
worlds/winterland/stones2/conf (+0/-1)
worlds/winterland/stones3/conf (+0/-1)
worlds/winterland/stones4/conf (+0/-1)
worlds/winterland/stones5/conf (+0/-1)
worlds/winterland/stones6/conf (+0/-1)
worlds/winterland/track/conf (+0/-1)
worlds/winterland/tree1/conf (+0/-1)
worlds/winterland/tree1_m/conf (+0/-1)
worlds/winterland/tree1_s/conf (+0/-1)
worlds/winterland/tree1_t/conf (+0/-1)
worlds/winterland/tree2/conf (+0/-1)
worlds/winterland/tree2_m/conf (+0/-1)
worlds/winterland/tree2_s/conf (+0/-1)
worlds/winterland/tree2_t/conf (+0/-1)
worlds/winterland/tree3/conf (+0/-1)
worlds/winterland/tree3_m/conf (+0/-1)
worlds/winterland/tree3_s/conf (+0/-1)
worlds/winterland/tree3_t/conf (+0/-1)
worlds/winterland/tree4/conf (+0/-1)
worlds/winterland/tree4_m/conf (+0/-1)
worlds/winterland/tree4_s/conf (+0/-1)
worlds/winterland/tree4_t/conf (+0/-1)
worlds/winterland/tree5/conf (+0/-1)
worlds/winterland/tree5_m/conf (+0/-1)
worlds/winterland/tree5_s/conf (+0/-1)
worlds/winterland/tree5_t/conf (+0/-1)
worlds/winterland/tree6/conf (+0/-1)
worlds/winterland/tree6_m/conf (+0/-1)
worlds/winterland/tree6_s/conf (+0/-1)
worlds/winterland/tree6_t/conf (+0/-1)
worlds/winterland/tree7/conf (+0/-1)
worlds/winterland/tree7_m/conf (+0/-1)
worlds/winterland/tree7_s/conf (+0/-1)
worlds/winterland/tree7_t/conf (+0/-1)
worlds/winterland/tree8/conf (+0/-1)
worlds/winterland/tree8_m/conf (+0/-1)
worlds/winterland/tree8_s/conf (+0/-1)
worlds/winterland/tree8_t/conf (+0/-1)
description: | updated |
description: | updated |
description: | updated |
Changed in widelands: | |
status: | Incomplete → Confirmed |
tags: |
added: graphics removed: graphic |
Changed in widelands-media: | |
status: | New → Won't Fix |
I already talked with chuck about this a long time ago. I actually suggested the same idea that you propose - it is also the way S2 did things. The code coud be improved by generating a densely packed sprite map from the individual animation parts - that would improve blitting speed I think (but maybe this is not even needed).
I was suggesting doing this as a preprocessing step - a script which you basically feed the current graphics config and which outputs suitable graphic files. I even stared coding on this - unfortunately this will kill the nice graphics dir we currently have and will make understanding the graphics much harder for new contributors. This is not as much of a problem though as all animations are done in 3d anyways, so a post processing step would not hurt graphic dev as much (chuck said).