A downloadable game for Windows

This is a game jam game made on the weekend of May 4th at my local university. The theme for the jam was "force". Our goal was to experiment with the new C# Jobs system in Unity 2018, so we decided to go with a top down arcade game where the player has to fight off a swarm of enemies with a gravity gun. 

Controls

  • Exit Game - Alt+F4 (we forgot to add a quit mechanism... whoops)
  • Move - WASD
  • Aim - Mouse
  • Shoot - Left Click

tl;dr - Download the GFF-750 build. It has the best balance and should work on most desktops. Download GFF-500 if it runs too slow.

The goal of the game is to push the four totems together using your gravity gun. You can do this anywhere in the play area. Initially we wanted to have the totems form a totem pole when connected, but ran out of time before implementing that.

The two numbers on screen are the total number of seconds played this round (left) and the frame rate (right). Our target frame rate was a nice 60fps. We didn't quite hit it, but I think we came very close. The resolution doesn't really matter at all since the game is CPU limited by design.

In the end we managed to get 750 enemies on screen running fully multi-threaded. I've included a few different builds of the game to see how it performs with more enemies. The lab computers at the university had older quad-core i7 processors, so if you're playing on a laptop or older desktop, stick with that build. This game was designed to be very CPU intensive, because our goal was to push the limits of the job system. My personal dual-core i7 laptop can only manage about 30 fps with 750. The demo video is me playing on my desktop i5-6600K with 750 enemies.

Known Issues

  • I've noticed that the more enemies on screen, the less aggressive they seem to be. My best guess is that this has to do with how we handle the threading of the AI and how we apply motion. We were dumb and used a physics based force to move the enemies in the Update method, which means they move according to the frame rate (oops). We also had to deal with having each enemy try to group with the enemies around it, but we couldn't find a good way to do this multi-threaded. Our solution was to use a co-routine to split that work across multiple frames, but this leads to them updating their friends list every few frames, which means they don't follow each other as accurately as they should. More enemies means an even slower overall update.
  • We added the buzzing sound last minute and I wanted to apply the sound to each enemy, so that it would swell up the more enemies were near by. However, because of the way Unity handles sound this caused the frame rate to tank trying to play 750+ sounds all on the main thread. My hacky solution was to apply the sound to the first 50 enemies that were spawned. Yes, that sucks.

Download

Download
GFF-500.zip 17 MB
Download
GFF-750.zip 17 MB
Download
GFF-1000.zip 17 MB
Download
GFF-1250.zip 17 MB
Download
GFF-1500.zip 17 MB