-
Notifications
You must be signed in to change notification settings - Fork 1
/
TODO
139 lines (117 loc) · 4.99 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
# dev2production todos: package.json version, analytics
! don't store the whole map clientside, only vp + range
animations http://io-2011-html5-games-hr.appspot.com/#65
chat channels
chat pm
chat if losing connection > need a timeout every pong
use bind click on toggleWindows...
playerinfo and inventory scrollbars
put chatLog and chatMsg inside GUI, edit their resize stuff
improve CSS structure and jquery handles
test requestAnimationFrame
^ http://blog.joelambert.co.uk/2011/06/01/a-better-settimeoutsetinterval/
! store player vp, send only what he can see
MAJOR BUG (NOPE, major debug feature) new players see default non updated map
player.coins, convert money tiles to coins when received
emit MSG_UPDATE_TILE from server like for pickupall
improve pickup_all bandwidth
add drop/destroy
on server pickup, check if there's really an object there
updateinventory > insert images inside li, don't html ''
realtime stuff with timeout on inventory, like playerinfo
switch foreach to for in wander.js
add pickupable items from different tiles to window
^ or open only one window per tile?
check server pong client.id
check if player opens pickup window, someone else drop stuff there, player pickupall inconsistency
lock pickupable resource
pickup only selected items
pickup only stuff on 1x tile outer range
close window/remove pickup items if player went far from it
do stuff with cmd-pickup
check server side if player is close to item and only THEN
^ open pickup window
test hurting tiles
add objects that can change player speed
server queue for movements and healthcheck (lava tiles timeout...)
avoid sending too many string stuff from server (like chatAction)
Message JSON package, p instead of player etc...
phoboslab tips
^keyb polling/events
fix chatMsg focus/blur not so working
fix chatLog scrollbars
broadcast playdata only for viewable players in current client vp (check it on server)
rerender only tiles with players
keep a look on refreshGUI on gameloop
add Help, Config, Server info icons on GUI
open playerinfo/inventory with key
use hash array instead of scrolling it every time
watch unused cells in tileset array
with independent left/right multitile sprites, tree tops will pop from nowhere
^ increase safety render range? increase only south?
remove multi: true and just check if tile image height > default tile height?
make multitiles go also south?
improve Tile with title, description
fix ChatMsg messing something if being pressed between play/render
keep a look if clients get disconnected on /status
^ find out why clients get disconnected after X mins
put tileToPixel, isplayerOnTile etc on a shared class
clear/redraw single dirty tiles
client prediction pdf
^ put version near title
modify drawmap for canvas minimap
try using socket.io acknowledgements
know what audio is being played -> stop on disconnect
express cache expiration for img/audio files -> check chrome inspector audits
^ minify/obfuscate client code, UglifyJS
^ see nodejs modules page
use actual HTML5 tags
audio volume, headphones/speakers
walking on wood sound?
special areas sound? inside a house
try node-validator
make loading screen with progress bar
create a decent audio class
don't force collision map on layer 1 -> create collision map (ground tile could be not walkable)
tranform forEach in for
chat channels, global, local (in a X range)
try to remove the map matrix from Map.js
do something with mapLoader on root
Map2VP on viewport
disconnect/standby client after X pings with no answer
improve server players data structure to avoid foreach and use players[id]
server time (day/night swap?)
don't send the whole map, just viewport + range
x-forwarded stuff on express logs
plater status observer/playing -> if he's lurking /status
do checkBounds also clientside to save bandwidth
chat message width, cut or remove scroll horiz
don't render tiles below another tile
on frontend: fix local player copy / players, need both? remove player from players?
->keep local copy on serverside again?
player nick really needs outer 3x fillText?
try to integrate resizeCanvas and gameInit on Game class
pad/phone support?
stop passing game handle on every class
Make a simple map editor
random map generation
find an use for volatile on Socket.io
don't allow 2x clients of same player
use a single spritemap instead of individual png image tiles?
dirty tiles, create draw single tile function (see JSTE)
improve movement animation/refresh rate
add screenshot button
fix false start attempt1
develop anon stat system (screen/canvas size, OS, browser used...)
hash player ids to avoid client hacks
keep player stuff for max TOT mins after disconnection, reload on reconnect -> need auth before this
validate messages (check msg from client, p.id existing?...)
check all comments for TODO and FIXME
add changelog
diagonal movements
config button
check for doublenick
player registration (via Twitter auth or use internal db)
?strict socket movement only for who's not the player
use NowJS / BiSON / Motion.js (client prediction)
+browser compatibility Chrome, FF, IE... (add reset.css)