-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathTODO
171 lines (153 loc) · 4.68 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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
Stand by me features:
=====================
- hero firing
# gun firing
# gun orientation
# gun sprite
# still
# firing
- gun sound
# bullet creation / motion
# bullet collision / removal
- bullet collision sound
- bullet sprite
# hero rendering
# sprites
# still
# moving
# orientation (facing same as gun, not facing motion)
# animation (play forward if gun orientation same as motion, play backward if opposite)
- enemy
- spawn by waves (tied to level design?)
# navigation (hero)
- navigation (central core)
# attack
# death
# sprites
# moving
# attacking
# dying / dead (green blood for germans)
# animation
- sound
- attack
- dying
# AI sprite circling player
- AI blast wave
- # blast wave rendering
- # blast wave collision / enemy death
- # AI damage
- sound
- level
- central core
# walls
- sprites
- central core
# walls
# ground
- level design (and format)
- UI
- AI portrait sprite
- cheery 100%
- neutral 75%
- concerned 50%
- afraid 25%
- dead
- hero portrait sprite?
# text zone
- AI chat
# animated text API
# text clear after a bit
- level information (protect central core from infestation)
- wave information (infestation detected east/north/... zone 1/2...)
- kill cheer (yeah!)
# AI/hero health status (outch that one hurt! I/you don't feel/look so good... what's happening to me/you? I don't want [you] to die!)
# lays of ancient rome quote (how can one die better than facing fearful odds?... title screen or dialog?)
- central core health
- loose/win condition
central core destroyed
AI dead?
# player dead (coil mode)
# title screen
# stand by me
# start
- mortal mode toggle (enabled if coil is active)
# minimal instructions?
# jerome lecomte @ js13kgames 2022 / proudly made in canada
- end screen
- score? nb kills + central core health?
- hiscore?
# Twitter share (image would be great)
# main menu
- screenshake / stop time when hit
# music
- other weapons?
- description and screenshots
- style
black and white 1bit (simple)
bullet or mussel streak
enemy death splat red
central core?
Game plan
- need level
# collision with bullets/enemies/hero (remove constrain)
- ingress waves
# floor plan
# title/intro/end screens
# need sprites (looks like shit otherwise)
# rough static
# then animation
# left side sprite/animations
# sprite for hit
- nice to have
# central Core
- most enemies go there
- hit points and loose condition is destroyed
# blood splash layer
- moar chatty text
- Coil mode
- need that DMC on/off switch on title screen
- want that free account/free crypto!
# music (will need Soundbox integration from Subwar 2063)
- if time run short
- infinite waves, no way to win the game
lay of ancient rome quote on end screen
game engine
===========
- improved inputs
- keyboard: double key press
- pointer: double click
- gamepad
- lerp-smoothing?
- gamepad support?
- tinyfont.js? https://github.com/darkwebdev/tinyfont.js
- support multiple voices for speech synthesis?
build chain
===========
- add CCapture.js for recording in-progress movies during development
custom:
- replace all const by var before JS gets inlined in HTML
- replace all the global variables by arguments with default value of the IIFE (e.g. const foo = 'bar' => (foo = 'bar') => { ... })
libs:
- ECT (https://github.com/fhanau/Efficient-Compression-Tool) in place of AdvZip?
- Mac build https://github.com/fhanau/Efficient-Compression-Tool/releases/download/v0.8.3/ect-0.8.3-macOS.zip (need manual install & permission shenanigans)
- npm package https://www.npmjs.com/package/ect-bin (but didn't seem to be available in command line afterwards... postinstall failed?)
- avif in place of png/webp (not enough browser support yet)
game engine port
- complete overall of viewport/camera/entity coordinate in map space and viewport canvas -> buffer canvas same as map
- moveX/Y -> velX/velY
- share lib &url= to twitter url instead of in message
ECS
- velX/velY velocity component -> update position
- ttl component -> mark an entity to be removed in the future
- collision intent
- position (don't let an entity enter another)
entity to entity
entity to level
response is position adjustment to avoid overlap
- damage (should happen before position adjustment)
entity to entity (e.g. bullet to foe --- missile ---, foe to hero --- melee)
target receives damage
source may receive damage (bullet spent)
entity to level (e.g. bullet to wall)
target may receive damage (e.g. destructible environment)
source receive damage (bullet spent)