A brand new game
for Windows, Linux, Mac, HTML5, 3DS Homebrew and more
Making Monkey Do..
10th March, 2013
Last night I was asked how I got Monkey to do all the things that I managed to make it do.
I tried to describe it as best as I could, but was already wrapped up in bed, trying to remember it all, whilst only holding an iPad! Not an easy job.
I suggested to @RetroRusty that he waits until the morning, when I can better write a nice big (BIG) waffling (WAFFLING!) blog-post about it all.
This be that!
So, you've paid for Monkey, installed it, opened it up, and gone.. "Hmmm..."
See, when you first install Monkey, it doesn't actually DO everything.
If you click on the "Target" dropdown box, and expect to see a huge sprawling mass of available target systems, you'll be as massively dissapointed as I was.
No.. The Monkey isn't going to do everything. You have to put in the initial hard work, to get everything flowing nicely, so that Monkey can do his business.
Targets on Windows
HTML5This is Monkey's default primary target, and should require no further installation.
It oughta work "out of the box". If it doesn't, you're probably trying to use Monkey on a 386 or something.
Code goes in the box. User hits F5. Bingo!
Browser games FTW. ..except they don't do quick recolouring, and the audio's a bit shit. but.. you know.. they sort of work!!
For the most part, I've found HTML5 to be great for testing games, and doing quick compiles.
Other targets are noticably slower, so aren't as great when you're doing those annoying "Nope, he needs to be about 2 pixels to the left" sort of tweaks that require lots and lots of recompiling!
Don't forget, though, to shove in a bunch of #If TARGET="html5" preprocessors, to strip out colours, or things will run horribly slowly!
GLFWAt the time of Monkey Installation, I was running a 100% clean brand-new installation of Windows 7 on a brand new laptop, so everything was installed from scratch.
GLFW support suggests that you need to install MSBuild.... I haven't installed MSBuild, so I don't really know what it's doing, to be honest..
I have a feeling that the MSBuild stuff is more to do with XNA. I haven't yet bothered to tackle XNA targets, so I've left that out.
I DID install MinGW, though.
MinGW is listed as being "needed for STDCPP", but installing it seems to bring up GLFW support, too, so do that!
STDCPPAs suggested above, installing MinGW enables STDCPP support, too, although I don't really know what I'm doing with that! STDCPP support allows you to make none-graphical "things" with Monkey, but that's not why I'm here, so I'm ignoring it.
AndroidThis was a tricky beast to get going!
First up, head into Monkeybinconfig.winnt.txt, and get ready to tweak as you go. Annoyingly, some of these things install into version-numbered sodding directories, so if you install a version that's a week newer than the version Mark installed, you'll need to change the feckin' number on the directory before it works.
Which arsehole thought that was a good idea!?
Mark might release new versions of Monkey every other day, but at least he leaves all the files in the same damn place!!
Grab it, run it, let it install where it wants to, then find it, grab it's annoyingly numbered directory name, and stick it into the config file under the ANT_PATH section.
2. Nnnnnngh.. Java
...The less said about having to install Java, the better..
Mark makes the following note : "Make sure to install the 32 bit JDK, even on 64 bit Windows!"
If you're running on 64-bit Windows, be aware that Java 32-bit will then install into the (x86) Program Files folder, so once installed, be sure you edit the config file to point directly to that 32-bit Program Files folder, or things might get twitchy..
JDK_PATH="crogram Files (x86)Javajdk1.7.0_11"
3. Android SDK
The main bulky bit.
Handily, this doesn't do a fucking thing for you. Gee.. Thanks!!
It just sort of plonks itself down.
I have it plonked in the following location..
There's a c:android-sdk-windowsSDK Manager.exe, and a c:android-sdk-windowseclipse folder, too.
If you've plonked it there, too, you've ALSO done it wrong!
*two thumbs up for explaining that one, guys*
You'll need to tweak the config file from "c:android-sdk-windows" to "c:android-sdk-windowssdk"
4. Make a note of your config file's changes. If you install a fresh updated version of Monkey, you'll need to put your changes back in.
Close up, Reboot..because Windows LOVES a reboot!
Once all is back (a seventeen hour wait, based on standard Windows Reboot times) Monkey should happily give you the GLFW and Android targets in it's drop down menu.
Targets on MacOSX
iOSObviously, for iOS, you're going to need a Mac first!
Step one. Get a Mac! Mac Minis are relatively cheap (compared to other Macs!) and DO work well enough to do iOS Development. I've been using a bog-standard, unexpanded, bottom-of-the-barrel Mac Mini for the past three years. Great little beast, still works wonderfully!
Step 1. Install XCode and it's iOS Dev stuff. You can either pay for this on the Mac AppStore, or if you're a fully paid iOS Dev, you'll be able to get it for free from the Dev Portal.
Step 2. Run Monkey. That's it.
It "Just Works"
Mac GLFWHmm.. I need to work on this. You might've noticed my Monkey Games don't yet have Mac versions. There's a reason for that.
They ain't workin'!
I'm not sure why. I haven't bothered to look into it, yet.
Once I do, I'll probably update this post with an explanation.
AndroidIt's possible to get Android Dev working on your Mac, but since I got it working on Windows first, I haven't actually bothered to look into how it all works. Sorry!
As you can probably tell, I'm spending much more time dev'ing on my Windows Laptop than I am, using my Mac!
Alternative TargetsOther than those I've got working, Monkey can additionally target the following..
FlashI haven't bothered with this because.. well.. it's Flash, isn't it!
The HTML5 target works well enough, and I see no real need to use Flash anymore.
XNAI imagine that XNA means "Xbox Live!", or maybe it means "Windows Phone", or perhaps it means "Runs shit on Windows, once the player finishes installing the 67,000 updates"
I haven't looked into it, to be honest.
Xbox Live support might be fun to play with, though. hmmm..
PlayStation MobileHaven't a clue what this is. It's probably as interesting as it sounds, but I haven't owned a Sony gaming system since my original Playstation, which unceremoniously just stopped working for no reason whatsoever.
.. but this is no time to gripe about dodgy tech!
I haven't got one, I don't know anyone who does have one, so I won't be making games for one.
I do know lots of folk who have Windows systems, iDevices, and lately Android Things, too.. so that's why I primarily target those.