-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtodo.txt
555 lines (329 loc) · 13.9 KB
/
todo.txt
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
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
if you build a city, you can place 1 city tile per 2 or 3 or 4 units in the camp
add a timer showing how much time is left in the turn
add signs
fix the home page at smaller sizes
Every day at turn resolution, send out an email update of everything that happened to your player
- Anything that attacked you
- Any new units or roads
- How many resources you got
- Any messages that were sent to you
turn this off for the dev site
add a potato unit type
add a resolve button if you are logged in as superuser
moving a unit on top of an enemy unit deletes the enemy unit
investigate fabric for automated deployment
surrender units button
turnlandia ai contest
add a time slider on the top of the screen that lets you view the last 5 or so turns
make a less boring account for all these games
if you recruit, you get one unit the next turn
if you harvest wood, you can click on trees equal to the number of units in the camp, and you get 1 resource per tree you cut down, and then you can also mine mountains for ore
any resources that are gathered by a camp are held by that camp
in order to do things, a camp has to either gather resources, give resources to another camp, or get resources from a city
cities provide walls, enemy units can't walk through cities, they have to attack first
friendly units can walk through cities at road speed
recruitment happens at twice the pace in cities (maybe)
resource sources:
each tree that you cut down gives 1-2-3 wood
each mountain that you mine gives ore, maybe a mountain has a fixed amount of ore in it
action scavenge for food gives 1 food for every 2 units that harvests
cities just generate food?
maybe have money, maybe not, you start with some
resource costs:
movement costs food
recruiting takes 2 food to get 1 unit from 2 other units
roads take 1 wood
cities take 2 wood and 2 ore
cobblestone roads take 1 ore and must be placed on an existing road
actions require food, 1 food per unit per action, at least
replanting:
trees can be replanted but ore runs out in mountains
if you harvest a mountain, it takes a number of turns before you can harvest it again (those squares have a depleted icon on them, maybe with a number of turns left until it can be remined?)
have a plant tree action, which sprouts trees after a number of turns
cities require 2 wood and 2 ore per square
how does attacking work:
you get a bonus for being inside a city
maybe you have to breach the wall around the outside of the city
surrender units to an enemy or ally
if you attack with a camp, you can click on any enemy unit in your area, and it will attack that unit if they stay in your range, movement happens first, then attacking
if you want to trade with someone, you click trade, and then click either on a city or a unit (including your own) it brings up an interface for trading, and it sends a trade request message to the other person, and if they accept or make a counteroffer befor ethe turn resolves, you do the trade, or you can make another counter offer to further the process
have a messages queue for trade requests and such
other players can trade resources with cities or other units
perhaps ore is only seen partially by players
make a radial thing for the buttons around the player
make the action buttons different colors
well trodden paths turn into dirt roads, cobble must be built
add select_related liberally to the resolve command
have a fixed 10-30 minute window of downtime at 12:00 right after the turn resolves
wrap the entire resolve command in a transaction
consider using this captcha: http://areyouahuman.com/about-playthru/
put the board on the homepage, perhaps even a live scrollable version of the board
make it so that when the turn is resolving, show a screen that says it is resolving, and if someone tries to make a move while the turn is resolving, redirect them to that page
fix firefox
add a turn timer to the top bar
when the turn resolves, generate all of the board json and put it into a redis cache, or the django cache or whatever
prevent moving a unit more than once somehow
grey out arrows when you are not hovering over a unit or something
make roads look like this?
http://i.imgur.com/CjbSFVN.png
use google closure compiler
instead of requiring email, add a captcha
show the hex value in the color field
make dirt roads upgradable to cobblestone roads and those are better for vehicles
Cache all of the json objects locally and have those in a global data store thingy
SHORTCUTS:
pageup/down to zoom
arrow keys to scroll the map
number keys to change current action
fillOutlinedText: function(text, screenX, screenY) {
TB.ctx.save();
TB.ctx.font = 'bold 16px Arial';
TB.ctx.fillStyle = 'black';
TB.ctx.strokeStyle = 'black';
TB.ctx.lineWidth = 1;
TB.ctx.strokeText(text, screenX, screenY);
TB.ctx.fillStyle = 'white';
TB.ctx.fillText(text, screenX, screenY);
return TB.ctx.restore();
}
When a user scrolls to a part of the map offscreen, you first check to see if the store has it in it, if so don't send a request
add easter eggs
add konami code - when you enter it, the board tiles turn into ascii art
make it so that when you go to a certain distance out, there are mountains in the shape of ascii art
make tiles fly in somehow
Make the cron job that makes the game resolve
Read through the lodash documentation
The only time that you will ever see someone else's moves is during your initial placement, it will not allow you to place where other players are going to initially place, instead of showing the other players, it just marks all unavailable squares in red
advertise this game on project wonderful
add touch event handlers for tablets for moving units
Board stuff
finalize the noise generator
fix the board loader being off for higher zoom levels
make zooming zoom where your cursor is
caching of board data on the client
make it so that if you try to pathfind into an empty square, it will do it as soon as the board is loaded
be able to see the board in previous days with slider or something
have a swag store but don't call it swag because thats horrible to half of the people
Add server side logic for initial placements
add back walls?
natural disasters
have random events - maybe one before each turn
fix the problem where sectors aren't loading right away from the cache
fix the problem where firefox dies
make it so that if you try to do an action after the turn has resolved but you ar estill on the last turn, refresh the page
make the background image of the home page be the current board state
ways of monitizing the game:
have a store
pay for cosmetic enhancements (hats)
pay a montly fee
have an ad on the sidebar
log in with steam
log in with twitch
log in with twitter
log in with gmail
log in with facebook
https://github.com/omab/python-social-auth
add dinosaurs as units
make the ground snowy in the winter
make the trees change colors in the fall
Architecture for other pages (popup/modal)
http://www.ericmmartin.com/projects/simplemodal/
http://trentrichardson.com/Impromptu/
your messages
store
add twitch tv dev schedule on the site
error handling in general
Initial placement
Optimize the unit serialization
Unit generation
Unit movement
City building
Roads
Flags/Player customization
make a page for flag stuff
Trophy case
Texture packs
Attacking
Player messaging
Archeticturing
Monetization things (hats, maybe ads)
Resource management
new players are given 20 units and some resources
you place your units anywhere you want, a certain distance away from all existing cities, but not necessarily existing players
{
col: 4,
row: 5,
tile: 'city-center'
owner: 32,
}
{
col: 5,
row: 5,
tile: 'city'
owner: 32,
}
Cities:
have a limit on the number of units per square? - 16 or 20
you build cities on plains
Cities require wood
Cities are surrounded by walls, only build buildings inside cities
maybe build farms around a city
maybe you have to have more cities to support more units
the outer part of the cities have walls around them
build city center
build city inside area
build city wall square
start by placing a city center on a plains
you can expand the city by placing raw city area or walls
Units:
a single unit type
tell units which square to go to and they will move there over the course of several turns
for the initial settlement, you place down several units 20
a unit carrying resources has a symbol on it showing the type of resource,
if you hover over your unit, it tells you the quantities, if an enemy hovers it doesn't
units can carry resources - if you die to another player's unit, that unit gets the resources of your unit
New units require food
roads make it easier to move units
units can carry resources - if you kill a unit you get its resources
each unit can carry so many resources
the speed at which you build something depends on the number of units building it
units have to carry food with them , and it costs one food per turn and then one food per square moved
units can carry money/resources and when units go to another city, they can either attack it or trade with it, and that generates money/resources?
Rectangulartim: Moving units might make it very difficult to attack an enemy. If attacking happens before or after moving only, enemy units could just move through your lines of defense. If units automatically attack everything in their path, moving though an ally's territory would be quite annoying. Idea: Players could toggle their units states between aggressive and defensive. Aggressive units attack every unit within range, which doesn't belong to the same player. Defensive units don't attack anything. This way units of allied players can move through each other without problems, but you cannot sprint though a line of guards easily.
[
{
type: 'initial'
name: 'Initial Placement'
col: 0
row: 0
},
{
type: 'move'
name: 'Initial Placement'
col: 0
row: 0
},
Pathfinding works! Now making arrows work.
Lines of code:
858 Coffeescript
498 Less
610 HTML
1800 Python
3766 total
IDEAS SET IN STONE
infinite players
infinite board
make new players spawn near other players
water, mountains, forests, plains as terrain
use arrows to move the map around
6 movement points per turn
roads = 1 point
plains = 2 points
forests = 3 points
mountains = 6 points?
all actions:
move unit
attack
build road
build city
put a timer with the countdown to the turn resolution
https://dl.dropboxusercontent.com/u/14643262/NGCCFlagGUI.png
Allow users to specify their country of origin,
add an admin gui so i can do stuff
do advance wars style arrow tracing the path of unit movement
4 straight pieces, 4 corner pieces, one end piece needed
water, bridges, attacking bridges
roads to build
you can build roads on mountains or plains, you can cut down trees, you can build bridges over water,
own water squares? maybe
currency and resources - make colgans the cu
jools64 has best coin
make a credits page
Atmospherium - you can only tunnel so much of a mountain before it collapses, kills all troops inside the tunnel, removes the tunnel
tunnels cost
Moving requires food
Roads require wood
Spies and sabatoging could be interesting
market building - you have to
vehicles (trade carts)
at the end of a turn it should give you a report of what happened
trade with other players
tunnels for mountains as roads for water
units
cities
food
wood
ore
money
I'll trade you 5 colgans for that - Rhif's idea
hats you can't trade, maybe you can find them rarely though
random settlements controlled by AI
enhance the hovered tile cursor thing
the amount of money increases as the size of players increase
a new player doesn't increase the amount of money in the game, you have to grow first
money is determined by the number of sectors in the game
Have a finite amount of money in the game that goes up with each player?
npc traders/barbarians
flags that you design yourself/coat of arms
equipment as a resource
http://imgur.com/MC7Bub2
you can trade with cities that have roads connecting them - jared314
can harvest wood, have to let it regrow
improve performance by using select_related, try installing the profiler at
http://gun.io/blog/fast-as-fuck-django-part-1-using-a-profiler/
-Make it so you get a notification when you receive a message
-Add notes to squares
http://pastebin.com/wXB7cNw1
Texture packs
add floating semitransparent clouds
make each grass tile slightly different in color for making it look better
Trophies:
Tim:
Tileset
Fixer of horrible grammar mistake
early adopter
found the horrible bug
mechanic designer
Ocreds:
Choosing the background grass texture
Seasonal events idea
Joeb3219
Frequent watcher
Dooskington
frequent watcher, there from the beginning
minecraft server mod
Stingraynine:
Fixer of the button bug
Frinlet:
Fixer of the elusive shadow bug
Kurtymckurt:
FINDER OF THE FLIPPED COMPARISOR
Zezioen:
Pointed out that the arrows aren't done yet
Erigitic:
Asked for a trophy
Mdjustin:
Supporter of $8
Frinlet:
Optimizer of Text!
Technocf
Number one fan and fansite
Aldermeer:
Maximum strength camper - came up with camps idea
Things Done
Stovebacon:
Sweet action icons
Grakaio:
Sweet action icons
JordanFitz:
frequent watcher, there from the beginning
Drake07600:
Sweet action icons
Bekey2nd:
Best nerd to not want to be one
switch sqlite to postgres for improved performance
Phildo3:
Djykstra's Algorithm Masta
-Instead of moving a unit on top a thing and directly building the thing with the unit, units are camps of units that can build things inside of their sphere of influence
-Each unit is now called a camp
-if you build a road, you can build one road square for every unit in the camp