
Wraith Wars
*Disclaimer: there is no win condition, just an infinite score based arcade scope currently.
⚔️ Defend yourself by evading unseen enemies and illuminating them into destruction!
🔆 Selected ship segment will recharge light faster than the others
❄️ Each segment illuminates its own current light values
🪫 Wraiths absorb light from segments on contact
Cycle RADIAL MENU
Keys: Q and E
Move
Keys: WASD or ARROWS
About
Made for iRad Dev's Radial Menu Game Jam
Dev Notes:
- This version has 100 enemies spawned with rigid bodies colliding in the dark with each other, some walls and the player.
- Each emitting 12 Particles every 1.3s (particles are compiled noise textures, giving the illusion of many particles)
- The player life orb is the product of a 3D scene with real-time lighting and a normal-map texture, sampled to a sprite via a sub-viewport as a texutre.
- The cracks are made by adjusting a generated noise texture at runtime. (I actually made a tutorial for this process https://github.com/MedusaTea/EasyCrackedGlassGodot) ^_^
- The super lag that happens when you die is all of the enemies immediately start getting new forces applied, so the physics engine suddenly starts calculating all of their collisions into each other 😅
Will be working on performance updates and learning new tricks after the jam!
Main bottle necks (this web version is running on a single thread):
- lazy rigid body spawning and particle emissions off screen without any optimizations
- making expensive updates during main processing
--- i have a hunch simply using deferred calls might leverage a queue manager and stagger the computations off the virtual main thread
- i added some invincibility frames to delay the orb noise texture frequency updating too much at once, that alleviated a ton of original performance hits.
- based on that, i think staggering the forces applied to wraiths could go a long way. especially at the end when they all depart away (or maybe just disable physics and "float them away" manually until you hit continue)
- orb 3D scene can get some easy gains but would like to see how to render even MORE detail on web, not reduce it for performance.
Easiest win is likely to pre-compile a set of normal map textures to use at runtime rather than generating them each time the player takes damage
(or even simpler, maybe there's a way to create them between starting main thread cycles and have them ready to swap in later!)
Leave a comment
Log in with itch.io to leave a comment.