Skip to content

thelazyant164/HiveHavoc-AntOnWheels

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

"Banner"

Hive Havoc: Ants on Wheels

Created for Swinburne GAM20003 - Digital Game Prototyping Lab.

"Hive Havoc: Ants on Wheels" is a couch co-op 2-player game with asymmetrical roles, where 1 plays a third-person driver and the other a first-person rail-shooter. A high level of communication and coordination is vital to the gameplay, as both roles are intertwined inseparably and must depend on each other to achieve the shared goal. Fast-paced action, simple but chaotic mechanics, stylized art direction, an oversaturated colour palette and cheerful theme makes it the ideal party game for casual players.

"Menu"

With a dynamic split-screen camera reacting organically to on-screen events, "Hive Havoc: Ant on Wheels" sets itself apart from the rest.

Features

Hardware agnostic, affinity-driven input system

"Input mapping scene" Building on top of Unity's new input system, this implementation allows specialized support for asymmetrical-role local co-op with affinity-driven input mapping.

"Keyboard mapping" Hardware is decoupled from any particular role, allowing the players freedom to pick their preferred controller.

"Gamepad mapping" In case of hardware failure, the system supports dynamic remap; simply reconnect a new device with the matching "type" (e.g. a Switch can substitute for an Xbox on account of both being "gamepads").

Dynamic splitscreen

"Horizontal, even split" Depending on each player's role and current predicament, as the players progress through the level the perspective divider will dynamically adjust. This helps better indicate area of focus to improve playability and provides a more cinematic overall aesthetic, resulting in a more immersive play experience.

"Horizontal, shooter emphasis split" The current implementation supports split in 4 cardinal directions (left/right/top/bottom). Before switching orientation (horizontal <-> vertical), the shooter's viewport will be collapsed. Due to this constraint, the driver's viewport will always be anchored bottom/left in a split.

"Driver only split"

Altitude-Azimuth turret mount

A workaround solution to allow freedom of movement for a first-person shooter controls without IK animation rigging. Inspired by a telescope's Alt-Az mount, this mount is concerned with separating the Euler Yaw and Pitch rotation axis, each with individual constraints.

This makes it easier to handle conversion to and from Quaternion, allowing rotations to apply correctly in code, while still exposing designer-friendly boundary values in Euler degrees for rapid iterating.

Pickup ammo

"Ammo pickup flower" To reload, the shooter needs to run over flowers, whose released pollen will be consumed to power the pollen turret.

Built-in timer

"Gate" At the start of the level, a brief cutscene previews the level layout and introduces the end destination/time pressure, thematically a closing gate. This incentivizes both players to coordinate for a smooth run in order to achieve the shared goal.

Dynamic environment

A destructible & organic environment gives the player immediate feedbacks to their actions. Almost every element in the world is interactable & responds to their influence.

Fluid physics simulation

Dynamic environment Each platform simulates buoyancy behaviour by defining "float points", empty colliders distributed to mesh vertices. A float point calculates the buoyancy force applied to the master rigidbody at that point proportionate to the object's weight, which is distributed evenly across all children float points. A more complex mesh shape can be made up of smaller floating components, each of which defines their own float points.

If they are caught in a blast radius, each floating component will react to the explosion by delegating it to the master rigidbody.

Explosives & scripted events (trap)

Trap with floating TNT Explosives come in 3 variations, each with varying blast radius and explosion force. One variation floats on honey.

Trap arrangement Red tiles are trapped, and will activate when stepped on. A slow-motion sequence will play, where the shooter's viewport expand to make emphasis, and the shooter needs to take down the enemy unit before it can throw a projectile at the explosives, detonating it and destroying their path.

Checkpoint system

"Top-down level layout" Green tiles are checkpoint, and when stepped on will reset all registered dynamic objects in the directly following sequence.

Each dynamic object will register itself with a centralized manager at start, who will maintain a mapping to the currently active entity in scene. Objects who require a live reference to the current version of the respawnable can subscribe to its OnRespawn event, upon which it can update its reference correspondingly.

Prerequisites

The project is built with Unity 2022.3.3f1. To run the project, an equal or higher version of Unity is recommended.

Limitations & future plans

  • Buoyancy physics doesn't scale well for larger volume mesh, due to simplifications of force-weight distribution.
  • Buoyancy force calculation can be a good fit for the Job system.

Built With

Contributors

  • Thien An Ly - Producer, lead programmer, technical artist, designer - Aly
  • Hoang Phuc Huynh - Programmer, technical artist, designer - Quearktum
  • Lachlan Haines - 3D artist - Lachlan
  • Meng Yu Lim - 2D artist - Powort
  • Minh Hang Le - Environment artist - Avie

Acknowledgements

Icons

  • Flaticon - Vector Icons and Stickers - Flaticon

VFX

SFX

Voiceover

3D Model & Material

Liquid shader

Buoyancy physics

Procedural road

Arcade vehicle controller

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published