Sanet.MakaMek.Core
0.53.14
dotnet add package Sanet.MakaMek.Core --version 0.53.14
NuGet\Install-Package Sanet.MakaMek.Core -Version 0.53.14
<PackageReference Include="Sanet.MakaMek.Core" Version="0.53.14" />
<PackageVersion Include="Sanet.MakaMek.Core" Version="0.53.14" />
<PackageReference Include="Sanet.MakaMek.Core" />
paket add Sanet.MakaMek.Core --version 0.53.14
#r "nuget: Sanet.MakaMek.Core, 0.53.14"
#:package Sanet.MakaMek.Core@0.53.14
#addin nuget:?package=Sanet.MakaMek.Core&version=0.53.14
#tool nuget:?package=Sanet.MakaMek.Core&version=0.53.14
MakaMek
A cross-platform implementation of turn-based tabletop tactics BattleTech, built with .NET 10 and AvaloniaUI.
Overview
MakaMek is an open-source tactical combat game featuring giant walking war machines. The game is inspired by another computer implementation of BattleTech called MegaMek but focusing on simplicity and accessibility for all players. We aim to keep gameplay simple and prioritize a mobile-first and web-first user experience.
Implementation Phases
<details> <summary>Phase 0. Game foundation ✅</summary> Complete as of v0.46.5. Allows to complete games locally and over the LAN.
- MVP Product Requirements Document (PRD) - Detailed requirements and specifications for the Minimum Viable Product
- MVP Gap Analysis - Current implementation status against MVP requirements (as of v0.42.27)
Implemented
- Client-Server app architecture with RX communication for local play
- LAN multiplayer with SignalR (only Desktop app can host the game, mobile clients could connect, WEB can neither host nor connect)
- Single-player combat with up to 4 players on a single device
- Complete Turn flow implementation with all major phases including initiative, movement, attack declaration and resolution, heat and end phase
- Critical hits, aimed shots, destruction of units, locations and components
- Optional rule where flamers apply both damage and heat to the targets
- Basic pilots implementation, unconsciousness, piloting skill rolls and falling
- Heat effects, shutdown, ammo explosion, restart, pilot damage and to hit modifiers
- Hex map generator (and previewer) with the simplest terrain types (clear, light and heavy wood) (MegaMek's assets) without levels
- Cross-platform support (Windows, Linux, macOS, Web, Android, iOS)
- Prototype UI built with AvaloniaUI
- Importing mechs defined in MegaMek's MTF format (Level 1 equipment only), 199 mech variants are supported at the moment </details>
<details> <summary>Phase 1. Bot framework ✅</summary> Complete as of v0.50.7. Combat against AI opponents
- Bot Player System - Product Requirements Document (PRD) - Detailed requirements and specifications for the Bot Player System
- Bot Player System - Implementation Roadmap - High-level plan for implementing the bot player system
Implemented
- Bot player framework with a decision engine for each game phase
- Basic movement and weapon targeting decisions
- Tactical evaluation of available positions, including torso turns, for movement and weapon decisions
- Basic end phase decisions (shutdown/restart decisions, etc.)
- Considering heat and ammo rounds for weapon selection
Experimental
An LLM-powered bot system, with dedicated decision engines, multiple agents and tools.
</details>
Phase 2. Support of map Levels and extended terrain types 🚧
Planned
- Support of map Levels
- Support of water and rough terrain types
- Support of roads and paved areas
- Map Editor (separate project)
Future Phases
- Support of map Levels and extended terrain types
- Support of advanced tech rules (Clan, LosTech equipment and more)
- Support for vehicles, battle armor and infantry
- Multiplayer over the Internet (WebSockets/SignalR)
- Tools for creating and managing custom units and maps, compatible with common community data formats
- Monogame version with 3D graphics and possible VR/AR support
Technology Stack
- .NET 10
- AvaloniaUI for cross-platform UI
- xUnit for testing
Project Structure
MakaMek/
├── src/
│ ├── MakaMek.Core/ # Core game engine and logic
│ ├── MakaMek.Map/ # Map generation and management
│ ├── MakaMek.Presentation/ # Presentation layer (ViewModels and UI states)
│ ├── MakaMek.Avalonia/ # UI implementation with AvaloniaUI
│ ├── MakaMek.Assets/ # 2D Assets management
│ ├── MakaMek.Bots/ # Bot framework
│ └── MakaMek.Tools/ # Tools and utilities
├── tests/ # Unit tests
├── data/ # Data files (e.g., unit definitions)
└── docs/ # Documentation (also synced to GitHub Wiki)
Project Status
Note: iOS build requires a complex distribution process (App Store is not possible because of the licensing). While the platform is supported by the codebase, ipa is not available (yet?). Users can build and deploy to iOS devices from the source code.
Development Setup
Prerequisites
- .NET 10 SDK
- Your favorite IDE (Visual Studio, Rider or VS Code)
Building
- Clone the repository
- Open
MakaMek.slnin your IDE - Build the solution
License
The source code for this project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
Art and Assets
Some art and assets used in this project—specifically unit and terrain images—are taken from the (MegaMek Data Repository). These materials are used as-is without any modifications and are distributed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (https://creativecommons.org/licenses/by-nc-sa/4.0/).
The assets are located in the data folder and are supposed to be distributed separately as downloadable content.
If you have any concerns regarding the usage of these assets, please reach out to me at: anton.makarevich@gmail.com
Acknowledgments
- Inspired by MegaMek
- Thanks to the BattleTech community for their continued passion.
Name Origin
The name MakaMek contains references to MegaMek, but also to my surname and the very first 'Mech ever created—the Mackie.
Disclaimer
This is a fan-made project and is not affiliated with or endorsed by any commercial mech combat game properties. All trademarks belong to their respective owners. This project is primarily a learning experience and a labor of love—developed for the enjoyment of the development process itself.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- AsyncAwaitBestPractices (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection (>= 10.0.3)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.3)
- Microsoft.Extensions.Logging (>= 10.0.3)
- Sanet.MakaMek.Map (>= 0.53.14)
- Sanet.Transport.Rx (>= 1.0.2)
- Sanet.Transport.SignalR.Client (>= 0.5.0)
- System.Reactive (>= 6.1.0)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on Sanet.MakaMek.Core:
| Package | Downloads |
|---|---|
|
Sanet.MakaMek.Avalonia
Avalonia UI frontend for MakaMek game |
|
|
Sanet.MakaMek.Presentation
An Attempt of Classic BattleTech game implementation. Presentation Logic |
|
|
Sanet.MakaMek.Bots
An Attempt of Classic BattleTech game implementation. Bot Players |
|
|
Sanet.MakaMek.Assets
An Attempt of Classic BattleTech game implementation. Asset Management |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.53.14 | 34 | 3/21/2026 |
| 0.53.13 | 75 | 3/17/2026 |
| 0.53.12 | 133 | 3/16/2026 |
| 0.53.11 | 120 | 3/16/2026 |
| 0.53.10 | 106 | 3/11/2026 |
| 0.53.9 | 158 | 3/11/2026 |
| 0.53.8 | 115 | 3/9/2026 |
| 0.53.6 | 123 | 3/6/2026 |
| 0.53.2 | 104 | 3/2/2026 |
| 0.53.0 | 109 | 2/26/2026 |
| 0.52.15 | 118 | 2/25/2026 |
| 0.52.12 | 125 | 2/21/2026 |
| 0.52.3 | 117 | 2/15/2026 |
| 0.52.2 | 115 | 2/14/2026 |
| 0.52.1 | 111 | 2/13/2026 |
| 0.52.0 | 116 | 2/13/2026 |
| 0.51.16 | 133 | 2/12/2026 |
| 0.51.14 | 112 | 2/12/2026 |
| 0.51.13 | 128 | 2/11/2026 |
| 0.51.11 | 134 | 2/11/2026 |