]> git.localhorst.tv Git - blank.git/blob - doc/todo
some annotations
[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         more commands pls
23         and show me their output
24
25 persistence
26
27         merge IO counters, so number of operations per frame is kept
28         low, no matter what exactly is done
29
30         store some kind of byte order mark?
31
32         world and player names should be normalized so they can safely
33         be used in path names
34
35 networking
36
37         definitely needs throttling for the internets
38
39         players stats (who's connected, their ping, and game-relevant
40         things) should be sent to clients
41
42         some method for authenticating a player might be nice
43
44         maybe stale and inexistent chunks should be visualized (e.g. by
45         drawing a semi-transparent box around them)
46
47         make a chunk data counting a little safer
48
49 threading
50
51         (clientside) networking and disk IO are prime candidates for threading
52
53 launcher ui
54
55         select or create a world with configurable parameters
56
57 entity ai
58
59         pathfinding, better turning behaviour
60
61 lighting
62
63         occlusion/neighbor light mixing is implemented, but still linear
64         this could be solved by using a pre-interpolated light texture and
65         mapping light levels to coordinates on that
66
67         there's a bug where a chunk's model is not updated if its neighbor
68         changes border light levels
69         I kinda mitigated it a little for direct neighbors during linking, but
70         it still can happen in (hopefully) rare corner cases
71
72         propagation through semi-filled blocks is wonky. I worked around it by
73         having the light propagate into solid blocks, but feels like this
74         could cause some weird behaviours
75
76         entity lighting is now derived from block light levels
77         it's not interpolated and the calculation is very basic, so it
78         has some unexpected effects
79
80 gravity
81
82         now implemented as optional gravity emitter per block type
83         let's see how that pans out
84         maybe players should be given the option to switch between
85         walk and fly mode
86
87 block attributes
88
89         when blocks are not just a solid rock of color, attributes may
90         become interesting. like labels on signs and contents of
91         containers
92
93 transparency (blocks and entities)
94
95         transparent blocks because awesome
96
97 world generator that is not boring
98
99         well, it's different
100         still needs way more block types and structure generation
101         a minimum distance from origin could be interesting as well, to ensure
102         the spawn vicinity doesn't contain bloks with would be useless at the
103         beginning (if there even is such a thing), also it would encourage
104         exploration
105         biomes seem too small, maybe that will become easier to tune when
106         there's a little more diversity between them
107
108 entity/world collision
109
110         I don't like the force/spring based collision response, maybe revert
111         back to impulses
112         also, it fails in some cases
113
114 spawning
115
116         need a way to find a suitable location to spawn new players in
117         I imagine a "random block" function of ChunkIndex could be nice
118         (also for use with the AI spawner)
119         also, finding a spawn position for a player must no fail. after a
120         certain number of tries, the world must change to safely accomodate
121         the player.
122         chunk generation could be adjusted to make a little more room near the
123         origin (since that's where the usual spawn point will be), but that's
124         not strictly necessary and might overcomplicate the generation
125         if all fails, the spawner has to modify the world
126         how much space has to be cleared and how to make sure the spawning
127         space connects to "open space" I don't know yet, it's all a little
128         fuzzy anyway
129
130 sprite/particle system
131
132         these could help make the world seem more alive
133
134 items
135
136         items representing both blocks and non-blocks (such as tools, weapons,
137         armor), with a simpler physics simulation than entities, much like the
138         one for particles
139         they can be picked up by entities, so those should have one or more parts
140         in their skeleton to render them when they're "held"
141         players' inventories have to be changed so they select an item rather
142         than a block
143         item IDs could be the block ID for blocks, and anything from 2^16 up for
144         non-blocks