Showing posts with label Games. Show all posts
Showing posts with label Games. Show all posts

Tuesday, 29 July 2014

10 Day Prototype: Horror Maze

This was a fun chance to test out procedural world building, in a horror maze game (with sound this time).  Final coding and gameplay by yours truly:

HorrorMaze_BuildL04 2014-07-30 11-37-44-10HorrorMaze_BuildL04 2014-07-30 11-37-51-35

Play Horror Maze Prototype

 

FEATURES

Procedural World Building

5 Rooms, 10 Room Contents, Infinite Mazes

At the start of each level a new maze is made, constructed from a series of room-prefabs, filled with a series of room-content-prefabs, and laid out so that:

  • All doorways align and all outermost edges are solid walls.
  • There are many more doorways near the centre (spawn) and more dead ends further out.
  • One chest appears near the centre and a few keys appear further out.
  • Each room has a chance of either slowing the player or spawning ghosts, chances based on room-content.
  • The NavMesh for enemy pathfinding is updated for these rooms with these contents, for the sake of…

...g-g-ghost!

 

Pathfinding

This was something had never done before but turned out to be infinitely less of a nightmare than expected (thanks mainly to Unity doing the heavy lifting).

Pathfinding was researched and made fully operational by current AIE Games students Jesse Killkelly-Munro, McMouny Heng and Peter Boutros, and then implemented into the procedural maze builder by yours truly.  The pathfinding is based on Unity’s NavMesh system (with NavMesh carvers included in the prefabs) to give basic enemy pathfinding around the procedural maze and it’s content.  Added to my list of ‘thing’s to make tutorials on ASAP.’

 

Planned Features

The procedural generation was the main thing I was happy with, and am looking forward to taking much further, using it next to randomly build and place content around a house for a ‘haunted house’ game.  The plan is to take the system of random room and content generation, and make it work to create a randomised layout for a two storey house, placing furniture and rooms in locations that are natural, but slightly different for every playthrough.  Should be a fun challenge.

 

 

Full Attributions

Original concept, enemy models and animations by Jacob Clerke.

GUI elements by Kirby Hodgson

Sounds sourced by Jesse Killkelly-Munro and Tristian Blake

Prop models and textures by Chris Park and Tristian Blake

Room textures by Tristian Blake

Set dressing by Tristian Blake

Coding and gameplay prototyping by Jesse Killkelly-Munro, McMouny Heng and Peter Boutros

Coding and gameplay (final) by Lex Wills

 

Sound Attributions

All located by Jesse Killkelly-Munro and selected by Tristian Blake

Music, 'Dark Tension' by Music4Tv

Danger, 'Heartbeat Sound Effect 05', by SoundJay.com

Player Footsteps, 'Footsteps 5' by Pacdv.com

Ghost Spawning Sound 1 of 2, by The Cheese Man

Ghost Spawning Sound 2 of 2, by Mike Koenig

Ghost Attack Sound, by SoundDogs.com

Hit Sound 1 of 4, by CGeffex

Hit Sound 2 of 4, by Mark DiAngelo

Hit Sound 3 of 4, by Mark DiAngelo

Hit Sound 4 of 4, by Mike Koenig

Chest Locked, 'Door Locked Sound Effect 1' by SoundJay.com

Chest Unlocked, 'Door Locked Sound Effect 2' by SoundJay.com

Key Pickup Sound, 'Desk Bell' by Stuart Duffield

Scare/Slow (Minor) Sound, by Mike Koenig

Scare/Slow (Major) Sound, by Titus Calen

All sound effects used in a not-for-profit capacity.

Friday, 18 July 2014

2 Day Prototype: Super

One of my pet passions is Super Heroes – not what they are usually shown to be, but what they could be, and especially, where is the line between ‘good’ and ‘evil.’  A question that became:
Screenshot of main interface
Art and story by Tristian Blake, coding by Lex Wills, animations (not yet featured) by Jacob Clerke.

Super - Click to Play

Warning: button presses occasionally won’t work at start-up, but resizing the window will fix this.  Apparently this is a long-running issue with Unity’s Web Player’s integration with Google Chrome, but it’s number one on my list of things to find a consistent solution for.

FEATURES

Pseudo-Infinite Events

Pseudo-infinite because there’s currently only twelve.  Pseudo-infinite because these twelve events are written in the following adaptive form:

[On your way past] [famous location] you pass a [bad] [bad character] in the process of mugging an unarmed [character]. [You]...

Everything in [square brackets] is a tag, which can be replaced with a random entry from a pre-defined list.  So for example, the above line can appear as any of the following:

On your way past Sydney University, you pass a shouting robber in the process of mugging an unarmed citizen.  You…
While passing Centrepoint Tower, you pass an inexperienced thug in the process of mugging an unarmed woman.  Quickly, you…
Eating lunch by Olympic Park Stadium, you pass a hardened granny in the process of mugging an unarmed teenager.  Knowing it’s your duty, you…

And so on, combining different details to make the same events have different specifics, some of which are hilarious (e.g. On your way home, you pass a young child on the street, putting up LOST posters for her pet fuzzy tarantula, Cuddles.)
Hopefully when we’ve added more events to the database (e.g. about 50 or more), then the effect will be such that the player won’t even recognize the same event appearing twice (especially given the system enforces a gap of totalEvents / 2 before an event appear again, so for example with 50 events the minimum gap between occurrences of the “mugging” would be 25 events).
We’re also looking forward to using this system as the basis for a variety of other text/story based event-games.  Oh the possibilities!

No ‘Evil’ Trait

Order vs Chaos
Brains vs Power
Toughness vs Speed
Legend vs Mystery
These were the four ranges we felt (after lots of heated ‘discussion’) would best define the broadest range of heroes and villains.  AND NOWHERE APPEARS ‘Good vs Evil,’ (though Order vs Chaos comes a little close).
This is because, we believe, ‘Good vs Evil’ is a drastic oversimplification.  Few undeniably ‘evil’ people do what they do because they genuinely believe it is the WRONG thing to do.  People invariably feel their actions are justified, and have a basis in reality, even if that reality exists only to them.  There are of course very notable exceptions:
But even for those supers whose sole purpose in life is to have fun, we wanted to try and define them not by a label of ‘good’ or ‘evil,’ but by who they actually are.
For example, Superman would have very high Order, believing there is a ‘right way’ to do things, and high ‘Legend’, being a highly visible moral figure in the community.  Alternatively Batman would lean a little more towards ‘Chaos’, as he doesn’t always play by the rules, with high ‘Mystery’, given there are many times during his stories where people plausibly believe he doesn’t even exist, and if he does, they know very little about him.
The Joker would have EXTREMELY high Chaos: he just wants to watch the world burn (while Deadpool toasts marshmallows), while Lex Luthor would have high Order: he believe there is a right way to do things (even though that way is NOT the same as Superman’s, whom Lex believes to be a threat to humanity only he himself can see).
Of course all of these strengths have a flipside weakness – the Hulk would have maximum Power and Toughness, at the expense of Brains and Speed.  Alternatively the Flash would have the highest possible Speed, and no Toughness.
These traits already effect the chance of success for different choices: two traits always make is easier to achieve a given choice, while sometimes an extra (unseen but logical) one makes its harder: e.g. it’s hard to give an impassioned appeal to a criminal’s morality if you yourself are a known madman.  But, their is another planned use for these traits, one that promises to be more visually awesome:

Planned Features

Avatar Evolution

One of the features that didn’t make it in to the two-day prototype was visible, game-driven avatar-customization (Unfortunately ran out of time to integrate Jason Clerke’s test animations before prototype was due, so needed to go with 2d placeholder).
In the final game, full 3d avatar-customization will be based around showing a) a 3d environment behind the avatar, as their ‘super hideout’ evolves from an apartment, into a full super-cave, and b) showing a 3d model of the player’s super character, posed and performing a looped idle animation.  But the specifics of all this will depend on what kind of super they’ve become.
As the game evolves, and you acquire more fame and money, your outfit evolves from something that looks like you made it yourself, to a full shining super-suit.  But what does this suit look like?  Is it bright and vibrant, showing you to be the Legend of Order you are.  Or is it muted, dark, and covered in equal damage and weapons, showing you to be the skulking Mysterious Chaos lord you are?
And how do you stand?  Do you stand upright, arms behind back (Brains) or hunched, fists and muscles tensed (Power)?  Are a well-defined (Toughness) muscular (Power) body-builder, or are you a scrawny (Brains) lithe (Speed) athlete?
Order vs Chaos (Expression Concept)
order vs chaos
Brains vs Power (Stance Concept)
brains vs power
Speed vs Toughness  (Physical Concept)
speed vs toughness
Legend vs Mystery  (Lighting Concept)
legend vs mystery
Your traits, and thus your choices that gave you those traits, determine who you are – how you look, stand, are lit, and fill out your suit.  This will be achieved through the use of four parts: Unity’s Mechanim for animation blending, ShaderForge for shader creation and customization, a custom script for camera-angles and lighting, and finally a custom multi-character rig made by yours truly. The goal of all this being to have the game show you your super, evolving from the same base person, into the person your choices have made.

Fame, Funds and Health Usage

Currently ‘Fame’, ‘Funds’ and ‘Health’ have no use other than numbers.  They will, however, determine the ongoing course of the game.
In the final game your funds will be used to manage your life, pay rent, hospital bills, etc, showing how difficult it is to keep going as a full-time super with a real life.  This will make it difficult to be completely selfless – yes you’d like to say, oh no need to thank me mayor, all in a day’s work… but how many days has it been since you ate?
Fame is how famous you are – how many people know your name (for better or worse), and is used to determine the progression of the game and its story (only the most famous heroes get to save the entire world after all).
And health – every act of heroism costs at least some health, tiring you out.  The less health you have, the worse your condition, and the harder it is to succeed.  You can only keep going for so long before you have to sleep, and recover yourself.  This will be another place where funds come in, allowing you to buy things like a better bed, or later a full regenerative-chamber, to heal you more, as well as buying better armour, med kits, etc, that will boost your ongoing resistance to damage.  Managing your health versus your desire to just keep going will be part of the game’s difficulty.

So that’s the plans.  More events are also planned, with things like ‘Your day-job boss demands you explain your CONSTANT sudden absences. How do you avoid getting fired?,’ the start and ongoing difficulty of having a relationship while leading a double-life, family-interactions, etc, integrating the character into their own ongoing story that evolves right up until the end game – which begins with the appearance of your arch-nemesis, the specifics of whom we’re keeping our own little secret.
Hopefully this has excited you as much as it has done us!  There’s much to do, but to date everything has gone so well we can’t wait to continue, as this is a game we desperately want to play.  It just needs to exist first.

Tuesday, 15 July 2014

2 Prototype: Zappy Orbs

Several first in one: my first major prototype made in Playmaker and my first look at Unity Particles.  The result:

Lex Wills, Zappy Orbs, Image 01Lex Wills, Zappy Orbs, Image 02Lex Wills, Zappy Orbs, Image 03

Made over a weekend as a test of concept, to see if could take the then infamous Flappy Birds mechanic, a simple yet addictive physics-based challenge, and quickly redevelop it, taking advantage of Unity particles and Strumpy animated Shaders to make the game a visual treat.

I also wanted to see if I could take the core mechanics and controls of Flappy Birds and improve them, refining the physics and controls and adding behind-the-scene player assistance that would, subtly and invisibly to the player, allow the game to be pushed to entirely new heights.  This was done through the redesign of:

 

Control and Death

Unlike in the original Flappy Birds, the single-button control (mouse button or touch-pad touch) could be held down and released for constant force – a simple change, but one that produced much smoother control over the position of the orb as it moved ever onwards.

Hitting the top or bottom of the screen, or hitting any part of a shield-wall other than the darker gap, would result in death.  A nice explosive death:

Lex Wills, Zappy Orbs, Image 04

BUT, unlike in the original, in here it was made possible to gain more than one life.

Passing safely through the gap in a gate would destroy the gate, causing a nice colour-explosion, changing the colour of the player to an average of their current colour and the gate’s colour, and making the player grow a little larger.

Passing five gates in a row would make the player shrink again, revealing a new, smaller orb orbiting the main one – a second life.

After this point if the player hit the top/bottom or gates, they would simply lose a life (causing a colour-explosion based on that life, and the loss of that orb), only losing the game if they lost all lives and then crashed.

Lex Wills, Zappy Orbs, Image 05

This simple change gave more room for error with increased play time, and with it, more room to push the mechanics and challenge as the game progressed, especially:

 

Speed and Assistance

Every new life gained made you go faster, and faster, and faster!

Lex Wills, Zappy Orbs, Image 06

But with increased speed, the player’s physics and control were subtly altered, increasing with speed so that the player always felt like they had the same amount of overall control, just less reaction time.

Additionally, though every new gate came in with its gap at a random height, the distance between the gaps of the last gate and the next gate would gradually shrink with speed.  What this meant was that, as the player got faster and faster there was less chance of being foiled by two gates impossibly close together with vastly different heights.  In fact with extreme speed the gates would even start to line up more, making the player have to shift from big movement to finer control of a speeding object, feeling ever more accomplished for successfully controlling this ever faster going orb.

In fact these behind-the-scenes tweaks soon made it possible for repeating players that had practiced the game’s controls were able to start to achieve high numbers of lives, and with it ludicrously high speed.  More challenge was needed, so a second game-stage was added.

Lex Wills, Zappy Orbs, Image 07Lex Wills, Zappy Orbs, Image 08Lex Wills, Zappy Orbs, Image 09

Taking reference from sonic-boom effects, with enough speed the player would be chased by a wave of light, building up behind them, compressing, and eventually breaking in a rainbow explosion, as the player broke through the speed of light.

Lex Wills, Zappy Orbs, Image 10

Here the background would change to a fast-rushing star-field, a slight colour-gradient overlay showing the path you should travel, as at this point the visuals and the gates themselves were flashing past so insanely fast as to be indistinguishable, becoming one long tunnel of rushing colour.  Following the shown path was the only way to avoid a mistake, which be explosively fatal (shown later).  But holding your course and getting faster and faster would eventually lead you to…

 

The Endgame

Where you are going so fast …

Lex Wills, Zappy Orbs, Image 11

… you break through …

Lex Wills, Zappy Orbs, Image 12

… space-time itself …

Lex Wills, Zappy Orbs, Image 13

… winning the game.

Lex Wills, Zappy Orbs, Image 14Lex Wills, Zappy Orbs, Image 15Lex Wills, Zappy Orbs, Image 16

 

Overall, a fun, simple, and above all quick prototype, testing the use both of visuals and of more refined controls and player-assisting mechanics behind the scenes to push the Flappy Birds core mechanics to ludicrous speeds.  And if, once achieving said speeds, you wanted to see how spectacular the crash would be:

Lex Wills, Zappy Orbs, Image 17

As mentioned, hitting the top or bottom during the second stage was explosively fatal.

Before this stage, if the player hit the top or bottom then they would bounce, losing one life but usually being able to regain control before losing a second.

After this stage, if the player hit the top or bottom they would BOUNCE, fast and hard enough to immediately hit the other side, then the other and other again, back and forth, a coloured life exploding every time and – well you can see above, but a static image doesn’t quiet convey the sensation of coloured shockwaves exploding at every angle in a few glorious seconds of light.  Aaah, the other, just as colourful way to end the game.  Speaking of which:

 

Downloads

The game can be downloaded and played here:

Download: ZappyOrbs (32 Bit Version)

Download: ZappyOrbs (64 Bit Version)

These are zip archives – unzip to your computer, open the folder and run the exe file (setting resolution to 1920x1080).  A less than ideal way of playing it, due to:

 

Disclaimer: These are still the rapidly made versions, constructed using Playmaker as a quick test of concept only, and my first Playmaker prototypes.  As such, they are far from perfect – most notably in the final update the game began producing a moment of lag whenever a gate was passed, something that previously had not occurred.  Due to this being intended as a rapid prototype only, the source of this performance bug was not corrected.

However, I will be posting new versions of the game here asap, versions that are properly recoded in C# and take advantage of what I’ve learned since then (for example, the benefit of using trail-renderers for solid trails, rather than ultra-dense particle streams).  These new versions will also be made specifically for the Unity web-player, so that they can be played directly on this website without any downloading and configuring – just click to play.

These updated versions will be posted here soon – as soon as have finished getting up to date with posting my other prototypes, art, tools and other projects.