Lesson Learned : Sometimes pretty code is slower code!

Interesting lesson learned: I had written my own 3D engine for Hack24, however came across this book https://www.packtpub.com/game-development/building-3d-game-libgdx, the code was extremely well structured and I was about to bin my own framework and use this one as it was a bit further along.

I thought I would run a few performance tests, just to be on the safe side. Glad I did:
Theirs: 400 objects rendered: 22FPS
Mine: 4608 objects rendered: 15FPS

Hack24 V2 started :)

So, it may end up being called something else but I have now started writing a new (well kinda) game.  The last couple of weeks I have been bug fixing and improving the LibGDX framework / demo app that I made a few years ago.  Code can be found here: https://github.com/burf2000/BurfEngine

Yes, it has a terrible name!  Anyway it was my attempt at a simple game like Minecraft where you can place and remove cubes.  I added things like chunking, gravity, and culling.  It also has a database and network layer, custom collision code and works on iOS, Android, and Desktop.  It has been converted to Kotlin, which I am really liking 🙂

Now, after a few long nights of fixing, that code is being parked and anyone can use it!  I now plan to rip it apart and use the best bits to form the engine for Hack24 (v2).  Made aim is to make a 3D game that has the same look and feel as Hack24 that’s cross-platform and easy to develop further.

I will focus on a MVP first, which should not take too long, I will try and rewrite the server in NodeJS (Well KotlinJS).

So why am I doing this?  A few reasons:

I really liked Hack24 but it had some performance issues and really needs rewriting to use OpenGL VBO / VAO.  It also makes sense to make it cross-platform while I am at it.  I don’t fancy doing it in Unity and really want to learn Kotlin for work (which I can for LibGDX).  It would be nice if people enjoy playing it too, so I hope to make it bigger with more content 🙂

Watch this space!

 

 

New version of Hack24 submitted!

I May of just solved a programming issue that’s been bugging me for many months. The only way I thought I could get round it was a complete rewrite of the 3D engine for Hack24. However it seems you can get around the massive performance with Hack24 by having multiple threads. Yes seems obvious however this is OpenGL world and that is completely different, the items have to created in the main context!

The fix worked, so a new version of Hack24 has been submitted (with other bug fixes!)

New version of Virtual Worlds Submitted for Android

Just a small update, the following features, bugs have been fixed.

  • Added feature to turn VR mode off
  • Added feature so you no longer need a game controller
  • Fixed issue with be able to place objects in other peoples worlds
  • Fixed a few crashes!

Please check out

Virtual Worlds

SHDR : Online OpenGL Shader Editor

I had to post about this amazing tool I found, now when I am writing my 3D games, I basically pray every time I play with a shader in case I brake it.

I know the basics but using either xCode or Android Studio (now has a tool), there is no syntax highlighting or easy way to see errors!

SHDR allows you to paste in your fragment and vertex shader and tells indicates any issues, and renders the results if it can!

BRILLIANT!

 

Lets release pre-alpha software! Yeah

So, tonight I decided just to punt out Virtual Worlds.  Probably a silly move but nothing has been happening lately with it due to work stuff, a 3 week long cough, 2 birthdays, Christmas and home life!

I will soon know how bad it is!

I managed to do some useful bug fixes, tested it on a couple of controllers etc.  More will come soon!

What does it have?

  • Main world has little huts which is your door way to the other worlds
  • It has some built in help to tell you what buttons do what.
  • It has some nice new textures but sadly very limiting at the moment
  • You can see other players in the game, pretty poor graphics but that will be fixed very soon
  • You can create your own little minecraft type world 🙂 though very basic!

Whats next?

  • Once I see it in the Google Store, I will test it works 🙂 (releases always seem to cause some odd bug)
  • I need to add some more textures ASAP
  • A way for people to report bugs
  • A way for people to talk to each other!

Google Play Link

Virtual Worlds update 0.1

So, Virtual Worlds, hmm I had planned to release that by the end of the month however a few things have come up!  Man Flu has not helped me code, the snot just goes everywhere!

I have also had a few other things on!

Excuses over, where are we?

  • Started getting a better set of textures together thanks to Gary
  • Made a very rough simple player model which maybe be replaced by a OBJ file
  • Fixed lots of bugs
  • Created a control screen showing controls etc
  • Improved the navigation throughout the app
  • Implemented some speaking help notifications
  • Got Google Cloud Messaging working however not sure why I need it now.
  • Moved to Live server!

Left to do by 1st December

  • Improve player object
  • Finish texture pack off
  • Make scalable zone object
  • Fix any controller issues
  • Allow user interaction maybe using GCM
  • Allow players to fly in zones if they own them to help build them
  • TEST

Wish me luck!

Virtual Worlds : Progress so far

What? a? Virtual Worlds? What a sh*t name?  Your probably right but its just better than Android 3D mmo thingy!

Progress so far?  I would of liked to give it more time but some times I am not in the mood, sometimes I can’t get out of the mood which also leads to lack of sleep!  Last night I had beer! (not a usual thing sadly)

What can you do so far?

  • Register, login
  • Navigate the main world, which will allow you to enter player zones and create your own zones.
  • You can see other players (as cubes) move about
  • Once in your own zone, you can place cubes to make structures (see below) this has been vastly improved.
  • You can climb your structures to make bigger structures (I had to make a stair case to to make the archway)
  • You can enter delete mode in your zone and delete things with ease
  • Started adding back in the voice engine, sound effects etc
  • There are now system text messages to show you important information
  • Players and zones have text above them showing their username

device-2014-11-15-231021

 

 

 

 

 

 

 

Whats next

So to get it to the point where I can alpha test it I would like to do the follow

  • Create a 3D model for players as they are currently cubes
  • Make a 3D object for a zone, this should grow as the zone gets more popular / better in some way
  • Find a wider range of textures snow, grass, wood, etc
  • Create a control help screen to list gamepad controls
  • Make all commands voice activated (may get dropped)
  • Allow you to send messages to users (may be text or voice)
  • Create some sort of reason to play the game, prices, score boards etc.
  • Implement GCM (push notifications)

The aim is to have a demo zone thats setup for xmas when I release alpha:)

Off to bed!

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!

http://stackoverflow.com/questions/24825896/android-opengl-2-0-low-fps

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

http://www.learnopengles.com/android-lesson-seven-an-introduction-to-vertex-buffer-objects-vbos/

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