I was hoping to have an update a little earlier than this, but decided to hold off and throw together at least a bit of content with the update. I’ve added a slew of joints and controllers into the Farseer engine for Blitzmax (which I think I’ll just start referring to as just Farseer.BMX to save my poor little fingers). Below is a list of stuff I’ve added since the initial post:
- Angle Limit Joints (featured in the youtube video below) – this allows you to do some interesting joint behaviors that could potentially allow you to create a 2D ragdoll of sorts with limb constraints.
- Fixed Angle Limit Joints – Same as above except instead of linking two objects together, only one is used and it’s angle is limited.
- Fixed Angle Joints – Allows you to make an object always point in a certain direction. You can think of it as a way to disable ‘rotation’ for a particular object, and it will always be set at some angle from some anchor regardless of where it is in the world.
- Angle Springs – You can link two bodies and they will attempt to align themselves to a certain angle using spring physics to give a bouncy effect.
- Interactive Angle Joints (untested)
- Circular Interpolator (untested)
- Pin Joint – This one allows you to choose an anchor on two bodies and a distance, and the two physics bodies will always stay that distance apart, but still tumble and interact with other bodies realistically.
- Slider Joint – Same concept as a ‘Pin Joint’ except now instead of a concrete distance apart there is a minimum distance and a maximum distance these two objects will stay within.
- Brute Force Collider – Just another broad phase collider you can use instead of the default one. I may dig up a forum post by Jeff and others that describes the advantages/disadvantages among the different colliders you can choose from in Farseer.
- Some getters/setters for the physics debug viewer class – Makes the debugger class a little easier to use.
- Fixed a few minor bugs
Anyway, the video I posted isn’t that impressive but shows you that Farseer makes it pretty easy to setup different types of constraints and scenarios with just a few classes. There’s no new demo application to download for this update as I’m pretty close to finishing up the rest of the port, and would rather just wrap up a few more demos and get the code out there for others to use. Hopefully I’ll have more in a week or so!
Very promising portage !
Waiting to see the engine in action inside my BlitzMax ^^
Keep on the good work 🙂
Ye me toom looks alot more promising then some of the other physics engines, Id just like to ask though… Do you think that it would be possible to do a port over to BlitzMax or Blitz3D from C++ on the library on this site?
http://www.alecrivers.com/physical/overview.htm
Its basically just a physics engine with a built in damage system that is pretty good and would be a good feature to have in future games…
Leonard
Almost there, just a few more classes and fine tuning :).
Leonard, that library looks interesting, but I wouldn’t be the person to port/wrap it for Blitzmax. I’m porting Farseer because I saw use for it for my own projects in Blitzmax, and figured the rest of the community could benefit from it if I took the port all the way and added some polish to it.
A dynamic damage system would be rather challenging to implement in 2D real-time both in regards to rendering and physics. There isn’t much stopping you from changing the geometry in Farseer on the fly, but I haven’t really done any practical tests to see if this is feasible to do in real-time. Also, the ‘constructor’ methods aren’t as heavily optimized as the run-time methods for speed.
Hi, i just downloaded the BlitzMAX demo, and the farseer.zip, and followed the install instructions. But when i try to run the demo it fails and says
”
Compile Error
Can’t find interface for module ‘aco.farseerphysics’
”
What to do?
Probably i am just thick.
I extracted the farseerModule.zip to the mod folder. Please help! This looks like great fun.