This project was developed during the ISEP Gamejam 2024 that took place on May 24, 25 and 26, 2024.
SmianSwitch is a 2D platformer with 3 levels and a final boss fight. The game is based on the evolution of the human species and the change of perspective.
- Evolve through multiple eras while flipping the world to overcome puzzles and enemies.
- Progression builds toward a final boss encounter after clearing three platforming stages.
- On hit, the boss forces a player swap (handled by
PlayerManager), reinforcing the evolution theme.
- Responsive movement set: run, jump, wall slide/jump, dash, and gravity/perspective flip.
- Melee combat with hit pause/knockback, enemy AI that pursues and attacks at range.
- Rope segments you can grab/release mid-air for traversal.
- Scene-aware audio system with music per level plus jump, dash, hit, sword, and UI click SFX.
- Pause menu, restart handling, and persistent settings (volume, music, SFX toggles) saved to disk.
- Level unlock tracking for later stages and boss access.
- Move:
A/DorLeft/Right Arrow - Jump:
Space(hold for higher jump) - Dash:
Left Shift - Attack: Left Mouse Button
- Flip gravity/perspective:
T - Grab rope:
E/ Release rope:Q - Restart checkpoint/scene:
R - Pause menu:
Esc
- Start from
Assets/Scenes/MainMenu.unityto access Play and Settings. - Level order:
Primeiro→Main→Terceiro 1→PVP→BOSS. - Hitting a
Finaltrigger loads the next scene; falling out of bounds restarts the current scene. - Dialogues and pause states temporarily disable combat inputs.
- Engine: Unity
2022.3.30f1(LTS). Open the project with this editor version for best compatibility. - Clone or download this repository, then add the folder to Unity Hub.
- Open
Assets/Scenes/MainMenu.unityand press Play, or open a specific level scene to jump in. - Builds:
File > Build Settings..., add the desired scenes in order above, pick target platform (PC/Mac/Linux Standalone), then Build.
- Audio and toggle preferences are stored in
Application.persistentDataPath(Settings.json). - Level unlocks are stored in
Niveis.jsonin the same location.