Skip to content
 
 

Repository files navigation

🐒 Carlo's Delta Escape 🎮

Carlo's Delta Escape is a 2D platformer developed with Python + Pygame as a project for the Software Development course at Insper (2022.1).

This was my first game and my first large-scale Python project. The main character and enemy sprites were hand-drawn by me using Aseprite.

🎥 Watch the gameplay on YouTube


🎮 About the Game

The project combines classic platformer elements with combat, ammo management, scoring, obstacles, and a story told through cutscenes.

Key Features

  • 2D platforming with side-scrolling movement and a camera that follows the player
  • Ranged combat using bananas as ammunition
  • Health and damage system
  • Enemies and obstacles
  • Action-based scoring system
  • Ammo refill points
  • Introductory cutscene
  • Main menu, controls screen, and Game Over screen
  • Two possible endings, determined by the player's final score

📖 Lore

Carlos the monkey is in his first semester of Computer Engineering at Insper. After spending the semester focused on his favorite subjects, he realizes that he forgot to submit his Software Development projects.

For the Delta exam (a make-up exam), Professor Humberto, feeling inspired, comes up with an unusual challenge: Carlos must travel into the code jungle and kill as many BUGs from his project as he can.

Only then will he be able to pass the course and become a great programmer ape.


🕹️ Controls

Key Action
W / Jump
A / Move left
D / Move right
SPACE Attack
X Advance the cutscene
C Open the controls screen from the main menu
SPACE Return from the controls screen
ENTER Start or restart the game

🏆 Scoring System

The player's score directly affects the ending of the game.

Event Score
Defeat an enemy +2000
Collect an ammo refill +1000
Take damage -500

To unlock the good ending, the player must finish the game with at least 15,000 points.


🍌 Combat and Ammo

Carlos attacks by throwing bananas at enemies.

  • The player starts with 3 rounds of ammo.
  • Each attack consumes one banana.
  • Ammo refill points are scattered throughout the map.
  • Collecting a refill restores the player's ammo to 3 bananas.
  • Bananas disappear when they hit the environment.
  • Hitting an enemy removes both the projectile and the enemy.

❤️ Health System

The player starts with 3 lives.

Colliding with enemies or spikes causes damage. After being hit, Carlos has a short period of invulnerability before he can take damage again.

If all lives are lost — or if the character falls out of the map — the game ends with a Game Over.


🛠️ Technologies

  • Python
  • Pygame
  • Pygame sprite and group system
  • Rect and mask-based collision detection
  • Audio and music using pygame.mixer
  • Tile-based map

📁 Project Structure

PyGameDessoft/
├── Game.py           # Main game loop and game states
├── settings.py       # Game settings and level map
├── assets.py         # Image and asset loading
├── player_class.py   # Player movement, combat, and ammo
├── enemy_class.py    # Enemies and obstacles
├── level_class.py    # Level building, collisions, and camera
└── Assets/           # Sprites, sounds, music, and cutscenes

About

Platformer 2D feito em Python + Pygame — sprites, sons e cutscenes autorais, projeto em equipe (Insper, Dessoft)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages