schedule notes
[henge/webcc.git] / org / schedule.org
1 #+STARTUP: indent
2 * Project Deadlines
3
4 ** October
5 *** TODO APC
6 :PROPERTIES:
7 :ATTACH_DIR: ~/proj/the_march/src/apc
8 :END:
9 **** TODO Directory Structure for assets
10 CLOCK: [2016-10-16 Sun 11:43]--[2016-10-16 Sun 11:45] => 0:02
11 #+BEGIN: clocktable :maxlevel 2 :scope subtree
12 #+CAPTION: Clock summary at [2016-10-16 Sun 11:45]
13 | Headline | Time |
14 |--------------+--------|
15 | *Total time* | *0:02* |
16 |--------------+--------|
17 #+END:
18
19 **** TODO File syntax for directories
20 CLOCK: [2016-10-18 Tue 9:30]--[2016-10-18 Tue 10:21] => 0:51
21
22 #+BEGIN: clocktable :maxlevel 2 :scope subtree
23 #+CAPTION: Clock summary at [2016-10-16 Sun 11:46]
24 | Headline | Time |
25 |--------------+--------|
26 | *Total time* | *0:01* |
27 |--------------+--------|
28 #+END:
29
30 env_assets
31 env/cityblock/
32 large/small/center (sets)
33 signifigance of numbers in filenames vs letters
34 letters - variations
35 numbers - 1 horizontal, 2 vertical
36 signifigance of numbering after _m
37
38 env/cityblock
39 /large
40 /small
41 /center
42 /vertical
43 /horizontal
44 set_name set_id element_name element_id
45
46 Directions in filenames for statics are ?
47 Dont have framesheets so they dont need a direction.
48
49
50
51 env_deco
52 /env/deco/
53 name of archetype
54 numbers signify variants
55 alpha+ . '_m' . [digit]+ signifies mapping varriant
56 ***** TODO Add x,y to filenames
57 **** TODO Scanner :ATTACH:
58 :PROPERTIES:
59 :Attachments: scanner.c
60 :ID: 2dec5876-7b81-4b9c-97fe-03b152fa276a
61 :END:
62 **** TODO Lexer :ATTACH:
63 :PROPERTIES:
64 :Attachments: lexer.c lexer_lex.rl
65 :ID: faf3ff67-f8e9-41fe-9a32-2ced4bbf5b99
66 :END:
67 **** TODO Parser/IR :ATTACH:
68 :PROPERTIES:
69 :Attachments: parser.y irmem.c ir.c ir.h
70 :ID: fb24c302-4743-4a45-845a-4249d2b1a378
71 :END:
72 ***** TODO Add mdats to IR to handle multiple mappings for archetypes
73 CLOCK: [2016-10-20 Thu 20:12]--[2016-10-20 Thu 23:12] => 3:00
74 Recording: Lexer Lex(Mapfile)
75 Maps can have variants and animations. Adding a state machine
76 into the lexer that will parse png files and return its frame information.
77 CLOCK: [2016-10-20 Thu 19:28]--[2016-10-20 Thu 19:46] => 0:18
78 insert_mdat now compiles
79 CLOCK: [2016-10-20 Thu 18:10]--[2016-10-20 Thu 18:53] => 0:43
80 CLOCK: [2016-10-20 Thu 15:24]--[2016-10-20 Thu 16:24] => 1:00
81 CLOCK: [2016-10-20 Thu 13:13]--[2016-10-20 Thu 14:10] => 0:57
82 #+BEGIN: clocktable :maxlevel 2 :scope subtree
83 #+CAPTION: Clock summary at [2016-10-20 Thu 14:10]
84 | Headline | Time |
85 |--------------+--------|
86 | *Total time* | *0:57* |
87 |--------------+--------|
88 #+END:
89 ****** DONE Create variant_list in odat
90 ****** DONE Init num_variants
91 ****** DONE Create mdat struct
92 ****** DONE Create new quad struct
93 ****** DONE Change insert_quad() to insert x,y,z, and ref_id
94 ****** DONE Change parser.y to include quad_list
95 ****** DONE In elements, populate parent_id with set. In sets, set parent_id to null.
96 ****** DONE Incorporate mdat into parser and ir
97 ****** TODO Implement Lexer_lexmapfile
98 Where are we storing the map file animations? Mdats will have framesheets.
99 ****** TODO Remove set name token in elements being passed back
100 ****** DONE Lexer_lex should pass control to lexer_lexmapfile
101 When it recognizes a '_m\0', call lexer_lexmapfile
102 The const str passed to lexer_lex is screwing up the state machine because
103 the suffix isnt truly pruned (so pe == . instead of \0)
104 Mappings come before archetypes.
105 ****** TODO
106 ****** TODO
107 ****** TODO
108 ****** TODO
109 ****** TODO
110 parent_id should be pointer or ref_id? pointer
111 Root mandatory, hitbox optional? Only a variant list?
112 mopen/close in skeleton rule requires lexer to pass a operator
113 for every new skeleton
114 inesrt_mdat() needs more?
115
116 **** TODO Output
117 DEADLINE: <2016-10-20 Thu>
118 *** TODO Test Suite for APC
119 DEADLINE: <2016-10-20 Thu>
120 *** TODO Animation Viewer
121 DEADLINE: <2016-10-31 Mon>
122
123 ** November
124 *** TODO Core State Machine
125 DEADLINE: <2016-11-10 Thu>
126 *** TODO Renderer
127 DEADLINE: <2016-11-10 Thu>
128 *** TODO World Generator - Beta
129 DEADLINE: <2016-11-20 Sun>
130 *** TODO Core Improvements
131 DEADLINE: <2016-11-20 Sun>
132 *** TODO Front-end Hooks
133 DEADLINE: <2016-11-20 Sun>
134 *** TODO World Generator - Stable
135 DEADLINE: <2016-11-30 Wed>
136 *** TODO Physics Engine
137 SCHEDULED: <2016-11-30 Wed>
138 DEADLINE: <2016-12-20 Tue>
139 *** TODO Actors
140 DEADLINE: <2016-11-30 Wed>
141 *** TODO Audio Backend
142 DEADLINE: <2016-11-30 Wed>
143
144 ** December
145 *** TODO Account Management
146 DEADLINE: <2016-12-10 Sat>
147 *** TODO User Management
148 DEADLINE: <2016-12-10 Sat>
149 *** TODO Controllers - Beta
150 DEADLINE: <2016-12-10 Sat>
151 *** TODO Internal Data Handling
152 DEADLINE: <2016-12-10 Sat>
153 *** TODO Network Skeleton
154 DEADLINE: <2016-12-10 Sat>
155 *** TODO Social Media
156 SCHEDULED: <2016-12-10 Sat>
157 *** TODO Core Gameplay
158 SCHEDULED: <2016-12-20 Tue>
159 *** TODO Account Management - Stable
160 DEADLINE: <2016-12-20 Tue>
161 *** TODO Controllers - Stable
162 DEADLINE: <2016-12-20 Tue>
163
164 ** Christmas Holiday (December 21 - January 5)
165 *** TODO Gameplay Developments
166 *** TODO Front-End Improvements (remote)
167 *** TODO AI Start
168 *** TODO Website Beta
169
170 ** January
171 *** TODO Gameplay - Win Conditions
172 DEADLINE: <2017-01-10 Tue>
173 *** TODO Social Media Integration
174 DEADLINE: <2017-01-10 Tue>
175 *** TODO Viable AI (Lua ^ JS)
176 DEADLINE: <2017-01-20 Fri>
177
178 ** February
179 *** TODO Beta Deployment
180 DEADLINE: <2017-02-01 Wed>
181 *** TODO Multiplay Beta
182 DEADLINE: <2017-02-01 Wed>
183 *** TODO Early Access for Marketing
184 DEADLINE: <2017-02-01 Wed>
185
186
187
188
189
190 * Notes
191 11/2 Changes to grammar
192 Mapfiles and vdats are now going to be extracted at binary output time. This means
193 that we dont have to handle text strings in the grammar, just filename and directory structure.
194 E.g. mdats (which were mapfile data structs and are now called variants), no longer consist of quad
195 lists but of the height/width of the frames inside the variant and the name of the filename so that
196 it can be processed later at binary out. This is also true for vdats, which used to consist of spritesheets
197 and are now just a height/width of the frames and the name of the file.
198
199 Filepath is stored in vdat/variant. When should this get passed back? After height/width has
200 been lexed.
201
202 Theres a filename for every element. Not true for a set.
203
204 Need to finish insert_vdat, insert_variant, lexfilename, ?
205
206 11/16 Adding directions to map files and models. Also adding SS operator to models to distinguish them
207 from maps.
208 ** DONE Add map operator changes to lexer.c
209 ** DONE Rename mapping files
210 ** TODO Review parser.y, irmem.c, ir.c, ir.h, lexer.c
211 ** 11/16
212 *** DONE Determine when to alloc vdat and implement it
213 Either have a SS opening operator that signifies to alloc_vdat or check the current vdat
214 in insert_framesheet().
215 *Allocing an initial vdat at ir_init(), then allocing vdat for the next odat after vdat is complete.
216 *** DONE Add directions to lexer_setstr fsm
217 Add both the SS operator and the direction.
218 *SS is the operator, D is the direction
219 *** DONE Update lexer_setx() functions with directions
220 First determine what to do about allocing the vdat because if we choose to have a single
221 SS opening operator, then need to prune the str one past the operator so that lexstring
222 only passes back a direction, and not the SS operator. This actually shouldnt be too difficult
223 if we only have a single SS operator.
224 *Didn't change anything because lex_lexstring() will handle SS and direction conversion.
225 *** DONE Add files to test lexer_setstr directions inclusion
226 Rewrite all the old ~/test/x files because they are all out of date at this point. Mapfiles
227 need to be updated with directions after ~, and models need to have their SS operators incuded.
228 Just need to make sure that the files are recognized correctly andd once they are, their str
229 is set to the proper place for lexstring
230 *** DONE Add directions to lexer_lexstring
231 If encountering a mapfile or a SS operator, need to push operator, then convert the following
232 letter (if it exists) to its numerical representation (0-8 for S-NW). Won't have to push operator
233 if we only have a single operator. If it doesnt exist, need to push the default 0.
234 **** TODO Write functions for ragel actions
235 *** TODO Add files to test lexer_lexstring
236 Need to make sure that lexstring does all the shit I just talked about.
237 ** 11/18
238 *** DONE Link up ir and lexer because right now there are some inconsitencies
239 *** DONE Add recursive sets
240 Start with grammar
241 insert_set() **** GET THIS DONE FIRST ****
242 inset_set_vadtid()
243 inset_set_svlink();
244 Insert_set_label -> insert_set_name + insert_set_ref()
245 *** TODO Files that need changing
246 **** DONE lexer.c
247 Remove matching modelname and SS operator for framesheets X
248 For vdats/maps, remove matching set names X
249 Make a bunch of test files
250 **** DONE lexer_fsm.rl
251 **** TODO parser.y
252 Set with only childlist valid?
253 Ref_id rules make sense?
254 **** TODO ir.h
255 **** TODO ir.c
256 **** TODO irmem.c
257 *** DONE Add refs to end of models/mapsp
258 *** DONE Change SS direction to SS_name_direction
259 *** TODO Change PATH/NAME_MAX, MAX_MODEL_LEN, MAX_ELENAME_LEN, find out max odat name, should be a
260 multiple of that.
261 11/27 Thinking of making FILENAME_MAX and FILEPATH_MAX for optimum clarity
262 *** DONE Remove lexer_setstr, is useless now
263 ** 11/22
264 *** TODO stpncpy() doesnt add a null byte if strlen(src) > n. Add one?
265 *** DONE Does refid come after or before map?
266 after
267 *** DONE Test if SS LINK works in lexer.c
268 ** 11/25
269 *** DONE Set parent odat name in insert_namelist?
270 Either set the parent odats name, or set the parent odat which is the depth above
271 *** TODO Add mlink to linkbuff
272 *** TODO Should allocated vdats have num_models set to 0?
273 Inside insert_framesheet of ir.c
274 *** TODO insert_set() at end of set rule should insert the odat into its cdat represntation.
275 ** 11/26
276 *** DONE Insert_namelist should handle implicitly defined sets
277 Create the parents too. E.g. for A_B_C and setstack has A, shoudl create B, link to A, create C, link to B
278 *** DONE current_set needs to return the current set at current depth
279 Instead, just create a set at every depth in the setstack, assign parents/children based on setstack.
280 *** DONE Where/when to malloc a set?
281 When: When created in insert_namelist()
282 Where: in set chunk stack
283 *** TODO Reduce set_stack namelist (doesnt need 8 names for each depth)?
284 *** TODO Revisit ir.h, Create list(in this todosection) of structs that need changing
285 odat: remove hitbox, root
286 map: remove entirely?
287 root: remove?
288 link: add mlink
289 refid: whats the point of these things again?
290 insert_x() functions: remove?
291 *** TODO Handle case where numnames is > 8
292 *** TODO Where does ir_init get called?
293 *** TODO Review insert_framesheet
294 Should we set the odat vdat_idx/p here?
295 *** TODO Write insert_set();
296
297
298
299 * Current TODO list
300 ** General:
301 *** TODO Rename NAME token to something more generic??
302 ** 11/01
303 ** TODO Make Null vdat
304 why?
305 ** DONE Fix all shift/reduce errors in new grammar
306 ** DONE Add map variant changes (create new odat, share vdat)
307