Skip to content

Latest commit

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

The Ninja - Endless Runner Game

Python VersionPygame VersionGame GenreProject StatusLicense

The Ninja Gameplay

🎮 About The Game

The Ninja is an exciting endless runner game built with Python and Pygame that combines fast-paced action with beautiful parallax scrolling visuals. Control a nimble ninja character as you navigate through an endless urban landscape, avoiding obstacles and chasing high scores!

✨ Features

🎯 Core Gameplay

  • Endless Running - Infinite gameplay with progressively increasing difficulty
  • Double Jump Mechanic - Perform mid-air jumps for advanced maneuverability
  • Dynamic Speed System - Game speed increases as your score grows
  • Health System - Three-hit health system with visual heart indicators

🎨 Visual Excellence

  • Parallax Scrolling - Multi-layered background for immersive depth
  • Animated Sprites - Smooth character animations for running and jumping
  • Pixel-Perfect Graphics - Carefully crafted visual elements
  • Dynamic UI - Animated heart icons and real-time score display

🔊 Audio Experience

  • Background Music - Engaging soundtrack that enhances gameplay
  • Sound Effects - Jump, hurt, and game over sound effects
  • Audio Management - Dynamic volume control during game states

💾 Progress & Data

  • High Score System - Persistent score saving using JSON
  • Real-time Statistics - Live score tracking and best performance display
  • Game State Management - Smooth transitions between gameplay and menus

🕹️ How to Play

Basic Controls

  • SPACE BAR - Jump (Press again in air for double jump)

Game Rules

  1. Avoid obstacles by jumping over them
  2. Each collision reduces your health by one heart
  3. Game speed increases every 2 points scored
  4. Maximum speed cap ensures fair gameplay
  5. Game ends when all hearts are lost

Scoring System

  • +1 Point for each successfully avoided obstacle
  • Speed Boost every 2 points
  • Personal Best tracking with persistent storage

🚀 Installation

Prerequisites

  • Python 3.6 or higher
  • Pygame library

Step-by-Step Setup

  1. Clone the Repository

    git clone https://github.com/greatitandev/Ninja-Game-python.git
    cd the-ninja-runner
  2. Install Dependencies

    pip install pygame
  3. Verify File Structure

    the-ninja-runner/
    ├── main.py
    ├── score.json
    ├── images/
    │ ├── city/ # Background layers
    │ ├── player/ # Character animations
    │ ├── obstacle/ # Obstacle variations
    │ ├── heart/ # Health indicators
    │ └── bg/ # Menu backgrounds
    └── sound/
    ├── background.mp3
    ├── jump.wav
    ├── hurt.wav
    ├── hurt1.wav
    └── lose.wav
    
  4. Launch the Game

    python main.py

🎯 Game Screenshots

GameplayGame Over
GameplayGame Over

🔧 Technical Details

Game Architecture

  • Object-Oriented Design - Clean class structure for game entities
  • Sprite-Based Rendering - Efficient image handling and animation
  • Event-Driven Logic - Responsive input handling and game state management

Performance Features

  • Frame Rate Control - Consistent 60 FPS gameplay
  • Efficient Collision Detection - Rectangle-based collision system
  • Memory Management - Proper resource loading and cleanup

File Structure

# Core ClassesPlayer() # Handles player movement, jumping, and animationsObstacle() # Manages obstacle generation and movement# Game Systemsload_sound() # Audio file managementget_score() # High score persistencesave_score() # Progress saving

🛠️ Customization

Easy Modifications

  • Difficulty: Adjust SPEED_INCREMENT and SPEED_INCREASE_RATE
  • Physics: Modify JUMP_STRENGTH and GRAVITY constants
  • Visuals: Replace image files in respective folders
  • Audio: Add new sound files to the sound directory

Adding New Features

The modular code structure makes it easy to add:

  • New obstacle types
  • Power-ups and collectibles
  • Additional character abilities
  • New background themes

🐛 Troubleshooting

Common Issues

  1. Missing Dependencies

    pip install --upgrade pygame
  2. File Not Found Errors

    • Ensure all asset folders are in the correct location
    • Check file paths in the code match your directory structure
  3. Audio Playback Issues

    • Verify audio file formats (WAV, MP3)
    • Check system volume and audio drivers

Performance Tips

  • Close other applications for optimal performance
  • Update graphics drivers if experiencing lag
  • Reduce screen resolution if needed

👨‍💻 Developer

Nimona Engida - Ethiopian Game Developer

Built with passion for game development and Python programming

About the Developer

  • Self-taught young programmer and game developer
  • Passionate about creating engaging gaming experiences
  • Focus on clean code and user-friendly design
  • Ethiopian developer promoting local tech talent

🌟 Contributing

We welcome contributions from the community! Feel free to:

  1. Report bugs and issues
  2. Suggest new features and improvements
  3. Submit pull requests with enhancements
  4. Share your modified versions

Development Guidelines

  • Follow PEP 8 coding standards
  • Test changes thoroughly before submitting
  • Document new features clearly
  • Maintain backward compatibility

📜 License

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

You are free to:

  • Use, copy, modify, and distribute the software
  • Use for commercial purposes
  • Sublicense and sell copies

🎊 Acknowledgments

  • Pygame Community - For excellent documentation and support
  • Open Source Assets - Contributors to free game development resources
  • Testers - Everyone who helped refine the gameplay experience

Ready to become the ultimate ninja? Start running now!

"With great speed comes great responsibility... to avoid obstacles!" 🏃‍♂️💨

Made in EthiopiaTechnology

About

🎇 A simple python and pygame 2D endless Ninja runner game. It uses pygame for graphics and sound and python for the logic.

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - GreatTitanDev/Ninja-Game-python: 🎇 A simple python and pygame 2D endless Ninja runner game. It uses pygame for graphics and sound and python for the logic. · GitHub
Skip to content

Latest commit

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

The Ninja - Endless Runner Game

Python VersionPygame VersionGame GenreProject StatusLicense

The Ninja Gameplay

🎮 About The Game

The Ninja is an exciting endless runner game built with Python and Pygame that combines fast-paced action with beautiful parallax scrolling visuals. Control a nimble ninja character as you navigate through an endless urban landscape, avoiding obstacles and chasing high scores!

✨ Features

🎯 Core Gameplay

  • Endless Running - Infinite gameplay with progressively increasing difficulty
  • Double Jump Mechanic - Perform mid-air jumps for advanced maneuverability
  • Dynamic Speed System - Game speed increases as your score grows
  • Health System - Three-hit health system with visual heart indicators

🎨 Visual Excellence

  • Parallax Scrolling - Multi-layered background for immersive depth
  • Animated Sprites - Smooth character animations for running and jumping
  • Pixel-Perfect Graphics - Carefully crafted visual elements
  • Dynamic UI - Animated heart icons and real-time score display

🔊 Audio Experience

  • Background Music - Engaging soundtrack that enhances gameplay
  • Sound Effects - Jump, hurt, and game over sound effects
  • Audio Management - Dynamic volume control during game states

💾 Progress & Data

  • High Score System - Persistent score saving using JSON
  • Real-time Statistics - Live score tracking and best performance display
  • Game State Management - Smooth transitions between gameplay and menus

🕹️ How to Play

Basic Controls

  • SPACE BAR - Jump (Press again in air for double jump)

Game Rules

  1. Avoid obstacles by jumping over them
  2. Each collision reduces your health by one heart
  3. Game speed increases every 2 points scored
  4. Maximum speed cap ensures fair gameplay
  5. Game ends when all hearts are lost

Scoring System

  • +1 Point for each successfully avoided obstacle
  • Speed Boost every 2 points
  • Personal Best tracking with persistent storage

🚀 Installation

Prerequisites

  • Python 3.6 or higher
  • Pygame library

Step-by-Step Setup

  1. Clone the Repository

    git clone https://github.com/greatitandev/Ninja-Game-python.git
    cd the-ninja-runner
  2. Install Dependencies

    pip install pygame
  3. Verify File Structure

    the-ninja-runner/
    ├── main.py
    ├── score.json
    ├── images/
    │ ├── city/ # Background layers
    │ ├── player/ # Character animations
    │ ├── obstacle/ # Obstacle variations
    │ ├── heart/ # Health indicators
    │ └── bg/ # Menu backgrounds
    └── sound/
    ├── background.mp3
    ├── jump.wav
    ├── hurt.wav
    ├── hurt1.wav
    └── lose.wav
    
  4. Launch the Game

    python main.py

🎯 Game Screenshots

GameplayGame Over
GameplayGame Over

🔧 Technical Details

Game Architecture

  • Object-Oriented Design - Clean class structure for game entities
  • Sprite-Based Rendering - Efficient image handling and animation
  • Event-Driven Logic - Responsive input handling and game state management

Performance Features

  • Frame Rate Control - Consistent 60 FPS gameplay
  • Efficient Collision Detection - Rectangle-based collision system
  • Memory Management - Proper resource loading and cleanup

File Structure

# Core ClassesPlayer() # Handles player movement, jumping, and animationsObstacle() # Manages obstacle generation and movement# Game Systemsload_sound() # Audio file managementget_score() # High score persistencesave_score() # Progress saving

🛠️ Customization

Easy Modifications

  • Difficulty: Adjust SPEED_INCREMENT and SPEED_INCREASE_RATE
  • Physics: Modify JUMP_STRENGTH and GRAVITY constants
  • Visuals: Replace image files in respective folders
  • Audio: Add new sound files to the sound directory

Adding New Features

The modular code structure makes it easy to add:

  • New obstacle types
  • Power-ups and collectibles
  • Additional character abilities
  • New background themes

🐛 Troubleshooting

Common Issues

  1. Missing Dependencies

    pip install --upgrade pygame
  2. File Not Found Errors

    • Ensure all asset folders are in the correct location
    • Check file paths in the code match your directory structure
  3. Audio Playback Issues

    • Verify audio file formats (WAV, MP3)
    • Check system volume and audio drivers

Performance Tips

  • Close other applications for optimal performance
  • Update graphics drivers if experiencing lag
  • Reduce screen resolution if needed

👨‍💻 Developer

Nimona Engida - Ethiopian Game Developer

Built with passion for game development and Python programming

About the Developer

  • Self-taught young programmer and game developer
  • Passionate about creating engaging gaming experiences
  • Focus on clean code and user-friendly design
  • Ethiopian developer promoting local tech talent

🌟 Contributing

We welcome contributions from the community! Feel free to:

  1. Report bugs and issues
  2. Suggest new features and improvements
  3. Submit pull requests with enhancements
  4. Share your modified versions

Development Guidelines

  • Follow PEP 8 coding standards
  • Test changes thoroughly before submitting
  • Document new features clearly
  • Maintain backward compatibility

📜 License

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

You are free to:

  • Use, copy, modify, and distribute the software
  • Use for commercial purposes
  • Sublicense and sell copies

🎊 Acknowledgments

  • Pygame Community - For excellent documentation and support
  • Open Source Assets - Contributors to free game development resources
  • Testers - Everyone who helped refine the gameplay experience

Ready to become the ultimate ninja? Start running now!

"With great speed comes great responsibility... to avoid obstacles!" 🏃‍♂️💨

Made in EthiopiaTechnology

About

🎇 A simple python and pygame 2D endless Ninja runner game. It uses pygame for graphics and sound and python for the logic.

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - GreatTitanDev/Ninja-Game-python: 🎇 A simple python and pygame 2D endless Ninja runner game. It uses pygame for graphics and sound and python for the logic. · GitHub
Skip to content

Latest commit

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

The Ninja - Endless Runner Game

Python VersionPygame VersionGame GenreProject StatusLicense

The Ninja Gameplay

🎮 About The Game

The Ninja is an exciting endless runner game built with Python and Pygame that combines fast-paced action with beautiful parallax scrolling visuals. Control a nimble ninja character as you navigate through an endless urban landscape, avoiding obstacles and chasing high scores!

✨ Features

🎯 Core Gameplay

  • Endless Running - Infinite gameplay with progressively increasing difficulty
  • Double Jump Mechanic - Perform mid-air jumps for advanced maneuverability
  • Dynamic Speed System - Game speed increases as your score grows
  • Health System - Three-hit health system with visual heart indicators

🎨 Visual Excellence

  • Parallax Scrolling - Multi-layered background for immersive depth
  • Animated Sprites - Smooth character animations for running and jumping
  • Pixel-Perfect Graphics - Carefully crafted visual elements
  • Dynamic UI - Animated heart icons and real-time score display

🔊 Audio Experience

  • Background Music - Engaging soundtrack that enhances gameplay
  • Sound Effects - Jump, hurt, and game over sound effects
  • Audio Management - Dynamic volume control during game states

💾 Progress & Data

  • High Score System - Persistent score saving using JSON
  • Real-time Statistics - Live score tracking and best performance display
  • Game State Management - Smooth transitions between gameplay and menus

🕹️ How to Play

Basic Controls

  • SPACE BAR - Jump (Press again in air for double jump)

Game Rules

  1. Avoid obstacles by jumping over them
  2. Each collision reduces your health by one heart
  3. Game speed increases every 2 points scored
  4. Maximum speed cap ensures fair gameplay
  5. Game ends when all hearts are lost

Scoring System

  • +1 Point for each successfully avoided obstacle
  • Speed Boost every 2 points
  • Personal Best tracking with persistent storage

🚀 Installation

Prerequisites

  • Python 3.6 or higher
  • Pygame library

Step-by-Step Setup

  1. Clone the Repository

    git clone https://github.com/greatitandev/Ninja-Game-python.git
    cd the-ninja-runner
  2. Install Dependencies

    pip install pygame
  3. Verify File Structure

    the-ninja-runner/
    ├── main.py
    ├── score.json
    ├── images/
    │ ├── city/ # Background layers
    │ ├── player/ # Character animations
    │ ├── obstacle/ # Obstacle variations
    │ ├── heart/ # Health indicators
    │ └── bg/ # Menu backgrounds
    └── sound/
    ├── background.mp3
    ├── jump.wav
    ├── hurt.wav
    ├── hurt1.wav
    └── lose.wav
    
  4. Launch the Game

    python main.py

🎯 Game Screenshots

GameplayGame Over
GameplayGame Over

🔧 Technical Details

Game Architecture

  • Object-Oriented Design - Clean class structure for game entities
  • Sprite-Based Rendering - Efficient image handling and animation
  • Event-Driven Logic - Responsive input handling and game state management

Performance Features

  • Frame Rate Control - Consistent 60 FPS gameplay
  • Efficient Collision Detection - Rectangle-based collision system
  • Memory Management - Proper resource loading and cleanup

File Structure

# Core ClassesPlayer() # Handles player movement, jumping, and animationsObstacle() # Manages obstacle generation and movement# Game Systemsload_sound() # Audio file managementget_score() # High score persistencesave_score() # Progress saving

🛠️ Customization

Easy Modifications

  • Difficulty: Adjust SPEED_INCREMENT and SPEED_INCREASE_RATE
  • Physics: Modify JUMP_STRENGTH and GRAVITY constants
  • Visuals: Replace image files in respective folders
  • Audio: Add new sound files to the sound directory

Adding New Features

The modular code structure makes it easy to add:

  • New obstacle types
  • Power-ups and collectibles
  • Additional character abilities
  • New background themes

🐛 Troubleshooting

Common Issues

  1. Missing Dependencies

    pip install --upgrade pygame
  2. File Not Found Errors

    • Ensure all asset folders are in the correct location
    • Check file paths in the code match your directory structure
  3. Audio Playback Issues

    • Verify audio file formats (WAV, MP3)
    • Check system volume and audio drivers

Performance Tips

  • Close other applications for optimal performance
  • Update graphics drivers if experiencing lag
  • Reduce screen resolution if needed

👨‍💻 Developer

Nimona Engida - Ethiopian Game Developer

Built with passion for game development and Python programming

About the Developer

  • Self-taught young programmer and game developer
  • Passionate about creating engaging gaming experiences
  • Focus on clean code and user-friendly design
  • Ethiopian developer promoting local tech talent

🌟 Contributing

We welcome contributions from the community! Feel free to:

  1. Report bugs and issues
  2. Suggest new features and improvements
  3. Submit pull requests with enhancements
  4. Share your modified versions

Development Guidelines

  • Follow PEP 8 coding standards
  • Test changes thoroughly before submitting
  • Document new features clearly
  • Maintain backward compatibility

📜 License

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

You are free to:

  • Use, copy, modify, and distribute the software
  • Use for commercial purposes
  • Sublicense and sell copies

🎊 Acknowledgments

  • Pygame Community - For excellent documentation and support
  • Open Source Assets - Contributors to free game development resources
  • Testers - Everyone who helped refine the gameplay experience

Ready to become the ultimate ninja? Start running now!

"With great speed comes great responsibility... to avoid obstacles!" 🏃‍♂️💨

Made in EthiopiaTechnology

About

🎇 A simple python and pygame 2D endless Ninja runner game. It uses pygame for graphics and sound and python for the logic.

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - GreatTitanDev/Ninja-Game-python: 🎇 A simple python and pygame 2D endless Ninja runner game. It uses pygame for graphics and sound and python for the logic. · GitHub
Skip to content

Latest commit

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

The Ninja - Endless Runner Game

Python VersionPygame VersionGame GenreProject StatusLicense

The Ninja Gameplay

🎮 About The Game

The Ninja is an exciting endless runner game built with Python and Pygame that combines fast-paced action with beautiful parallax scrolling visuals. Control a nimble ninja character as you navigate through an endless urban landscape, avoiding obstacles and chasing high scores!

✨ Features

🎯 Core Gameplay

  • Endless Running - Infinite gameplay with progressively increasing difficulty
  • Double Jump Mechanic - Perform mid-air jumps for advanced maneuverability
  • Dynamic Speed System - Game speed increases as your score grows
  • Health System - Three-hit health system with visual heart indicators

🎨 Visual Excellence

  • Parallax Scrolling - Multi-layered background for immersive depth
  • Animated Sprites - Smooth character animations for running and jumping
  • Pixel-Perfect Graphics - Carefully crafted visual elements
  • Dynamic UI - Animated heart icons and real-time score display

🔊 Audio Experience

  • Background Music - Engaging soundtrack that enhances gameplay
  • Sound Effects - Jump, hurt, and game over sound effects
  • Audio Management - Dynamic volume control during game states

💾 Progress & Data

  • High Score System - Persistent score saving using JSON
  • Real-time Statistics - Live score tracking and best performance display
  • Game State Management - Smooth transitions between gameplay and menus

🕹️ How to Play

Basic Controls

  • SPACE BAR - Jump (Press again in air for double jump)

Game Rules

  1. Avoid obstacles by jumping over them
  2. Each collision reduces your health by one heart
  3. Game speed increases every 2 points scored
  4. Maximum speed cap ensures fair gameplay
  5. Game ends when all hearts are lost

Scoring System

  • +1 Point for each successfully avoided obstacle
  • Speed Boost every 2 points
  • Personal Best tracking with persistent storage

🚀 Installation

Prerequisites

  • Python 3.6 or higher
  • Pygame library

Step-by-Step Setup

  1. Clone the Repository

    git clone https://github.com/greatitandev/Ninja-Game-python.git
    cd the-ninja-runner
  2. Install Dependencies

    pip install pygame
  3. Verify File Structure

    the-ninja-runner/
    ├── main.py
    ├── score.json
    ├── images/
    │ ├── city/ # Background layers
    │ ├── player/ # Character animations
    │ ├── obstacle/ # Obstacle variations
    │ ├── heart/ # Health indicators
    │ └── bg/ # Menu backgrounds
    └── sound/
    ├── background.mp3
    ├── jump.wav
    ├── hurt.wav
    ├── hurt1.wav
    └── lose.wav
    
  4. Launch the Game

    python main.py

🎯 Game Screenshots

GameplayGame Over
GameplayGame Over

🔧 Technical Details

Game Architecture

  • Object-Oriented Design - Clean class structure for game entities
  • Sprite-Based Rendering - Efficient image handling and animation
  • Event-Driven Logic - Responsive input handling and game state management

Performance Features

  • Frame Rate Control - Consistent 60 FPS gameplay
  • Efficient Collision Detection - Rectangle-based collision system
  • Memory Management - Proper resource loading and cleanup

File Structure

# Core ClassesPlayer() # Handles player movement, jumping, and animationsObstacle() # Manages obstacle generation and movement# Game Systemsload_sound() # Audio file managementget_score() # High score persistencesave_score() # Progress saving

🛠️ Customization

Easy Modifications

  • Difficulty: Adjust SPEED_INCREMENT and SPEED_INCREASE_RATE
  • Physics: Modify JUMP_STRENGTH and GRAVITY constants
  • Visuals: Replace image files in respective folders
  • Audio: Add new sound files to the sound directory

Adding New Features

The modular code structure makes it easy to add:

  • New obstacle types
  • Power-ups and collectibles
  • Additional character abilities
  • New background themes

🐛 Troubleshooting

Common Issues

  1. Missing Dependencies

    pip install --upgrade pygame
  2. File Not Found Errors

    • Ensure all asset folders are in the correct location
    • Check file paths in the code match your directory structure
  3. Audio Playback Issues

    • Verify audio file formats (WAV, MP3)
    • Check system volume and audio drivers

Performance Tips

  • Close other applications for optimal performance
  • Update graphics drivers if experiencing lag
  • Reduce screen resolution if needed

👨‍💻 Developer

Nimona Engida - Ethiopian Game Developer

Built with passion for game development and Python programming

About the Developer

  • Self-taught young programmer and game developer
  • Passionate about creating engaging gaming experiences
  • Focus on clean code and user-friendly design
  • Ethiopian developer promoting local tech talent

🌟 Contributing

We welcome contributions from the community! Feel free to:

  1. Report bugs and issues
  2. Suggest new features and improvements
  3. Submit pull requests with enhancements
  4. Share your modified versions

Development Guidelines

  • Follow PEP 8 coding standards
  • Test changes thoroughly before submitting
  • Document new features clearly
  • Maintain backward compatibility

📜 License

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

You are free to:

  • Use, copy, modify, and distribute the software
  • Use for commercial purposes
  • Sublicense and sell copies

🎊 Acknowledgments

  • Pygame Community - For excellent documentation and support
  • Open Source Assets - Contributors to free game development resources
  • Testers - Everyone who helped refine the gameplay experience

Ready to become the ultimate ninja? Start running now!

"With great speed comes great responsibility... to avoid obstacles!" 🏃‍♂️💨

Made in EthiopiaTechnology

About

🎇 A simple python and pygame 2D endless Ninja runner game. It uses pygame for graphics and sound and python for the logic.

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - GreatTitanDev/Ninja-Game-python: 🎇 A simple python and pygame 2D endless Ninja runner game. It uses pygame for graphics and sound and python for the logic. · GitHub
Skip to content

Latest commit

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

The Ninja - Endless Runner Game

Python VersionPygame VersionGame GenreProject StatusLicense

The Ninja Gameplay

🎮 About The Game

The Ninja is an exciting endless runner game built with Python and Pygame that combines fast-paced action with beautiful parallax scrolling visuals. Control a nimble ninja character as you navigate through an endless urban landscape, avoiding obstacles and chasing high scores!

✨ Features

🎯 Core Gameplay

  • Endless Running - Infinite gameplay with progressively increasing difficulty
  • Double Jump Mechanic - Perform mid-air jumps for advanced maneuverability
  • Dynamic Speed System - Game speed increases as your score grows
  • Health System - Three-hit health system with visual heart indicators

🎨 Visual Excellence

  • Parallax Scrolling - Multi-layered background for immersive depth
  • Animated Sprites - Smooth character animations for running and jumping
  • Pixel-Perfect Graphics - Carefully crafted visual elements
  • Dynamic UI - Animated heart icons and real-time score display

🔊 Audio Experience

  • Background Music - Engaging soundtrack that enhances gameplay
  • Sound Effects - Jump, hurt, and game over sound effects
  • Audio Management - Dynamic volume control during game states

💾 Progress & Data

  • High Score System - Persistent score saving using JSON
  • Real-time Statistics - Live score tracking and best performance display
  • Game State Management - Smooth transitions between gameplay and menus

🕹️ How to Play

Basic Controls

  • SPACE BAR - Jump (Press again in air for double jump)

Game Rules

  1. Avoid obstacles by jumping over them
  2. Each collision reduces your health by one heart
  3. Game speed increases every 2 points scored
  4. Maximum speed cap ensures fair gameplay
  5. Game ends when all hearts are lost

Scoring System

  • +1 Point for each successfully avoided obstacle
  • Speed Boost every 2 points
  • Personal Best tracking with persistent storage

🚀 Installation

Prerequisites

  • Python 3.6 or higher
  • Pygame library

Step-by-Step Setup

  1. Clone the Repository

    git clone https://github.com/greatitandev/Ninja-Game-python.git
    cd the-ninja-runner
  2. Install Dependencies

    pip install pygame
  3. Verify File Structure

    the-ninja-runner/
    ├── main.py
    ├── score.json
    ├── images/
    │ ├── city/ # Background layers
    │ ├── player/ # Character animations
    │ ├── obstacle/ # Obstacle variations
    │ ├── heart/ # Health indicators
    │ └── bg/ # Menu backgrounds
    └── sound/
    ├── background.mp3
    ├── jump.wav
    ├── hurt.wav
    ├── hurt1.wav
    └── lose.wav
    
  4. Launch the Game

    python main.py

🎯 Game Screenshots

GameplayGame Over
GameplayGame Over

🔧 Technical Details

Game Architecture

  • Object-Oriented Design - Clean class structure for game entities
  • Sprite-Based Rendering - Efficient image handling and animation
  • Event-Driven Logic - Responsive input handling and game state management

Performance Features

  • Frame Rate Control - Consistent 60 FPS gameplay
  • Efficient Collision Detection - Rectangle-based collision system
  • Memory Management - Proper resource loading and cleanup

File Structure

# Core ClassesPlayer() # Handles player movement, jumping, and animationsObstacle() # Manages obstacle generation and movement# Game Systemsload_sound() # Audio file managementget_score() # High score persistencesave_score() # Progress saving

🛠️ Customization

Easy Modifications

  • Difficulty: Adjust SPEED_INCREMENT and SPEED_INCREASE_RATE
  • Physics: Modify JUMP_STRENGTH and GRAVITY constants
  • Visuals: Replace image files in respective folders
  • Audio: Add new sound files to the sound directory

Adding New Features

The modular code structure makes it easy to add:

  • New obstacle types
  • Power-ups and collectibles
  • Additional character abilities
  • New background themes

🐛 Troubleshooting

Common Issues

  1. Missing Dependencies

    pip install --upgrade pygame
  2. File Not Found Errors

    • Ensure all asset folders are in the correct location
    • Check file paths in the code match your directory structure
  3. Audio Playback Issues

    • Verify audio file formats (WAV, MP3)
    • Check system volume and audio drivers

Performance Tips

  • Close other applications for optimal performance
  • Update graphics drivers if experiencing lag
  • Reduce screen resolution if needed

👨‍💻 Developer

Nimona Engida - Ethiopian Game Developer

Built with passion for game development and Python programming

About the Developer

  • Self-taught young programmer and game developer
  • Passionate about creating engaging gaming experiences
  • Focus on clean code and user-friendly design
  • Ethiopian developer promoting local tech talent

🌟 Contributing

We welcome contributions from the community! Feel free to:

  1. Report bugs and issues
  2. Suggest new features and improvements
  3. Submit pull requests with enhancements
  4. Share your modified versions

Development Guidelines

  • Follow PEP 8 coding standards
  • Test changes thoroughly before submitting
  • Document new features clearly
  • Maintain backward compatibility

📜 License

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

You are free to:

  • Use, copy, modify, and distribute the software
  • Use for commercial purposes
  • Sublicense and sell copies

🎊 Acknowledgments

  • Pygame Community - For excellent documentation and support
  • Open Source Assets - Contributors to free game development resources
  • Testers - Everyone who helped refine the gameplay experience

Ready to become the ultimate ninja? Start running now!

"With great speed comes great responsibility... to avoid obstacles!" 🏃‍♂️💨

Made in EthiopiaTechnology

About

🎇 A simple python and pygame 2D endless Ninja runner game. It uses pygame for graphics and sound and python for the logic.

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - GreatTitanDev/Ninja-Game-python: 🎇 A simple python and pygame 2D endless Ninja runner game. It uses pygame for graphics and sound and python for the logic. · GitHub
Skip to content

Latest commit

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

The Ninja - Endless Runner Game

Python VersionPygame VersionGame GenreProject StatusLicense

The Ninja Gameplay

🎮 About The Game

The Ninja is an exciting endless runner game built with Python and Pygame that combines fast-paced action with beautiful parallax scrolling visuals. Control a nimble ninja character as you navigate through an endless urban landscape, avoiding obstacles and chasing high scores!

✨ Features

🎯 Core Gameplay

  • Endless Running - Infinite gameplay with progressively increasing difficulty
  • Double Jump Mechanic - Perform mid-air jumps for advanced maneuverability
  • Dynamic Speed System - Game speed increases as your score grows
  • Health System - Three-hit health system with visual heart indicators

🎨 Visual Excellence

  • Parallax Scrolling - Multi-layered background for immersive depth
  • Animated Sprites - Smooth character animations for running and jumping
  • Pixel-Perfect Graphics - Carefully crafted visual elements
  • Dynamic UI - Animated heart icons and real-time score display

🔊 Audio Experience

  • Background Music - Engaging soundtrack that enhances gameplay
  • Sound Effects - Jump, hurt, and game over sound effects
  • Audio Management - Dynamic volume control during game states

💾 Progress & Data

  • High Score System - Persistent score saving using JSON
  • Real-time Statistics - Live score tracking and best performance display
  • Game State Management - Smooth transitions between gameplay and menus

🕹️ How to Play

Basic Controls

  • SPACE BAR - Jump (Press again in air for double jump)

Game Rules

  1. Avoid obstacles by jumping over them
  2. Each collision reduces your health by one heart
  3. Game speed increases every 2 points scored
  4. Maximum speed cap ensures fair gameplay
  5. Game ends when all hearts are lost

Scoring System

  • +1 Point for each successfully avoided obstacle
  • Speed Boost every 2 points
  • Personal Best tracking with persistent storage

🚀 Installation

Prerequisites

  • Python 3.6 or higher
  • Pygame library

Step-by-Step Setup

  1. Clone the Repository

    git clone https://github.com/greatitandev/Ninja-Game-python.git
    cd the-ninja-runner
  2. Install Dependencies

    pip install pygame
  3. Verify File Structure

    the-ninja-runner/
    ├── main.py
    ├── score.json
    ├── images/
    │ ├── city/ # Background layers
    │ ├── player/ # Character animations
    │ ├── obstacle/ # Obstacle variations
    │ ├── heart/ # Health indicators
    │ └── bg/ # Menu backgrounds
    └── sound/
    ├── background.mp3
    ├── jump.wav
    ├── hurt.wav
    ├── hurt1.wav
    └── lose.wav
    
  4. Launch the Game

    python main.py

🎯 Game Screenshots

GameplayGame Over
GameplayGame Over

🔧 Technical Details

Game Architecture

  • Object-Oriented Design - Clean class structure for game entities
  • Sprite-Based Rendering - Efficient image handling and animation
  • Event-Driven Logic - Responsive input handling and game state management

Performance Features

  • Frame Rate Control - Consistent 60 FPS gameplay
  • Efficient Collision Detection - Rectangle-based collision system
  • Memory Management - Proper resource loading and cleanup

File Structure

# Core ClassesPlayer() # Handles player movement, jumping, and animationsObstacle() # Manages obstacle generation and movement# Game Systemsload_sound() # Audio file managementget_score() # High score persistencesave_score() # Progress saving

🛠️ Customization

Easy Modifications

  • Difficulty: Adjust SPEED_INCREMENT and SPEED_INCREASE_RATE
  • Physics: Modify JUMP_STRENGTH and GRAVITY constants
  • Visuals: Replace image files in respective folders
  • Audio: Add new sound files to the sound directory

Adding New Features

The modular code structure makes it easy to add:

  • New obstacle types
  • Power-ups and collectibles
  • Additional character abilities
  • New background themes

🐛 Troubleshooting

Common Issues

  1. Missing Dependencies

    pip install --upgrade pygame
  2. File Not Found Errors

    • Ensure all asset folders are in the correct location
    • Check file paths in the code match your directory structure
  3. Audio Playback Issues

    • Verify audio file formats (WAV, MP3)
    • Check system volume and audio drivers

Performance Tips

  • Close other applications for optimal performance
  • Update graphics drivers if experiencing lag
  • Reduce screen resolution if needed

👨‍💻 Developer

Nimona Engida - Ethiopian Game Developer

Built with passion for game development and Python programming

About the Developer

  • Self-taught young programmer and game developer
  • Passionate about creating engaging gaming experiences
  • Focus on clean code and user-friendly design
  • Ethiopian developer promoting local tech talent

🌟 Contributing

We welcome contributions from the community! Feel free to:

  1. Report bugs and issues
  2. Suggest new features and improvements
  3. Submit pull requests with enhancements
  4. Share your modified versions

Development Guidelines

  • Follow PEP 8 coding standards
  • Test changes thoroughly before submitting
  • Document new features clearly
  • Maintain backward compatibility

📜 License

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

You are free to:

  • Use, copy, modify, and distribute the software
  • Use for commercial purposes
  • Sublicense and sell copies

🎊 Acknowledgments

  • Pygame Community - For excellent documentation and support
  • Open Source Assets - Contributors to free game development resources
  • Testers - Everyone who helped refine the gameplay experience

Ready to become the ultimate ninja? Start running now!

"With great speed comes great responsibility... to avoid obstacles!" 🏃‍♂️💨

Made in EthiopiaTechnology

About

🎇 A simple python and pygame 2D endless Ninja runner game. It uses pygame for graphics and sound and python for the logic.

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - GreatTitanDev/Ninja-Game-python: 🎇 A simple python and pygame 2D endless Ninja runner game. It uses pygame for graphics and sound and python for the logic. · GitHub
Skip to content

Latest commit

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

The Ninja - Endless Runner Game

Python VersionPygame VersionGame GenreProject StatusLicense

The Ninja Gameplay

🎮 About The Game

The Ninja is an exciting endless runner game built with Python and Pygame that combines fast-paced action with beautiful parallax scrolling visuals. Control a nimble ninja character as you navigate through an endless urban landscape, avoiding obstacles and chasing high scores!

✨ Features

🎯 Core Gameplay

  • Endless Running - Infinite gameplay with progressively increasing difficulty
  • Double Jump Mechanic - Perform mid-air jumps for advanced maneuverability
  • Dynamic Speed System - Game speed increases as your score grows
  • Health System - Three-hit health system with visual heart indicators

🎨 Visual Excellence

  • Parallax Scrolling - Multi-layered background for immersive depth
  • Animated Sprites - Smooth character animations for running and jumping
  • Pixel-Perfect Graphics - Carefully crafted visual elements
  • Dynamic UI - Animated heart icons and real-time score display

🔊 Audio Experience

  • Background Music - Engaging soundtrack that enhances gameplay
  • Sound Effects - Jump, hurt, and game over sound effects
  • Audio Management - Dynamic volume control during game states

💾 Progress & Data

  • High Score System - Persistent score saving using JSON
  • Real-time Statistics - Live score tracking and best performance display
  • Game State Management - Smooth transitions between gameplay and menus

🕹️ How to Play

Basic Controls

  • SPACE BAR - Jump (Press again in air for double jump)

Game Rules

  1. Avoid obstacles by jumping over them
  2. Each collision reduces your health by one heart
  3. Game speed increases every 2 points scored
  4. Maximum speed cap ensures fair gameplay
  5. Game ends when all hearts are lost

Scoring System

  • +1 Point for each successfully avoided obstacle
  • Speed Boost every 2 points
  • Personal Best tracking with persistent storage

🚀 Installation

Prerequisites

  • Python 3.6 or higher
  • Pygame library

Step-by-Step Setup

  1. Clone the Repository

    git clone https://github.com/greatitandev/Ninja-Game-python.git
    cd the-ninja-runner
  2. Install Dependencies

    pip install pygame
  3. Verify File Structure

    the-ninja-runner/
    ├── main.py
    ├── score.json
    ├── images/
    │ ├── city/ # Background layers
    │ ├── player/ # Character animations
    │ ├── obstacle/ # Obstacle variations
    │ ├── heart/ # Health indicators
    │ └── bg/ # Menu backgrounds
    └── sound/
    ├── background.mp3
    ├── jump.wav
    ├── hurt.wav
    ├── hurt1.wav
    └── lose.wav
    
  4. Launch the Game

    python main.py

🎯 Game Screenshots

GameplayGame Over
GameplayGame Over

🔧 Technical Details

Game Architecture

  • Object-Oriented Design - Clean class structure for game entities
  • Sprite-Based Rendering - Efficient image handling and animation
  • Event-Driven Logic - Responsive input handling and game state management

Performance Features

  • Frame Rate Control - Consistent 60 FPS gameplay
  • Efficient Collision Detection - Rectangle-based collision system
  • Memory Management - Proper resource loading and cleanup

File Structure

# Core ClassesPlayer() # Handles player movement, jumping, and animationsObstacle() # Manages obstacle generation and movement# Game Systemsload_sound() # Audio file managementget_score() # High score persistencesave_score() # Progress saving

🛠️ Customization

Easy Modifications

  • Difficulty: Adjust SPEED_INCREMENT and SPEED_INCREASE_RATE
  • Physics: Modify JUMP_STRENGTH and GRAVITY constants
  • Visuals: Replace image files in respective folders
  • Audio: Add new sound files to the sound directory

Adding New Features

The modular code structure makes it easy to add:

  • New obstacle types
  • Power-ups and collectibles
  • Additional character abilities
  • New background themes

🐛 Troubleshooting

Common Issues

  1. Missing Dependencies

    pip install --upgrade pygame
  2. File Not Found Errors

    • Ensure all asset folders are in the correct location
    • Check file paths in the code match your directory structure
  3. Audio Playback Issues

    • Verify audio file formats (WAV, MP3)
    • Check system volume and audio drivers

Performance Tips

  • Close other applications for optimal performance
  • Update graphics drivers if experiencing lag
  • Reduce screen resolution if needed

👨‍💻 Developer

Nimona Engida - Ethiopian Game Developer

Built with passion for game development and Python programming

About the Developer

  • Self-taught young programmer and game developer
  • Passionate about creating engaging gaming experiences
  • Focus on clean code and user-friendly design
  • Ethiopian developer promoting local tech talent

🌟 Contributing

We welcome contributions from the community! Feel free to:

  1. Report bugs and issues
  2. Suggest new features and improvements
  3. Submit pull requests with enhancements
  4. Share your modified versions

Development Guidelines

  • Follow PEP 8 coding standards
  • Test changes thoroughly before submitting
  • Document new features clearly
  • Maintain backward compatibility

📜 License

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

You are free to:

  • Use, copy, modify, and distribute the software
  • Use for commercial purposes
  • Sublicense and sell copies

🎊 Acknowledgments

  • Pygame Community - For excellent documentation and support
  • Open Source Assets - Contributors to free game development resources
  • Testers - Everyone who helped refine the gameplay experience

Ready to become the ultimate ninja? Start running now!

"With great speed comes great responsibility... to avoid obstacles!" 🏃‍♂️💨

Made in EthiopiaTechnology

About

🎇 A simple python and pygame 2D endless Ninja runner game. It uses pygame for graphics and sound and python for the logic.

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - GreatTitanDev/Ninja-Game-python: 🎇 A simple python and pygame 2D endless Ninja runner game. It uses pygame for graphics and sound and python for the logic. · GitHub
Skip to content

Latest commit

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

The Ninja - Endless Runner Game

Python VersionPygame VersionGame GenreProject StatusLicense

The Ninja Gameplay

🎮 About The Game

The Ninja is an exciting endless runner game built with Python and Pygame that combines fast-paced action with beautiful parallax scrolling visuals. Control a nimble ninja character as you navigate through an endless urban landscape, avoiding obstacles and chasing high scores!

✨ Features

🎯 Core Gameplay

  • Endless Running - Infinite gameplay with progressively increasing difficulty
  • Double Jump Mechanic - Perform mid-air jumps for advanced maneuverability
  • Dynamic Speed System - Game speed increases as your score grows
  • Health System - Three-hit health system with visual heart indicators

🎨 Visual Excellence

  • Parallax Scrolling - Multi-layered background for immersive depth
  • Animated Sprites - Smooth character animations for running and jumping
  • Pixel-Perfect Graphics - Carefully crafted visual elements
  • Dynamic UI - Animated heart icons and real-time score display

🔊 Audio Experience

  • Background Music - Engaging soundtrack that enhances gameplay
  • Sound Effects - Jump, hurt, and game over sound effects
  • Audio Management - Dynamic volume control during game states

💾 Progress & Data

  • High Score System - Persistent score saving using JSON
  • Real-time Statistics - Live score tracking and best performance display
  • Game State Management - Smooth transitions between gameplay and menus

🕹️ How to Play

Basic Controls

  • SPACE BAR - Jump (Press again in air for double jump)

Game Rules

  1. Avoid obstacles by jumping over them
  2. Each collision reduces your health by one heart
  3. Game speed increases every 2 points scored
  4. Maximum speed cap ensures fair gameplay
  5. Game ends when all hearts are lost

Scoring System

  • +1 Point for each successfully avoided obstacle
  • Speed Boost every 2 points
  • Personal Best tracking with persistent storage

🚀 Installation

Prerequisites

  • Python 3.6 or higher
  • Pygame library

Step-by-Step Setup

  1. Clone the Repository

    git clone https://github.com/greatitandev/Ninja-Game-python.git
    cd the-ninja-runner
  2. Install Dependencies

    pip install pygame
  3. Verify File Structure

    the-ninja-runner/
    ├── main.py
    ├── score.json
    ├── images/
    │ ├── city/ # Background layers
    │ ├── player/ # Character animations
    │ ├── obstacle/ # Obstacle variations
    │ ├── heart/ # Health indicators
    │ └── bg/ # Menu backgrounds
    └── sound/
    ├── background.mp3
    ├── jump.wav
    ├── hurt.wav
    ├── hurt1.wav
    └── lose.wav
    
  4. Launch the Game

    python main.py

🎯 Game Screenshots

GameplayGame Over
GameplayGame Over

🔧 Technical Details

Game Architecture

  • Object-Oriented Design - Clean class structure for game entities
  • Sprite-Based Rendering - Efficient image handling and animation
  • Event-Driven Logic - Responsive input handling and game state management

Performance Features

  • Frame Rate Control - Consistent 60 FPS gameplay
  • Efficient Collision Detection - Rectangle-based collision system
  • Memory Management - Proper resource loading and cleanup

File Structure

# Core ClassesPlayer() # Handles player movement, jumping, and animationsObstacle() # Manages obstacle generation and movement# Game Systemsload_sound() # Audio file managementget_score() # High score persistencesave_score() # Progress saving

🛠️ Customization

Easy Modifications

  • Difficulty: Adjust SPEED_INCREMENT and SPEED_INCREASE_RATE
  • Physics: Modify JUMP_STRENGTH and GRAVITY constants
  • Visuals: Replace image files in respective folders
  • Audio: Add new sound files to the sound directory

Adding New Features

The modular code structure makes it easy to add:

  • New obstacle types
  • Power-ups and collectibles
  • Additional character abilities
  • New background themes

🐛 Troubleshooting

Common Issues

  1. Missing Dependencies

    pip install --upgrade pygame
  2. File Not Found Errors

    • Ensure all asset folders are in the correct location
    • Check file paths in the code match your directory structure
  3. Audio Playback Issues

    • Verify audio file formats (WAV, MP3)
    • Check system volume and audio drivers

Performance Tips

  • Close other applications for optimal performance
  • Update graphics drivers if experiencing lag
  • Reduce screen resolution if needed

👨‍💻 Developer

Nimona Engida - Ethiopian Game Developer

Built with passion for game development and Python programming

About the Developer

  • Self-taught young programmer and game developer
  • Passionate about creating engaging gaming experiences
  • Focus on clean code and user-friendly design
  • Ethiopian developer promoting local tech talent

🌟 Contributing

We welcome contributions from the community! Feel free to:

  1. Report bugs and issues
  2. Suggest new features and improvements
  3. Submit pull requests with enhancements
  4. Share your modified versions

Development Guidelines

  • Follow PEP 8 coding standards
  • Test changes thoroughly before submitting
  • Document new features clearly
  • Maintain backward compatibility

📜 License

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

You are free to:

  • Use, copy, modify, and distribute the software
  • Use for commercial purposes
  • Sublicense and sell copies

🎊 Acknowledgments

  • Pygame Community - For excellent documentation and support
  • Open Source Assets - Contributors to free game development resources
  • Testers - Everyone who helped refine the gameplay experience

Ready to become the ultimate ninja? Start running now!

"With great speed comes great responsibility... to avoid obstacles!" 🏃‍♂️💨

Made in EthiopiaTechnology

About

🎇 A simple python and pygame 2D endless Ninja runner game. It uses pygame for graphics and sound and python for the logic.

Topics

Resources

Stars

7 stars

Watchers

1 watching

Forks

Contributors

Languages