Friday, 17 February 2017

Technobabylon 2, Part 3: NZOKA

So, in what seems to be characteristic in terms of the way I do things, I changed my mind again. I had been experimenting with 3D isometric gameplay, and while the novelty held some appeal, it didn't quite achieve the results I had been hoping for. In addition, it added a whole new mess of complications to the development process. So - I gave up!

More accurately, I decided to take a step backwards. I had Adventure Creator for Unity, so I thought - "why not use it to make a normal adventure?" Well, as normal as the genre that invented the "Use X with rubber chicken with a pulley in the middle" can be. I had had practice with 2D games before, funnily enough having made Technobabylon (among others) just before. I could get into a 2D mindset, and perhaps get my head around the way Unity did things in order to make a more conventional adventure - something that might be a bit more up Wadjet Eye's street.

Still hadn't come up with a definite title, either. 2chnobabylon? Orthopolis? Eudaimonia? Better work on the stuff in the game, first.


Nzoka

I'm going to avoid spoiling things for the as-yet unreleased (and mostly undeveloped) sequel, but this time around I wanted to go with a slightly different approach for the story, and focus it on one character specifically. Some might argue (pretentiously) that Technobabylon is post-cyberpunk, due to the player's control of agents of the city's authority, negating the "punk" elements within, and serving as a deconstruction by playing as someone who is quite happy to avoid fighting back against "the man" as long as she gets her internet. For the sequel, I wanted to go with something a little more...traditionally cyberpunk. This is Nzoka.

Earliest concept by Amanda Virtudes

Ivan Ulyanov's take on the speech portrait

She's a criminal, a rogue, someone keen to avoid the eyes of the authorities for things she's done in the past, and what she may be planning to do. In fact, she's just spend the past two months in a Trance-based cyberspace prison/rehabilitation program, which in order to save space is conducted in the subject's own home. Only, they don't know that, thanks to the suggestive power of virtual reality.

One of the things I hope I achieved with Technobabylon was an unusual setting - the city of Newton, while very much a classically cyberpunk venue, was built on the Eastern coast of Africa, just up from Mombasa. I was born in the neighbourhood, and figured that it might make a nice setting for a "new city". It's on the major trade routes past the Middle East, and from Asia up to the Suez Canal, hence why the pirates do so much damage around there. With a bit of wealthy investment from across the Gulf, and otherwise cheap land, it'd be the kind of place to plonk down a city from scratch. However, this is a project conducted by outsiders, the wealthy and cosmopolitan of the world - Nzoka is an outsider, but only by a few kilometres.

A deserter from the Kenyan army, she's grown up with Newton as an enclave of wealthy technocrats next-door, who'll gun down anyone trying to get into the city without their prior approval (build a wall and make Kenya pay for it!). We've seen the establishment of Newton through Regis and Lao, we've seen its own kind of underclass in Latha, but here's a view from someone that starts off considerably more hostile to the whole place, working her ways from the slums to the shining towers to achieve her mission. While the developed areas of Newton barely betray its African position, the slums further out become less homogenised, reflective of the local culture just past the border.

She doesn't like Newton, she doesn't like what it represents, and she has an awful lot of preconceptions about what kind of people would live there; among those, however, is her brother, with whom she hasn't been able to reach for months.

So, I had a concept of a character, and what her goals are that require a visit to the big cyberpunk city. At this stage, I still didn't have an artist to hand, especially one I could make all of the same ridiculous demands that I could with Ben Chandler (and which he would then exceed expectations with). Additionally, I was aiming for a higher resolution than the previous game, going up from 320x200 to 720x400, widescreen adding its own whole new complications. So, I needed a way to design sprite-based characters - one that I could operate myself (despite terrible 2D art skills), and create fairly complex animations in eight directions. Where could I find what I needed? Japan!




Thanks to this Blender shader, one can turn 3D models into classically-styled 2D sprites. It took a bit of fiddling, and my rusty Japanese skills didn't help a great deal, but after a bit of kicking, I had a production pipeline set up for churning out humanoid characters that would fit in with a game like this. I can now not only use my functional 3D skill to replace my absent 2D ones, but also take advantage of pre-existing skeletons. Only one walk cycle is needed, as every character thereafter can import the same animation from its progenitor. Additionally, I can borrow animations from the Carnegie Mellon database for reference allowing for all sorts of complex, realistic behaviours that I wouldn't have a snowball's chance of producing on my wacom.



A method of building characters? Sorted. Now to look at backgrounds.


With the success I had last time, I opted to try a similar approach to backgrounds - 3D model reference, with competent artists painting over it to create the nineties style that so well suits these games. At the time, Ben was working on Shardlight, so I grabbed a old of Ivan, the talent behind the speech portraits of Technobabylon (and many other Wadjet Eye projects). The higher resolution was something he seemed suited to, and he went for a more "comic-book" approach to the portraits. The result:





So! The essential elements of a game were able to be built. We can have characters, we can have backgrounds, and thanks to Adventure Creator, we can have a point-and-click game on PC, Mac, Linux, Android and iOS from release. I put together a demo of the earliest section of the game, and ran it past a few folks to see what they thought. The general concept of the story and the new art style got a positive response, but it was coming out a bit too...chatty. Too much dialogue. I could see what was happening - the slower process of building the game in Unity as opposed to AGS was fragmenting development for me - I was no longer writing things like LookAts and Interactions on the go, but it had become much more a process of stopping to deal with scenes one at a time. Hopefully, this was going to be an issue that would be addressed through practice.


Newton, a City Built out of Hair

In order to get the hang of the new "hi-resolution" style that 720x400 permitted, I also decided to try some experiments with the other areas of the game's art. Much like Technobabylon, wanted a nice view of the city to set the scene on the main menu, and made use of another useful feature of Blender - hair. Specifically, the ability to choose a group of models to act as the hairs, growing from follicles across a mesh. With the aid of maps of Manhattan and Kenya to choose where the wig should go, I laid out a grid of roads and city blocks. Knocking together a few towers and hitting the "rogaine" button, I was surprised by how straightforward this was - if you want a go at the process yourself, here's the info. While a nice shape, it understandably lacked the detail it needed, with an appearance like something out of the start of Mirror's Edge than what I needed. Once again, Ivan's talents came in handy. I really ought to get around to paying him for it some day.



More experiments followed to create scenery for an intro scene, but after a little while I realised I'd become distracted by 3D. The downside of using this process for creating a game was the disconnect between Blender and the sprites, requiring the compiling/alpha/resizing process to get them to look appropriate in-game. The results were...okay, but still I thought things could be better. Building all of this had served as more practice, and I felt like Technobabylon's sequel could look even nicer with what I now could do.



On the one hand, it's an "ARGH" moment to have part of your brain telling you that you need to retool the game again again. On the other hand, that's how evolution works.


Next Episode: DIMENSIONAL COMPROMISE

Friday, 10 February 2017

Technobabylon 2, Part 2: ISOBABYLON

Previously on Technobabylon 2: After getting on the Unity train (choo choo!), and gaining a better understanding of its foibles with the aid of Adventure Creator, it was time to actually think not just about the functional elements of it, but also what I'd want a sequel to Technobabylon to look like.



Designing a game, especially a narrative adventure like this, is dependent upon not just how I want it to look, but additionally what I'm capable of. What I love is storytelling, though I'm a terrible 2D artist, and only an adequate 3D one. On my own, I'd be unlikely to produce anything in the order of Lucasarts in the nineties (or, perhaps, Westwood with Blade Runner), nor something like what Telltale are producing these days. After all, I'm only one person! In order to minimise the amount of outsourcing that'd need doing for art, I started looking into other games with a style that was minimal enough to...be inspired by (definitely not "knock off"), but also had a system that was conducive to telling a story through adventures.

ISOBABYLON

Two examples leapt to mind - Stasis (2015) was an adventure game that made use of an isometric perspective to create an atmospheric story, and Shadowrun Returns (2013), a cyberpunk tactical strategy with the kind of bathed-in-neon urban setting that would make the perfect backdrop for a future Technobabylon game. So, I set about seeing what kind of challenges would be involved in persuading Unity to see things from this perspective. An isometric perspective, that is - ho ho.

Shadowrun Returns

Stasis


By default, Unity sees things in 3D. In fact, it was only within the last few years that it started to take 2D seriously. Although the cameras all operate in 3D, they can be set to operate orthographically - that is, lines don't disappear off into a point as they would in perspective. That's one step dealt with. This means that we can use 3D models for our characters and parts of our scenery, and externally-sourced 2D art for scenery. I could therefore build the actors myself, relying on the distance between the camera and the people to hide the flaws in my craftwork, and let someone more competent than I deal with the backgrounds - unlike the first game, where Ben Chandler handled all of the backgrounds and characters.

As mentioned last time, using Adventure Creator had done a lot of the work for me when it came to building the adventure side of an adventure game. It comes with concepts like inventory, dialogue and interaction by default, and allows you to choose either a point-and-click or WASD system for movement - and with a bit of tweaking, was persuaded to be able to use both, with the camera following the player character around. With a bit of kicking (and with artistic input from Ben), I managed to get a test scene put together. If you've played Technobabylon, you might recognise it.




With a framework for isometric movement and interaction built, I could then move on to other characters. After all, they're kind of a vital part of adventure games, otherwise the only person the player can talk to is themself, and that's just daft. Anticipating scenes set in public, we needed characters that did more than just stood around to be interacted with, they had to be able to react to the player's presence, and give themselves dynamic walking routes.





By this stage, I had a bit of an idea of the plot I wanted to see in a sequel. As a practice run at both Unity and isometric gameplay, I set about building the first section of the game as laid out in the twisty, winding gibberish I call a plan. The outcome - sort of success.



The backgrounds are placeholdery, all but one of the characters are test-men, and only a couple of the animations have been implemented, but it gave me a good impression of what is required in building a game in Unity - and not just the isometric kinds. On the other hand, it provided a few observations of what such a game can and can't do. While great for strategies (X-Com <3), I haven't quite been sold on what a Technobabylon game would look like done this way. I like detail in scenes, a lot of which is lost from the distance between the camera and the environment. In addition, it required a bit too much "reinventing the wheel" - Unity's Adventure Creator has all the machinery needed to build an adventure game, and creating an isometric game added so much more development work on top of the narrative and art (plus a lot of potential new headaches to run into later).

So, while feasible, I'm not sure the result would have been worth it for what I could have accomplished. Plus, in all this experimenting, I now had a much better grasp of how Unity and Adventure Creator think, and on the side, the plot had been coalescing. Lots more evolution yet to go!

Next episode: NZOKA

Technobabylon 2, Part 1: An Evolutionary Process

In a few months, it will have been two years since Technobabylon was released. Part of me, therefore, is panicking that I've not managed to release another game to follow it up yet - after all, that's a pretty hefty amount of time - but everyone can be assured that I'm not being completely bone-idle.

The first game was built with AGS, and I'd decided to move on to Unity for the next project. The downside of that was having to actually learn how to use the new system. On the plus side, it works a lot better by default with my favoured artistic medium of Blender. And, with eighteen months of messing around, I've managed to learn a few things about it.

To prove that things are actually getting done, here's an overview of the various Technobabylon-related things that have been produced. Granted, a "sequel" has taken several different shapes since April 2015, but with every shift things get better.


First Shot: Early Experiments

Making another game was, unsurprisingly, a foregone conclusion. People liked playing Technobabylon, and I really enjoyed making it. Of course there'd be another game! And with the ability to make use of 3D as a medium rather than an art reference opened a lot of doors. To make nice-looking characters though, I needed nice-looking references. The fanart of Amanda Virtudes was a good place to start from, so we produced some turnarounds for two of the main characters of the game. From an "essentials" perspective, it was a good place to begin from - Regis would make a good basis for a "default male" mesh/skeleton, and Lao for the "default female".

Planning for the Dr Regis Reference

Planning for the Dr Lao Reference

Planning for the Latha/Mandala Reference


With a bit more outsourcing, Ivan Ulyanov discovered a talent for texturing as we ended up with a nice-looking Doctor Lao. With these polygonal protagonists now on-hand, experiments could begin in the third dimension, to see what Unity could do - for example, importing motion-captured animations from the Carnegie Mellon database.



In Technobabylon, much of the scenery was designed in 3D using Blender, then used by Ben Chandler to create appropriate-looking pixel-art backgrounds, a system that served us well. My first (and laziest) go at making scenery in 3D involved simply pasting the 2D scene on top of the existing 3D model ("unwrap > project from view", if you're interested). The results were...better than expected. Obviously, any turning of the camera would create funny warping effects, and areas behind obstacles that hadn't been painted would also come out a little peculiarly.

The original 3D reference for Technobabylon's Aerostat hallway




Also, the low resolution didn't serve the 3D well, with overly-crisp 3D characters against a 320x200 background. However, it was an interesting place to begin from! A couple of attempts were made at higher-resolution paste-on textures, and although interesting, it didn't take advantage of the opportunities that Blender and Unity provided.



One of those advantages, I must say, was Adventure Creator, an addon for Unity. It essentially provides a framework within Unity for designing adventure games in a manner that is familiar to those who've used AGS. It's got differences here and there, and you've still got to get used to some of Unity's own aspects (for example, the way it handles GUIs), but for making an adventure, it'll cut so much time out of building the framework for it - on its own, Unity is essentially a blank slate, AC gives it a kickstart in the right direction. Plus, its designer, Chris Burton, is extraordinarily helpful - any daft questions you've got, you'll find them answered swiftly on the forums (or a polite pointer to where in the manual to find the info). So yes, another good argument for using it.

Another long-term goal I have is to ensure that future games will work on mobile platforms. With AGS, I can't even imagine where to begin with such a task, but in Unity it simply became a matter of ticking an "Android" box.



So, in the summer of 2015, the experiments had begun, and I was starting to get the hang of how one drives Unity.

Next episode: ISOBABYLON