A retro-style game engine built with Pygame
Project description
Retro Game Engine 🎮
A modern Python game development framework for creating authentic 8-bit and 16-bit style games. Built with performance and developer experience in mind, it provides a robust set of tools while maintaining the aesthetic and technical constraints that defined the retro gaming era.
✨ Features
🎨 Core Engine
- High-Performance Rendering: Pixel-perfect 2D graphics with hardware acceleration
- Flexible Sprite System: Animation, batching, and effects
- Tile-Based Maps: Scrolling, auto-tiling, and efficient culling
- Robust Physics: Collision detection and resolution
- Audio Management: Sound effects and music with priority system
- Input Handling: Keyboard, mouse, and gamepad support
🏗️ Architecture
- Entity Component System: Modular and efficient game object management
- Scene Management: Easy state transitions and persistence
- Event System: Flexible communication between components
- UI Framework: Text, menus, and HUD elements
🚀 Quick Start
Installation
pip install retro-game-engine
Create Your First Game
from retro_game_engine import Game, Scene, Entity
from retro_game_engine.components import Transform, SpriteRenderer
class MyGame(Game):
def __init__(self):
super().__init__(width=320, height=240, title="My Retro Game")
# Create and setup your game scene
scene = Scene("main")
player = Entity("player")
player.add_component(Transform(x=160, y=120))
player.add_component(SpriteRenderer("player.png"))
scene.add_entity(player)
# Start the game
self.scene_manager.push_scene(scene)
if __name__ == "__main__":
MyGame().run()
📚 Documentation
🎮 Examples
🤝 Contributing
We welcome contributions! Please see our Contributing Guide for details.
Development Setup
- Clone the repository:
git clone https://github.com/ahmed5145/retro_game_engine.git
cd retro_game_engine
- Install Poetry (dependency management):
curl -sSL https://install.python-poetry.org | python3 -
- Install dependencies:
poetry install
- Run tests:
poetry run pytest
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Built with Pygame
- Inspired by classic game engines and retro gaming systems
- Thanks to all contributors
📫 Contact & Support
- GitHub Issues for bug reports and feature requests
- GitHub Discussions for questions and community discussions
- Documentation for comprehensive guides and API reference
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file retro_game_engine-0.2.2.tar.gz.
File metadata
- Download URL: retro_game_engine-0.2.2.tar.gz
- Upload date:
- Size: 29.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.12.9 Linux/6.8.0-1021-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ce383a5e0a68b28f188093f0a9993074129e021930069dcccc2276141984d4c
|
|
| MD5 |
9dc970b134049fe3f56b06577056b2ca
|
|
| BLAKE2b-256 |
2e5ad6ebd06e4e24b8a84f6640e372ec7eda4d8f8af2acfbcf6673444c472676
|
File details
Details for the file retro_game_engine-0.2.2-py3-none-any.whl.
File metadata
- Download URL: retro_game_engine-0.2.2-py3-none-any.whl
- Upload date:
- Size: 37.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.12.9 Linux/6.8.0-1021-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
10e16cf2406814a56f1d374464d6eae5f945382ca961a9da14d481682d08fe1d
|
|
| MD5 |
fdc25351215c02302b9c5932c4c8d768
|
|
| BLAKE2b-256 |
eba527443e9b8ec35ee2792b0e085df8dfb94299d95b04ef146957fe04175219
|