RockRain is a classic arcade-style space shooter game built with MonoGame 3.8.4. The player controls a spaceship and must avoid meteors while collecting power-ups to survive as long as possible.
This project has been modernized to use .NET 8.0 SDK-style projects and supports the following platforms:
Platforms/Windows/RockRain.Windows.csproj
Platforms/Desktop/RockRain.DesktopGL.csproj
Platforms/Android/RockRain.Android.csproj
Platforms/iOS/RockRain.iOS.csproj
# Build
dotnet build RockRain.Windows.csproj
# Run
dotnet run --project RockRain.Windows.csproj
# Build
dotnet build RockRain.DesktopGL.csproj
# Run
dotnet run --project RockRain.DesktopGL.csproj
# Build
dotnet build RockRain.Android.csproj
# Deploy to device/emulator
dotnet build RockRain.Android.csproj -t:Run
# Build
dotnet build RockRain.iOS.csproj
# Deploy to device/simulator (requires macOS and Xcode)
dotnet build RockRain.iOS.csproj -t:Run
This project includes VS Code configuration for building and debugging:
build-windows
- Build Windows versionbuild-desktopgl
- Build DesktopGL versionbuild-android
- Build Android versionbuild-ios
- Build iOS versionrun-windows
- Run Windows versionrun-desktopgl
- Run DesktopGL versionclean
- Clean all projectsrestore
- Restore NuGet packagesF5
to start debuggingOpen RockRain.sln
in Visual Studio to build and run all platform projects.
/Core/
- Shared game logic and components (Game1, GameScene, Sprite, ParticleSystem, etc.)/Core/RockRain.Core.csproj
- Shared code project referenced by all platforms/Content/
- Game assets (textures, sounds, fonts)/Platforms/Windows/
- Windows-specific entry point and project files/Platforms/Desktop/
- DesktopGL-specific entry point and project files/Platforms/Android/
- Android-specific entry point, manifest, and project files/Platforms/iOS/
- iOS-specific entry point, plist, and project filesProgram.cs
(or MainActivity.cs
for Android) and RockRain.[Platform].csproj
This project has been modernized from an older MonoGame version to 3.8.4:
GamePad.Visible
, ButtonDefinition
, ThumbStickDefinition
, and Accelerometer
APIs that were specific to older mobile platforms have been commented out/Platforms/[Platform]/
(e.g., Program.cs
for Windows/DesktopGL/iOS, MainActivity.cs
for Android)To fully restore text rendering functionality, the XNB font files would need to be rebuilt with MonoGame 3.8.4's content pipeline, or the original font source files (.spritefont) would need to be compiled through a proper Content.mgcb file.
This project uses pre-compiled .xnb content files located in the /Content/
directory. No Content.mgcb file is needed as the content has already been processed.
This is a MonoGame sample project provided for educational purposes.