]> git.localhorst.tv Git - blank.git/blob - TODO
reorganize basic rendering functionality
[blank.git] / 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 part which have their own local
9         transform that can be animated (like e.g. an arm or head)
10
11 textures
12
13         do I need to say anything? :)
14
15 font colours
16
17         set font fg and bg colour as either uniform or vertex attribute
18         and lerp between them based on the texture's alpha component
19
20         it may also be feasible to get rid of SDL_ttf and use freetype
21         directly to eliminate the unneccessary surface creation
22         ftgl might also be worth looking at
23
24 command line
25
26         usefull for development and later on world administration
27
28 networking
29
30         exchange of chunks and entities
31
32 persistence
33
34         unloaded chunks should be saved to disk and restored when they
35         are loaded again
36
37 launcher ui
38
39         select or create a world with configurable parameters
40
41 entity ai
42
43         pathfinding, chase and roam states
44
45 (block) lighting
46
47         occlusion/neighbor light mixing is implemented, but still linear
48         this could be solved by using a pre-interpolated light texture and
49         mapping light levels to coordinates on that
50
51         also: how could block light affect entity lighting?
52         maybe get the interpolated light level at the entity's center and use
53         that as the light power for the directional lighting shader and use a
54         direction that's fixed relative to the camera?
55
56         there's a bug where a chunk's model is not updated if its neighbor
57         changes border light levels
58         I kinda mitigated it a little for direct neighbors during linking, but
59         it still can happen in (hopefully) rare corner cases
60
61         propagation through semi-filled blocks is wonky. I worked around it by
62         having the light propagate into solid blocks, but feels like this
63         could cause some weird behaviours
64
65 gravity
66
67         maybe like light levels? should also store a direction with it in
68         that case. also, global gravity may be a world option.
69         no, per-block gravity vector is most probably too expensive.
70         better have the chunks store a few point masses (maybe blocks that
71         emit gravitation?) and calculate from that
72
73 block attributes
74
75         when blocks are not just a solid rock of color, attributes may
76         become interesting. like labels on signs and contents of
77         containers
78
79 chunk traversal
80
81         maybe the chunk loader should keep an index of interesting, if not
82         all chunks by position, possibly base-relative
83
84         profiling indicates that this is not neccessary atm. maybe it will
85         when there's some more action in the world
86
87 transparency (blocks and entities)
88
89         transparent blocks because awesome
90
91 world generator that is not boring
92
93         maybe divide into biomes and add special features like
94         settlements, ruins, all kinds of interesting stuff
95
96 entity/world collision
97
98         first draft of entity/world collision is implemented
99         it jitters and has some surprising behaviour
100         finding a spawn point which doesn't put entities in solids is
101         now a little more crucial. press N if you're in trouble
102
103 better noise
104
105         current simplex noise implementation repeats itself pretty quickly