Skip to content

NukuHack/WpfGame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

129 Commits
 
 
 
 
 
 
 
 

Repository files navigation

VoidVenture - A WPF Platformer Adventure

WPF C#

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.

Why Use .NET?

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. 😅


🚀 Jump To


🤖 Key Features

  • 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:

    • Player physics/movement class
    • Color2 helper color module
    • Palette color management system
    • Saves - planned saves
    • Settings - planned settings
    • TmxParser and some extra TMX map loading support
    • PerlinNoise and some helper for the seed based random map gen

🛠️ Technical Highlights

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.

🎮 How to Play

  1. Movement:

    • Arrow keys or WASD to move
    • Spacebar for hover ability
    • ESC to open menu
  2. Menu Controls:

    • Load/Save/Delete game progress
    • Import external save files
    • Export current saves
    • Customize game settings

📦 Getting Started

1. Clone the repository

git clone https://github.com/NukuHack/WpfGame.git

2. Requirements

  • Visual Studio 2022+ with .NET 5.0 SDK
  • WPF development workload installed

3. Run the game

  • You could try running the .exe file in the VoidVenture\bin\Debug, but there is a chance I did not compile it to the latest version, in that case open VoidVenture.sln with VisualStudio and press F5 to build/run

🤝 Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add new feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. 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)

📚 Documentation


📜 License

MIT License - Free to use, modify, and distribute.
Most of the code (and this readme) are generated with assistance from AI tools

About

Some basic c#

Resources

License

Stars

Watchers

Forks

Contributors

Languages