-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO
130 lines (113 loc) · 4.89 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
Bugs
====
o zombie (bug in movement!, attacks too often, use events, etc...)
Code
====
o General / Interface:
o (BIG) move drawing to the objects/menus/etc (create a draw() function)!
o pointers => shared_ptr/references where possible
o Complete the doxygen documentation and keep it up-to-date
o Use Singletons
o Create a better class hierarchy so we don't have a class playground...
o Better handle the different game states and replace the current conditional model
o IDEA: create dynamical plugins for all objects (or compile all in)
o map is not time ordered => leads to unwanted behaviour in editor and filelists
o Move/crash/collisions:
o move should be a property of a common object
o Hit should give either much more information or all logic should be done inside
move (BAD)
o collision reactions should depend on the corresponding types and whether we
already are near the object or not => getCollisionType(obj1,obj2)?
o First priority (first run): find out where the object will move to (HARD)
=> add a bool notchange parameter and pass it on to all actions
o movement into a movable object should just move the object
o if the movement is "forced" the moved object should be hit hard when it collides
otherwise a hit would stop the moving object as well...
o I have no idea about how the push should look like, elevators can be pushed
up, even though you don't collide with them on top
o IDEA: characters should be "pushable", eg. a stone that falls down pushes the
character down or better: an elevator should push the characters up
o In case of the elevator, the players are somehow "bound" to the elevator (ie.
it's not like: the elevator moves, the character falls, but they move together)
Solution: The elevators move function checks all objects it would
hit, if they are pushable (not dense) they are moved first if
possible. If it's not possible, do sthg else (stop the elevator and hit the
object/whatever)...
o IMPROVE?: cleanup set_difference stuff => targets should be updated if
an object dies in an intelligent way...
o IDEA: merge otype and ctype and make all moves/etc depend on it
o IDEA (old): Add attributes:
- crushable (ie. weapon fart, jump, run destroys them?)
- bombable (ie. bomb destroys them)
- multistates? => bridges, door, stone block
o REWRITE: the whole crash system!!!
o Events/Animations:
o Replace the anim_orig by a base rectangle
o Invent more intelligent and more robust! fallback methods for animations
o Allow empty animation, decouple (put more logic in) these relations:
object (pos, draw?), game(time, state, handler), gfxeng(draw), animation(empty,
frame, update, time, draw)?, frame, global/current (public, private) properties
o IDEA: couple left and right animations somehow to reduce the code size
- eg. set offsets for left, right, mleft, mright...
o IDEA: just store one side and add some flipping logic to the image
loading process...
o allow an event length depending on animation length, or: relate events more
with animations!!!
o REWRITE: the whole event system!!!
o Scenario / Map:
o Specify Background in header
o Add some nice animation, text box, etc when a level was completed (including printing
the map name).
o Simplify the scenario class and drastically reduce the public variables!!
o Placement code:
o IDEA: allow moves from NULL and/or to NULL
o units should be placed in a way they won't give conflicts, examples:
- teleport should really teleport (above ground if possible)
- if a unit's position is too low and it dies the dead corps is
illegaly placed!
- the placement should somehow involve checkPlace...
Progress
========
o Monsters / AI: VERY BAD
o Game functionality (): BAD
o Events / Effects: BAD, MESS, NESTED
o Move logic: ACCEPTABLE, BUGGED, NESTED
o Objects (players, items, etc): ACCEPTABLE
o Physic Handler: ACCEPTABLE, NESTED
o Input Handler: ACCEPTABLE, WORKS
o Scenario: OK, MESS, WORKS
o Collision detection: OK
o Fall logic: GOOD
o Object loading (parameters) loading: GOOD
o Animation / Image structure: VERY GOOD
Feature Wishlist (Ideas)
========================
o Make water movements possible (eric)
o improve the map editor even further
o Simple AI
o In game scaling?
o Finnish the vikings:
- weapons: better run, jump2, fart, arm, fire
- baleog swing (hard one)
o Add new objects:
- ladder
- rope
- "deadly edges"
- electric fence
o Monsters:
- stone?
- knight
- dragon
- skeleton -> zombie
- fish
- firetower
o Weapons:
- fireballs
- sword
- claw
- run
- fart
- jump
- arm
o Items:
- special items