A brand new game
for Windows, Linux, Mac, HTML5, 3DS Homebrew and more
20th October, 2015
I spent most of yesterday trying to get a lot of broken things to work, but nothing seemed to happen.
Still no progress on the NextGen-PlayJam device, which is still crashing like a crazy driver.
Still no progress on getting all of my audio to play on the LastGen-PlayJam device, which seems to ignore every 10th-or-so PlaySound command.
Still no progress on getting the controls working on my Archos Gamepad, which is driving me up the wall.
Android wasn't designed to be this flamin' difficult.
It was supposed to be "One OS, Job done", but hardware manufacturers are cutting corners left, right and centre, and it's making the entire experience a total pain in the arse.
I should probably stop ranting about this, and chop all my games down to a manageable version.
But one look at the Invisible Munky level in SpikeDislike3, and it all becomes far too apparent that the Android edition is getting the crap-end of development, as far as quality's concerned.
Hell, even the HTML version looks better!
19th October, 2015
The new FlarePlay (PlayJam's GameStick replacement) thing is apparently having issues, and crashing a LOT with my games.
I'm hoping to fix them up during a second pass through the 42 games, and for now am simply uploading as-is until I can fix them all up. But at the moment it's looking like I'll need to have a GameStick version and a FlarePlay version of all my games, which is a bit of a pain in the arse, if I'm honest!
The whole point of the fixups was that these would be "Android with a Controller" editions, and not have to be split any further. Finding such bizarre issues, now, is leading to an awful lot more editions of the game floating about the place.
Trying to solve this issue took a good number of hours, yesterday, and I've had to leave it half-broken whilst I focus on all the other things that need doing, like the daily Pixelart, and the daily OUYA Upload, and maybe spending some Xmassy time working on Beta Collexion.
So much to do...
18th October, 2015
Given that I've got so much on my plate, what with having to fix up the 42 OUYA games, and get NeonPlat's Cosmic Adventure done, you'd probably not expect me to start a new project right now.
Last night I took Alpha Collexion, stripped out all the games and graphics, and settled down to do it all again.
Work on Beta Collexion has begun, and I'm halfway through Game #1.
In reality, if I want to get everything ready for Dec 1st, I should be ready to start on Game #2, so I'm certainly need to speed things up a little.
As it was, though, it felt good to get some actual proper game coding done.
Note : The Lego-ish brick is my "temporary/all purpose" sprite!
My Coding schedule is now, roughly..
Morning : Pixelart doodle, upload, and Daily Blog.
Afternoon : Recompile a broken OUYA game and upload to both OUYA and GameStick.
Evening : Make a game for the Advent Collection (Beta Collexion).
Which leaves me with practically 0 time for NeonPlat, which has once again been put on the backburner.
By December, I'll have finished doing the OUYA thing, and (hopefully!!) have Beta Collexion released, so time should be freed up to finish off NeonPlat properly.
Why do I give myself all these tasks!?
... Boredom, mostly!
17th October, 2015
First thing's first, please be aware that I'm not compiling with sales in mind.
With sales/IAPs, you'll need to do all manner of extra stuff like managing purchasable items and ensuring your code handles them correctly.
This might break if you have IAPs!!! Untested!!!
1. Select OUYA target, and compile.
2. Head into build_folder/android_ouya/res/drawable-xhdpi
Here you'll find the regular icon, and the OUYA Dashboard icon.
Replace/doodle as necessary.
3. Compile again.
4. Head into build_folder/android_ouya/bin/
5. Create a temp/ folder in here, and copy MonkeyGame-debug.apk into that folder.
6. Head into there, and open MonkeyGame-debug.apk with a decent archive tool. (WinRAR is my tool of choice)
From there, delete the META-INF folder.
7. Grab this.. : KeyShite.bat
Open the .bat into notepad.
Change the filenames of the Java exes and Android exes to wherever you've installed them.
Be sure you've got Java v6 installed, as when I tried it with anything above that, it didn't work correctly.
(You can install multiple editions of Java!!)
There's a few references to "c:android-sdk-windowsmyKeystore.keystore" .. The file doesn't exist yet, and will be created by the tools, so make sure it's a viable location.
You'll also need easy access to the files (this .bat and the .keystore) for backup purposes, too.
8. Copy KeyShite.bat to the temp folder (Leave the original somewhere safe, and handy, probably in c:/android-sdk-windows/ or such) because each time you recompile, it'll delete the temp folder!)
9. Run the KeyShite.bat and follow the instructions.
A. Give the game a Project ID, WITH NO SPACES, regular Ascii safe for a Filename, and make a note for future reference.
B. Give your keystore a password.
C. Fill in the details.
For Name, anything seems to go..
For Name of Organisational Unit, I had no idea wtf this was, so left it blank.
For Name of Organisation, you'll want your main domain name, or something similar.
For City, anything goes. .. BUT.. I've had issues with spaces. Remove all spaces!
For State or Province, same as above, remove all spaces.
For Two Letter Country Code, I use GB for "Great Britain"..
D. You'll want to retype your password another three times, and then it should
After all of that, it should (*should*) go through and sign and rezip the thing, leaving you with four .apk files, and an out.txt
Open the out.txt and check that it's created valid certificates (every 4th line or so should say "Certificate is valid")
10. Assuming all went well, "MonkeyGame-debug.apk" or "YourGamesTitle-signed-zipped.apk" should be your working .apk for uploading and whatnot.
If all didn't go well, delete the temp folder completely and head back step 5.
Any future recompile, you'll have to do everything again from step 5.
Once all is done, be sure to grab "c:android-sdk-windowsmyKeystore.keystore" (or wherever you set it to be) and KEEP IT BACKED UP.
This should be in your daily backup folder, or however else you handle backups.
ALL of your games certificates will be added into this keystore file, and it'll grow and grow, but if you ever need to update any of the games, you WILL need to have this at hand, so that it uses the same certificate in future.
As always, test before uploading!!
You might need to delete the previous edition from your OUYA, as it'll have a new signature.
WARNING : Your game's controller code will probably not be compatible with the new Razer Forge, at this point.
I'm currently working on a replacement "Android-NewYA/" target, which features an overhauled amount of controller code.. But it's not done yet!
17th October, 2015
Last night I tried combining multiple controllers into one, which I mostly assumed would fail spectacularly, and indeed it did!
The experiment was part of my efforts to get that bloomin' Archos Gamepad to work, but annoyingly trying to combine controllers 1 and 2 (Where controller 1 is the digital buttons, and controller 2 is for some reason the analogue sticks) only resulted in me being given lots of fake controller inputs, leading to the analogue sticks doing all manner of crazy things.
I'm now up to Day 4 of trying to get everything working nicely, and I'm starting to consider the fact that I should give up trying to get my Archos Gamepad to work at all.
The truth is, the new code works fine on OUYA, Forge and GameStick. I'm assuming this means it also works elsewhere, but that Archos Gamepad incompatibility is doing my head in.
Fact : In the world of Android, when something works on YOUR device, don't assume you've fixed it!
16th October, 2015
Tearing my hair out over the Android Controller stuff.
I can *nearly* get it working, but it's still playing up on that Archos Gamepad.
I've now managed to somehow get the Archos' controller to control THREE players simultaneously, which is entirely the wrong bloomin' way 'round!!
Today I'll probably strip everything back to basics and redo-from-start. That usually helps..
No new music, no new game stuff, no nothing. I've been super-focussed on the controller code.
And getting nowhere.
Note : I *could* just ignore the Archos Gamepad, but if my code is breaking on ONE Android device, then it could happen anywhere. I have a whole host of controller based devices on-hand, for testing, and I'm determined that one single compilation will work on all of them!!!
Android Fragmentation be damned!!!!
15th October, 2015
Another day fiddling with the base code for my NewYA Monkey-X target.
Most of the issues that the FlarePlay is bringing up appear to be related to the fact that the devkit they're using is leaving multitasking games running in the background, thus it all eventually clogs up.
The actual retail unit instead does what OUYA/GameStick normally does, and closes all apps before launching the next.
As a result, *most* of the problems they were having seem to vanish when tested on a real retail unit.
But I still need to fix a few things up. For starters, I've added a much needed "Only play the sound effect if the sound effect has actually loaded" check into the PlaySFX command, so that anything that's running slowly isn't being caught out by things not having loaded yet.
(Although, the FlarePlay DevKit was only "running slowly" because it was also running a bunch of other stuff in the background. Once the tester closed all background apps, the game loaded much quicker, which is how the games will run on the retail unit.. hopefully!!!)
In addition to that, I have to sort out my controller code.. .. again..
The games work (mostly) fine for one player, but I'll soon need to tackle those few Multiplayer games that I've made.
JNKBombers, Neon Bike Championships and NeonPlat Extreme all feature multiplayer modes, and at the moment, None-OUYA devices are stuck with only one controller in my games.
Or rather, you can connect extra controllers, but they all seem to act as player 1!
I need to fix that.
I made a start, last night, but when I tested it on my Archos GamePad, the internal controller ended up being split into two!
Analogue controls were controlling player 1, but dpad and face buttons were controlling player 3!
... Which is weird, to say the least..
I'll be continuing to work on this for the next day or two, I imagine..
14th October, 2015
I've never had to properly debug an Android device, before, so yesterday's attempts were new ground for me.
Usually when one of my games break, I can easily repeat the break, and figure out exactly why it's happening, but feedback from PlayJam over my games crashing on their latest device, have had me somewhat baffled.
There doesn't seem to be a specific point where they're crashing, or rather, there's no reason for them to be crashing where they are, as other Android devices carry on through without having any problems in those same areas.
It's probably going to take a few days of sending various .apks to the PlayJam folks until I can figure out exactly what's going on with the thing, so pretty much everything else is being slowed down even further.
One day, I'd like to get back to doing NeonPlat's Cosmic Adventure!!!
(And no music, either!! Been busy!!!)
13th October, 2015
Getting close to the end of my first run through all the OUYA games.
Only (Only?!) another 15 or so games to go, and we'll have a complete OUYA collection.
So far there's been no major issues, but since I'm nearing the end of the list, there are a few kinks that need ironed out.
For starters, I need to stress test my multiplayer code.
JNKBombers, Neon Bike Challenge and NeonPlat Extreme all include varying degrees of Multiplayer interaction.
Previously, if a certain controller failed to work correctly, I could give people a list of working controllers, as I knew they'd be playing it on an OUYA where those things usually worked..
Now, I need to make things even more sturdy, since the device they're playing on could be any number of different things.
Currently, my code on GameStick is ONLY working for Player One, and that's no good at all.
Once I've figured that out, I then need to create a bunch of new levels for Sheep Goes Right, and pad it out a little to make it seem a tad more complete.
I'll also try my hand at JNKPlat level editing, but .. no promises, there.
It's all coming together, nicely.
.. And then I need to go through them all over again, for the sake of the new PlayJam device, where none of them seem to be bloomin' well working at all. Grrr..
Meanwhile, I made another choon!
12th October, 2015
Wasn't in much of a coding mood, last night, so ended up doing a bit more music, instead.
I also spent an hour and a half watching the Stargate SG1 two parter, Mobius, although I'm not entirely sure why!
I was actually in the mood to watch Continuum, but Continuum wasn't on Netflix and I couldn't be bothered pulling out the laptop, and piddling around with those old-fashioned DVD things.
.. I really oughta backup all my DVDs to my Network Drive, some day. Hmm...
Which reminds me, I still haven't got around to watching all the commentaries on the Stargate:Atlantis box set, yet. ... Again, mostly because I can't be bothered faffing about with DVDs.
So, instead, I just watched Mobius on Netflix, and that was enough to quench my Stargate thirst for the day.
Sundays are lazy days!
Meanwhile, I made another choon!
I appear to be in Musical Mode, this week...
11th October, 2015
Yesterday was spent re-recompiling a couple of the new OUYA batch. I stupidly keep forgetting to tweak certain things, even though I made myself a checklist.
Things like "It still says (O) or (A) on the quit screen", through to oddities like forgetting to turn the music back on, and other quirky bits and pieces.
Thankfully, the PlayJam review team are all over things like that, and will give each game a good going through, looking for such oddities.
With a few guiding pokes and prods, I've found that I'm now being even more picky about my own stuff, so am learning to triple-check all manner of things before uploading.
It has, of course, taken it's toll on the speed of my uploads, but should ensure that I only need to do each one once!
Meanwhile, I opted to try my hand at some Choonage, last night, and the result is somewhat interesting.