5 ms·
MonoGame: A .NET framework for making cross-platform games
- mwkaufma 7mo agoFor a more actively maintained XNA implementation, also worth looking at Ethan Lee's FNA: https://fna-xna.github.io/ https://fna-xna.github.io/
- azhenley 7mo agoI was trying to compare the two. At first glance, MonoGame has far more stars and recent commits. Or is it just in maintenance mode?
- PacificSpecific 7mo agoI believe FNA is trying to be more loyal to the original XNA while my monogame tends to introduce new features. I've been happy with monogame when I used it in the past. I'm pretty sure Celeste was made with FNA
- loufe 7mo agoYou might be mistaken, the Monogame Github README cites Celeste as an example made with it.
- PacificSpecific 7mo agoAh weird. Did a bit of searching and it looks like maybe it targeted multiple frameworks with the xna API. Including xna itself https://www.pcgamingwiki.com/wiki/Celeste https://www.pcgamingwiki.com/wiki/Celeste https://celeste.ink/wiki/Version_history https://celeste.ink/wiki/Version_history
- debugnik 7mo agoSeveral games used to target Monogame for consoles but XNA for PC, and later FNA for PC. Monogame on PC used to be somewhat buggy in my hobbyist experience.
- PacificSpecific 7mo agoOh interesting. I never hit any walls personally but I guess I didn't push that hard.
- pjmlp 7mo agoXNA was originally designed for XBox Live Arcade indie titles.
- deleted 7mo ago[deleted]
- deleted 7mo ago[deleted]
- rienbdj 7mo agoFNA is for porting /supporting XNA games with minimal changes. MonoGame is trying to evolve XNA in small ways. For a new project I would pick MonoGame.
- jeswin 7mo agoHow well does it support Linux + NativeAOT? Thanks in advance. Never mind, found this in the docs: https://fna-xna.github.io/docs/appendix/Appendix-A%3A-NativeAOT-on-PC/ https://fna-xna.github.io/docs/appendix/Appendix-A%3A-Native...
- 4pkjai 7mo agoI used MonoGame to port my XNA games to other platforms. It’s really good, also it was very cool as a junior developer to see the code for the methods I used.
- sodafountan 7mo agoI did the same. It was cool seeing some of the games I came up with back in the 360 days running on iPhone and Android devices.
- oAlbe 7mo agoIf you are wondering about the capabilities, Stardew Valley was made in MonoGame. I wonder how it compares, if at all, with Godot nowadays.
- charcircuit 7mo agoWhat are the capabilities needed for Stardew Valley? Drawing 2d sprites. Playing audio? That's a pretty low bar to reach. MonoGame doesn't even support animated sprites. You have to build support for them yourself. That sounds like a pretty low bar.
- dismalaf 7mo ago> wonder how it compares, if at all, with Godot nowadays. It doesn't. Godot is a 3D game engine and editor. Monogame is more like SDL or Raylib: just a library to make writing games from scratch easier.
- anonymous908213 7mo agoThere isn't really a comparison to be made between MonoGame and Godot. MonoGame is for programmers. Godot is for people who want to make games but don't care for programming and would rather use a GUI for development. Godot locks you into the Godot way of doing things. MonoGame is a thin cross-platform abstraction over platform APIs for sprite rendering, audio playback, input, and font, leaving you to build your game engine yourself however you like. I think the greatest flaw in MonoGame, however, is that their cross-platform abstraction notably excludes web. Given how relatively thin MonoGame is, I think you're better off building your own framework that supports compiling to WASM as well, if you have any experience as a developer already. It is what I did and took some effort but was pretty well doable and didn't take all that long, and the payoff of being able to share your games instantly in the browser for anyone to play with just a click of a link is so worth it. The other notable flaw in MonoGame is that the content pipeline thing it has is horrendous. When I tried it, I ended up simply bypassing using that pipeline at all. They are currently in the process of reworking it completely, I believe, but I'm not sure when that's supposed to release. Maybe the value in MonoGame is that it does support consoles, though; I have no idea what developing for console is like, and only target web/computer/phone OS platforms myself.
- sodafountan 7mo agoI used Monogame back when it was a proprietary framework called XNA developed at Microsoft. You used to be able to use XNA to build Indie games for the Xbox 360, hard to believe, but this is going on 15 years ago at this point. I built two indie games and made a couple of hundred bucks back when I was in High School. It's actually what got me into programming in the first place. I'm happy to see that XNA became Monogame, it's one of the best frameworks I've ever used for gamedev.
- bschwindHN 7mo agoSame here (minus the making any money). XNA is how I started learning graphics programming and started my interest in things like physics engines. Shawn Hargreaves had great blog posts on gamedev back then, too.
- rienbdj 7mo agoAlways nostalgic for Cornflower Blue :)
- pjmlp 7mo agoIt is kind of nice for indie games, unfortunately it is kind of stuck in what XNA 4.0 had as API surface. And it used to be there was still some dependency on old XNA plugins for assets pipeline on Visual Studio. No idea where this stands now. However it was yet another example of community standing up for the anti-.NET sentiment at Windows/XBox teams, when the persons involved left XBox team, XNA was quickly replaced by DirectX TK. "The billion dollar decision that launched XNA" https://youtu.be/wJY8RhPHmUQ?is=jwDBVae8AhBH-ANB https://youtu.be/wJY8RhPHmUQ?is=jwDBVae8AhBH-ANB https://walbourn.github.io/directxtk/ https://walbourn.github.io/directxtk/
- makotech221 7mo agoAlso check out Stride3d https://github.com/stride3d/stride https://github.com/stride3d/stride, which is a more full featured engine built on (i believe) Monogame. Runs on .net 10
- grufkork 7mo agoHaven’t used the engine specifically, but seems to be a cool project. I have used the Stride renderer which is embedded in VVVV, a live multimedia node-based language, which makes it interesting that you can extract and reuse such large components from the engine.
- S04dKHzrKT 7mo agoJust an FYI, Stride isn't related to MonoGame or XNA. Stride was originally Paradox (and then Xenko) made by Silicon Studio. They eventually open sourced it and let the community take over. The lead architect (I think) of Xenko also wrote SharpDX which MonoGame used for a while though.
- Nition 7mo agoIf Microsoft hadn't killed XNA (what MonoGame is based on) a decade ago, they could be packaging it with Copilot right now as the ideal code-first AI-assisted game engine. Easy to use, easy to test, no visual editor where AI will struggle like with Unity/Unreal/Godot.
- jayd16 7mo agoIf they hadn't killed it, it would have a visual editor by now. Or worse, dominated by Maya integrations.
- nurettin 7mo agoFor Lazarus (an IDE with visual components similar to Delphi) I switched to code-first components and did away with the form files. You can probably do this with all of these frameworks.
- vintagedave 7mo agoWe’re building an AI agent for Delphi — and a major part is it supporting visual form editing. It works. You can see the form change live in the designer as the AI does its stuff. It’s not publicly available yet but has an active group of beta testers. https://www.remobjects.com/codebot/delphi.aspx https://www.remobjects.com/codebot/delphi.aspx
- nurettin 7mo agoRight, good that you've got that going, congratulations to you and your team. Design time does make human development much easier, since you are able to see the working prototype run as you design it, not sure what the point is if AI is doing that, since the value is in making the development cycle shorter, which the AI has no use for.
- bob1029 7mo ago> AI will struggle like with Unity/Unreal/Godot. I am automating Unity with headless method invocation of agent authored editor scripts. I don't think "struggle" is the word I'd use to describe how GPT5.4 is currently performing. I can tell the agent things like "iterate over all scenes. Wrap lightmap baking in a 5 minute timeout. Identify all scenes that exceed baking time. Inspect the scene objects and identify static geometry with poorly configured light map scale relative to their world space extents."
- zerr 7mo agoWhat would be a direct equivalent in C++?
- anonymous908213 7mo agoSDL and Raylib are probably the closest C(++) analogues. Or SFML if you strictly want a library written in C++, I suppose.
- Bairfhionn 7mo agoThis is a weird coincidence. Yesterday I looked into Monogame, FNA and Raylib. Just always surprises me how reading something somewhere makes people do similar things.
- rimmontrieu 7mo agoJava equivalent: https://github.com/libgdx/libgdx https://github.com/libgdx/libgdx
- NotGMan 7mo agoWe used Monogame at a previous company and it's a nightmare to be productive in it. The lack of any kind of an editor makes any kind of dev a nightmare: 3d adjustments? Good luck, guess it.. UI adjustments: good luck, try it 300 times until you get it right. Switched to Unity, best choice ever.
- rienbdj 7mo agoWith MonoGame you are supposed to use an editor for creating assets that you then load into the engine built by MonoGame. Or you build your own editor using MonoGame. MonoGame is quite different from editor-centric system like Unity and not a good fit for all teams / projects.
- eudamoniac 7mo agoThis comment makes less sense if you are familiar with CSS. Web developers don't have to guess 300 times to make UI adjustments, despite having no direct editor. If this was a problem you should have programmed in better layout primitives.
- hahn-kev 7mo agoDev tools in the browser are a direct editor, sure you can't drag things around with the mouse, but you can edit values live and see them change. Big difference from recompiling to see changes.
- bluefirebrand 7mo agoYou can but good CSS devs don't have to. They know pretty accurately what it will look like in code
- p5v 7mo agoI’m old enough to remember and toy with the now long-dead XNA. It was lots of fun, and gave a lot of us students versed with C# a sort of first-hand exposure with the .NET. If only (the old) Microsoft wasn’t so stupid, short-sighted, and selfish at the time.
- anthk 7mo agoOpenBSD ran tons of MonoGame indie games thanks to it, it even had a wrapper in ports.
- tdimhcs 7mo ago[dead]
- bschmidt25 7mo ago[dead]
- nickprotop 7mo agoI built a full WinUI app with no visual editor, just XAML and code. The layout was entirely in my head. Now I do the same with terminal UIs on Linux, pure code with fluent builders. Once you internalize the layout model, a visual editor mostly slows you down. Code-first gives you full control, clean diffs, and composability. That said, for complex layouts you still need to run and visually review, no one gets nested grids pixel-perfect from memory alone.