A procedurally enhanced 2D platformer built with C# and WPF, featuring dynamic color systems and modular game architecture. Perfect for learning WPF game development patterns and image manipulation techniques.
You might wonder why Iโm using .NET. While Iโd love to avoid it, creating this game without .NET would require a lot of research and effort, something Iโm admittedly too lazy to dive into right now. ๐
- ๐ค Key Features
- ๐ ๏ธ Technical Highlights
- ๐ฎ How to Play
- ๐ฆ Getting Started
- ๐ค Contributing
- ๐ Documentation
- ๐ License
-
Dynamic Movement System
Smooth 8-directional movement with:- WASD/Arrow key controls
- Momentum-based gravity system
- Collision detection against tilemaps
- Directional sprite rotation
-
Advanced Color Engine
Real-time palette swapping system that:- Converts images to indexed color formats
- Maintains 256-color compatibility
- Supports procedural color randomization
-
Persistent Save System
- Multiple save file support
- Data serialization with versioning
- Save file import/export functionality
- In-game save management UI
-
Modular Architecture
Clean separation of concerns with:Playerphysics/movement classColor2helper color modulePalettecolor management systemSaves- planned savesSettings- planned settingsTmxParserand some extra TMX map loading supportPerlinNoiseand some helper for the seed based random map gen
1. 'Dual' Map System
- Tile-based or PerlinNoise based terrain.
- Pre-defined or Realtime-generated landscape.
2. Palette-Based Recoloring
- Advanced image processing pipeline.
3. Game Loop Management
- 60 FPS update cycle using WPF DispatcherTimer.
- This is important - if the game can not run at 60 fps the gravity and other movement might break.
-
Movement:
- Arrow keys or WASD to move
- Spacebar for hover ability
- ESC to open menu
-
Menu Controls:
- Load/Save/Delete game progress
- Import external save files
- Export current saves
- Customize game settings
1. Clone the repository
git clone https://github.com/NukuHack/WpfGame.git2. Requirements
- Visual Studio 2022+ with .NET 5.0 SDK
- WPF development workload installed
3. Run the game
- You could try running the
.exefile in theVoidVenture\bin\Debug, but there is a chance I did not compile it to the latest version, in that case openVoidVenture.slnwith VisualStudio and press F5 to build/run
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add new feature') - Push to branch (
git push origin feature/amazing-feature) - Open a pull request
Plans for the future:
- Tutorial (just basic stuff for begginers)
- Save+Load progress (maybe encryption)
- Extra decor on terrain (ores/plants/biomes)
- Procedural generation optimization (mainly the coloring)
- Refined chunk system (working updates)
- Sound system implementation (background/general/ui)
- Performance optimizations
- UI/HUD optimizations (visual/user friendly)
- macOS/Linux compatibility layer (prop not)
MIT License - Free to use, modify, and distribute.
Most of the code (and this readme) are generated with assistance from AI tools