Tuesday 10 January 2017

Happy newyear

Whow, I can't believe it's months since I last posted here... So much has happened since!

First and foremost, Happy Newyear! 2016 was a weird year but in contrast to what the media would love us to believe, it wasn't a bad year. Sure some shitty things happened but at the same time it was an incredibly promising year.

For me one thing stood out which is making me look very much forward to the developments this year and that is Virtual Reality. I've had the pleasure of being involved in organising a little meetup for Sydney bound independent game developers and game enthusiasts and several of the regulars are making headway into working with VR. As a result I've been privileged to try most of the tech currently available on the market and eventually ended up buying a PSVR for myself.

On my little hobby project nothing much has happened in the last months. Simply put I got hung up on an age old issue. I love building engine code, but all the stuff around it can get in the way. For me that was the gui code that I'll eventually need to build around the engine to give the user the ability to interact with what is on screen.

Then suddenly a friend told me about Godot, I checked it out, and it's kept me busy since.

Godot is an open source game engine originally build as a really nice 2D engine and later on getting 3D support. In recent months one of the core developers has used a Google grand (if I understand correctly) to completely revamp the 3D engine to use some of the newer techniques.

Now I've stayed away from most of the engines out there so far like Unreal and Unity. I've seen others work with game maker and decide that isn't anywhere near what I want. And I was charmed by Ogre which is also open source and seems very capable but feels incredibly bloated. I just like to do my own thing as I've found that to be an interesting way to learn.

Looking at Godot however I was very impressed by the design philosophy behind it. It's a C++ engine with a pythonesce scripting language build on top of it. All the heavy lifting is done in C++ but when building games you write your game code in the scripting language. This is nothing new and done by many game engines, what charmed me was the node based structure in which you both build the GUI and the game. It very much looked like the core structure I was going for with my own experimentations.
Another part of that I really enjoyed is that their GUI in which you build Godot based games is actually build with those same components and to me that is a testament to how robust the engine is.

Since then I've been playing around making small sample programs to learn the basics of the engine and have started doing some C++ work contributing to the core program by fixing issues and making small enhancements. It's been a lot of fun to learn the internals of the engine that way and as an extra bonus, forcing me to use proper ways to work as a team with git.

The most fun however so far is teaming up with my friend Ian Munsie and using his Vive to add an OpenVR module to Godot. Its pretty much a prototype at this point but we're nearly at a point where the basic features work and we can start making some simple sample game levels to explore things like teleport locomotion, platforming, etc.

I'll probably redo the code at some point as we went down some wrong paths a few times but thats all about the learning experience and with the new renderer now in early pre-alpha stages this could be an interesting platform to build OpenVR games with.