Thursday, April 23, 2015

Warsmith Zuul Screenshots

I recently released Death Arena (re-branded as Doombot Arena so as to avoid a 'name-too-similar' clash on the iOS app store) and have been working on another mini-game (working title is "No Crashy Spaceship") which is also almost ready for release. However, the late phase always entails a lot of bug-fixing, adding polish and preparing the app for release (which entails a surprising amount of work and can be quite frustrating). Having already spent so much time on this recently I felt a bit burnt out, so I decided to take a break and focus on one of my larger projects (to allow myself the luxury of focusing on the more interesting aspects of development while I recharge).

I've been wanting to convert my real-time strategy game, Zyrtuul (which is a PC game), to be mobile-friendly so that I can release it on iPad and possibly iPhone.

Unfortunately, progress with Zyrtuul was so far in, and the differences significant enough, that I realized it would be more of a re-write than a conversion (though a lot of code and art assets are re-usable). I decided to use a different name for the iOS version (mostly to differentiate the two projects to myself).

The working title for the iOS version is Warsmith Zuul. From an implementation perspective they're completely separate projects that just happen to share a bit of code and some art assets. From a thematic viewpoint though they're clearly related.

A big part of the motivation for me wanting to do this was realizing that, although I was proud of Zyrtuul and happy with its progress, I could never compete with the larger PC RTS games out there (Starcraft 2, for example). However, the games on the mobile platforms (Clash of Clans, for example), while still larger in scope than what I'm aiming for (I think it would be unwise to even try), are at least not leagues beyond what a solitary developer can put together, given time and perseverance.

It's going pretty well so far and, since I haven't posted anything in a while, I thought I'd add some screenshots. They're pretty rough around the edges and not yet very polished (it's still in the early stages), but they should give some idea of where the project is header.













Thursday, November 13, 2014

Hero Brawler Game Prototype

About two months back I revived a game I developed a few years back called Death Arena, making various improvements, integrating it with Facebook, implementing various new gameplay features and getting it ready for deployment on the iStore. It's pretty much ready to go but I feel the need to do one last pass and see if there is anything else that can be improved before putting it out there.



Screenshots of Death Arena


However, the last phase of any project is often the most cumbersome and I started feeling a bit burnt out on it and decided I needed a break. This is how I justified allowing myself the twisted pleasure of working on an entirely new project when I had a 99.9% complete one waiting to go (and others on hold!). Admittedly, I felt a pang of guilt as I wrote this paragraph.

Anyway, I shall now cease this mincing of words and get to the point. I began experimenting with other game ideas for my next project. I experimented with transforming my PC-based real-time strategy game, Zyrtuul, into an iPad game, but it was a bit of a daunting task so I decided to hold off on that.



This is Zyrtuul. Attempting to simplify it so that it works on iPad (rather than PC) turned out to be a bit too complicated for my liking.


I toyed with several other game ideas before developing a two week long addiction to the iPad version of the game Injustice. Injustice is a one-on-one fighting game featuring DC Comics superheroes. The mobile version differs from the console versions in that it is less action-oriented and uses a collectible card mechanic, allowing you to acquire characters as you progress and level them up.



Character Store in Injustice


As always, whenever I get into a game I started feeling the urge to develop my own game inspired by it. So I started experimenting in Unity, trying to implement a similar concept. It's still a very early prototype (none of the game mechanics are in yet), but it's looking promising. I'm considering making this my next project (though I'll need to evaluate other existing projects that are closer to completion before making this call).

I purchased character models a few years back for another game prototype (called the Weeping World -- it was grim and awesome, but too large in scope). Hence the decent looking characters despite it being only a few weeks in.

It has a dark fantasy theme and is somewhat inspired by the early Mortal Kombat games (I had Goro's lair from the first game in mind when developing the first combat arena). As a prototype / proof-of-concept mock-up it is, of course, very rough around the edges, but I thought I'd post some screenshots of it's current state anyway.


In an act of callous heartlessness, an evil wizard gives his equally evil twin a solid blow to the crotch, thus reducing the likelihood of the poor fellow ever reproducing.


I added the blood last night. I'm not sure whether they'll allow this on the iStore though.


The arena needs more work to really live up to it, but was inspired by Goro's Lair.


Battle Setup Screen


Wednesday, September 24, 2014

Facebook API Example with Unity

I integrated one of my games (Death Arena) with Facebook today. I encountered a few difficulties along the way and, although there was information online, it took me a while to get it working properly. The code examples I found online didn't work without modification (I had to combine bits and pieces from various sources), so I thought I'd share my Facebook wrapper class in case others find it useful.

The class is pretty simple at the moment and only caters for the basics -- connecting to Facebook and posting a message to the user's wall / timeline. It takes in a heading string, a main message string as well as a placeholder name string.

For example, one might choose to use 'Bob' as a placeholder name. When calling the PostMessageToFacebook() method you could pass in a message of the form "Bob kicked ass in xyz game" and then pass in 'Bob' as the placeholder name. Once it logs onto Facebook and retrieves the user's first name, it will replace all instances of 'Bob' with the real name.


Sunday, August 17, 2014

Zyrtuul Progress

Progress on my real-time strategy game slowed down a bit in the last few months, so I decided to give it a bit of attention in the last week. It's at the stage where many of the core game mechanics are down -- it's fairly playable, but needs some more work for it to provide a genuinely good user experience.

I'm not sure where to take it from here. Initially this started as a fun creative outlet and as an artificial intelligence development testbed. It's grown into a full-fledged RTS game now. The removal of the multiplayer component still irks me a bit, though I still feel the scope reduction was necessary.

I've been considering toning the entire game down from a traditional RTS to something targeted more at the casual gamer. I've been playing Clash of Clans and was wondering if I shouldn't be moving in that direction -- it's easier to compete with the casual strategy games than it is to try put something out there that tries to compete with franchises like StarCraft or Command and Conquer (even if I was working full-time on it, it would take a loooong time to get it at a level where it could compete with games of that scope).

On the other hand, I've already put so much work into bringing it to its current state that trying to force it into a casual Clash of Clans style game would be pretty tough (I'd probably be better off starting from scratch, though there would be a lot of re-usable code and art resources to speed up the process).

I recently taught myself PHP and was experimenting with the database / server side components of a framework for making games of that type (Clash of Clans, Boom Beach etc). But I'm too attached to Zyrtuul as it currently is to butcher it like that. It's something to think about though. I'm considering buying a Mac Mini in the next few days and deploying to my iPad to get a feel for it.

Anyway, it feels like I'm rambling now. Here is a recent screenshot.


Sim Engine Graphics Talk Images

The company I work for requires some fresh meat, and so we invited some pending Computer Science graduates from UKZN to visit the company and gave some presentations so as to try lure them in. I've been maintaining the graphics engine for the last few years, and so I was asked to speak about that. On Friday I had to dig around for a few images for the talk. I quite like some of them and so I decided to upload a few (since I haven't posted anything in months).





















Saturday, March 22, 2014

Fractals With Shaders

I spent the last few hours experimenting with writing shaders to display fractals. I'm using the Julia Set (named after French mathematician Gaston Julia, who devised the formula). The Julia set requires a set of seeds to be fed in. I base mine on the sine of the application time (so the fractals shift and change over time). I also modify the ratio between the two components of the seed in a similar way, which varies the patterns quite a bit.

A demo can be downloaded from here:

Here are a few screenshots.





Wednesday, February 19, 2014

Loading Terrain Heightmap Data Via C# Script in Unity

For my real-time strategy game Zyrtuul I need to be able to load different landscapes at run-time. A fundamental part of this is loading terrain heightmap data from script. I implemented this last night. I noticed that many people have been asking how to do this online, but I did not see any complete solutions presented. It turned out to be significantly easier than anticipated. This implementation allows you to save your heightmap using any image format (I assume it is saved in Assets/Resources/Heightmaps). Simply attach this script to your terrain object and it will load up the specified heightmap automatically.