Fullscreen shaders

Heyo – got another update that’s a little more…uh, visually interesting.

Specifically, the fluid game is going to have two segments that use fullscreen shader effects: one’s a flashback and has that classic “degraded film” effect going on, and the other involves the player character wearing a mask of some sort.

film effect



The mask distortion is a little hard to see with the tiny amount of surface detail in the scene, but it shows up pretty well in the top-left and bottom-center.

The “mask” effect is controlled by an texture that looks like this (it’s a placeholder for the time being):

mask texture

This texture is intended to be a very “non-technical” image format – the white parts of the image are the parts of the screen that get distorted and darkened the most.  The idea is that it’ll be really easy to explain to our visual artist how the texture works, and then they’ll be able to make a higher-quality texture for us, without any hassle in the explanation.


A vague progress report

The fluid puzzler is coming along really well!  Since it’s a short-form puzzle game, I don’t want to show too much of its actual content for fear of ruining some of the fun.  The current plan is to have 21 levels, and as of today I have 11 that have at least a first draft.  Each puzzle needs to go through a few rounds of playtesting with fresh eyes, or else they’ll end up being shitty and frustrating.

We’ve found our visual artist and two voice actors, but I don’t have content from them yet, so I’ll save their intros for another time.

Here’s a quick screenshot that shows a text renderer that I implemented yesterday and today.  Not the most exciting tool…but a vital one for this game.  I couldn’t use Unity’s default text-mesh-generator, because it didn’t support some important features like smooth word-by-word reveals and wordwrap (which would have been a pain in the ass to work around).

Mild spoiler - the chemist mentioned is Louis Fieser, a real-life historical figure...

Still lots to do, but progress is looking good!

I’ve got bad news…and two kinds of good news

The bad news is that Titanium Frontier has been cancelled for some very frustrating financial reasons (and I don’t mean that we ran out of money – don’t worry, we’re fine).  If this is disappointing to you, too, contact me and I can explain the circumstances in further detail.

The first good news is that Not the Robots is about to get its biggest update so far – more information can be found on the Steam forums.  It adds a Save+Quit option for Campaign mode, improves performance (particularly for lower-end hardware), makes it easier to access You Find Yourself In A Room 2 (which can be unlocked with a cheat code now, instead of only by completing all 20 Challenge levels…which is extremely difficult), and various other tweaks and fixes, too.  I think it represents a noticeable increase in the overall quality of the game, and I hope that you guys will agree!

The other good news is that cancelling a project means we get to work on a new thing instead!  This one’s got a smaller scope – and this is probably going to be the general plan for a little while.  Smaller games, faster development times, cheaper prices, and we’ll expand further on the ideas that are received well by the audience.

First up:  A puzzle game centered around a fluid simulation!  The tech is in a similar vein as Spewer, an old game that I worked on…but this time there’s no platforming going on, so the gameplay’s focus is more on the fluid mechanics.  Can’t talk about the puzzle structure yet, but for now, I’ve got a fun little tech demo video.  More info soon!

A city

Part of the single player campaign in UntitledBulletHell.com (…new title soon) calls for 3D flyover views of 19 different cities.  This is a gargantuan art task for a team of our size (…two), so I’ve been making a procedural-generation-powered tool to help with creating cityscapes out of a manageable number of art assets.  These cities will only be presented as screensaver-style flyovers (since all of the core gameplay occurs out in the field), which gives the generator a ton of wiggle room to be naive and stupid about its placement rules…as long as the results are pretty from above.  Here’s what a current result looks like (with all placeholder art assets):

(Click for full size)

(Click for full size)

I’ve also been doing a lot of groundwork for the game’s storyline lately, since it’s nearly time to start plugging away at single player/co-op content in full force.  I figured out some key narrative points about the overall setting yesterday, which will help me for…probably the entire duration of the writing process.  Hooray!

Enjoy your Sunday.

Three quick screenshots

Heyo, I’ve got a few shots of some more world map progress.

First, another update to the swamp zone – everything was looking a little low to the ground, so I added some droopy trees to act as larger landmark-style objects.  The leaves on these trees use an alpha-cutoff shader (“gif-style” transparency, where each pixel of the surface is either fully opaque or fully invisible) which aims to break up their silhouettes a bit, helping them to look less polygonal and more…bushy.

I also enabled FXAA, a fast (and approximate) antialiasing method that’s done entirely as a post-process.  One nice thing about this method is that it treats regular geometric edges and shader-driven alpha-cutoff edges in the same way, meaning these trees can benefit from it.  Lovely!

swamp zone

Next, I started to work on the desert zone – I don’t have any detail objects scattered around in it yet, but I did some work on the map’s main terrain shader so that it could support sandy areas.  There’s some notable influence from Journey’s sand renderer here because let’s be honest – they nailed the sand in that game – they released a paper that described sand as a zillion tiny mirrors that all may or may not be reflecting into the camera.  What an intuitive and accurate way to approach the problem!

sand shader

Shaders are all about reacting to light, so here’s another shot of the sand shader at nighttime.

sand at night

Ooh shiny.  That’s all for now

Enemies and swampiness

I’ve been working on some art assets – primarily, more progress on the world map and some proper visuals for the in-game enemies.

The different tiers of hostile minions are color-coded now to help show their purposes, so the $60 minion is always blue and freezeproof, the $100 minion is always orange and fireproof, etc.  The shapes of the minions (which blocks are used, how they’re laid out, and which turrets get attached to each mounting position) are still procedurally generated, but these functional and visual distinctions should help to make them feel a bit more different from each other.  This is a game with a focus on tactics, after all, so there needs to be something meaningful to think over while you’re selecting which enemies to spawn!

Click for full size

Click for full size (works on the rest of the images, too)

Right now, all of the minions except for that tiny purple one  use the same turret graphics, but I’ll make a few different sets by the time it’s all said and done.

Next, here’s a little rundown of the foliage (thus far) in the world map’s swamp zone:

First, we start with a big flat shape to represent the water’s surface.  Unlike the other bodies of water on the map, it’s shallow enough for the player to wade through.

We’ll kick things off with some tall, bushy shrubs.

To add more coverage and a better sense of weight/thickness, we’ll add another layer of the same shrub texture, but bend the strips down to be flatter against the water.

swamp 3

This is looking better, but there are a lot of harsh-looking straight edges where it’s a bit too obvious that the plants are just a bunch of strips.  To help, we’ll add a layer of moss to the surface of the water – this uses the same fur-grass rendering technique used in the “plains” areas of the map.

swamp 4

Now we’re talking!  There’s still more work to do here, but it’s looking pretty good so far.

I don’t have a hilarious prank, but here are some pictures instead

It’s April 1st and that means I’m supposed to say something zany and out-of-character.  Hurr durr, from now on I only make Free-To-Pay games exclusive to Ubuntu Christian Edition.

Anyway, here are some pictures of the world map in Unity’s editor view.  Some of the in-game prettiness (like post-processing) is missing, but you can get a nicer overall view of the map layout.  New things from the past few days include the start of a much nicer player-accessible mountain and a new desert zone.  I also got the general movement in the world map to work more smoothly than before, allowing the player to slide along irregular walls and making camera pans feel a bit more natural.

And lastly, here’s a little video clip of the player quick-traveling along a roadway.

Oh also I got a new WordPress theme so maybe things look a little more sleek around here.  Happy holidays!

Some thoughts on games inside of games, plus some screenshots

So the game from the previous post, which is temporarily called UntitledBulletHell.com, started as a purely local-multiplayer game.  At a certain point I started feeling like this was a little too risky since the only platform we know we’re targeting is desktop…and desktops aren’t exactly known for local multiplayer.  This means that while the party-play stuff will still be a huge part of the game, we also need some kind of substantial single player component.  If you enjoy the single player stuff, you’re more likely to convince your friends to bring over their extra controllers, and then you get to see the rest of what the game has to offer!  And even if you never decide to do that, the single player content should feel worthy of the purchase on its own.

In the process of putting together this single player mode, I’ve been thinking a lot about what separates an indie game from a AAA game in the player’s perspective – obviously a AAA studio is capable of producing a much larger quantity of content, but what is the result in terms of the way the game feels to the player?  A simple conclusion is that a AAA game is capable of feeling much grander – much larger in scope.  How can this feeling of vastness be presented in an indie game if we already know from the outset that we can’t compete in terms of sheer designer hours?

I think that an important key is the metagame.  A metagame is a game that encapsulates another game.  In Mario 64, your final goal is to get to the top of the castle to confront Bowser 3 so that you can get some cake.  Along the way, you must enter the castle’s numerous paintings and complete bite-sized and self-contained challenges, like racing that douchebag turtle.  In this case, the main game and the surrounding metagame are pretty similar: they control the same way and the camera works the same way, but you deal with goals that are more longterm (for instance, platforming challenges and hazards in the castle are rare, so getting around is usually trivial…compare this to almost any moment spent inside a painting).  The metagame by itself isn’t too terribly compelling…it’s cool to discover the different parts of the castle, but if all the doors were unlocked at the beginning, it would only take a short amount of time to see most or all of it.  But if your exploration is halted because you haven’t completed enough paintings, the meaning and impact of the metagame becomes much more compelling.  The painting challenges are already fun on their own (as this is the real core of the game), but now you’ve got another good reason to be doing them.

An example with a more clear-cut metagame structure would be any Final Fantasy game, or really the RPG format in general.  You have the world map where you move from town to town, then the local map where you walk into shops or navigate dungeons, and then the combat mode where you fight monsters and suplex ghost trains.  These are three layers of metagame, and each of them represents some part of the game world at a different level of detail.  The world map shows the overall layout of the landscape, the local map shows a close-up of a specific area, and the combat describes a single encounter with an enemy in fine detail.  All three of them inform us about the game world, and they encourage the player to fill in the rest of the missing information in their head.  We know that the world exists at this level of detail, and we know that there are this many different places on the map, so the rest of the space we’re not able to access up-close must also be populated (…or at least existent) in a similar way.

In this way, the metagame serves two important purposes:  It increases the perceived size of the game world which allows for richer storytelling, and it adds extra incentive for a player to keep playing.

Anyway, I’ve been working on a world map for the shoot-em-up.  You’ll move around it to reach the various challenge encounters where you’ll play the main shooter game while stopping at the cities to unlock and upgrade and such along the way.  As a bonus unrelated note, I’m aiming to make the whole campaign playable in co-op if you have more than one player on deck.

But that’s enough rambling!  Here are some pictures of the map.  The idea is that it’s like a super-size game board, so the scale of everything is kinda fuzzy and the cities are represented as metal statues with circular bases, but you move around it with a third-person-style view, “over the shoulder.”  It’s work-in-progress so there are still a good number of placeholders (the city icons are a big one), but I’m super excited about how it’s coming along!  Click an image for full size.

Enjoy your week!