|
|
vor 4 Tagen | |
|---|---|---|
| .. | ||
| .config | vor 1 Woche | |
| .vscode | vor 4 Tagen | |
| Core | vor 4 Tagen | |
| Docs | vor 1 Woche | |
| Gameplay | vor 4 Tagen | |
| Graphics | vor 1 Woche | |
| Physics | vor 1 Woche | |
| Platforms | vor 4 Tagen | |
| UI | vor 1 Woche | |
| .gitignore | vor 1 Woche | |
| README.md | vor 1 Woche | |
| Shooter.code-workspace | vor 1 Woche | |
| Shooter.sln | vor 1 Woche | |
A complete 3D first-person shooter built with MonoGame, ported from Unity's FPS Microgame. This project is designed as a learning resource for developers transitioning from Unity to MonoGame or learning 3D game development.
The project uses a provider-based plugin architecture allowing you to swap:
Shooter/
├── Shooter.Core/ # Core engine systems
│ ├── Components/ # Component base classes
│ ├── Entities/ # Entity management
│ ├── Events/ # Event system
│ ├── Plugins/ # Plugin interfaces
│ └── Services/ # Service locator & core services
├── Shooter.Physics/ # Physics provider implementations
│ ├── Bepu/ # BepuPhysics provider
│ └── Interfaces/ # Physics abstractions
├── Shooter.Graphics/ # Rendering systems
│ ├── Providers/ # Graphics provider implementations
│ ├── Camera/ # Camera systems
│ └── Primitives/ # Debug rendering (colored shapes)
├── Shooter.Gameplay/ # Game-specific logic
│ ├── Player/ # Player controller, weapons
│ ├── AI/ # Enemy controllers, detection
│ ├── Combat/ # Health, damage, projectiles
│ └── Objectives/ # Mission objectives
├── Shooter.UI/ # GUM-based user interface
│ ├── HUD/ # In-game HUD
│ └── Menus/ # Menu screens
├── Shooter/ # Main game project
│ ├── Content/ # Assets (models, textures, shaders)
│ └── Scenes/ # Level JSON files
└── Docs/ # Documentation
└── UnityToMonoGame.md # Feature mapping reference
MonoGame.Framework.DesktopGLMonoGame.Content.Builder.TaskMonoGame.Extended (cameras, utilities)BepuPhysics (physics engine)Gum.MonoGame (UI framework)Newtonsoft.Json (scene serialization)dotnet restore
dotnet build
dotnet run --project Shooter/Shooter.csproj
Shooter.Core)See Docs/UnityToMonoGame.md for detailed feature comparisons and implementation strategies.
| Unity | MonoGame Equivalent |
|---|---|
MonoBehaviour |
GameComponent (custom) |
GameObject |
Entity (custom) |
Transform |
Transform3D component |
Rigidbody |
PhysicsBody component (Bepu wrapper) |
CharacterController |
CharacterController (custom) |
| Scene files | JSON scene data |
| Prefabs | Entity templates (JSON) |
Content/Data/Weapons/WeaponBase in Shooter.Gameplay/Weapons/EnemyControllerIPhysicsProvider interfaceServiceLocatorGame.Initialize()This is an educational resource. Feel free to:
This project is based on Unity's FPS Microgame sample. Code is provided for educational purposes.
Built with ❤️ for the MonoGame and game development learning community