Android OpenGL ES 2.0 : VBO’s for the win

I am currently working on an Android Virtual Reality framework, project, well not sure what it is.  I have been trying to get different types of objects to render, use different types of devices for control / movement and I did manage to release one game that uses it (I made this in a 12 hour GameJam).

Can’t Get Out

I have been looking at ways to improve performance, before any changes I could only render 1000 cubes at 1 FPS! Ar BALLS

I followed this post on StackOverFlow and that got me to about 5 FPS!

I then read about using Vertex Buffer Objects (VBO’s) and followed this tutorial!

People, this is the way to go, I did not use Stride but I still got 64,000 cubes at 30fps!  Now that’s an improvement!

The sad thing is, this tutorial is from a book I own that I have still not read 🙁  Next missing, read the flipping book!

OpenGL ES 2 for Android: A Quick-Start Guide



New Android Project : VR 3D framework

So Virtual Reality has been one of my favourite subjects since I saw Lawnmover man as a kid.  I have made some very strange things in the past to try and make my own hardware / software for VR.  Oh boy where the Amiga days good fun!

So a few months ago, I made a simple split-screen 3D demo for iOS that used the Duo gamer controller, this can be found here:

I will be updating that soon to support normal iOS7 controllers so that Apple will accept it.  The Duo was added as a hack and never had a SDK 🙁

However,  due to the awesome news of Google Cardboard (VR via Cardboard!) and Oculus Rift working with Samsung to create a VR headset (uses your Note 4).  I thought it would be a good idea to start making my own one, similar to the iOS one but uses Android.

It can be found here:

I have just added support for the Moga game controller.

On a side note, this is worth a read

Getting VR to Run on Android Is “Hell,” Oculus’ Carmack Says





So, on the 2nd of May we had our second Compsoft Game Jam.  I use the term loosely as we don’t follow any format but to have fun.

The first Game Jam we had was based on creating a game with 24 hours based on a randomly picked theme.  This was mega fun and spawned (from me) Disjointed Tunnels (Android) and Stupid Chicken (iOS) which are both released.  Other people made some awesome games on different platforms.  We decided 24 hours was a little hard work straight after work (yes we go to work before these) and decided the next one was 12 hours.

The other changes to this one was that instead of starting new projects (the main point of a Game Jam), most of us would continue on projects that we are passionate about.

There where 8 of us this time (from 5),  listed below are the projects

  • Hack24 (mine) is a 3D MMO game in an endless world where you hack buildings and aim to be top hacker.
  • Augmented Reality draughts (new).
  • Nought & Crosses but in a multiple grid system like Sudoku (new)
  • A full blown network / game engine thats massively scaleable.
  • A flappy birds clone
  • A postman frenzy type game (new)
  • A spaceship shooter game
  • Web based space shooter / resource game

As you can see, some of these projects are quite large which leads me on to my next post about Hack24.

The general feedback was that people really enjoyed it, I think in some ways it lacked the special feeling of creating something completely new based on a random theme however when someone is passionate about a project, they really churn out the code.




Disjointed Tunnels is on Ouya!

I received some good news today, my game Disjointed Tunnels was accepted to the Ouya games store.
It took 2 attempts to get in due to me not handling exiting the game properly when using the Ouya controller and I needed to remove the help that was aimed at phones. The general process and feedback was very good.

The game is completely free.
Disjointed Tunnels

Mindsensors RCX Multiplexer controlled via Android and RobotC

As you may be aware I have been building a Robot called Wheeler out of old parts (old grey and RCX 9V motors etc).  I was hoping to have it finished over the Christmas break but had hit a small issue with driving the wheels with the new weight of the body.  Anyway what I managed to get up and running is the top half of Wheeer and the controller which is a Android phone (Dell Streak).

Mindsensors RCX Multiplexer

I was utterly impressed with the RCX Multiplexer and using Xanders driver suite (check BotBench) how fast I was up and running.  I wish there was a way to run the RCX Multiplexer off the NXT power supply but thats a small thing compared to how useful it is.  I wish I had 3 more of them so that I could control 16 RCX motors!

Android NXT Remote Control

So to try and work out how to control the NXT via Android, I stumbled across the NXT Remote Control project which is free to download.  This uses Lego’s Direct Commands to control the 3 motor ports on the NXT.  This means it bypasses your own code and you have no control over it.  However, what I managed to do is reduce it down to a very simple program that sends messages to the NXT which you can deal with in your own program.  In RobotC, it sends messages that are compatible with the MessageParam command and so you can send a message ID and 2 params to the NXT and deal with them in RobotC anyway you want to.

Code will be available soon once I have tidied it up 🙂