-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathshort term notes.txt
107 lines (86 loc) · 4.02 KB
/
short term notes.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
//////////////////
HIGH PRIORITY
//////////////////
- research why is there so much ping?
- netplayjs demos have similar ping spikes (only tested fps game!!! pls test simpler game)
- peerjs has bad routing?
- I see little talk of this online
- use our own peerjs signaling server for STUN/TURN stuff? Would this help in any way
- because packet size big?
- for the love of god send the world snapshot in binary form or something more compressed
- Currently, serialized packets is plain text of json, including numbers in string form wtf.
- 22kb/packet, could be much less
- Tried & failed to use TextEncoder/TextDecoder. It should work!!!! try on codesandbox
- because packet frequency so high?
- No evidence of this, but its a theory
- ! I think the ping spikes could be tied to performance
- try chrome performance tab
- Abilities, stages with more stuff
- react may be to blame
- matchmaking server w/ rooms
- I think I want it obfuscated behind an automatic 'Find match' button
- automatically find games by testing ping with various opponents
- If no existing opponent hosts are suitble, become a host and wait in the queue for others to join
- probably be transparent about:
- '0 people currently looking for matches'
- 'Found opponent, but the ping was too high (200ms)'
- more stages
- bouncy red surfaces
- curved walls
- just jack up the border-radius on a hollow rectangle? is that possible?
- polylines or https://rapier.rs/docs/user_guides/javascript/colliders/#heightfields
- research: HTML canvas drawing methods for this
- more characters
- paddle thing
- flexible sportsfriends paddle
- maybe with the ability to 'stiffen up' ;) and grow longer omg that is vile but would make for good gameplay I swaer to god
- tank
- can lay mines
- & probably shoot? but then we probably want to differentitate its shot from the ship'screen
- what about a rotating cannon arm that is controllable with stick/rotation?
- car
- sticky
//////////////////
MEDIUM PRIORITY
//////////////////
- fps stats:
- how do? in netplay, we tick WAY MORE than fps
- Got feedback? Something broken? Email me
- replace all instances of 60 with an fps constant duhdoy
- ship gamepad controls
- crunchy animations:
- contacts should probably glow (lighting on walls & objects) & spark (particle effects)
- screen shake?
- combine control stick inputs and keyboard WASD inputs more automatically?
- control config menu
- can maybe be extended to be a tutorial as well
- encourage gampepad
- eventually should have specialized instructions for each bindable control for each character.
- localStorage??
- think about name
- tab title https://nextjs.org/docs/api-reference/next/head
- research: deal with stalling better
- for one, we could display netplay errors & prompt a restart
- game should not stall... at all. ie the clock should just keep ticking while stalled
- ^ maybe only possible with authoratative server..
-BUT what would it even look like to NOT stall on a server?
- I promised myself it would be an easy p2p->sever port
- therefore it must be easy to do p2p stall handling assuming host's machine doesn't stall..
- cpu players
- sentry reporting
//////////////////
LOW PRIORITY
//////////////////
- game end first-to-x ui & implementation
- convert to simpler configged inputs BEFORE input serialization
- no reason to at the moment? How costly is it.
- is there actually any advantage?
- yeah cuz rn we need both clients to know each others' input config & apply it after deserialization
- that's whack.
- research: how bad is p2p.
- is it exploitable in any way? Does the host have an advantage?
- theoretically. But it would be hard to do in a subtle way
- redux dev config would be a funny backdoor
- are there any actual advantages to the server-of-truth approach?
- how difficult would it be to port to server-of-truth?
- what is the tech debt of sticking with p2p? methinks not very high?