1 block placement/removal timers
3 removal timing depending on the tool/block combination
6 composite entity animations
8 complex entities are made up of part which have their own local
9 transform that can be animated (like e.g. an arm or head)
13 with background now being a thing, a padding might be nice
14 that or maybe separate bg from fg rendering
16 it may also be feasible to get rid of SDL_ttf and use freetype
17 directly to eliminate the unneccessary surface creation
18 ftgl might also be worth looking at
22 usefull for development and later on world administration
26 merge IO counters, so number of operations per frame is kept
27 low, no matter what exactly is done
29 store some kind of byte order mark?
34 do some manual testing
40 select or create a world with configurable parameters
44 pathfinding, chase and roam states
48 occlusion/neighbor light mixing is implemented, but still linear
49 this could be solved by using a pre-interpolated light texture and
50 mapping light levels to coordinates on that
52 also: how could block light affect entity lighting?
53 maybe get the interpolated light level at the entity's center and use
54 that as the light power for the directional lighting shader and use a
55 direction that's fixed relative to the camera?
57 there's a bug where a chunk's model is not updated if its neighbor
58 changes border light levels
59 I kinda mitigated it a little for direct neighbors during linking, but
60 it still can happen in (hopefully) rare corner cases
62 propagation through semi-filled blocks is wonky. I worked around it by
63 having the light propagate into solid blocks, but feels like this
64 could cause some weird behaviours
68 maybe like light levels? should also store a direction with it in
69 that case. also, global gravity may be a world option.
70 no, per-block gravity vector is most probably too expensive.
71 better have the chunks store a few point masses (maybe blocks that
72 emit gravitation?) and calculate from that
76 when blocks are not just a solid rock of color, attributes may
77 become interesting. like labels on signs and contents of
82 maybe the chunk loader should keep an index of interesting, if not
83 all chunks by position, possibly base-relative
85 profiling indicates that this is not neccessary atm. maybe it will
86 when there's some more action in the world
88 transparency (blocks and entities)
90 transparent blocks because awesome
92 world generator that is not boring
94 maybe store a min/max solidity, humidity, temperature, rarity, etc.
95 for each block type (with the option to deactivate generation
96 altogether) and use different noise overlays for each
98 entity/world collision
100 first draft of entity/world collision is implemented
101 it jitters and has some surprising behaviour
105 need a way to find a suitable location to spawn new players in
106 I imagine a "random block" function of ChunkIndex could be nice
107 (also for use with the AI spawner)
108 also, finding a spawn position for a player must no fail. after a
109 certain number of tries, the world must change to safely accomodate
111 chunk generation could be adjusted to make a little more room near the
112 origin (since that's where the usual spawn point will be), but that's
113 not strictly necessary and might overcomplicate the generation
114 if all fails, the spawner has to modify the world
115 how much space has to be cleared and how to make sure the spawning
116 space connects to "open space" I don't know yet, it's all a little