Skip to content

🎮 🧩 Simple 2D puzzle game built in C for Linux and macOS.

License

Notifications You must be signed in to change notification settings

marsdevx/maze-escape

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Maze Escape

Last Commit Platforms
Languages Genre Assets Levels License


🧩 Maze Escape

This project is a simple 2D puzzle game built for educational purposes using the C language and the MiniLibX Graphics Library. Designed to run on Linux and macOS, this open-source project showcases the basics of game development with C.

  • 2D game using XPM images as assets.
  • Includes 6 different asset packs and 4 challenging levels.
  • A perfect introduction to game development with C language.
  • Lightweight and easy to customize for learning.

Explore how C can bring games to life with this opensource puzzle game!


🖼️ Preview

Preview

🛠️ Installation

To install this project, Launch the Terminal app on your system, and run the commands below.

  • If a pop-up appears prompting you to download the Xcode Command Line Tools after the first command, click “Download” and then run the first command again.

 macOS

  1. Clone repo
git clone https://github.com/marsdevx/maze-escape.git ~/Downloads/Maze-Escape
  1. Compile project
cd ~/Downloads/Maze-Escape && make macos

🐧 Linux

  1. Clone repo
git clone https://github.com/marsdevx/maze-escape.git ~/Downloads/Maze-Escape
  1. Compile project
cd ~/Downloads/Maze-Escape && make linux

🚀 Usage

  1. Navigate to the Game Directory
cd ~/Downloads/Maze-Escape
  1. Run the Game
./maze_escape levels/lvl1 textures/pacman
  1. Customize Your Game

You can modify the level and texture by changing the corresponding arguments in the command:

  • Levels: Replace levels/lvl1 with one of the following:
    • levels/lvl1
    • levels/lvl2
    • levels/lvl3
    • levels/lvl4
  • Textures: Replace textures/pacman with one of the following:
    • textures/pacman
    • textures/adventurer
    • textures/chicken
    • textures/pokemon
    • textures/space-ship
    • textures/time-adventure

⚙️ Advanced Options

Add Your Own Map

You can add custom maps to the game, as long as they follow these rules:

  1. The map must be a .ber file.
  2. The map can only contain the following characters:
CHAR OBJECT
1 Wall
C Collectible
E Exit
P Player
0 Background

Example of a valid map

11111111111
10000P1C001
11111011101
10001000001
101011111E1
11111111111

Add Your Own Textures

You can add custom textures to the game, as long as they follow these rules:

  1. The textures folder must contain exactly 5 files.
  2. All files must be in the .xpm format.
  3. The files must be named as follows:
    • bg.xpm (background)
    • exit.xpm (exit point)
    • item.xpm (collectible items)
    • player.xpm (player character)
    • wall.xpm (walls)

📋 License

All the code contained in this repo is licensed under the MIT License

MIT License

Copyright (c) 2025 marsdevx

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.