Android, Android, Entertainment, Games, Programming, Technology, Unity, Video Games

Multi-platform – The real advantage of Unity

There have been quite a few mechanical additions since my last update, but the most significant thing in my latest video is it is the first on a non-Windows platform.

Unity has a large list of platforms it supports and a lot will work on all of them with no effort. For example, Gravitas currently builds and runs on Windows (Win32 and Windows 8.1 Store), Mac, Android and WebGL. With the exception of adding some settings (the Android package name for instance) I didn’t have to do anything platform specific for any of it.

Although there are very few hard limitations on what can be done on the different platforms, the wildly different performance characteristics mean you do have to think about different problems.

A more straightforward problem I recently solved (after the Day 20 – Android video was made) was to decide how to deal with different mobile device orientations.

My general philosophy is to try and support everything, so although landscape feels most natural for Gravitas, there isn’t really a reason not to support portrait. In fact, since the camera will adjust its zoom level to keep all the world on screen, it already supported portrait, albeit rather awkwardly. The dynamically generated levels are designed to have approximately a 16:9 aspect ratio. This means in portrait you get massive empty space above and below the planets, while making everything smaller than necessary. The solution? If the aspect ratio is less than 1, rotate the camera 90 degrees. This not only means portrait is supported, but in fact a far more general case of portrait-like aspect ratios is supported (and even better, has no mobile specific code at all).

Entertainment, Games, Programming, Unity, Video Games

Unity Cloud Build

First, a video of the latest progress. Now includes aim lines.

Second, if you aren’t using Unity Cloud Build, you should be.

Over the past few years, the importance of automated builds in software development (and the wider concept of continuous integration) has grown in importance. In my day job, setting up automated builds is one of the first thing that happens on any project. The details tend to be different for different platforms and it generally requires a fair amount of maintenance. The good news is, Unity do most of the hard work for you, and across most of their platforms, and surprisingly, for free.

 

Entertainment, Games, Programming, Unity, Video Games

Technical Spikes vs MVP

In software development (and product development in general) is a concept called MVP or Minimal Viable Product. According to Wikipedia it is “a product with just enough features to gather validated learning about the product and its continued development”.

My plan was to develop a Gravitas MVP in Unity and release it as quickly as possible. After reading a bit about some of the cool things I can do with Unity quite easily that would have been hard before, I inevitably got distracted. But it’s okay, since technical spikes are also an accepted part of software development (again thanks to Wikipedia: “a product-testing method that is used to determine how much work will be required to solve or work around a software issue”).

Specifically, one of the things I wanted to do in Gravitas was add a real lighting model, probably using normal mapping on the sprites. I had read up how to do this in MonoGame, but decided to see how quickly I could do it in Unity. The answer was about 2 hours. That includes the time to create the normal map for the ship (and finding a tool to help do that).

The tool I used incidentally is Sprite Illuminator from a company called CodeAndWeb. If you plan to do any 2D games I suggest you check them out. Their tools all come with trials, and the only reason I haven’t bought it is yet, is I’m deciding which bundle to get (I’ve already used Sprite Illuminator and I’ll almost certainly use Texture Packer. Physics Editor is probably less useful to me, but is only £10 extra with the other two).

Entertainment, Games, Programming, Unity, Video Games

Embracing Unity

For a long time, I’ve avoided Unity. The biggest reason was inertia from working with MonoGame, but I was also put off by the prospect of old versions of Mono and C# as well as being generally suspicious of development being so “editor focused” (I’ve tried quite a few drag-and-drop game development tools and ultimately found them frustrating).

But I’ve decided to get over it and have a go.

The number of amazing games released that have been made with Unity has persuaded me the last point is not an issue (or perhaps no longer an issue). More importantly, there have been a few specific recent developments that have piqued my interest.

Unity joined the .NET Foundation. Unity’s .NET support always worried me a little. Using old versions of Mono and C# was bad, and their support for JavaScript made me a little worried they might just drop C# altogether. This is obviously not going to happen now (at least in the near future).

Related to the previous point (but more to do with Mono being released under a permissive license) is that they really are pushing forward with an updated version of .NET.

The final reason is the discovery that Distinctive Games, a mobile game developer I used to work for have decided to use Unity for (at least) one of their upcoming games, Downhill Extreme 2.

The net result of this is that I have started working on another version of Gravitas in Unity. And after about half an hour I have a star field, and a ship (with a colorizable section) that rotates when you press left and right.

Android, Entertainment, Games

Betrayal at House on the Hill – Betrayal Character Cards for Android

Betrayal at House on the Hill is a board game published by Avalon Hill and designed by Bruce Glassco. The game is split into two parts. In the first, the players become trapped in a haunted house which they must explore, revealing rooms as they do. At some point the second part, the “haunt”, begins in which one player (generally) becomes a traitor and everyone plays out one of 50 scenarios pitting the traitor against the others.

An important part of the game involves tracking each of the player’s attributes (each character has a different range of possible values for each attribute). Since the included cardboard trackers can be loose and tend to slip out of place, a few different smartphone apps have appeared to help the situation.

The earliest Android version is Betrayal Character Cards. This app does the bare minimum needed. You can see a list of characters, see their attribute ranges and select the current value for each. As a small extra it also includes the birthday and hobbies of each character (which has a minor gameplay purpose).

Out of the apps available this is the simplest and has the least features. On the other hand this should run on the widest range of devices.

Entertainment, Games

How to start “Hearts of Darkness” quest middle step “Stop Tanval” (Elder Scrolls Online)

TLDR: Go to Kragenmoor to the Grandmsters Palace and find Grandmaster Omin Dres to begin the quest Aggressive Negotiations.

Elder Scrolls Online on consoles has an achievement/trophy called Hero of Ebonheart which requires you to complete all the in game achievements relating to the Ebonheart Pact.

As I was checking through the list of ones I completed, I noticed that for the achievement Hearts of Darkness, the middle step – Stop Tanval from unleashing the second Brother of Strife – was incomplete. When I checked the map there were no black markers normally indicative of an incomplete area, nor did I have any incomplete quests in Stonefalls.

It turns out there is short series of side quests that are easy to miss in the Kragenmoor area starting with Aggressive Negotiations. This eventually leads to To the Tormented Spire which adds the Tormented Spire as a location to your map. Complete this quest line completes the middle part of the Hearts of Darkness achievement.