Stellar Blitz Progress – Accelerators, particle effects, action packed racing!


The new logo

I have made significant progress this month in the development of Stellar Blitz. If you’re new to the devblog, Stellar Blitz is a mobile multiplayer racing game written in HTML5/JavaScript for the client and Node.js for the server.  As I mentioned in a previous post, the game design was originally a twin stick arena shooter but recently I’ve decided to change the game into an epic space racing game.


Game lobby

The transition has been going solid so far. Up to four players race for a star in real time online  multiplayer. Racers can go on accelerators to enhance their speed and get ahead of the competition. They can use their hubble powers to shoot down racers ahead and eliminate them from the race!

Programming racing mechanics has been interesting so far. Prior to development I had no clue how to implement a racing game and my first attempts were quite embarrassing. Now I’m starting to get a hang of the technical and design aspects of the racing genre. I’m also applying what I’ve learned in other projects about good use of particle effects. Particle effects really help a lot in giving a game a good feel. In Stellar Blitz I use particle effects for things like projectiles, backgrounds, and explosions. If programmed well they can save a lot of video memory which is critical on mobile devices because you don’t need a bunch of frames added to a sprite sheet.


Early gameplay

Since I’m using PIXI.js as my rendering engine I did a little search on Google to see if there’s any visual particle editors already out there. And what do you know, there is! PixiParticles is a pretty simple particle engine but it has fit my needs well. I actually like how light it is. I wasn’t looking for anything over-engineered and the editor works fine and loads/saves JSON files. Integrating it with my in house engine was trivial and it saved me a lot of time. I really wanted to work on the game and not spend a few days on a custom particle editor to do the exact same thing this project does.

Stellar Blitz is having solid progress and I’m starting to think it can go into an open beta before the year ends. Stay tuned to get the latest updates and release dates!

Experience with Godot Engine so far

About nine months ago I found an interesting post on /r/gamedev about the Godot Game Engine. It was dubbed as an open source 2D/3D game engine. I thought to myself “What makes it difference from the thousands of open source game engines that are left abandoned?”. As I read through Godot’s website my question was answered. Godot is not a one-trick pony.  Becoming productive in the engine did not take long, in fact, maybe it was two hours for me to learn the workflow and go through the documentation. As I worked with Godot I noticed the engine is really well thought out, because the engine was used to create many games by the original developers. This is great because Godot isn’t just a student project hacked up in a couple months, it has been used and tested for years in-house by Okam Studio.

So why am I using Godot for my next game?

Development Environment


The nearly all-in-one development environment that Godot provides is really impressive. The editor has a powerful animation tool for sprite sheet animation and cut out animations. I’m always surprised how many tools are built into the editor. The best thing about the editor is that it actually uses the engine to make the GUI and it’s really extendable. Making your own modifications to the editor  is stupidly easy because the API is the same as the one you use for your own game in Godot.

Visual Editor

Godot has an interesting idea of a scene graph. There are Nodes, which is the base object for games in Godot (think GameObject in Unity). Scenes are a collection of nodes, and what’s cool about Godot is that scenes can be instanced. When you get used to this workflow it feels really efficient and organized.



There’s no doubt that Godot has a smaller community than some of the more popular game engines. I didn’t jump on Godot as soon as I discovered it. I let the project simmer for a few months to see if the developers can stay active and improve it. I was pleasantly surprised at how much they improved the engine in less than four months. That’s when I knew the developers cared a lot about the project and the community was big on reporting bugs/issues.

Godot’s community may be small, but it’s active and extremely helpful. The lead developer is always open to merge pull requests and consider community feedback. I’ve made a couple of pull requests myself like fixing a couple bugs with the editor and adding functions. They usually get merged in no time. Godot really feels like a community effort, which ironically is rare in open source projects.


Godot’s 2D engine is truly impressive. It has shaders, 2D lighting, shadows, feature-packed Particle system, and Parallax layers. Everything feels extensible, and if I need more power I can always drop down to pure C++  which is great. Picking the right game engine for your game is hard, but for my next game I have found Godot to fit really well for my needs.


Transitioning Stellar Blitz into a racing game

Hey look, finally a blog post for Stellar Blitz!

What’s new? Everything.

The first implementation of Stellar Blitz was a multiplayer twin stick shooter for mobile devices. It was buggy nonetheless, but it kind of worked. You join a battle with up to 4 players around the world and you shoot their Hubbles. The prototype was fine to play but after a few months of taking a break from development while working on Stellar Alien’s REMIX update, Stellar Blitz didn’t exactly spark my creative drive.

Twin stick shooters are cool, but I don’t think they’re very suited for touch devices. I believe I’ve done a decent job in the past in making touch analog sticks work well but casual gamers still seem to have a lot of trouble with them.. That’s a problem because, in mobile game development your core audience is mainly casual gamers so you really have to cater to them if you want anyone to play your mobile game.

When I returned to Stellar Blitz development, I knew I wanted to change the game mechanics drastically. So I thought of making Stellar Blitz into a multiplayer racing game and so far I really like the idea. I have many ideas for competitive racing game design and this seems like the perfect project for me to implement those ideas. A racing game really makes sense for mobile rather than a twin stick shooter as well. The controls can be a bit more simplified, so it will be easier for casual gamers to understand initially. This doesn’t mean the gameplay will be dumbed down, but it will be easier for  casuals to get into and more competitive players will be able to find depth in the gameplay.

We’ll see how it goes but I think making Stellar Blitz into a multiplayer racing game is a great idea. I have been hacking on the networking code the past 48 hours and I think it will work out well.

Stay tuned!

Stellar Alien Hotfix v1.80

This week I published a new Stellar Alien update to all platforms (Google Play, App Store, Amazon). In this update a new tab to the pause screen was added to allow you to configure the game’s controller. I talk about this in detail in my last post. Otherwise It is mostly a hotfix for some bugs and polishing existing features.


Hotfix v1.7.3c:
-New control settings. Choose between the static or dynamic controller.
-Fix memory leaks
-Squash some bugs
-Nerf the difficulty of Level 3
-Fix crash


There have been some comments before about the difficulty of Level 3. I am trying to be cautious whenever I decide to make a level easier. I believe the early levels are very easy to complete but I have years of gaming experience. It’s important, especially for mobile game developers, to be able to step outside of their gaming experience and empathize with casual players. Casual players have not played hundreds of video games so some things in your level design that make sense to you will not make sense to casual players. There’s a weird balance you have to try to make, but it’s difficult when you’re trying to please everybody.

Recently a lot of Stellar Alien updates have been focused on squashing bugs. I’m doing this because I’d like the game to be at a very stable place before I start adding more levels and mechanics. Stay tuned!

Stellar Alien v1.7.1 – Progress

Hey there Earthlings. A new Stellar Alien update is in progress! Version 1.7.1 will consist of critical bug fixes and crashes on low-end mobile devices ( I just wish people would buy better devices :^) ). The update won’t just be bug fixes though. It will include some improvements to game experience such as new customization for the controls and dialogue system.


By default the movement controller is fixed in one place on the screen. With v1.7.1 you can use the “controls” settings to allow the controller to be placed automatically wherever you touch the screen. Just check the box for “dynamic controller placement” and it will save the setting. You can change the setting anytime you want by pausing the game and hitting the “controls” tab in the pause menu. Additional customization to the controller, such as the controller size, will be implemented in this update as well.

Overall I’m excited to improve the usablity in Stellar Alien and allow players to customize the game’s experience to fit their needs. Stay tuned for more updates on the progress of Stellar Alien version 1.7.1!

A friendly reminder to start thinking about ECMAScript 6

I must admit I have quite a love-hate relationship with JavaScript. Some days I’m enjoying its ridiculous flexibility while other days I am annoyed by its tolerance for any silly mistake I may make. Although JavaScript has some serious design warts, the ECMAScript 6 standard is here to improve upon the language. I welcome the new features and I am glad to hear that the standard will be finalized sometime this summer of 2015.

As you may know, it will be sometime before everyone will able to write straight up ES6 but luckily we have transpilers like Babel and Traceur to compile ES6 code into ES5.1 (the current standard JavaScript derives from). This is really exciting as you can write code using almost all of the new ES6 features today and it will still work on all browsers. These transpilers are pretty great and I think we’ll be using them for a while until ES6 gets spread around. Therefore, I encourage anyone hoping to improve their JS code base to consider giving ES6 a try. I use Babel personally, along with Gulp as my build system. It’s seriously sweet and it allows me to write more expressive code than I could in ES5.1.

Okay, so if I haven’t convinced you to check out ES6 yet then I’ll overview some of my favorite new features. I won’t go over every single one, just my personal favorites. A better overview of the many new features in ES6 can be found here.

Classes (Syntax Sugar)

This probably many people’s favorite addition to the standard and it is mine as well. ES6 introduces a new syntax for creating classes, basically a blueprint for object instances. Now don’t worry, this is just syntax sugar. You still have the flexibility and efficiency of prototypes, this new syntax just comes in handy when you just want to make a dang class!

Here’s an example:

ECMAScript 5.1

ECMAScript 6


I think the standard did a great job with the class syntax sugar. It’s very simple and the syntax is thankfully not too verbose. This should make many code bases more expressive.

Fat arrow functions

Another great feature is the new arrow function. JavaScript these days is always dealing with callbacks and anonymous functions everywhere. The fat arrow is here to save some key strokes and keep the code looking pretty. Now this isn’t just syntax sugar though, an arrow function has a lexical this. In other words, it captures the this of the context of which the arrow function was created in. This should hopefully save a few headaches of dealing with this and we should see less var self = this; in code bases.



let and const (Block scoping and Constants)

This is also a great addition to the language. Traditionally you would create a new variable in JavaScript with the var keyword. The variable will then be scoped to the function. let, however, creates a variable in block scope. This is neat because now we can bust out variables in if statements or loops without worrying about them being modified by something outside of the code block. I also find let allows for much more readable code than var. It’s worth noting that let is NOT hoisted to the top of the function, unlike variables created by the var keyword.

Additionally, we have the const keyword. This will make a constant value that cannot be changed. That’s pretty sweet and should give us programmers less headaches.



ECMAScript 6 turned out to be a great revision for JavaScript and we can all start developing in it today using transpilers. Many large websites have already started using it, so it sounds to me it’s ready for prime time. At the very least, get some time in the weekend and try it out for yourself!

Updates – Stellar Alien/Combat – Licensing Expo 2015

If you haven’t heard the stellar news, Stellar Alien was recently updated on Google Play and the Amazon App Store. This was a much needed update as there are tons of new and juicy improvements to the overall game. Finally, iOS devices should (hopefully) be receiving this same update in the next week as it is awaiting review from Apple to be updated on the App Store.

A tale of debugging an annoying launch crash.

It took sometime to get the game ready for iOS because it was crashing on launch and it was only crashing on iOS devices – not Android. So this was a frustrating problem to debug but, luckily I reviewed the crash logs and the cause of the crash was because I messed something up in Ludei’s Cloud Compiler. The app was compiled to include Facebook Integration and while I had provided a Facebook App ID for Android, I did not do the same for iOS. Ouch! And that caused me weeks of misery trying to determine what was causing the crash. I don’t think the application should crash due to the absence of an App ID, so I hope Ludei finds a better way to indicate such an error rather than the application crashing. CocoonJS continues to get better with each version and Ludei’s customer support is fantastic. I suspect inconveniences like this will cease as the platform continues to mature.

Stellar Combat still exists

In other news, I am still hacking on Stellar Combat but it is indeed a difficult beast to tame. Network programming is difficult.  I’m not sure how well I developed the client code. I’m fairly confident in the server code base, for I have not had to touch that code in months (I say if you haven’t had to touch code in a while to fix bugs/improvements, it’s probably decent code). In contrast to the client code, which I have refactored multiple times and continue to struggle to get right. This project is starting to get to the point where I ask “Is JavaScript right for this?”. But that’s a fine question to ask really. It means this is challenging me as a programmer and that’s interesting.

Licensing Expo 2015 – I’ve got a booth!


Finally, much of my time recently has been occupied by the upcoming Licensing Expo 2015 in Las Vegas, Nevada. Yup, Starbli’s got a booth there. V193, write it down! I’m going to be there, and so will Starbli and all of his friends. It’s really exciting because I am hoping to expand Stellar Alien, its world, and all of its characters into different forms. A grand effort was put into developing every character’s personality in Stellar Alien, and making its massive universe super cool and unique. I’ve got an insane bucket list of the kind of things I’d like to license Stellar Alien to. If you’re attending the Licensing Expo 2015, come by the booth, say “Hi”, and check out all the neat stuff that will be there. T shirts, tablet giveaways, animated shorts for Stellar Alien, and other new info on the amazing universe that Stellar Alien is set in. Can’t wait to attend!


Thinking about controls for mobile games

Why is designing controls for a mobile game so darn difficult? Compared to designing controls for a PC game, touch controls are very limited. On the PC, you have two methods of interactivity:  a Keyboard and a Mouse. An English keyboard will have at least 28 keys to choose from, and standard mouse will have 3 buttons. This allows tons of possibility for control schemes, which makes the PC a very attractive platform for sophisticated games.

And then there’s mobile devices. iPhones and popular Android devices do not include a keyboard, only a multi touch screen. You can touch and swipe. That’s about it and I find it very diffcult to design games with such a limited control scheme. If you take a look at the app stores charts, you’d assume other app developers are having the same issue. How many infinite runners and “match four of something” games do you see? Either developers are having a hard time coming up with intuitive controls on touch devices, or somebody creative hasn’t came up with a new control scheme.

So when the time came to redesign the controls for my first game Stellar Alien, it was a challenge. Stellar Alien is not an infinite runner and the play can move in all directions, so the controls can’t be a “one touch to do one action”. There’s also a shooter game mechanic in some levels, so there will be times where they would prefer to use two thumbs for play. The first thing that comes to mind  is why not mimic analog stick controls? You can move in all directions, you can easily add more than one sticks. The problem with them is that many users don’t like them and casual mobile gamers won’t “get them”.

The prominent complaint is that the on-screen stick controls take up too much screen space therefore players can’t see the game view very well. That’s a legitimate issue, especially on mobile where you don’t have much screen space (although a trend in mobile devices right now is so to make the phones bigger, so that’s nice). So a solution a developer would have for that complaint is to make graphics for the stick controls transparent. But I question why should we show a graphic at all for touch stick controls? It’s just more visual clutter and it’s distracting. I’ve seen developers argue that players should see a graphic for the controls so that they’re aware where to touch, and I agree with that, but when a user is using the controls there’s no need to show a graphic. They’re engaged in the gameplay, so they would want to see the game view in full.

In Stellar Alien, the controller graphic hides when the player engages in game play

With that said, I decided for Stellar Alien I would mimic analog stick controls and show a graphic when the controls are not being touched, to give the player a visual on where the controls are located on the screen. Then, when the controls are active I hide the controller graphic completely, so they can enjoy the game view in full. I like this control implementation, and I think the most subtle of things can improve a game’s controls. The controls in Stellar Alien are still far from perfect, and I still think developers can come up with better control schemes for touch devices. But for now, I am satisfised.

Mobile game developers, how did you implement controls in your game? Share your knowledge and leave a comment.

Stellar Alien REMIX: The Biggest Update Yet

Hey all,

The new Stellar Alien update is here, and this “remix” is better than the original! After two months of revisioning the game from scratch with a completely new engine, music, art, animation, and even added some story dialogue in there! Really happy with how this update turned out, as I got more than I expected done.

Download the remix at Google Play



Everything’s new, but here’s a list that show’s just BIG changes:

The BIG Changes:
-New and fresh high quality graphics!
-New menu designs
-New mission system
-Revamped level designs
-Story Dialogue
-Smooth, revamped controls!
-Introduces Roxas, Starbli’s mentor
-New Music / Sound Effects
Again, these are only the BIG changes, the whole game is changed! Enjoy. Your feedback is appreciated.