Skip to content

NukuHack/WpfGame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

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

Languages