Almost done!

All behaviours are now implemented including a combat group based tactical retreat. It all just needs a little tuning now. The main blocker at this point is just a slew of editor bugs, specifically with behaviour trees. Hopefully they’ll be fixed soon.

Cover pass 1

Work in progress

Over the Christmas holidays I implemented the base of a cover system including the AI. It’s pretty raw right now and there’s a lot that needs ironing out, but it’s getting there. The AI selects cover based on their current weapon and the players last known location. Cover can also be invalidated in a number of ways by the player. The next steps will involve augmenting the group logic for the enemies with tactical retreats and advances to create some real flow and movement to the encounters.

Cover volume construction script

While we wait for the next round of concept art for our Midnight project, I’m working on a cover based shooter in UE4.

Auto generating cover often yields messy results so I’ve opted for a hand placed solution, and this little script just makes that process far far less painful.

Initial Doodles

I’ve recruited (OK, more like persuaded) the very talented Damian Buzugbe to work on the game.

Damian is a concept artist who has been in the industry since time began… or at least, longer than I have. Most notably he was the lead character artist on the Fable games. Check out his blog: Here.

So here are some extremely early doodles of our game’s protagonist – an attempt to capture the form of a middle eastern refugee but in a more abstract and more fantastical style.

early concept

Prototype tile system

This is a Unity prototype of a dynamic world that’s the center of a small game I’m currently working on. I’m now porting the project to UE4 which should be pretty fast, but in the meantime I thought I’d share.

This system provides an open world experience while allowing us to tell a very linear story and have it not feel forced. The player can walk in any direction they choose, but once certain conditions are met the next chunk of world that instantiates will contain the characters or setting for the next beat of the story. If you turn and walk the other way you’ll find it appearing in front of you again. The story is, in part, about unavoidable events in a person’s life and I think the gameplay mirrors this nicely. You seem to have choice, but in actual fact what happens to you is already predetermined.

Here a system of slots arranged in a hexagonal grid maintains the pieces that you walk on, and can choose to instantiate a special tile from a queue if the conditions are met.

Ignore my awful designer / programmer art and the hideous Unity default character.

Porting the project to UE4

My god UE4 is fantastic. The level of thought that’s gone into the system is phenomenal.

After having played around with it for a short while and done some prototyping for our current project, I’ve decided to switch my side project over from Unity.

One of the main reasons for this, apart from how easy it is to use, is that we now have an animator on board! Very exciting, and UE4 has far superior animation systems.

I’ll start posting videos of the game very soon – I’ve re-worked the core system to support some pretty cool stuff in our little dynamic, procedural world which I’m looking forward to unveiling!

Playing with curves

Ok so I think this is pretty cool. I also think this is one of THE ways you should create core mechanics.

Simply – I’m creating a jump in a game, but this is so important to get right. A good jump is a little bit of positive feedback every time you hit the button. It can be addictive and genuinely fun. A bad jump makes you feel like you’re fighting against the controls. In fact most people don’t notice when a jump is good or bad, they just like one game and not the other and they don’t know why. This stuff is important.

So this is how I’m doing it –

I’m using this easing function generator to create and tune the appropriate curve and then converting the function into C# and plugging it into my code. This is the initial result using a standard curve, it’s not right yet but it already feels like it’s on the way.

Next I need to gut that site’s (very kindly freely available) code and create a solution that will give me more control over the curve and allow live editing