Development Software

Analysing Google Analytics for Android: Quick Notes on Setup and Configuration File

GA for Android

There is an official Google Analytics SDK for Android. Google provides plenty of documentations and examples on setting things up and getting GA going. A lot of these information are spread across different pages and places so for Android GA new comers or someone who hasn’t used GA for awhile (me), it can be confusing to get data start showing on the Analytics reporting pages.

Here are some quick notes on using (and not using) the JSON configuration file.

Development Software Utility

Overwatch Player Log


Overwatch Player Log
Overwatch Player Log

Today marks the first release of Overwatch Player Log. It’s a little utility program that allows you to record your favorite (or not!) players that you have met in Overwatch!

Development Software

Qt Iconic Woes

Recently I was working on a new desktop app for my new favorite game Overwatch. I got to the stage where I decided to add application icons to it.

After going through the trouble of creating the icon and adding it into the project, I compiled and had the new icon working on Windows pretty quick. Next, I moved to my Macbook and tested the new icon there as well but for the love of god the new icon would not show! Even after a new qmake, clean and rebuild…

Turns out I had to completely remove the app package itself then do another rebuild and voila! it’s there!

Timmmm from stackoverflow also had the same issue and discovered the same solution a few years ago.

Development Learning OpenGL Log

Learning OpenGL. Log 3

This post is part of a series of logs of my journey in learning OpenGL (or as some say, modern OpenGL).


I’ve started an other log, dedicated for the engine project, so I won’t talk about it any more here unless it’s very cool or related.

Today I worked with the glm library a bit more and wrote a TransformationMatrix class.

A very simple class. The name is a bit deceiving. The entire class is actually compose of 4 glm::mat4 objects. 3 for the basic transformations, and the final one being the product of the other 3. The comments are a bit incomplete but you can probably tell what the member functions do already. There are 3 setter methods, for scaling, translation and rotation. There are also two getter methods for getting the final transformation matrix.

What interesting here is that, at the moment the final transformation matrix is only evaluated when it needs to be re-evaluated. Calling any of the setter methods will not trigger the evaluation, but they will m_Evaluated to false. When the getter methods are called. They will re-evaluate the final transformation matrix only if it’s been previous modified.

There are no methods such as TranslateFromCurrentPos or RotateFromCurrentAngle at the moment because I believed those should be implemented in a entity class which will compose one or multiple TransformationMatrix in the render component. This will allow me to implement higher level movement stuff on top while keeping the matrix class lightweight and encapsulated.

Here’s the cpp part of the class:

Of course. The class is incomplete. I will overload some operators for matrix multiplication and what not. At the moment I have to call “GetGLMMatrix()” to pass the matrix to my ShaderProgram class. I will need to add support for this new class into my shader code.

I will begin work on a camera class next, once I’m up to date with this week’s lab work.

Project Alpha Dev Log

Project Alpha. Log 0

This is the first, in what will be a series of log on my journey of developing a game engine (or something akin to that) in my spare time.


I’ve mentioned here and there that I’ve been working on a game engine, and I’ve finally decided to have a log specific for it because I’ve been mentioning it a lot in my Learning OpenGL Log  lately. Which is kind of off topic.  Having a log will allow me to eventually look back and wow myself. Seeing how far I’ve come.

The term “engine”, might be a bit overkill. Right  now, the word itself  in the game industry is pretty much an acronym to massive frameworks and game development tool kits like Unity, Unreal, CryEngine etc etc. They are software developed by teams consists of tens, if not, hundreds of developers each with a specific role.  Since I’m pretty much a one man team right now. I’m just trying to have fun while learning to develop great software and eventually, have something in my folio for when I graduate. Not to mention, it’s a real motivation and sounds epic when you’re coding a “game engine”.

The developer from ShiningRockSoftware, of whom who is also a one man team, is a huge inspiration for me. Another two group that’s also been very inspiring are the developers for Stone Hearth and Risk of Rain.

Personally, I don’t have much development experience or background. I’ve only started learning and gotten serious at about a year or two ago. It will be interesting as time move forward.

Besides building the engine. I will of course use it to develop a few games that I’ve had in mind for quite a while now. One is a 2D side scroller shooter game, and another which is something sort of like CubeWorld. My initial goal was to build an 2D game engine for developing the 2D side scroller shooter, but since I’ve started doing an 3D Interactive Graphics unit this semester. I’ve gotten a bit more ambitious.

Development started back in June July this year when I had my mid year break. It was quite slow at the start because I didn’t know what I was doing. I still am. It’s been chugging along quite nicely albeit a bit slow, but progress is steady. I’ve got the basic game loop operational.There’s a basic Entity model and management system. Of which will probably require a rewrite soon. There’s an event system for handling and passing system events. There’s also a prototype message system for engine sub-system wide communication.  Which will probably be expanded and exposed to be game specific. And since I’m doing a 3D graphics unit. There will be lots of OpenGL render system codes getting baked in over the semester.

The current plan is to begin development work on the 2D side scroller game when the semester is overall, and have a playable prototype or alpha build before next semester begins. All in all, I’m quite excited!

Hopefully the coming logs will be more technical, and less chitchats about nothing.

Until next time..