Waiting For Players – Survival Horror With Friends

waitingforplayers

Waiting for Players (pending title) is a multiplayer survival horror game developed in 48 hours using the Unity engine. It was submitted as part as 2013’s Global Game Jam Humberside, and earned first prize.

Our team was composed of Louis Deane, Daniel Endersby, Ryan Hollands, Duncan Mulholland, Don Holland, Jack Wood and myself. That’s a lot of Hollands.

Players are thrown into what appears to be a dark mansion. One of them becomes an invisible presence, tasked with eliminating the other players. To do so, the presence must maintain eye contact with the survivors until they faint. The game stops when all survivors are dead, or when the last person alive makes his/her escape.

  • The survivors, on the other hand, posess the ability to sense the presence’s heartbeat. The louder, the closer. The speed of the beats can also indicate the pace of the ghost’s movement. A very slow beat will indicate that the presence is sitting idle, waiting for prey. On the other hand, it will most certainly be running if the heartbeat is fast paced.
  • The survivor’s vision becomes increasingly twisted the more their health diminishes.
  • When the presence is staring at a survivor, a screeching music is played, alarming the survivor of the threat without revealing its position.
  • Several other cues can be used by the survivors to locate the presence, such as decorations falling when the presence brushes past them.
  • A ball of light is located somewhere within the mansion. It sticks to any surface it is being thrown at, and allows the carrier to slow down and reveal the presence.

The last two features, although implemented in a local version of the game, were not implemented for network play due to time constraints.

Also, "Yaaay we won!"
Also, “Yaaay we won!”

An Island in a Globe

Where terrible weather IS a feature!
Sometimes, terrible weather can be a feature.

Here it is, the “seasonal island in the globe”. You can see it motion in this video, accompanied by the cheesiest music I had on the top of my mind. I don’t even know why, I’m not even a Final Fantasy fan.

The main (and personal) features include:

  • Entity parenting and transform stacking.
  • Geometry shader particles, with mesh-based generation. Low-poly meshes are used to generate particles, per  around certain areas.
  • Displacement mapping.
  • Multi-pass lighting and shadowing.
  • Mesh reflection (work still in progress).

My initial consideration was a component-based architecture, which I later traded for a more standard, hierarchy-based structure, as many people convinced me it was just overkill. Truth be told,  even without a proper composite pattern, the end result is probably just as much. One feature I dreamt of having was soft particles, but sadly I had to prioritize other aspects for the deadline.

The island follows the cycle of the four seasons, having respectively:

  • Leaves growing in spring.
  • The tree burning in summer.
  • Thick mist masking the island in autumn.
  • Water freezing in winter.
  • A dynamic, directional light used to simulate the sun.
  • Four (optional) spotlights, which show off the multi-pass shadows-lights.

island_1 island_4 island_3 island_2

Ultimate Garbage Team Space Sheriffs

UGTSS3

Footage of the game can be found here.

This particularly long title stands for a game I developed in my first year for the Imagine Cup.

The game is a side-scrolling shooter featuring a combo mechanic and some mild RPG elements. The player controls a flying recycle bit, exhibiting a proud mustache. Various enemy types will storm from the right, and the player will have to destroy them. When an enemy gets blown into smithereens, it may drop some garbage which the player needs to properly recycle.

The twist is, the player actually controls three separate bins (although just one at once), each with its own unique type of shots. The keys QWE allow to dynamically switch bit and shoot with it.

Collecting garbage with the appropriate type of bin will increase the bin’s experience level, as well as the combo meter. When the experience bar is full, the bin levels up, and its shots become more powerful and varied.

If a bin ever gets hit by enemy fire, it will be incapacitated for a certain period of time, and the combo meter is reset. There is no game over, but this holds an impact on the final score.

At the end of the game, the player gets issued badges for his achievements, based on his score and damage received. One objective of the game is to obtain all badges for all levels.

Main Menu Save Screendamage+ weaponupgrade cheese

Let me show you my reel.

It's quite small, too.
It’s quite small, too.

I have been meaning to do this for more than a year, and it only took a few days of work to get done.

So here they are, the games I made, in glorious 720p. You can watch it at this address, before youtube remove it for the use of a copyrighted song.

Like Rory properly noticed, the 3D pool table is missing. I personally don’t miss it that much.

To make it look like there is more to this article than a link to a youtube video, here are the games and programs appearing on it, in order:

  • It’s Not Safe Outside
  • Logic 0101
  • Pocket Starlight
  • Assault on Glassbraltar
  • Warrior Koalas on Mars
  • Ultimate Garbage Team Space Sheriffs
  • With Fish
  • MazeCraft
  • Globe Island
  • Various personal experiments

A DirectX Maze

DX Maze

As part of a group project, we had to produce a small maze game in DirectX 9, from scratch.

My work revolved primarily around setting up a proper graphics architecture for the program, and implementing it using the MVC development pattern. Here is a summary of what I worked on.

  • A uniform tesselation algorithm, which was called at startup, and allowed proper lighting of the maze.
  • Implementing the MVC pattern.
  • A grid structure for the maze, where each square would contain a piece of ground, and between one and four walls, and between one and four corners.
  • Loading of a maze configuration  file.
  • Varying drawing distance and level of detail.
  • A small adaptive drone that would scower any maze configuration.
  • Collision detection and response with the maze walls.
  • Animated textures.
  • Art assets.

Start Wireframe A floating key Mini maze in wireframe Culling (top view) OH  MY GOD A BOUNCING CREEPER

Assault on Glassbraltar

Assault on Glassbraltar is a very simple game demonstrating vector-based graphics in OpenGL.

The game was developed for a 2D coursework, where the students had to produce a 2D game/interactive demo based on the assault of Gibraltar. The player must control a cannon from a cliff to shoot incoming boats. I decided to experiment with polygonal graphics and texture distortion to produce a stained glass appearance. When a cannonball collides with a triangular glass segment of the boat, it will break the glass. When a boat has none of its glass triangles remaining, it will sink. Multiple affects and particles have also been added, as well as the ability to break the background.

The game is available for download on my DeviantArt page.

Shooting at boats About to sink Big boat, small boat

Logic 0101

Logic 0101

Logic 0101 is the result of a university group project. With a team of 7, the aim was to produce a maze game that would emphasize programming. It was a tough project, as we had to go through very strict deadlines. Although we did pretty well in retrospect!

I worked on some of the graphical design, interfaces and flow, as well as the program architecture, which is based on hierarchical state management.

The player must place arrow tiles to guide little robot HARVEY through a maze. When the pattern of arrows is properly arranged, the player can run the program and the robot will follow its path. Each obstacle or object the robot encounters is referred as a method call, and the player can observe the sequence of method calls in a console on the left, which is displayed when the program is being run. The goal is, of course, to guide the robot to the end portal, without getting it stuck or destroyed. The player must be aware of certain variables, such as the direction of the robot when it enters a portal, or the portal colours.

An extract from the tutorial/in game instructions. The very first level fo the game. The program is running, and HARVEY is heading into a pit.

TNT (It’s Not Safe Outside)

TNT might be a tad misleading name, as this game is not really based on any kind of explosion.

The game was developed alongside Rob Marshall as part of the Three Thing Game of October 2011, and won first prize.

The game is for Windows Phone, and is based on the three words ‘Tomb, Ninja, Travelodge’ (hence its name, TNT). It is a side-scrolling game, where the player assumes the role of a ninja, who is tasked to escort a group of travelers (who incidentally are stupid enough to travel at night) through hordes of zombies and other creatures from beyond the grave. When a traveller gets hit, he/she will turn into a lovely angel and slowly ascend to meet his/her maker. At least one traveler must remain alive when reaching the next safe point. Safe points, of course, happen to be Travelodges.

To protect the travelers, the player has a variety of tools.

  • A standard shuriken attack, which targets one zombie.
  • A slice attack, which targets all zombies it crosses.
  • A burn attack, which deals damage over time to all zombies it comes in contact with. The player must hold his finger for one second on the screen to activate it, making it a bit more risky to pull off this very powerful attack.
Zombies (so far) come in two fairly standard types. A smaller, and faster zombie, and a big, fatter, bulkier zombie. Every time a zombie takes damage, a part of its body is taken off. The amount of damage a zombie has endured can be guessed by how many body parts it has left. Tombstones will regularly spawn zombies, while coffins are free for the player to open, and may yield a coin reward, or another zombie. Zombies themselves pop in satisfying bursts of coins when slain. The amount of coin obtained for each zombie is subject to a multiplier.
So far, coins do not have any use in the game, although they will be used to purchase upgrades.

To this day, I took the development back from scratch (while Robert Marshall is focusing on Warrior Koalas on Mars), and I am planning to release it to the Windows Phone Marketplace. The game’s title has changed “It’s Not Safe Outside”.

A few new features include semi-random upgrades, new enemy types and genetic-based difficulty increments.

 

The first traveller sadly passed away. The strongest attack in the game. Ninja waves at travellers from atop the Travelodge. The travellers wave at the ninja.

Minesweeper And Stuff.

MineSweeper And Stuff

Here’s for kicking off the “stuff-I-made-bit-of-the-blog”.

‘Minesweeper And Stuff’ was my very first programmed game, a product of blood, sweat, tears, and various other bodily fluids. It was originally developed for a piece of coursework. The initial specifications stated the game should be either a console application or an XNA game. Needless to say, XNA was definitely the more interesting (and most fun) approach.

The game was developed during four weeks, and includes a variety of modes, such as:

  • Standard minesweeper: One life, no time limit.
  • Challenges: Grids of various sizes, with varying amount of lives and time limits. A riddle mode (image 4) makes the player guess a specific motif based on a clue.
  • Custom: Allows the player to create his/her own level to play on.
The game can be found and downloaded from my DeviantArt page.
Black and white theme.   Game Menus Riddle Mode When the player wins a game.