December 2013

2013 – Final posting – Dwelling in randomly generated mobile Dungeons

Another year has (almost) passed, and as with the previous years I’ll keep up the tradition of publishing a final posting before heading into 2014. From a personal point-of-view, 2013 wasn’t thad bad (though still far from perfect) like some of the years before. I still earn my money as a sofware developer using delphi and love my job, and recently I even bought the house I’ve been spending most of my 32 years in (though there is still a bit of renovation to be done, but the house itself is in a good shape).

As far as my personal programming stuff goes, those of you that follow my blog may have (hopefully) noticed that I moved away from Delphi and went over to Java, mainly because of mobile development for Android devices. I’ve been wanting to develop for smartphones and tablets for some time and the move was easier than I expected. It didn’t take long to get a gripe of the Java syntax, and together with Eclipse I’m pouring out lines of code like never before. The more I work with Java (and Eclipse), the more I realize how far behind Delphi has fallen. It’s sad to see that Embarcadero seems to focus on the wrong areas of Delphi, and instead of fixing their base and giving the community a free Delphi version they hold onto stuff like FireMonkey and decided to release a new Delphi version every 6 months. Though quick release cycles can be good, I don’t think they’re suited for such an expensive development tool. But well, if you take a look around the hobbyist community you’ll quickly notice that nobody cares about Delphi anymore. Especially for OpenGL development, people either moved to Lazarus and/or Free Pascal or (like me) moved over to another programming language. The sad thing about this is that communites I’ve used to be active an have gotten pretty quit over the past few years.

And no posting without any programming stuff! Since I’m totally not into that christmas and holiday stuff I had plenty of time for coding during the recent days, and so I decided to do something gaming / OpenGL related for Android. And therefore I ported the random dungeon generator I described in this article over to Java, and though it’s still in it’s very early stages, you can already walk around randomly generated dungeons on a mobile device.

dungeoncrawler_2013-12-29-204317 dungeoncrawler_2013-12-29-204526 dungeoncrawler_2013-12-29-204538

This is my first Java project that uses several different techniques. It’s based on OpenGL ES 2.0, uses different shaders for e.g. per-pixel lighting (which makes for easy flickering torches), a texture loader, a (yet simple) touchbased OpenGL GUI and much more. I don’t know if I’ll make it into a complete game, but I want to at least release a techdemo. I’ve got plenty of ideas and want to make heavy use of gestures for e.g. solving puzzles, making attacks, etc. I’m also not sure about the setting yet and still swaying between a more common theme (medieval, like the Eye of the Beholder-Series), something in the future (maybe a trapped cyborg in a futuristic factory) or something dark, psychologic and eerie in the vein of Trugbild. Maybe I’ll even open-source it 😉

And thus ends 2013, may 2014 bring forth more Android-related stuff (as long as Cthulhu won’t wake up from it’s eternal slumber cthulhu)

In addition to wishing all of my readers and friends a happy and healthy 2014 I’d like to dedicate this posting to a very special person that’s going through a hard time, seing that makes me pretty sad and it’s even harder not knowing how to really help 🙁

OpenGL ES Hardware Database Preview

It took (a bit) longer than expected, but I finally got the first preview of the online OpenGL ES Hardware Database online. I want this to be the match to the widely used OpenGL Hardware Database (filled by the glCapsViewer). Where the former is aimed at developing desktop applications with OpenGL, the later one is planned to be a helper for all developers planning on deploying OpenGL ES based applications, games or tools on the Android platform (other platforms that support OpenGL ES may follow in the future, the database design is flexible enough) that want to know what features are offered by the different devices on the market.

In addition to the pure OpenGL ES related information, like extensions, caps, texture formats etc. the database will also store device information (OS version, screen size, CPU), device features and available sensors along with their range and resolution. Especially the sensor information should proove valuable in case you want to wether your targeted devices support e.g. a gyroscopic sensor or not. The database is targeted around OpenGL ES 2.0 and above, as that’s the majority of devices currently out there.

The database is still a work in progress and several new features will be added over the coming days and weeks (like comparing reports), but any feedback on how to improve it or what features to add is welcome.

The android app will be release in the near future. It’s currently in alpha testing stage, but seems to run fine on a wide range of devices (at least the ones you see in the database 😉 ). No date yet on when it’ll make it’s way into the public, but since it’s running stable and everything is in place it shouldn’t be too far in the future.

As for the technical backgrounds :
The android app is written in JAVA (yes, I actually like working with a modern language and IDE, something Delphi has been lacking in the recent years) using Eclipse. I had it up and running with the new Android Developer Studio, but since that one is still a preview version I’ll stick with Eclipse for now. Though google’s developer studio seems to come along very nice.
I also made the switch from SVN to GIT with this project, and I’m pretty amazed by all the features that GIT has to offer and how much better suited it is for agile developement. Sure, the tools (especially on windows) are not as convenient as the ones for SVN, but the easy branching, rebasing and stashing stuff easily makes up for that.
The database uses MySQL, and I’ve used the free MySQL workbench to set it up (which is so much better then working with phpMyAdmin). Since I’ve gathered a lot of experience with (SQL) databases due to my current job, the database design for the OpenGL ES database is much better than the one backing up the old OpenGL database. So instead of letting a PHP script import the report’s xml into the database, it’s now done via a stored procedure using XPATH. Not only easier for me to maintain and extend, but also much faster.
And on the other hand the database design is also much more flexible, and adding new stuff and OpenGL ES versions (along with new caps) should be much easier. And you may also notice that the content is provided under a creative commons license.

But once the OpenGL ES database and it’s android app are out in the wild, I’ll get back to the OpenGL database to see what I can do in terms of performance and what features I can add to make it even more valuable to the OpenGL developer community.