aka gravity ninja golf
1this is no longer momentoso
2
3this is now CURLING
4
5
6# feature
7
8## start, goal, scoring
9
10- user interface for these elements: polygon + text + color
11- handle edge cases (literally... hehe... what happens when the element is close to edge, how do i lay out)
12- sketch()
13- add to debug mode, maybe press and hold alt to see hitboxes or something in final game instead of d
14
15## friction UP friction DOWN
16- how does it feel good physically to do this,
17- perhaps we can like pick half the keys on the keyboard to do friction down and the other half to do friction up, so you mash the left side vs right side to have a stupid physical expressive experience playing the game
18- graphics needed hereo
19- need to tweak the physics so this feels like an impactful mechanic to engage with instead of an afterthought to aim
20- maybe we should learn what curling is and how it works and the physics behind it to come up with mechanics?
21
22## shoot multiple stones
23- handle elastic collisions manually
24- screen shake on collision? depending on energy?
25
26## local multiplayer
27- initially maybe press a key on keyboard to add a player
28
29## nonlocal multiplayer
30- obviously the netcode needs to be made and stuff, but my feeling of the server model will be very simple dumb relay
31- we don't care about hackers, but i think we need to code it in a way such that either the gameplay is nondeterministic, or likely i think when someone else goes it just says everything about the location of stones, their velocities, and friction levels. if people wanna cheat we don't care, sucks but wcyd
32- if we make the replay system (described later on as a nice to have) really we can just transmit the replay and it feels a bit worse bc it's not as real time, but i think it's easier and then we can make it better and better
33
34## create new force fields
35- i think that this would be a really cool mechanic, however i think that this would have a lot of ui code. take a look at how i calculate forces, it's not too complex, but i feel like it's really not doing what i want it to, so if you can kinda understand what i think i'm doing (or i can do that and figure it out) that could help. but basically force components are defined by position, magnitude, and an angle, so this might be a bit complex to allow user to create through user interface
36- i think that this is a good idea to have though definitely
37- also there's nothing to say that the user must be able to perfectly control the magnitude and radius parameters
38
39## power-ups and stuff?
40- do we want to add stuff like that?
41
42# refactor
43
44- use genpolygon function in 2 places right now by copy paste, will likely use
45it elsewhere; how to deal with generic code or is copy paste ok
46
47# polish
48
49## game feel
50
51- tweak parameters of force() function
52- improve formula to generate colors for vector field debug
53- add sketch() to vector field debug
54- add sketch() to vector field
55
56# nice to have
57
58## graphic design
59
60- is there some way to harmonize thematically the sketch stuff i like to do with the game theme and stuff?
61- what is this project ACTUALLY called?
62- logo and stuff
63- would be fun to add like cartoon collision sound effects and lots of chaos whenever the user increases or decreases their friction
64
65## sfx
66
67- movement (based on speed, perhaps?)
68- change friction
69- collision volume depends on energy involved
70- hover over stuff in menu
71
72## music
73
74- definitely would be something nice to have, fun to have something spacey with friendly pads and stuff, but i think it's not that high of a priority for me even if that's kinda silly
75- i think that sfx here are actually much more important to juice-wise
76
77## ux
78
79- menu view
80- settings view
81- connect to game
82- chat (chat would be nice to have, and instead of doing the lrc stuff (tho that's maybe doable in a game jam time span, unfortunately protobuf is a dependency and i did find a project for compiling protobuf to gdscript, but it was created by ai and i'm not sure if i wanna engage with that crap https://github.com/lixi1983/protoc-gen-gdscript-simple) it's very quick once we have the netcode working to also send messages through it)
83
84## ui
85
86- history (requires some data structure to allow you to scrub forward back or to replay a move with collisions)
87- ability to pan camera
88- 3d visualize torus????
89