Skip to content

Repository files navigation

JEU_MARIOSDL

Unleash Creativity, Conquer Challenges, Play Fearlessly

license last-commit repo-top-language repo-language-count

Built with the tools and technologies:

Markdown GNU%20Bash C


Table of Contents


Overview

Jeu_MarioSDL is a modular, SDL2-based framework for developing engaging 2D platformer games. It provides a structured architecture that manages rendering, user input, obstacles, platforms, and game states, enabling developers to create interactive and dynamic gameplay experiences efficiently.

Why Jeu_MarioSDL?

This project aims to simplify the development of SDL2 games by offering a well-organized codebase and automation tools. The core features include:

  • 🟢 Modular Design: Clear separation of game components like player, obstacles, and events for easy maintenance and scalability.
  • 🔵 Automated Build Process: Makefile and setup scripts streamline compilation, resource management, and execution.
  • 🟠 Real-Time Event Handling: Responsive input processing and event management for smooth gameplay.
  • 🟣 Dynamic Game Elements: Procedural obstacle and platform management to keep gameplay engaging.
  • 🟡 SDL2 Integration: Efficient rendering and input handling for a seamless visual and interactive experience.

Features

Component Details
⚙️ Architecture
  • Modular design separating rendering, input handling, and game logic
  • Uses SDL2 for graphics and input
  • Event-driven main loop managing game states
🔩 Code Quality
  • Consistent C coding style with clear function separation
  • Use of header files for declarations
  • Comments indicating major functions and modules
📄 Documentation
  • Basic README with project overview and build instructions
  • Inline comments in source code
  • No extensive external documentation or API docs
🔌 Integrations
  • SDL2 library for graphics, input, and audio
  • Makefile for build automation
  • Custom modules like sauv_mariosdl_before_obstacle for game state management
🧩 Modularity
  • Separate modules for Mario, obstacles, and game states
  • Header files (header) for interface definitions
  • Potential for adding new obstacle types with minimal impact
🧪 Testing
  • No explicit unit testing framework detected
  • Some functions have manual test cases in comments
  • Potential to integrate C testing frameworks for robustness
⚡️ Performance
  • Uses SDL2 hardware acceleration features
  • Game loop optimized for minimal frame delay
  • Potential bottlenecks in obstacle rendering or collision detection
🛡️ Security
  • Limited security considerations; typical C vulnerabilities (buffer overflows) possible
  • No input sanitization beyond SDL event handling
📦 Dependencies
  • SDL2 library for graphics and input
  • Custom modules (mariosdl, sauv_mariosdl_before_obstacle, etc.)
  • No external package managers; build via Makefile

Project Structure

└── Jeu_MarioSDL/
    ├── Makefile
    ├── MarioSDL
    ├── README.md
    ├── dependencies
    │   ├── blocs.o
    │   ├── dangers.o
    │   ├── events.o
    │   ├── game.o
    │   ├── main.o
    │   └── player.o
    ├── filesC
    │   ├── blocs.c
    │   ├── dangers.c
    │   ├── events.c
    │   ├── game.c
    │   ├── main.c
    │   └── player.c
    ├── images
    │   ├── background_accueil.png
    │   ├── background_game.jpg
    │   ├── background_game2.jpg
    │   ├── joueur1.png
    │   ├── joueur1_.jpg
    │   ├── joueur2.png
    │   └── joueur2_.jpg
    ├── include
    │   ├── blocs.h
    │   ├── dangers.h
    │   ├── events.h
    │   ├── game.h
    │   └── player.h
    ├── sauv_MarioSDL_before_obstacle
    ├── sauv_MarioSDL_obstacles
    └── start.sh

Getting Started

Prerequisites

This project requires the following dependencies:

  • Programming Language: C
  • Package Manager: Make

Installation

Build Jeu_MarioSDL from the source and install dependencies:

  1. Clone the repository:

    ❯ git clone https://github.com/RMichel14/Jeu_MarioSDL
  2. Navigate to the project directory:

    cd Jeu_MarioSDL
  3. Install the dependencies:

SDL2 & SDL_image

Usage

Run the project with:

Using start file:

./start.sh

License

Jeu_mariosdl is protected under the Boost Software License 1.0. For more details, refer to the LICENSE.



About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages