BEPUphysics VS MonoGame

Compare BEPUphysics vs MonoGame and see what are their differences.

BEPUphysics

Pure C# 3D real time physics simulation library, now with a higher version number. (by bepu)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
BEPUphysics MonoGame
5 95
2,126 10,718
4.7% 1.9%
8.9 9.0
22 days ago 7 days ago
C# C#
Apache License 2.0 GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

BEPUphysics

Posts with mentions or reviews of BEPUphysics. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-04-28.
  • Current state of 2D game code-first frameworks?
    3 projects | /r/csharp | 28 Apr 2023
    The best pure-C# physics library (hands-down) is bepuphysics2, which unfortunately is mainly a 3D physics library, but could be used for 2D if you wanted to get your hands dirty.
  • Physics Engine
    2 projects | /r/csharp | 17 Nov 2022
  • Open Source C++ Physics Libraries for Dedicated FPS Server?
    3 projects | /r/gamedev | 22 Sep 2022
    Bepu Physics is pretty good and is written in really optimized C#, the author's blog post are really interesting to read.
  • GJK: Collision detection algorithm in 2D/3D
    5 projects | news.ycombinator.com | 9 Mar 2022
    The usual approach is some form of sweep to get a time of impact. Once you've got a time of impact, you can either generate contacts, or avoid integrating the involved bodies beyond the time of impact, or do something fancier like adaptively stepping the simulation to ensure no lost time.

    If the details don't matter much, it's common to use a simple ray cast from the center at t0 to the center at t1. Works reasonably well for fast moving objects that are at least kinda-sorta rotationally invariant. For two dynamic bodies flying at each other, you can test this "movement ray" of body A against the geometry of body B, and the movement ray of body B against the geometry of body A.

    One step up would be to use sphere sweeps. Sphere sweeps tend to be pretty fast; they're often only slightly more complicated than a ray test. Pick a sphere radius such that it mostly fills up the shape and then do the same thing as in the previous ray case.

    If you need more detail, you can use a linear sweep. A linear sweep ignores angular velocity but uses the full shape for testing. Notably, you can use a variant of GJK (or MPR, for that matter) for this: http://dtecta.com/papers/jgt04raycast.pdf

    If you want to include angular motion, things get trickier. One pretty brute forceish approach is to use conservative advancement based on distance queries. Based on the velocity and shape properties, you can estimate the maximum approaching velocity between two bodies, query the distance between the bodies (using algorithms like GJK or whatever else), and then step forward in time by distance / maximumApproachingVelocity. With appropriately conservative velocity estimates, this guarantees the body will never miss a collision, but it can also cause very high iteration counts in corner cases.

    You can move a lot faster if you allow the search to look forward a bit beyond potential impact times, turning it into more of a root finding operation. Something like this: https://box2d.org/files/ErinCatto_ContinuousCollision_GDC201...

    I use a combination of speculative contacts and then linear+angular sweeps where needed to avoid ghost collisions. Speculative contacts can handle many forms of high velocity use cases without sweeps- contact generation just has to be able to output reasonable negative depth (separated) contacts. The solver handles the rest. The sweeps use a sorta-kinda rootfinder like the Erin Catto presentation above, backed up by vectorized sampling of distance. A bit more here, though it's mainly written for users of the library: https://github.com/bepu/bepuphysics2/blob/master/Documentati...

MonoGame

Posts with mentions or reviews of MonoGame. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-11-11.
  • Not only Unity...
    53 projects | /r/opensourcegames | 11 Nov 2023
    https://github.com/MonoGame/MonoGame /
  • MonoGame VS kni - a user suggested alternative
    2 projects | 10 Oct 2023
  • OSS Game Engines are increasing their stars on GitHub due to Unity's missteps
    2 projects | news.ycombinator.com | 19 Sep 2023
    Yes, it is possible, but you need to use a game framework not a game engine.

    Example of a game framework: http://www.monogame.net.

  • Unity's Trap
    3 projects | news.ycombinator.com | 17 Sep 2023
    Monogame, though it doesn't do much hand-holding: https://github.com/MonoGame/MonoGame

    Webassembly support is spotty, though in progress AFAICT.

    Used by a few 2D games like Stsrdew Valley and Celeste.

  • Which tools should I use to create my game ?
    6 projects | /r/gamedev | 6 May 2023
    Some that I am aware of and that support at least Windows and Android are (Monogame)[https://www.monogame.net/], (Cocos2D)[https://www.cocos.com/en/cocos2d-x], (LÖVE)[https://love2d.org/]. But there are likely many more. Even more basic ones which are just another abstraction layer on top of SDL (like (Oxygine)[https://oxygine.org/]).
  • What mobile game engine to choose for a simple multiplateforme gacha game?
    4 projects | /r/GameDevelopment | 4 May 2023
    - https://www.monogame.net/
  • Celeste's Software
    3 projects | /r/celestegame | 27 Mar 2023
  • Miasma Devlog 0: The first 40 days
    2 projects | /r/devblogs | 13 Mar 2023
    Almost everywhere I've worked over the last few years is using Unity, Unreal, or React to develop titles, but I have always enjoyed the lower level no batteries included development style of the XNA framework which was popularized during the Xbox360 era. More recently the framework has been reborn and modernized as MonoGame, while maintaining the same feel and development style.
  • Senior software engineer - what game engine should I start with ?
    5 projects | /r/gamedev | 6 Mar 2023
    I have a similar profile, and I have tried many different engines/frameworks/libraries. Some thoughts: - ebiten, written in Go, is a very light game dev lib. I like Go, so writing "my own engine" with it was pretty fun (I have some libs for ebiten here). Mostly 2d. - Love2d is sort of the same thing, but written in C++, and scriptable in Lua. I absolutely love this level of abstraction, and this is probably the one I have been the most productive with (example here). Mostly 2d, but people have done 3d with it too. - Godot has a bright future, at least from my point of view. The 2D workflow is very very fast, much faster than Unity in my experience (you don't spend time waiting for stuff to recompile every time you edit a script, for starters), and they just released v4, which comes with insane improvements in 3D rendering. I have never delved into 3D, but from what I can see, it's on par with what Unity can produce these days. Plus, the founders have created a separate commercial entity to provide support for consoles (called W4games), because the open source licensing attached to Godot is not compatible with the NDAs involved in publishing for consoles - raylib and monogame might be interesting for you if you want to go old-school. They're both inspired by the same framework (XNA) and they work similarly. Also very close to the way Love2d does things, and a comparable level of abstraction. - Unity is slow. I honestly dislike it a lot, just for this reason. There's also a lot of "we've refactored this, and there's no docs yet, but you can also use this other system, and also the legacy one, and that one, or build your own based on these primitives" and it's hard when you're a beginner. If you know what you're doing I guess it's fine, or if you don't care, but as a software engineer, you will probably be like me and try to find the "best" solution to your problem, which is tiring and hard to do with Unity.
  • About game engines
    3 projects | /r/gamedev | 18 Jan 2023
    If you prefer a framework instead of an engine and editor they do exist, MonoGame is a popular one. I wouldn't recommend it unless you're doing it more as a hobby (in which case it's totally valid to do whatever suits you best), using engines with their editors and scripting languages is the industry standard.

What are some alternatives?

When comparing BEPUphysics and MonoGame you can also consider the following projects:

Raylib-cs - C# bindings for raylib, a simple and easy-to-use library to learn videogames programming

FNA - FNA - Accuracy-focused XNA4 reimplementation for open platforms

Stride Game Engine - Stride Game Engine (formerly Xenko)

JoltPhysics - A multi core friendly rigid body physics and collision detection library, written in C++, suitable for games and VR applications.

raylib - A simple and easy-to-use library to enjoy videogames programming

Nez - Nez is a free 2D focused framework that works with MonoGame and FNA

SkiaSharp - SkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library. It provides a comprehensive 2D API that can be used across mobile, server and desktop models to render images.

love - LÖVE is an awesome 2D game framework for Lua.

CocosSharp - CocosSharp is a C# implementation of the Cocos2D and Cocos3D APIs that runs on any platform where MonoGame runs.

UnrealCLR - Unreal Engine .NET 6 integration

Battle-Cats-Save-File-Editor - Battle Cats Save File Editor made in C# that requires root/rooted emulator and a PC