Monday, May 28, 2018

55.) XNA Developer's Survival Kit Expanded



Is it possible to created a game engine like Unity or Unreal in XNA/ MonoGame? How long would it take to create?

       In short, the answers is yes, however the vast majority will say given enough talent, number of coders, time and money. These are all variables that will have a major impact on the time-frame it would take to create an engine "like or equivalent to Unreal or Unity". There are other variables and factors that could also pro-long the development of such an engine as life can get in the way. There are tons of research on the web that says it could take 5 years or more. With the help of this awesome developer's survival kit, you will be able to create an epic game engine in a fraction of both that time and costs.

       If you are thinking about creating your own game engine and you utilize XNA and or MonoGame, I highly recommend the XDSK2 Expanded (XNA Developer's Survival Kit Expanded). This page contains a list of links to tools that can be used by game developers to develop their own games or game engines, without having to spend weeks and weeks searching over the internet for specific libraries, algorithms and other resources needed to develop a game. There are a host of third party libraries as well. One of the advantages of using a platform like XNA or MonoGame is that there is a large enough developer community providing lots of libraries out there to help you do cool and unique things with it. That way you can leverage these libraries to solve your technical problems, and focus more on making your game fun.

       This kit was originally created by Nelson Hurst who has re-uploaded the original XDSK2 on his blog. So this page is essentially a combination of Nexlon's research and mine. If you are looking for tools to help you save time and money with your game projects, even if you don't use XNA or MonoGame, you will still find this page very helpful!  I will gradually continue to update the XDSK2 Expanded page and add more as I discover them over time. If you have any additional libraries and or resources to help ease the burden of creating games and or game engines in XNA and MonoGame, please share them by commenting below. In this blog post, I also present several libraries that you may find useful.


PHYSICS
       One of the most difficult parts of a modern game is the physics engine. Even more than graphics, this is one of the advantages of having a 2D game, since 2D physics is simpler than 3D physics. It also means that there are likely to be a lot of free physics libraries out there (unlike the 3D engines, which want some serious money). My preferred 2D physics engine is called Farseer Physics.

Farseer Physics
       Created by Jeff Weber and lead by Ian Qvist, the Farseer Physics Engine (now changed to Velcro Physics) is an open source high performance 2D collision detection system with realistic physics responses. It was originally based off the XNA port of Box2D. This download includes source code, samples and documentation. It also includes the source to Velcro Physics. Check out the samples inside the Projects folder. The Simple Samples projects were created by Mads Laumann. The TestBed project was ported by Marcel Härte to MonoGame 3.6. Also, check out the Black Hole Gunner game located in the projects folder. Black Hole Gunner was a game created by Libor Vilimek, Jan Švehla, and Vojtěch Ruschka. The game was made at the end of year 2010 at Czech Technical University (ČVUT) in school subject "Computer games and Animations". The game is based on the Farseer Engine, built in XNA 4.0, Visual Studio. Black Hole Gunner was made within 2-5 months with no game-experience creation.

Farseer has a ton of features!

  • Continuous collision detection (with time of impact solver)
  • Contact callbacks: begin, end, pre-solve, post-solve
  • Convex and concave polygons and circles.
  • Multiple shapes per body
  • Dynamic tree and quad tree broadphase
  • Fast broadphase AABB queries and raycasts
  • Collision groups and categories
  • Sleep management
  • Friction and restitution
  • Stable stacking with a linear-time solver
  • Revolute, prismatic, distance, pulley, gear, mouse joint, and other joint types
  • Joint limits and joint motors
  • Controllers (gravity, force generators)
  • Tools to decompose concave polygons, find convex hulls and boolean operations
  • Factories to simplify the creation of bodies


No comments:

Post a Comment