An FPS puzzle game where you have to escape rooms using a scaling gun.
- Scaling power
- Ease scaling effect
- Change the scalling factor with scroll.
- Apply scaling effect with current scaling factor.
- Left click to stretch and Right click to shrink.
- Add soundFX on shrinking, stretching (use the scale factor to alter pitch)
- Make the scaling a behaviour
- Create gun mechanics: shoot a ray, visual FX for both types of scaling
- Add gun sound FX
- Add gun cool down before next shoot
- Gun diegetic HUD
- Add particles when shooting the ray
- Review timing between shooting and scaling
- Create a standalone RayBeam GameObject to Instantiate in the scene
- Implement a FS movement: walking and looking
- Assembly FS, gun and scaling systems
- Make the player jump (Character Controller).
- Start state with UI
- Lose state with UI
- Winning state with UI
- Reload from scene one
- Design puzzle one - intro
- Design puzzle two - explore
- Design puzzle two - final
- Add a crosshair
- Remove GameObject once they reach a minimum scale threshold
- Change the gun with a bigger one
- Apply texturing to rooms, geometries and hazards
- Import PSX fonts
- Design Start, Lose and Win GUI
- Add diegetic guides to teach mechanics - Level one: "There an obstacle on the way, shrink it", and so
- Explain that shapes won't scale more than x2.0
- The large shapes on levels four and five need to get blocked after scaling it x1.0
- On level five, the platform needs to be shorter so it won't pass if the player shrinks it
- Change the color of geometries when reaching max local scale
- Create the N pre-defined geometries for scaling and update them on the levels
- Add visual style on GUI
- Fix mouse sensitivity
- Shake the camera on every scaling (depends on the cinemachine FP feature)
- Add a hand holding the gun
- Reload current level/scene (Pressing R)
- Add gun animations
- Add soundFX to disappear from shrinking and stretching.
- Create a practice system where the Geometry disappeared
Puzle anotations link
- Clear objective. The user just needs to figure out how to do it.
- Clear rules and understandable limitations
- A conflict, an assumption, and a revelation.
- Build on top of the previous knowledge, ramping up in difficulty.
- Steps, solutions, number of mechanics.
- A large box is blocking your way, shrink it.
- A lava river is in your way, but there is a box you can use to stretch it and cross
- Little lava river, use the boxes on the ceiling so they can fall on the lava
- Scale a prism to push a ball into a pit and jump on top.
- Theres a chasm, use the scaling momentum to push a ball to help you cross
- The exit is high up; use the boxes to create a ramp
- The way out was hole; use the boxes to create a bridge
- Later, I realized that the CharacterController was not the best option if I wanted to enable the scaling geometry to propel the player upward.
- The geometries persist on their local scale. A set of elements with pre-defined sizes at local scales of 1.0 is needed so the gun can interact with that.
- Using a cube to manually scale makes it difficult to limit and define the threshold. Having defined geometries of different shapes and sizes allows for homogeneous scaling.
- They may change color to clearly indicate that the geometry has reached its maximum scaling state.
[1] iHeartGameDev, How to Jump in Unity 3D: Jumping Like Mario [Built-In Character Controller #3], (Jul. 18, 2021). Accessed: Aug. 19, 2024. [Online Video]. Available: https://www.youtube.com/watch?v=h2r3_KjChf4
[2] GDC, Math for Game Programmers: Building a Better Jump, (Dec. 12, 2016). Accessed: Aug. 19, 2024. [Online Video]. Available: https://www.youtube.com/watch?v=hG9SzQxaCm8
[3] GDC, Level Design Workshop: Solving Puzzle Design, (Dec. 19, 2017). Accessed: Aug. 19, 2024. [Online Video]. Available: https://www.youtube.com/watch?v=0xBJwrm9C8w