Skip to content

The clasic game implemented in java using design methods

Notifications You must be signed in to change notification settings

6upernova/Super-Mario-Bros-Java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Super Mario Bros - Java Implementation

Welcome to my implementation of Super Mario Bros in Java! 🎮✨ This project was developed as part of a group assignment for the course Tecnología de Programación at the Universidad Nacional del Sur. It showcases the development of a 2D platformer game inspired by the iconic Mario series. It demonstrates the application of object-oriented programming principles, design patterns, data structures and various other programming techniques.


Table of Contents

  1. Features
  2. Technologies and Skills Demonstrated
  3. How to Run
  4. Challenges and Lessons Learned
  5. License

Features

  • Dynamic Level Design: Scrolling backgrounds, interactive platforms, and engaging power-ups.
  • Character Animation and Physics: Smooth movement mechanics including jumping, running, and gravity-based falls.
  • Enemy Interactions: Different types of enemies with unique behaviors and collision mechanics.
  • Power-Ups and Transformations: Implementations of items like mushrooms and fire flowers, enabling Mario to transform and gain abilities.
  • Scoring System: Dynamic point display for defeating enemies and collecting coins.

Technologies and Skills Demonstrated

Object-Oriented Programming (OOP)

  • Encapsulation: Clear separation of concerns using classes for entities such as Mario, Enemies, and Platforms.
  • Inheritance: Hierarchical structure where entities like Goomba and KoopaTroopa inherit from a common Enemy class.
  • Polymorphism: Flexible methods allowing diverse behaviors, such as unique enemy interactions.

Design Patterns

  • Observer Pattern: Implemented for updating graphics and managing animations in real-time.
  • Visitor Pattern: Utilized for collision detection and handling interactions between different entities.
  • Factory Pattern: Simplified creation of game objects such as enemies, platforms, and power-ups.

Game Development Concepts

  • Custom Physics Engine: Gravity and collision handling for seamless character movement.
  • Multithreading: Managing background scrolling, animations, and enemy behaviors using separate threads.
  • Resource Management: Efficient handling of sprites, sound effects, and animations.

How to Run

  1. Clone the repository:
    git clone https://github.com/6upernova/Super-Mario-Bros-Java.git
  2. Navigate to the project directory and build the application using your preferred IDE (e.g., IntelliJ, Eclipse) or via the command line.
  3. Run the Launcher class to start the game.

Challenges and Lessons Learned

  • Collision Detection: Implementing precise interactions between Mario and game entities required meticulous testing.
  • Performance Optimization: Balancing graphical updates and game logic to ensure smooth performance.
  • Scalability: Designing flexible systems to easily add new features like enemies and power-ups.

Authors


License

This project is licensed under the MIT License. See the LICENSE file for details.


About

The clasic game implemented in java using design methods

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages