this is no longer momentoso
this is now CURLING
feature#
start, goal, scoring#
- user interface for these elements: polygon + text + color
- handle edge cases (literally... hehe... what happens when the element is close to edge, how do i lay out)
- sketch()
- add to debug mode, maybe press and hold alt to see hitboxes or something in final game instead of d
friction UP friction DOWN#
- how does it feel good physically to do this,
- 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
- graphics needed hereo
- need to tweak the physics so this feels like an impactful mechanic to engage with instead of an afterthought to aim
- maybe we should learn what curling is and how it works and the physics behind it to come up with mechanics?
shoot multiple stones#
- handle elastic collisions manually
- screen shake on collision? depending on energy?
local multiplayer#
- initially maybe press a key on keyboard to add a player
nonlocal multiplayer#
- obviously the netcode needs to be made and stuff, but my feeling of the server model will be very simple dumb relay
- 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
- 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
create new force fields#
- 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
- i think that this is a good idea to have though definitely
- also there's nothing to say that the user must be able to perfectly control the magnitude and radius parameters
power-ups and stuff?#
- do we want to add stuff like that?
refactor#
- use genpolygon function in 2 places right now by copy paste, will likely use it elsewhere; how to deal with generic code or is copy paste ok
polish#
game feel#
- tweak parameters of force() function
- improve formula to generate colors for vector field debug
- add sketch() to vector field debug
- add sketch() to vector field
nice to have#
graphic design#
- is there some way to harmonize thematically the sketch stuff i like to do with the game theme and stuff?
- what is this project ACTUALLY called?
- logo and stuff
- would be fun to add like cartoon collision sound effects and lots of chaos whenever the user increases or decreases their friction
sfx#
- movement (based on speed, perhaps?)
- change friction
- collision volume depends on energy involved
- hover over stuff in menu
music#
- 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
- i think that sfx here are actually much more important to juice-wise
ux#
- menu view
- settings view
- connect to game
- 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)
ui#
- history (requires some data structure to allow you to scrub forward back or to replay a move with collisions)
- ability to pan camera
- 3d visualize torus????