Monkey2v1.1.06 now available!

Hello everone!

I have just uploaded a prebuilt binary release of Monkey2 V1.1.06 to here:

This is mainly a ‘first pass’ over various problems and issues with the new 3d stuff, which has included a few big, breaking changes (note that mojo3d is still in it’s infancy and there may be more) in addition to various bugfixes and and feature additions.

The breaking changes include…

Mojo3d (and only mojo3d, not monkey.math or std.geom) now uses degrees instead of radians for angular units. This makes it easier to visualize angles when intializing entity rotations and so on ‘by hand’, which is the most common usage of angles when using mojo3d.

Entity properties and methods now default to ‘world space’. For example, Entity.Position now returns an entity’s position in world space, and Entity.LocalPosition must be used to get it’s position in local space. The rationale here is that game logic is primarily concerned with world space coordinates, so these should be easier to use.

I have split RigidBody into StaticBody, DynamicBody and KinematicBody subclasses, all of which extend RigidBody, but each with a simpler interface that features only the relevant methods. I will probably do the same thing to Camera and Light at some point.

As for additions…

I have added a bunch of new properties (eg: Entity.Rx for entity rotation around x axis, Entity.LocalRx etc) and methods (eg: Entity.PointAt) to the Entity class via a set of class extensions (more to come). I have also moved some of the old Entity properties/methods into extensions in order to clean up the core entity source file a bit. This has worked really well, the ‘core’ entity class now only contains a handful of members for dealing with the ‘tricky bits’. This also means many Entity members are now docced in the (new) ‘extensions’ section of the mojo3d docs. I eventually plan to link classes to extensions in the docs, but for now extension docs are separate from class docs.

The physics World class now has RayCast and ConvexSweep methods (still very WIP) that appear to work really well (thanks bullet!). In particular, I have managed to use the convex sweep to emulate Blitz3D style sliding ‘FPS’ collisions, only with capsules instead of spheres. You can in fact pass any ConvexCollider to ConvexSweep (Sphere, Capsule, Cylinder, More?) and it should just work. Being able to use capsules and cylinders means more realistic player shapes of course.

Currently, it works very much the way Blitz3D’s sliding collision worked, and therefore suffers from similar limitations, eg: ‘step size’ limitations, unintentional sliding down slopes etc. But the exciting thing IMO is that it’s written *in* monkey2 so can be tweaked to behave however you want it to! I do intend to improve on it quite soon so that mojo3d will include a useful quake style collision system.

Have a look at modules/mojo3d-physics/test/fpsthing.monkey2 to see b3d style sliding collisions in action, with the original b3d castle model no less! I have tried it with an actual quake level, but I can’t include that in monkey2 due to licensing issues.

I also spent a bit of time on an IAP module for monkey2. Tony from Playniax sort of forced my hand here by actually writing a mobile game. This has been theoretically possible for some time now, but very few people seem to have even tested the mobile stuff, let alone tried to do something serious with it, so it was actually kind of a shock!

The game itself looks really cool, check it out here:

IAP should be ready in a few weeks. It will be a paid module available via for 29.00.

(And thank you to the user who sent a donation to cover the ios app store fee!).

Anyway, my plans now for the rest of the year are roughly:

* More work on 3d: point light shadows, terrain material, terrain engine, usable animator, physics etc.

* More work on reflection, especially selective reflection. Also, an EditObject for mojox. The combination of the 2 will enable some very cool stuff I think.

* More work on docs, with the goal of eventually publishing a monkey2 ebook.

Ok, not exactly a roadmap but better than nothing?


User comments
therevills says:

Top stuff!

I’ll be among one of the first to buy the IAP module (as with the Admob module when it was released) 🙂

Playniax says:

Thanks for the update!

Who’s playing Revengestar here? I think I should make a video on how it’s done 😉

Anyway, another ‘mobile’ game ( Dumbot ) is on it’s way, probably a couple of weeks so fingers crossed on having IAP.

it was actually kind of a shock

That is me, shocker of worlds 🙂 Actually I am shocked I appear to be the first. To be honest, Monkey2 is giving me more fun and creativity as Monkey1. It just does everything right although some biased people don’t seem to agree with me…

I have to find time to dive in 3D!

Xaron says:

Nice stuff! Appreciate your work and thanks for adding IAP!

papgar says:

I feel dumb asking but where can one find the mojo3d bananas ?

DruggedBunny says:

@papgar: There are ‘tests’ folders within the various mojo3d* module folders.


Difference says:


I will buy IAP as soon as it is out.




peterigz says:

Great stuff, looking forward to getting into it!

CopperCircle says:

Great stuff and Playniax it would be cool to have a tutorial on publishing a Monkey 2 build on mobile, it the signing process for Android different?