Mech Mech Mech Mech Mech

Friday, November 28, 2014

Physics in M5


So M5 (Mech Mech Mech Mech Mech) is using the following to make this work.

MonoGame

MonoGame is the graphics/game engine that M5 uses. It handles the main program flow, including game loops, the content, and the graphics device.

Jitter Physics

Jitter Physics is M5's physics engine. I chose this engine because of its simplicity of use. So far it works great! Jitter also allows separation of collision detection from the physics world which means M5 will be able to have a high resolution damage model without needing to handle high amounts of physical constraints.

Artemis Entity Framework

Artemis is the Entity Component System M5 uses to structure and update game objects. Read up on it here: Artemis Entity Framework

Working Together

M5 uses Artemis to tie together Jitter and MonoGame. It does this with components and systems that define entity data and behavior.

Current Components

  • Camera - Camera projection matrix.
  • Collidable - Rigid Body data
  • Placeable - World transform matrix
  • Visible - Model data

Current Systems

  • Camera System - Uses Camera and Peaceable components to set the view and projection matrices.
  • Collision System - Updates the Placeable component based on the Collidable component. (This is done for the Visual System's sake.)
  • Visual System - Uses the Placeable component, Visual Component, and globally accessible view and projection matrices to render a model to the screen.
P.S. I'm really bad at writing right now. I would much rather structure my blog posts as lists of changes because it doesn't require much critical thinking to do so.

Monday, November 10, 2014

Extra Development and Mech Mech Mech Mech Mech

Extra Development and Mech Mech Mech Mech Mech

I'm a developer at heart with few projects to show for it, many ideas, and little time. This blog is the first step of making my first big project: Mech Mech Mech Mech Mech (or M5).

M5 is my answer to all the mech "sims" I've seen to date including big ones like the recent Free-To-Play Mechwarrior Online. I'm tired of half-done attempts at the full mech experience.

Planned Features:

- Customizeable Mech Systems (Choose your power source, actuators, weapons, and armor)
- Customizeable Mech Movement (Tweak your walk cycle or implement melee maneuvers)
- System Power Simulation (Powerplant produces power while weapons, actuators, and other systems use it)
- Internal Mass Simulation (Everything on the mech is mass at specific locations, including ammunition and fuel).
- Analog Damage Model (Internal components change behavior based on accrued damage and damage location. Damaging an actuator might reduce it's operating range, speed, or efficiency based on the location and type of damage.
- Heat Management (Heat is tracked and accrued based on realistic models. A flame thrower applies heat to armor and the heat takes time to transfer to internals.
-Weapon Recoil (It takes a certain impulse to accelerate lead to a certain speed, that impulse is applied in reverse to the weapon's components.)
-Weapon Impact (Same as recoil but on the receiving end also taking into account projectile characteristics and impact angle.)
-Any other feature that I think are cool.

I'm pretty confident that I can implement all of these features. With a BS for Mechanical Engineering and a nice textbook library for reference, I ought to have little issues with the math. A lot of the coding for this is going to be tedious for me more than anything.

I will have to do a lot of research when it comes time for networking.