Showing posts with label Playable. Show all posts
Showing posts with label Playable. 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.