News Mar 20: R.U.B.E v1.7 released. Instanciable objects!
Feb 21: Added RUBE sample loader for Cocos2d-X v3.4.
Feb 17: Funny Fists released in iOS App store and Google Play store. (YouTube video)
May 25: R.U.B.E v1.6 released. Samplers!
May 12: "On-the-fly" resource updating for Cocos2d-x
Apr 22: New blog post: Inverted pendulum control
Apr 7: On-screen logging class for Cocos2d-x
Mar 22: Downhill Supreme 2 released for iOS and Android
Jan 2: YouTube video: Making soft-body wheels in RUBE
Oct 6: Check out Supplyfront RTS, my 7dRTS entry continued.
Sep 26: R.U.B.E v1.5 released. Customizable item labels, snap-to-grid, export filtering, full-text help search.
Sep 18: Added RUBE sample loader for Cocos2d-X.
Sep 16: Updated RUBE sample loader for Cocos2d v2.
Aug 12: RUBE loader for Nape by Zeh Fernando
Aug 7: Added RUBE sample loader for SFML.
Jul 30: Try my MiniLD 7dRTS entry.
Jul 24: Added physics-driven particles tutorial.
Jul 20: New blog post: rendering solid ground (as in Downhill Supreme)
Jul 18: R.U.B.E v1.4 released. Command-line interface for batch jobs, hotkeys for scripts, better script management.
May 22: Downhill Supreme is out now! (iOS)
Apr 2: R.U.B.E v1.3 released. Collision bitplane editing, Cocos2d-iphone loader, usability improvements.
Mar 11: R.U.B.E v1.2 released. Now supports weld, friction, motor joints and automatic image reloading.
Mar 10: RUBE loader for libGDX by Tim Scott
Jan 28: New blog post: a functional combustion engine!
Jan 22: New blog post: wind tunnel
Jan 20: Added explosions tutorial.
Jan 16: Added buoyancy tutorial.
Jan 16: AndEngine sample project to load RUBE scene by Bart Hirst
Jan 14: R.U.B.E v1.1 released, now supports custom properties.
Jan 1: All basic tutorials are now available in Chinese at Huge thankyou to @OhCoder!
Dec 23: Discussion forums have been set up
Dec 4: R.U.B.E v1.0 is ready !
Dec 2: YouTube video: Box2D pendulum clock
Nov 26: New blog post: rocket platform thingy
Nov 25: Video of R.U.B.E scenes in Chipmunk.
Nov 23: A sample project to load R.U.B.E scenes into Chipmunk physics! Details here.
Nov 14: An XCode sample project to load R.U.B.E scenes on iOS is now available. Details here.
Nov 11: A Java version of b2dJson is now available, based on JBox2D.
Nov 6: A Javascript version of b2dJson based on box2dweb is now available. Demo here!
Nov 2: The full specification of the JSON format used by b2dJson can be found here: b2dJson file structure
Oct 28: YouTube video: 2-minute ragdoll in R.U.B.E Box2D editor
Sep 29: YouTube video: R.U.B.E Box2D editor usage example
Created: August 28 2011


I finally got started on the joints topic, or should I say topics. It looks like there is enough content to cover that doing a detailed explanation will require a topic for each. I think I'll keep it to revolute and prismatic for now.

In the meantime I have been a bit slack lately, at least compared to the preceding 'tens weeks', but I have made some progress with the ragdoll boxing concept. I moved the project over to iPhone to try out control ideas and test the connection performance. I had ideas of making the player able to crouch and move back and forwards, and do different types of punches or kicks, and stand up if they fell over. This gradually got whittled down to a much smaller set of controls, but I think for the better.

The standing up idea, and then the kicks were the first things to go, due to their complexity and low ROE (return on effort). Next to go was the crouching and moving around - the player will always stand (this is boxing after all) and will automatically move to keep within a certain range of the opponent. Finally, I realised that attaching a mouse joint to the players fist and letting the user move it directly was the ideal way to control this, making it perfectly simple and intuitive in one fell swoop. Although this means there will not be much skill or strategy involved in winning, it will be accessible to a broader range of people. Think of it as the Wii strategy... I once went to a talk by Satoru Iwata where he stated that a major goal of the Wii design was to attract more people who did not think of themselves as gamers - even the wiimote was purposely made to resemble a TV remote control (which even your grandma uses right?) instead of a typical game controller.

Anyway, the control system I have now couldn't be simpler, just use one finger to move one fist. It did involve quite a bit of effort to restrict the mouse joint from toppling the player over, while still keeping it free to move within arm's length. Here is the latest build. This is being recorded from the simulator by using glReadPixels to dump every third frame into a bmp file - that's why the motion is a bit slow and stuttery - on the device the movement is perfectly fluid. I am playing the left fighter remotely from my iPod touch (the red dot shows the remote finger location), and the right fighter using the mouse on the simulator, so it's a bit hard to get a realistic looking fight going...

Finding and making connections with NSNetService turned out to be very easy. With the very small amount of data going over the wire at this stage, everything seems cool but I still have to tackle the problem of keeping the simulation in sync across both devices. Since the network will always be local, I am thinking the RTS style lock-step send-user-input-only method should be fast enough.