]> git.localhorst.tv Git - blank.git/blob - doc/todo
2c54c10065cddbc52980230e7efa31d3d0d12645
[blank.git] / doc / todo
1 block placement/removal timers
2
3         removal timing depending on the tool/block combination
4         animation for remove
5
6 composite entity animations
7
8         complex entities are made up of parts which have their own local
9         transform that can be animated (like e.g. an arm or head)
10
11 font rendering
12
13         with background now being a thing, a padding might be nice
14         that or maybe separate bg from fg rendering
15
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
19
20 command line
21
22         useful for development and later on world administration
23
24 persistence
25
26         merge IO counters, so number of operations per frame is kept
27         low, no matter what exactly is done
28
29         store some kind of byte order mark?
30
31 networking
32
33         write tests
34         do some manual testing
35         some more testing
36         a little optimization
37
38 launcher ui
39
40         select or create a world with configurable parameters
41
42 entity ai
43
44         pathfinding, chase and roam states
45
46 (block) lighting
47
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
51
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?
56
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
61
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
65
66 gravity
67
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
73
74 block attributes
75
76         when blocks are not just a solid rock of color, attributes may
77         become interesting. like labels on signs and contents of
78         containers
79
80 transparency (blocks and entities)
81
82         transparent blocks because awesome
83
84 world generator that is not boring
85
86         well, it's different
87         still needs way more block types and structure generation
88         a minimum distance from origin could be interesting as well, to ensure
89         the spawn vicinity doesn't contain bloks with would be useless at the
90         beginning (if there even is such a thing), also it would encourage
91         exploration
92         biomes seem too small, maybe that will become easier to tune when
93         there's a little more diversity between them
94
95 entity/world collision
96
97         first draft of entity/world collision is implemented
98         it jitters and has some surprising behaviour
99
100 spawning
101
102         need a way to find a suitable location to spawn new players in
103         I imagine a "random block" function of ChunkIndex could be nice
104         (also for use with the AI spawner)
105         also, finding a spawn position for a player must no fail. after a
106         certain number of tries, the world must change to safely accomodate
107         the player.
108         chunk generation could be adjusted to make a little more room near the
109         origin (since that's where the usual spawn point will be), but that's
110         not strictly necessary and might overcomplicate the generation
111         if all fails, the spawner has to modify the world
112         how much space has to be cleared and how to make sure the spawning
113         space connects to "open space" I don't know yet, it's all a little
114         fuzzy anyway
115
116 sprite/particle system
117
118         these could help make the world seem more alive