Back to projects

physics101-2D-platformer

ContributorView Repository

Rope Swing Mechanic

Overview

physics101-2D-platformer is a physics-based platformer developed using the Godot game engine. Our Physics 101 final project required us Computing Education students to develop something programmed. Our idea was to make a game that demonstrates physics concepts through an interactive game. In our game, we implemented several mechanics based on Classical Physics (Newton's Three Laws, Torque, Tension, etc.) such as collision systems, rope swinging and traversal, bounce pads, and piston-driven movement.

My Contribution

As a contributor, I mainly worked on level design, specifically on the layout and how the player has to navigate and solve obstacles in the level to get to the exit.

Responsibilities included:

  • Designed and implemented level layouts and progression
  • Implemented see-saw (levers) mechanics
  • Implemented traverse rope (zipline) & swing rope physics
  • Implemented player movement logic while attached to ropes
  • Debugged level boundaries and collision-related issues
  • Testing gameplay features and reporting bugs

Technologies Used

Godot Engine

The project was developed using Godot, an open-source game engine that provides built-in support for 2D physics, animation systems, and scene management.

GDScript

Gameplay logic was implemented using GDScript, Godot's Python-inspired scripting language.

Challenges

One of the primary challenges was balancing realistic physics with enjoyable gameplay. Because it was for a physics course, we initially wanted the game to be as realistic as possible movement wise, but upon testing, we realized it was just not as fun as normal platformer physics. I also had to fine-tune the rope movement to make it feel "right."

This required experimentation with:

  • Gravity values
  • Jump heights
  • Movement acceleration
  • Friction and deceleration settings

What I Learned

Through this project, I gained hands-on experience with:

  • Godot's node and scene system
  • PhysicsBody and collision systems
  • Game loop design
  • Player controller implementation
  • Debugging gameplay mechanics
  • Collaborative game development workflows
  • Custom and modular scene tooling

Future Improvements

Potential enhancements include:

  • Additional levels and environments
  • SFX, BGM
  • Improved animations and visual effects
  • Save and checkpoint systems
  • Mobile platform support

Repository

The project's source code can be found on GitHub