Tetra/Agon

Add to
My games
Add to
Wishlist
Save to
Collection
No reviews
Exceptional
Meh
Skip

About

Introduction

You find yourself alone in an industrial district. A strange metallic box floats nearby. You're posed with a puzzle in a strange script, and a choice on what happens next.

You're being tested. What for? Who is testing you? Will you ever find out?

Tetra/Agon is a puzzle/action FPS game. In it's current v0.1 form it's a single-level demonstration of enemy AI, weapon handling and puzzle gameplay.

Instructions

WASD or arrow keys - Movement
Space - Jump

1-4 - Select weapon
Left mouse - Shoot/press button
Right mouse - Interact

Hint: Some weapons are better choices against different enemies. If you get stuck, remember that the checkpoint is saved before you pick your new weapon upgrade so you can go back and try a different weapon.

Why Tetra/Agon?

Tetra/Agon is the first 3D project that I've added to my profile here on Itch. There were a number of specific elements I had in mind at conception:

  • First person shooter: As a massive FPS gamer, I've been looking forward to getting stuck in to building a FPS game myself. A major consideration for me here is having a selection of weapons which are all useful but varied in meaningful ways.
  • 3D dynamic path finding: I wanted enemies that have full 3D dynamic path finding, which I don't think I've seen in any major FPS game. In other games I've encountered flying enemies they're either "fake" flying (i.e. hovering at a set height using 2D navmesh path finding), following preset paths, navigating in spaces without obstacles, or relying on "sliding" along obstacles to get to targets.
  • Puzzle box: I wanted a "puzzle box" feature, a type of non-repeating puzzle that could be included easily multiple times. I wanted this to be under time pressure (after the first "learner" box) to bring the challenge of switching between the kind of thinking required for fast FPS action and for logic puzzles under time pressure.
  • Pattern of four: I had a vision of the patterns of four throughout the game - four core challenges (solve, shoot, survive and strengthen), numbers in base four, four parts to each puzzle, four puzzles to each puzzle box, four weapons, four enemies. It was an interesting challenge to hold within this pattern within reason, and this sort of deep equilibrium can be useful in communicating implicitly with the player.

Learning points

  • Deterministic gameplay - Deviating from my highly stochastic shoot-em-up games, as a challenge and experiment I decided to make this game without any random elements. Gameplay in Tetra/Agon follows strict deterministic rules and there are no random elements used to determine gameplay.
  • Object libraries - I invested fully in using object libraries for Tetra/Agon: all enemies, projectiles, particles, etc are stored in object libraries so there are no objects instantiated at run time.
  • A Star algorithm - I've experimented with this previously in a very early prototype 2D project, however Tetra/Agon takes it much further by implementing it in a 3D space with higher quantities of nodes. Path finding data is pre-generated and stored in the game files, so it does not need to be calculated at run time.
  • 3D node map - To enable enemies that can move in three dimensions, I built a 3D node map for the A Star algorithm to navigate and a system for generating and linking the nodes easily.
  • Finite State Machines - With Tetra/Agon I used a hierarchical FSM structure for enemy behaviour as a suitable match for relatively low enemy complexity.
  • Quaternions - I avoided using Euler angles as much as possible in Tetra/Agon, instead making use of more Quaternion-specific methods to solve problems.
  • Explicit referencing - I have used singletons a lot in my previous games, but as they can sometimes cause problems I avoided using them at all in TetraAgon as an exercise. Every connection between classes is explicitly defined.
  • Music Manager - It was interesting to create a dynamic music manager, which transitions smoothly between a selection of music tracks depending on the game state.
Future features
  • Additional scenes. I used just one (pre-generated) scene for v0.1 as my primary focus was building the AI and gameplay. I could expand Tetra/Agon to have multiple scenes and with events triggered as the player moves through the scenes as well as adding more depth to the story behind them.
  • Models and skins. Currently the models used for weapons are combinations of simple primitives, and all skins used are quite minimal. Visuals could be improved here fairly significantly.
  • Additional puzzle types. I'd like to add some additional types of puzzle between waves, such as puzzles with pattern matching, moveable puzzle pieces, or that require rotating and inspecting the puzzle.
  • Additional enemy strategies. Though the enemies have a decent amount of variety in behaviour, there are some more advanced tactics (e.g. hit and run, hiding, attacking from behind, coordinating with other enemies) that I'm interested in implementing in their behaviour.
  • Boss-type enemies. Occasional enemies with combinations of weapons, multiple damage stages and advanced attack patterns would bring an interesting change in gameplay.

Credits

Game design, development and coding

Joseph Norris/CoSeph Games

Level design

Gameplay scene - demo scene from RPG/FPS Game Assets for PC/Mobile (Industrial Set v2.0) - Dmitrii Kutsenko

https://assetstore.unity.com/packages/3d/environments/industrial/rpg-fps-game-as...

Code samples and tutorials

Outline script - Chris Nolet

https://github.com/chrisnolet/QuickOutline

Stair climbing - Cobertos

https://cobertos.com/blog/post/how-to-climb-stairs-unity3d

Finite state machine - Mina Pêcheux

https://medium.com/c-sharp-progarmming/make-a-basic-fsm-in-unity-c-f7d9db965134

Fonts

Graalen - Pixel Sagas - Neale Davidson

https://www.1001freefonts.com/graalen.font

Alien Ravager - Darrell Flood

https://www.fontspace.com/alien-ravager-font-f78813

Models

Low poly space craft assets - Trockk

https://trockk.itch.io/collection-of-low-poly-space-craft-assets

Textures

Free PBR Metal Plates - Yughues

https://assetstore.unity.com/packages/2d/textures-materials/metals/yughues-free-...

Sounds

Running sound - Albert Balbastre

https://freesound.org/people/bulbastre/sounds/103965/

Landing/jumping sound - Sean Porio

https://freesound.org/people/SeanPorio/sounds/519262/

Various effect sounds - FreeSFX pack from Kronbits

https://kronbits.itch.io/freesfx

Various sound effects - Prunus Productions Scifi Sound Pack

https://prunusproductions.itch.io/scifi-sound-pack

Music

Space Music Pack - Goose Ninja

https://gooseninja.itch.io/space-music-pack

Platforms
Release date
Developer
Seph
Age rating
Not rated
Tags

System requirements for PC

Read more...
Edit the game info
Last Modified: Dec 30, 2022

Where to buy

itch.io

Tetra/Agon reviews and comments