Siralim 3: User Interface

Siralim has always been a complex game, and with these complexities comes a major hurdle for me as a game developer: designing a user interface that provides players with adequate information to play the game to its fullest potential while maintaining ease-of-use. It’s taken me some practice, but thankfully, Siralim 3 has a much more accessible user interface than its predecessors.

I’ll start by saying that no single user interface is going to make everyone happy, especially with a game like Siralim. We need to keep in mind that players of all ages and gaming experiences will try this game (you’d be surprised at how many players are over the age of 60), so while you might want the informational equivalent of a Wiki available to you at every point in the game, I don’t think that’s necessarily what Siralim needs. There must be a balance to provide players with as much information as possible, but it has to be presented in a way that isn’t overwhelming. That’s why, for example, I will never add access to the game’s library to the battle menu. There’s always going to be a more elegant solution instead of that – one of which you’ll find toward the bottom of this post.

The goal of any user interface designer is to minimize the number of “nested menus” that players need to sort through in order to get where they want to be. For example, how many buttons do you need to press to equip a creature with an artifact? How many buttons do you need to press to attack an enemy in battle? For obvious reasons, the fewer times a player needs to press a button, the better.

Aesthetically, I still want to maintain the old-school NES/SNES user interface style of a black background with white text. After all, Siralim is meant to remind you of those games. I don’t think it’s appropriate for a classic-inspired game to have a decorated interface for no apparent reason. So no, there still won’t be any scantily clad succubi peeking out from behind your creatures’ health bars like you’ll find in a game like Diablo 3. It’s just not that kind of game.

Let’s start with the very first screen you’ll see when you start the game and get past the Thylacine Studios logo.

I know, it doesn’t take a genius to figure out such a simple control scheme, but isn’t this infinitely better-looking than the primitive white-on-black screens found in Siralim and Siralim 2? This is the first game element that any player sees, and I think the old one had an immediate, negative psychological effect on a lot of players that made them say to themselves, “Damn, this game is cheaply made”.

The biggest change to the user interface is the main in-game menu, so we’ll discuss that next. Let’s take a look at a few screenshots.

Excuse the weird look of the castle – it’s just a chopped up version of Siralim 2’s castle right now, but it’ll be entirely different soon enough. Anyway, this is the first thing you’ll see when you press Q to open the menu. Not much has changed here, but you’ll notice that the resources are now presented a bit more consistently than before. In addition, when you choose any of these menu options, instead of another menu popping out to the right of the main one, the options will simply change in the original menu instead. Here’s what happens when I choose “Character”:

Immediately, with one less press of the button than before, you have some quick access to your character’s information. You can scroll up and down using the W and S keys as before, but you don’t have to press E again – the panels on the right simply change as you “hover over” one of the menu options.

Here’s a better, animated example using the “Creatures” menu:

The Library interface is now sorted much better as well. Now, each library book has been categorized as either a “List” or a “Guide”. Lists include things like the creature bestiary, the spells you’ve discovered, and your breeding recipes. Guides are informational and serve as a reminder of how certain game mechanics work.

One of the most commonly-requested features is to allow players to view detailed information about their creatures and enemies in battle. Therefore, in Siralim 3, the “Inspect” command is now a lot more useful:

This new feature allows you to view the stats, traits (yes, even the temporary ones you can sometimes acquire mid-battle), artifacts, spell gems, and many other things about any creature in battle. You’ll also notice that when I targeted the Yeti, there’s a + next to the “Inspect” text. This means that, since the Berserker Fiend (Chaos) is inspecting the Chillbreeze Yeti (Sorcery), it’ll deal extra damage to it. There’s a + next to all the command text, including attacking and casting spells. That way, it’ll be easier for you to choose the best target based on the enemy’s class. Similarly, you’ll see a “-” sign next to the text if your creature’s attack will deal less damage due to a class weakness.

Which gaming platform makes developers the most money?

In previous posts, I discussed what it’s like to develop and port games for Windows, Mac, Linux, iOS, Android, PlayStation 4, and PlayStation Vita. Clearly, some platforms were much more difficult to develop for than others. But does the revenue earned from iOS and the PlayStation systems offset this frustration? In this post, we’ll take a look at how much money each platform makes for Thylacine Studios. Keep in mind that these values are very unlikely to be indicative of every company in the market – after all, we produce very niche games which probably appeal to a much different market than others.

These numbers are based on our most lucrative game, Siralim 2.

Windows (Steam)

Siralim 2 for Windows, distributed on Steam, accounts for the majority of our sales at 58%. This shouldn’t be at all surprising considering Windows is the most popular operating system. There’s really not much to say about Windows – it’s easy to develop for, and is the most lucrative. If I had to pick only one platform to support, it would be Windows.

Most revenue comes from sales – most notably the Steam Winter Sale as well as those that I run on my own. Most other Steam-driven sales aren’t very useful – for example, I’ve only sold a couple hundred copies of Siralim 2 during the Steam Autumn Sale. Not only is there a lot of competition with so many games on Steam now, but most people are definitely holding out for the Winter Sale which will inevitably have lower prices for all games across the board.

It’s also interesting to note that none of my games have ever been featured on Steam. Despite having higher sales and more positive reviews than other games (Siralim 2 has 94% positive reviews), we can’t seem to find our way to the front page during flash sales or other sales. I’d imagine Steam would account for much more of our revenue if this were to ever happen.

Mac (Steam)

The Mac version of Siralim 2 accounts for less than 1% of our annual sales. While that’s obviously quite low, it’s also very easy to port a game to Mac. In most cases, it’s as easy as clicking the “Compile for Mac” button rather than “Compile for Windows”. There’s a little more to it than that because Apple is a horrible company, but it normally only takes one day to test, debug, and prepare a game to run on Mac. I’d say it’s definitely worth supporting this operating system as long as you’re using an engine that makes it easy for you, such as GameMaker or Unity.

Linux (Steam)

Much like Mac, Linux accounts for less than 1% of our annual sales as well. Linux is a bit more difficult to support since it’s a lot more likely that users might be missing some required runtimes and other software, but it’s really not a big deal either way. It’s just as easy to port a game from Windows to Mac as it is to port from Windows to Linux, so I think this platform is worth supporting as well. It also generates some decent press from Linux-based gaming websites, and as you know, any press is good press.

Android (Google Play)

Google Play accounts for a little over 6% of our annual sales. While that might not seem like a lot, keep in mind that Android also helps to sell the game on other platforms because our games all support cross-platform cloud saving. Many of our players purchase our games on multiple platforms so they can play them both at their desk and in the bathroom. And regardless of that, 6% is nothing to scoff at – this amount of revenue is almost enough to cover development costs of the game itself!

Android (Amazon)

Stay away. Stay far, far away. I’ve attempted to distribute our game on two different Amazon platforms so far: the Amazon App Store and Amazon Underground.

The Amazon App Store works like any other Android store. Users simply purchase the game and then they have access to it forever. The problem is that, despite being the second largest Android store, Amazon doesn’t have enough market share to garner a decent profit. Aside from that, they have some pretty annoying technical requirements that make development a nuisance. The Amazon App Store earns less money for us than any other platform or store.

Amazon Underground is interesting. It allows people to play your game for free and access all DLC and in-app purchases at no cost. Developers are paid for each minute users play your game. The problem is that Amazon Underground only pays out $0.002 per minute. Yes, that’s 1/5 of one cent. That means a player needs to play your game for over 8 hours to earn developers $1. Most games don’t even last that long, but luckily Siralim will last most players far longer than that.

Unfortunately, that also means that I need thousands of players who are willing to play the game on Amazon Underground in order to make any decent amount of money, and that’s simply not practical for a niche RPG. In fact, I’m guessing that’s the case for most games. Aside from that, Amazon Underground has some pretty ridiculous technical requirements that make it an absolute chore to develop for. Right now, the Amazon Underground versions of Siralim and Siralim 2 don’t run very well on some phones, and crash for no apparent reason. Unfortunately, I also can’t remove these games from the Amazon Underground program – Amazon simply doesn’t allow me to do so. Right now, Siralim has a 3.5 star rating on Amazon, while Siralim 2 has a 1.5 star rating. Cool.

As you might imagine, Amazon Underground earns so little money for me that it’s not even worth providing you with a number.

iOS (App Store)

I’ve done enough complaining about Apple lately, so I’ll spare you from me repeating it again here. iOS earns about 1% of my annual sales. Not bad, but definitely not good, and it’s absolutely not worth the time it takes for me to port the game to phones. I think a lot of it has to do with the game itself, though – a lot of people don’t like on-screen virtual controls. Still, it’s strange that Android earns so much more money for me than iOS despite having a lot more apps and games that people need to sort through in order to find my own. Siralim 3 and The Negative will have much more intuitive touch controls, and I’ve also learned a lot more about creating higher-quality storefronts since I released my last few games, so we’ll have to wait and see how things turn out for iOS in 2018.

PlayStation 4 and PlayStation Vita

The PlayStation platforms account for the remaining ~31% of our annual sales. These are huge, largely-unexplored platforms for independent developers. I don’t think it’s necessarily worth the time it takes to learn all the intricacies of developing for PlayStation just yet since in the time it took me to launch my games on these platforms, I could have made a whole new game. But now that I know how to do it, it’s a lot easier and I’ll continue to support PlayStation 4 and all future Sony platforms for as long as I can.

However, I’ve been in talks with a company called Limit Run Games this year, and it sounds like we’ll be releasing a limited supply of physical copies of Siralim and Siralim 2 for PS4 and Vita in early 2018. Sales are projected to be so high that it’ll nearly double my total revenue across all platforms. In that case, PlayStation is by leaps and bounds the most lucrative platform.

Siralim 3: Story, NPCs, and a discussion about general gameplay!

As you might expect before we dive into the details about Siralim 3’s gameplay systems, we should talk about the story and the game’s characters first. At the end of this post, I’ll also talk about a pretty big change coming to the way the game “feels” when you play it. Let’s get started!

The Story

Although the game is called Siralim 3, you won’t be ruling over Siralim this time around. Instead, you’ll take charge of the kingdom of Nex, one of Siralim’s closest allies. You see, as you might have noticed in Siralim 2, the king was kind of an asshole. Those bosses he mercilessly slaughtered were simply trying to protect the world from his mad ideals. His people, including his most trusted friends, were loyal to him only out of fear. But after a while, bullying his own kingdom wasn’t satisfying anymore. He decided to attack and invade other kingdoms, not caring whether they were friend or foe. Countless kingdoms succumbed to the king of Siralim’s wrath, and as it turns out, Nex is the only remaining kingdom in Rodia that hasn’t been completely annihilated. But the hour of war is now upon us in Nex, and we must rally our people to try to fend off the attack.

You’ll start the game in Nex, which is under attack by a preliminary force of Siralim’s army. While the people of Nex are quite familiar with summoning and using creatures in small-scale battles, a century of relative peace has left your kingdom with its guard down. Very few of your people will survive the attack, and even if you manage to fend off the invaders, re-building your castle requires time that you don’t have to spare. If you manage to repel the attack, waiting around for recovery is not an option. You need to take the battle to Siralim and destroy the king and his army once and for all.

Even the gods no longer believe in the king of Siralim, and they regret placing trust in him to use the Nether Orbs for good rather than evil. As you might have expected, they’ve come to you to help Nex overcome this war. They will serve a much larger role in this game than they did in Siralim 2, and their personalities are now a lot more fleshed-out and interesting.

 

Sidenote: if you choose to be a queen in Siralim 3, the antagonist will be the queen of Siralim instead of the king.

NPCs and Castle Upgrades

Well, spoiler alert: most of the people of Nex will die within the first 10 minutes of the game. You had a blacksmith, but he was beheaded. The tavernkeeper was eaten alive by horrible Nether Creatures. And the enchanter? Well, you don’t want to know what happened to her.

In previous Siralim games, you could unlock these NPCs and other features by completing castle upgrades. However, that isn’t how it works in Siralim 3. Instead, you’ll meet and recruit these people during your travels as you seek out a way to destroy Siralim. Some of these people simply might be looking for a kingdom to join, while others might be under attack or give you a task to complete in exchange for their undying loyalty. Others might even be defectors from Siralim.

From a gameplay perspective, I think this will make the game flow a lot more smoothly. The castle upgrade system in previous Siralim games presented an illusion of choice; after all, when would you not want an enchanter in your kingdom? Aside from that, rituals made this system feel even more cumbersome, so those are not in Siralim 3 at all. Now, you’ll simply unlock these NPCs as you progress through the game’s storyline. After moving in to Nex, many of these NPCs will have side quests for you which will unlock even more of their potential. For example, the blacksmith will give you quests that, upon completion, unlock new artifacts for him to craft.

A Classic Game

In some ways, Siralim and Siralim 2’s progression feels kind of cheap. For the most part, you and your creatures leveled up every battle or two, and while resources may have been scarce early on in the game, you probably had so many later on that you didn’t know what to do with all of them. Aside from that, the levels of your creatures didn’t seem to matter that much – a level 300 creature could fare pretty well against a level 350 creature.

In Siralim 3, leveling up will take a bit longer than before. Don’t worry, the pacing of the game will remain the same – I’m not going to make it more of a grind or anything, but I want each experience level to have more of an impact on your successes and failures than in previous games. Aside from that, creatures will gain stats exponentially when they level up. For example, in Siralim 2, each level simply granted a creature +20% to all of its base stats. In Siralim 3, each level grants a creature +20% to all its base stats as it did before, plus an additional amount equal to a function of its level. With the help of these changes, leveling up should feel a lot more rewarding and impactful.

You’ll also find that the resource system is more balanced than before. Power Balance has been removed from the game, so there’s no need to worry about that anymore. In addition, Power is now considered a normal resource just like Brimstone, Crystal, Essence, and Granite. Each resource will still be used for different things, and I am trying to make sure that players value all resources equally.

Another major change is how the death penalty is handled. In Siralim 1, you lost a percentage of your total resources when your party was wiped out. I don’t really like that since it had a tendency to increase the game’s difficulty simply because you died. That feels really inconsistent to me. That’s why in Siralim 2, the penalty for dying was a loss of Power Balance. But not only is Power Balance not in Siralim 3, it also caused players a lot of frustration because Power Balance was so tedious to maintain. The worst part about both of these death penalties is that because of the way the math works out, these penalties either annoyed players or players simply didn’t care about them at all, so they were happy to recklessly charge into a realm without considering the consequences of death.

Instead, here’s how the death penalty works in Siralim 3: every item you acquire in a realm (aside from resources) will be added to a “Pending” category in your inventory because they’re all tainted by Siralim’s corruption. These items cannot be used while they’re “pending”. After you find the Teleportation Shrine and teleport to a new realm or back to Nex, the Teleportation Shrine will dispel the corruption from these items so you can add them to your inventory. If you die in battle, the items will be lost forever. This death penalty will add a bit of tension to the game because if you find an extremely rare item a realm, there’s no guarantee you’ll be able to keep it if you die in battle. And since enemies now continuously spawn in realms, you can’t try to cheat the system by clearing out all the enemies and then opening up the treasure chests. This death penalty only applies to realms past a depth of 10. Huge thanks to Umaro on our forums for this idea!


What do you think of Siralim 3 so far? Are you excited? As always, if you have any suggestions for the game or want to talk about this post, please leave a comment here or check out our forums!

Supporting Games On Multiple Platforms (Part 3)

Now that I’ve discussed what it’s like to develop a game for Windows, Mac, and Linux, as well as mobile platforms, it’s time to finish off this series with PlayStation 4 and PlayStation Vita!

Unfortunately, this post won’t have any screenshots. I’d love to show off the development kits and some of the tools that Sony provides us, but all of it is protected by a non-disclosure agreement that I don’t have any interest in violating.

Step Five: Porting to PlayStation 4.

Luckily, the PS4 comes equipped with some pretty powerful hardware, so it doesn’t require anywhere near as much optimization as the game’s mobile version. However, much like the other platforms, the PS4 comes with its own set of issues that can sometimes make development quite a headache.

First, I applied for a developer account with Sony. This takes some time, because I needed to include a pitch for my game and explain how I planned to bring it to their consoles. After a few weeks, I received an e-mail from them saying that my application had been accepted and to wait for my login details. A few days later, I received an e-mail from several employees at Sony. One of them gave me my login credentials and introduced the employees that I was assigned to work with. Each person is responsible for something different: one is your account manager, one is in charge of marketing, one works as the leader of a quality assurance team, and much more. All of these employees are extremely pleasant to work with and reply to e-mails very quickly. I also requested access to development kit rentals for PlayStation 4 and PlayStation Vita development kits, and those arrived in the mail about a week later. These development kits are pretty much the same as the consoles you can buy in stores, except they look a little different and have some debug tools integrated into their operating systems.

First, not a lot of people use GameMaker to create console games. In fact, when I was porting Siralim and Siralim 2 to PS4 and Vita, I’m pretty sure I was one of the only people using it at all. The vast majority of my time was spent finding and reporting bugs related to the GameMaker export module for PS4 and Vita rather than working on the game itself. Many of these bugs were show-stoppers, and it was virtually impossible to submit a PlayStation game to Sony because the game simply wouldn’t compile. One of the employees who develop GameMaker started working with me directly to fix all the bugs I could find. I am very impressed with the level of customer support they provided. After several weeks of frustration, everything finally came together, and I could compile my game.

Next, I had to work out some more details with Sony. There’s a lot of codes and serial numbers to work with, and it takes a very long time to figure out how everything works. It also takes a while for Sony to create your codes, so I found myself working with a very volatile schedule: one day, I wouldn’t have anything to do, and the next day I’d be swamped with trying to figure out how to make the codes work that they sent me. There’s plenty of documentation to read and it’s all very informative, but there’s so much information to take in that it quickly becomes very overwhelming. After a lot of trial and error, I finally figured everything out. Fortunately, it’s one of those things you never forget how to do, so I can hopefully assume the worst of my career is behind me now.

Finally, it’s time to submit my game to Sony’s quality assurance team for review. I don’t know how much these guys are paid exactly, but regardless, it’s not enough. My heart bleeds for the poor souls who were forced to play Siralim for dozens of hours, trying everything in their power to break the game and submit bug reports to me. They found all kinds of things that players on other platforms would never even think about. For example, since “W” is the largest character in the font Siralim uses, they discovered that if you name your character “WWWWWWWWWWWWWWWW”, the name will bleed outside of the bounds of the screen on the loading menu.

After the QA team finished testing the game, they sent me a list of all the bugs they found and identified the ones that I needed to fix before the game could be released. I fixed what I could find, and re-submitted the game for QA testing once again. They had to go through the entire game and test it just like they did the first time. Unfortunately, they found a few new crashes and bugs, many of which were due to even more bugs with GameMaker. That means that I had to get back in contact with the GameMaker developers, have them fix the software on their end, then test the game, then re-submit it and hope for the best. Embarrassingly, I lost count of the number of times I had to re-submit the game to Sony. I suspect that several of their QA testers have played Siralim more than most players. I’m also very confident that they hate the game at this point. They probably wanted to throw up when they saw that there was a sequel.

Ultimately, everything worked out and the game was accepted. Sony asked for a trailer for the game along with a bunch of other marketing materials such as screenshots and logos. I was also asked to write a short blog post for the official PlayStation blog to introduce the game and interact with the community. They edited the hell out of it and even threw a couple grammar errors in there which makes me look kind of stupid, but that’s life.

After the trailer was uploaded to the PlayStation YouTube account, I was met with an onslaught of hatred as over half the people watching it gave it a giant “thumbs down”. I didn’t bother to read more of the comments after I saw someone mention that “this game gives [him] eye cancer”. Luckily, for every asswipe out there, there’s someone who is welcoming and respectful. Some of those people are probably reading this right now, so thank you for not being an asswipe.

So now it’s all sunshine and rainbows, right? Time to launch the game!

Oh, wait. There’s still PlayStation Vita to contend with.

Step Six: Porting to PlayStation Vita.

Alright, so take all the problems I mentioned in the PS4 section and multiply by 100. Not only were there far more GameMaker bugs with the Vita module, the Vita’s hardware is also far weaker than the PS4. In fact, it’s weaker than most smartphones. Again, before you say “but Zack, the graphics are so basic! How can hardware be too weak?”, keep in mind that there are probably more calculations going on in the background than pretty much any game out there except maybe for Dwarf Fortress. But if you’ve played the game, I probably don’t need to tell you that. Anyway, the bottleneck on the Vita is its low RAM. It has only 512MB RAM, a lot of which is consumed by the operating system anyway. If you don’t develop your game from the ground up with the Vita in mind, you’re going to have to do a lot of optimization.

When I first ran the game on Vita, my character took about 10 seconds to move one square in any direction. If I entered a battle, the game would crash. I’ll spare you the details because I’ve already discussed optimization in my previous posts, but let’s just say it took a lot of Band-Aids to get things running smoothly on this device.

One little note: don’t mistake my snark for me hating the Vita. I have one of my own, and I love it. It offers some excellent games and I’m sad to see that they stopped production on it.

Anyway, I had to submit the Vita version of the game in the same manner that I did with the PS4 version. The poor souls working in QA had to play the same exact game that they did for PS4, except this time they could take it to the bathroom with them. I like to think that Siralim is an excellent bathroom game, so maybe they were happy about it. I don’t know.

Several QA failures and re-submissions later, the game was accepted for Vita as well.

Eventually, both the PS4 and Vita versions were released simultaneously. People were very happy with it. I received a lot of positive comments from the players, and I kept an eye on the reviews on the PlayStation Store and both platforms held a 4.5 star rating which is outstanding. It’s time to finally enjoy a nice, tall gallon of bourbon!

But wait… I just received an e-mail. And another. And now a Tweet. Now there’s a bunch of new posts showing up in our support forum. It’s time for a cold shower and some emergency coffee, because things are about to get rough.

Step Seven: EMERGENCY PATCHING

I don’t know how I didn’t catch this, and I really don’t know how Sony’s QA team didn’t catch this either considering how thorough they are, but it turns out the PS4 version of the game launched with a bug that caused your save file to randomly delete itself. It’s one of those things where you need to play the game a very specific way to trigger the bug, but with so many people playing it, they managed to make it happen. The strange part is that this bug only occurred in the PS4 version – nowhere else.

Words cannot explain what a horrible feeling it is to know that someone spent their hard-earned money on a game that will inevitably disappoint them as their save file is ripped out from underneath them like a rug. Somehow, everyone remained calm and the general player base was very understanding and patient when I told them I would look into the problem immediately. But now what? How do I patch a game? I know GameMaker doesn’t even support patching for consoles. And even if they did, what are the technicalities behind it? How do I submit it to Sony when it’s ready? Can they hurry it along so that people don’t get upset?

I started by contacting the GameMaker developers again, and they explained that while GameMaker can’t create a patch, I can make one myself with some clever workarounds. Easy enough. But what caused the bug to happen in the first place? I don’t know how to fix something when I don’t know what caused it to happen. As it turns out, it was another GameMaker bug. Luckily, they fixed it very quickly and sent me a private update for the software immediately so I could patch the game as fast as possible.

Next, I had to submit the patch to Sony for… you guessed it, quality assurance testing. I’m sure the entire QA team was sitting around a table having a pizza party in celebration of not ever having to look at Siralim ever again, and I mercilessly culled their happiness with one click of the mouse. Fortunately, Sony has an option to classify a patch as a “hotfix”, meaning it’s an emergency and the QA team will prioritize it over other patches and games. Long story short, the patch was accepted and applied to the game.

“Just got the patch and it works! Thanks for the fast support!”, said one person on Twitter.

“Best customer support ever. Awesome game, keep up the good work.”, said another.

“Congrats on the release! When will it be released in Europe?” asked a polite gentleman from the Netherlands.

Crap.

Step Eight: Oh wait, all that work was just for North America.

Yep, in order to sell your game in Europe, you have to go through the entire process all over again, except this time it’s with a whole new team of Sony employees. They also have slightly different requirements for what your game can have in it, and you also need to get your game description translated into about 20 different languages.

The worst part, however, is PEGI. For those who don’t know, PEGI is the European equivalent of ESRB. They charge $1500 (or maybe it’s $2000; I don’t remember anymore) per game, per platform, so I had to pay $3000-4000 for a rating that no one actually cares about, yet it’s required by law or I can’t sell the game in Europe.

It took a bit longer than expected to get everything passed through PEGI, though. Here’s an e-mail I received from them that explains the cause of the holdup:

Aside from this little hiccup, it didn’t take too long to release the game in Europe. Good times!


If you’ve made it this far, thanks for reading! I hope you won’t mistake my snark for dissatisfaction toward my job, because at the end of the day, I love what I do and wouldn’t trade it for anything. It’s been a long-winded learning experience, but I think the hard part is behind me now and I look forward to developing higher quality games at a much faster rate than ever before.

Until next time!

Supporting Games On Multiple Platforms (Part 2)

In my last post, I introduced and discussed the way we handle supporting our games on multiple platforms. While the last post’s focus was on the desktop (Windows, Mac, and Linux) version of our games, today we’ll discuss the mobile/tablet porting process.

Step Three: Porting to Android.

Our games are typically available for both Android and iOS, but Android is a lot easier to develop for, and it’s infinitely easier to publish games on the Google Play Store. Therefore, I usually start working on the Android port before the iOS version.

Obviously, phones and tablets have weaker hardware than desktop devices, so this is where it becomes very difficult to optimize our games. Android runs on thousands of different devices with various screen resolutions and hardware specs, and some people are still using phones from 5 years ago. With so little RAM to work with, I need to work hard to ensure the game is as optimized as possible. GMS2’s debugger isn’t quite as good at profiling mobile devices, so there’s a lot more guesswork involved with optimizing for mobile platforms as well.

Aside from that, I also need to add touch controls to our games. This is a lot more difficult than it sounds. While Siralim and Siralim 2 use on-screen touch controls (a directional pad and circular buttons, similar to a physical gamepad), they need to work for thousands of different devices and configurations. Some versions of Android (especially custom builds of Android – a trend that is becoming uncomfortably popular) randomly force our buttons to weird locations, so I need to hard-code fixes for certain popular devices. I currently own 11 Android phones and tablets with varying hardware specifications, screen resolutions, and Android builds in order to test our games as thoroughly as possible.

Once everything is ready, I can compile the game for Android and quickly publish it on the Google Play Store. The Google Play Store is by far the easiest storefront to work with, and it’s always a breath of fresh air to work with Google compared to Valve, Sony, and especially Apple. Contrary to popular belief, Google is also pretty good at filtering out the garbage apps/games and ensuring your game doesn’t get lost in a sea of junk software. For that reason, Android is one of our most profitable platforms to work on. Google charges a one-time fee to be able to distribute apps on the Google Play Store. I’m not sure how much it costs now, but it was $25 when I started my development account.

Yes, I know what you’re thinking: “RPG Game!? What an idiot!”. Yes yes, such nomenclature makes me uncomfortable as well. But it’s great for SEO (search engine optimization) and I’ve found that it improves our position in the search results rather than simply referring to the game as just an RPG.

Next, it’s time to work on the iOS port. I’ll need a drink or nine for this one. The good news is that the game itself is 90% ready for iOS since the Android version already allowed us to optimize the game and add touch controls. The bad news is…well, there’s a lot of it.

Step Four: Attempting to port to iOS.

I’m not going to sugar-coat it: I hate iOS, and I hate Apple. This company hates their developers even more than their customers, and I honestly cannot figure out why they’re so successful. This section is going to sound a little bitter, and for good reason: iOS accounts for the vast majority of my development/porting time (and headaches, and alcohol consumption, and…) while accounting for less than 1% of my annual sales. The only reason I still choose to port games to iOS is that I know a lot of people would be disappointed if Siralim was only available on Android. Plus, as an iPhone user myself, it’s nice to be able to play my own games when I’m not on the computer.

Let’s start by creating a development account. First, I have to pay around $100 per year just to be able to develop apps for the App Store. While that’s not necessarily a lot of money, it is by far the most expensive fee charged by any of the other platforms. I know that it’s meant to deter people from uploading garbage apps to the App Store, but let’s face it: 1) that doesn’t actually work at all, as you can see by browsing the App Store for a few minutes, and 2) $100 is not a lot of money for people who are making hundreds of dollars per day with their spam apps.

Next, we need to fill out some paperwork. A lot of paperwork. And you’d better make sure you get everything right the first time because they don’t allow you to change minor details such as your home address very easily. As of the time I’m writing this, I haven’t been paid by Apple in 8 months because I’m still trying to sort out a change of address from when I moved to a new house last year.

Aside from the typical paperwork, for whatever reason, we also need to sign a bunch of certificates and profiles and load them onto our computer. I won’t lie – I don’t know why we need these or what they even do. My guess is that they work as an encryption key to sign the final app. This process is very time-consuming, but it gets worse: these certificates expire after 1 year. That means that after one year goes by, I need to try to remember how to complete this process all over again. Tax season has nothing on this.

Now for the truly brutal part. You see, Apple decided that we’re not allowed to develop iOS software on Windows or Linux, so developers are forced to buy a computer that runs Macintosh first. Right now, I’m sitting next to a $1300 MacBook that I was forced to purchase just so I can compile my games. Apple forces its users to use a program called Xcode, which is all-inclusive software that allows you to import and compile code into an executable app file.

Unfortunately, I don’t use a Mac system to develop my games (I use Windows), so in order to get the code from my Windows system to my MacBook, I need to do some networking. And we all know that never works out as easily as it sounds. Here’s how the process works:

  1. Compile the game using GameMaker on Windows.
  2. GameMaker sends some raw code over the network to the MacBook.
  3. GameMaker tells the MacBook to launch Xcode, and tells it about the code we just sent over. Hey, this isn’t too bad so far! Wait…
  4. Xcode freaks out, tries to figure out what’s going on, but ultimately fails. It throws up a bunch of error messages, none of which are accurate or remotely helpful.
  5. I Google the error messages and find hundreds of forums filled with other confused developers. Eventually, one hero figures out the problem, and I hope it works for me as well. If not, repeat step 5 until the problems are resolved.
  6. Beg Xcode to upload the app file to Apple’s servers.
  7. “No”, says Xcode. “Your certificate is invalid. But I won’t tell you which one. It’s a game, you see.”
  8. I open up my Keychain, cringing as I try to imagine what the person looks like who decided to call it that. The Keychain contains a list of all my development profiles and certificates. “Ah, not bad” I squeak with a tear in my eye. “Only 27 certificates to go through.”
  9. After a few hours of fiddling with the dozens of options on each certificate file, I try to upload the game again and it randomly works. I have no idea what I did to solve the problem, but hey, at least it works now.
  10. I fill out some information on the Apple Developer website about the game, such as the name of the game, description, keywords, age rating information, etc. I also need to upload screenshots with oddly-specific specifications. For example, they need to be in a resolution that literally no other device in existence uses, and they need to be 72 dpi, RGB, flattened, and contain no transparency. Easier said than done, but let’s move on.
  11. The game is now submitted and waiting for approval. I am now at the mercy of some intern who will review my game and graciously grant me the opportunity to sell my game.
  12. The intern wasn’t trained properly, so he or she rejects the game because Siralim asks you to give your character a gender, and I’m obviously collecting that information so I can use it against you later on. I’m going to sell the gender of your character to a marketing firm and make millions of dollars. That’s it exactly.
  13. Loop back to step 1, and hope I get lucky with a more intelligent intern next time around.

I wish I was exaggerating some part of this process, but I’m honestly not. I have now released 3 games on the App Store and they’ve all been this obnoxiously difficult to create for iOS. And let’s not forget that whenever Apple releases a new iPhone (which always has some weird, new resolution that no other device has) or a new iOS update, it’s probably going to break most apps on the App Store and I’ll need to repeat this process all over again.


Next time, we’ll wrap up this three-part series with a look at what it’s like to develop a game for PlayStation 4 and PlayStation Vita. See you soon!

Supporting Games On Multiple Platforms (Part 1)

A lot of people ask how I (and many other developers) manage to support so many platforms at a time. After all, Siralim and Siralim 2 are available on Windows, Mac, Linux, Android, iOS, PlayStation 4, and PlayStation Vita – and that’s understandably a lot of work for one developer to handle. I’ve decided to write a blog post about this topic, as well as a brief overview of what it’s like to launch a game on each platform. I’ll break this topic down into 3 parts – the first will discuss the Steam release (Windows, Mac, and Linux), the second will discuss the mobile release (Android and iOS), and the third and final part will discuss the console release (PlayStation 4 and PlayStation Vita).

What engine do you use to create your games?

I use GameMaker Studio 2 to create all our games. GMS2 is, in my opinion, the best engine in existence for creating any 2D game. It comes with a lot of built-in functionality to handle what would otherwise be a major pain in the ass to accomplish with a homemade engine. For most independent developers, I find it hard to justify creating your own engine. It’s 2017, and engines like GameMaker and Unity have come a long way toward making game development more accessible for everyone.

Step One: Build the game for Windows.

I start by creating all my games only for Windows. That’s because I run Windows on my main development laptop, so it’s really easy to make a change to the game and quickly run a test version of it on that same computer.

After the Windows version of the game is relatively stable and complete, it’s time to enter Early Access on Steam. This gives players the opportunity to contribute feedback and report any bugs and crashes they find. The first week or two of Early Access is pretty rough – I normally work about 14-18 hours per day, doing nothing but combing through our forums, fixing game bugs, and releasing game patches to make sure everything is nice and stable. Particularly in the first week, I’ll release up to 10 updates per day to address bugs and crashes. This week is the only time my job becomes truly stressful – it’s a little disheartening for me to think that someone paid money for a product that doesn’t meet their expectations, Early Access or not. When I released Siralim 2 on Early Access, I remember finding a few solutions to major crashes and bugs while I was sleeping – that’s how entrenched in the code I was during that time. And yes, I still make time to shower every day.

Steam is sometimes a bit annoying to work with due to a very “user-unfriendly” backend. It’s very time-consuming to create achievements, especially since our games tend to offer hundreds of them. It also takes a lot of effort to create Steam backgrounds, badges, emoticons, and cards, because these assets have very rigid technical requirements from Valve. I’ve also found that Steam’s approval process is a little cumbersome – each game is reviewed by a human, which is great, but it means that you have to wait a few days for them to check everything over. If there are any issues, you need to correct them, re-submit the game, and wait for someone to review the game all over again.

Step Two: Porting to Mac and Linux.

After the Windows version of the game is relatively stable and I notice that the number of bug/crash reports have dwindled, and I’ve ensured there are no major flaws in the game mechanics that people dislike, it’s time to move on to porting the game to Mac and Linux. This is actually a lot easier than it sounds – GMS2 allows you to compile the exact same game for Windows as all the other platforms, so it’s pretty much just a few clicks of the mouse and I can create a version of the game for Mac and Linux.

One frustrating part of developing games for Mac, however, is that despite their high prices, Mac systems tend to be pretty weak from a hardware perspective. I’ve also found that people like to hang on to their same MacBook from 10 years ago and expect games to run perfectly well on it, so this is a good time for me to start optimizing the game to make it run more smoothly on lower-end hardware.

Many people think that, because Siralim has such primitive graphics, it should be able to run on any system, but that’s simply not true. Siralim has a lot going on behind the scenes: the game needs to manage thousands of objects at a time, generate random dungeons quickly, and process tens of thousands of lines of code during battles thanks to the hundreds of spells and traits available to players at all times. This means that the player’s CPU and RAM are the most significant bottlenecks. GMS2 has a nice debugger that allows me to profile the game and determine which functions take up the most RAM and tax the CPU the hardest. I can quickly find which functions need to be re-written to run faster. Sometimes, this means that I need to re-code entire game systems, but that’s usually not the case.

Linux tends to be a lot easier to work with. For obvious reasons, Linux users tend to be some of the most tech-savvy of all our players, so they’re really good at reporting bugs and crashes with a lot of detail. Linux users also tend to run this OS on higher-end systems, so optimization is typically not as big of an issue as it is with Mac devices.

Once the Mac and Linux versions of the game are ready, I upload them to Steam so Early Access users can play the game on these platforms as well. While I wait for users to report issues with the game on these platforms, I continue to fix any outstanding bugs and crashes, and implement changes based on feedback from our players.

Once I’m confident the game is relatively free of bugs and crashes, and the game is content-complete and the player base tends to be generally happy with what the game offers, it’s time to leave Early Access and officially launch the game on desktop devices. That’s as easy as pressing a “Launch” button in the Steam back-end. Then, it’s time to drink a bottle of bourbon (Woodford Reserve, if you must ask) and watch YouTube for a few days. This is also a great time for me to apologize to friends and family for falling off the face of the earth for a few weeks.


In part 2, we’ll explore the process of porting our games to Android and iOS. If you found this post helpful or interesting, feel free to let me know in the comments, or ask any questions you have!

See you next time!

The Negative: Devlog #22: Monster Spotlight – Wickerman

Moving forward, the devlog schedule for The Negative will change to every 4 weeks, rather than once per week. In turn, the devlogs will be a lot more detailed and will contain more pertinent information about the game outside of simple monster spotlights. Additionally, I’ll be announcing a new game soon which will have its own set of devlogs to fill in the gaps between the ones for The Negative.

The Wickerman is part of the Balance class and is one of the most useful disruptors in the game. This monster’s skills focus on turning your enemies’ positive effects into negative ones, and can even turn into quite a powerhouse thanks to its “Draw Power” skill.

 

Active Skills

Effigy: Deals a small amount of damage, and deals a small amount of damage to a random enemy.

Coalescence: Your monsters’ HP is redistributed so that each one has the same percentage of HP.

Draw Power: This monster’s stats are set to the highest of each of your other monsters’ stats.

Convergence: Enemies’ HP is redistributed so that each one has the same percentage of HP.

Passive Skills

Trickery: When an enemy damages one of your monsters with an attack, it has a 7% chance to heal them instead.

Despoil: When an enemy gains stats, it has a 15% chance to lose them instead.

Deface: When an enemy gains a buff, it has a 15% chance to gain a random debuff instead.

Misfortune: When an enemy is healed, it has a 15% chance to take damage instead.

The Negative: Devlog #21: Monster Spotlight – Coercer

The Coercer belongs to the Mind class, and I’m sure you can take a guess as to what its skills revolve around – convincing enemies to do your work for you! This monster doesn’t have a single skill that damages, heals, or buffs your monsters directly – instead, it forces its enemies to it for you.

Keep in mind that its skills also work on allies – for example, it can coerce an ally into healing your own party as well!

Active Skills

Telekinesis: Target deals a small amount of damage to a random enemy.

Kismet: Target increases your monsters’ Luck by a moderate amount.

Hidden Power: Target heals your monsters for a moderate amount.

Mind Rattle: Target deals a moderate amount of damage to all enemies.

Passive Skills

Mana Burn: When this monster uses a skill that targets an enemy, the enemy incurs 20% of the skill’s MP cost.

Clumsiness: When an enemy uses a Healing or Mana Draught, it has a 20% chance to use it on one of your monsters instead.

Self-Loathing: At the start of each enemy’s turn, they have a 10% chance to attack themselves.

Coerced Coexistence: Enemies’ healing effects are split between all enemies.

The Negative: Devlog #20: Monster Spotlight – Tokoloshe

The Tokoloshe is a Balance monster that harnesses evil voodoo magic to manipulate its foes in strange ways. This monster can force other monsters to attack themselves, shuffle their stats, and move them all around the battlefield at will. This monster also has a few reactive passive skills that cause it to deal damage when enemies perform certain actions, such as attacking or moving.

 

Active Skills

Evil Eye: Deals a small amount of damage, or a large amount of damage if the target is in the center position.

Discombobulation: Target’s stat values are shuffled.

Jinx: Target attacks itself.

Black Wind: Deals a moderate amount of damage to all enemies and moves them to random locations.

Passive Skills

Crossfade: This monster deals 15% more damage to enemies in the middle of their column or row.

Hex: At the start of battle, afflict a random enemy with Silence, and another random enemy with Scorn.

Voodoo: When an enemy attacks, they take a very small amount of damage.

Pressure: When an enemy is forced to move against its will, it takes a small amount of damage.

The Negative: Devlog #19: Monster Spotlight – Nix

This monster is definitely one of my favorites. The Nix is a psychic ninja that belongs to the Mind class. Its skills are all about dealing quick and clever damage or surviving incoming attacks in unconventional ways. This monster’s sole drawback is that its skills are “selfish” by nature – it doesn’t do much to help your other monsters in battle.

Active Skills

Backstab: Deals a small amount of damage, or a moderate amount of damage if the enemy isn’t in the front column.

Psychic Shurikens: 6 random enemies take a small amount of damage.

Preparation: This monster gains a moderate amount of Speed, then becomes Invisible.

Smoke Bomb: Enemies take a moderate amount of damage, and the weather is changed to fog. (Note: the “fog” weather effect causes all monsters to have a chance to miss attacks)

Passive Skills

Ambush: At the start of battle, this monster becomes Invisible.

Cloak of Shadows: Your monsters are immune to the adverse effects of fog and wind.

Shadow Focus: When an ally takes damage, this monster gains a small amount of Power. This skill can only activate once per turn.

Shadow Clone: When an enemy attacks, this monster has a 15% chance to summon a shadow clone of itself. The clone swaps positions with the enemy’s target before it attacks.