A proof-of-concept .NET Standard library for the classic Asteroids game, ported to multiple platforms including Blazor WebAssembly, Electron, and MAUI.
AsteroidsWasm is a proof-of-concept project that ports the classic Asteroids arcade game to multiple platforms using a shared .NET Standard library. It demonstrates how a single codebase can be rendered across desktop frameworks (like WPF and WinForms), web via Blazor WebAssembly, and hybrid mobile/desktop via MAUI. The project solves the problem of evaluating .NET's cross-platform viability, especially for WebAssembly compilation.
.NET developers interested in cross-platform development, WebAssembly, or exploring UI rendering differences across Microsoft and third-party frameworks. It's also useful for educators demonstrating code reuse patterns.
Developers choose this project to see a concrete, working example of a non-trivial application running identically on over eight distinct platforms. Its value lies in the direct side-by-side comparison it enables, all from one shared game engine.
Collection of applications based on a single C# .NET Standard project running in: Blazor Client (WebAssembly), Blazor Server, Electron, WPF, WinForms, Maui, WinUI3
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Successfully runs the same game logic on over eight distinct platforms including WinForms, WPF, Blazor, and MAUI, proving .NET's cross-portability claims in a tangible way.
Emphasizes code reuse with a .NET Standard library housing all game logic, cleanly decoupled from UI rendering layers—a practical example for multi-platform projects.
Provides direct comparisons, such as .NET 10 dramatically outperforming .NET Framework 4.8 in WinForms/WPF, helping developers evaluate platform choices.
Implements both Blazor WebAssembly and Server models, allowing developers to test client-side vs. server-side execution for games, as noted in the hosting models section.
Explicitly labeled as a proof-of-concept 'not meant to be production-worthy,' so it lacks robust error handling, thorough testing, and long-term support.
Electron version requires global tool installation, node.js, and has known issues like 'is being used by another process' errors, adding unnecessary friction.
Performance varies widely, with .NET Framework versions described as 'almost unplayable,' indicating that not all targets are equally viable without optimization.