Skip to content

OrangeRedYellowGames/deflectomania

alpha
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

Deflectomania!

Unity

⚠️ If you just want to try out the game, read both the Overview and Play Instructions sections. The rest of this README contains more technical stuff relating to running and building the source code.

πŸ“– Overview

Deflectomania!, an Orange Red Yellow Game, is our first game prototype to be submitted as part of GameOff 2022.

Deflectomania! is a couch multiplayer game (up to four players) where you compete to become the last Space Ranger standing.

You have two items in your arsenal, a blazing gun and a force field.

πŸ”« Blazing Gun

The blazing gun shoots a limited amount of bullets at a time. Your bullets need to recharge to be able to shoot them again, so make sure you’re strategic about it… OR you just rain hell on your enemies what do we know.

πŸ›‘οΈ Force Field

As a Space Ranger you’re given a force field that’ll help you deflect incoming bullets. Time them correctly and you’ll be able to deflect them back at your enemies. Like the bullets, force field need time to recharge so use them wisely.

That’s all you need to know to start playing so gear up and show-’em who’s boss!

Latest builds

Latest builds can be found in this repos releases page

Play Instructions

Using either a mouse / keyboard or controllers, you can play against up to 3 of your friends.

  • Press any key to join
  • Shoot, deflect, or be killed
  • Winner is the last player alive. If the last two players die at the same time, it's a draw!
  • Round to automatically restarted after

πŸ“• Things to know

Settings up DOTween

When opening the project for the first time, you might encounter errors regarding DOTWeen. If this happens, do the following:

  1. Open the project (Ignore any errors)
  2. Open the DOTween Utility Panel from the Tools menu
  3. Select Setup DOTween... from the panel that appears.
  4. Press Apply

DOTWeen should now be configured successfully and the project should work correctly now.

Settings up Git

Git LFS

This repo makes use of Git LFS, which allows support for adding large files (audio, video, artwork, etc...) to a git repo.

To set it up, do the following:

  1. Install Git LFS for your operating system
  2. Run git lfs install once to activate it (you only need to do this once per user account)

Force Git to use LF instead of CRLF (Windows)

This repo uses LF as line breaks. If you're running on Windows, you might face an issue when opening PRs, or doing any commits in general, that any file you edit will use CRLF instead of LF.

This is most likely an issue with Git on Windows.

To fix it, run the following:

 git config --global core.eol lf
 git config --global core.autocrlf input

You can read about the difference between using LF and CRLF as linebreaks in this stackoverflow post .

CI / CD

This repo makes heavy usage of the CI / CD workflows provide by GameCI.

All the available workflows can be found in the .github/workflows directory.

Unity HFSM

FSM in this project are implemented with the help of UnityHFSM

Documentation: https://github.com/Inspiaaa/UnityHFSM/wiki

Unity Atoms

This project makes heavy use of Unity Atoms, an event based system that encourages data-driven design.

To understand the reasoning behind using this package, feel free to watch the following two videos (If you're short on time, only watch the first video):

  1. [Important] Ryan Hipple's talk at Unity Austin 2017
  2. Richard Fine's talk at Unite 2016

Shadow Casting for Tilemaps

Unity doesn't support adding shadow casting to tilemaps by default. A workaround implemented in this repo is the script described in this forum post

TLDR: If you want to generate shadow caster for a tilemap, click on Tools > Generate Shadow Casters and shadow caster objects will be created for the tilemaps in your current scene.

Asset Usage Detector

This project has Asser Usage Detector installed. To make use of it, you can do one of the following:

  • Open Window - Asset Usage Detector window, configure the settings and hit GO!
  • Right click an object and select Search For References

Commit Convention

Please use the angular commit convention when adding new commits.

Not only does it make your commit more clear, but it also plays a key role in how semantic-release (see below) determines the next version number for a release.

Commit Message Header

<type>(<scope>): <short summary>
  β”‚       β”‚             β”‚
  β”‚       β”‚             └─⫸ Summary in present tense. Not capitalized. No period at the end.
  β”‚       β”‚
  β”‚       └─⫸ Commit Scope: animations|bazel|benchpress|common|compiler|compiler-cli|core|
  β”‚                          elements|forms|http|language-service|localize|platform-browser|
  β”‚                          platform-browser-dynamic|platform-server|router|service-worker|
  β”‚                          upgrade|zone.js|packaging|changelog|dev-infra|docs-infra|migrations|
  β”‚                          ngcc|ve
  β”‚
  └─⫸ Commit Type: build|ci|docs|feat|fix|perf|refactor|test

The <type> and <summary> fields are mandatory, the (<scope>) field is optional.

Type

Must be one of the following:

  • build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
  • ci: Changes to our CI configuration files and scripts (example scopes: Circle, BrowserStack, SauceLabs)
  • docs: Documentation only changes
  • feat: A new feature
  • fix: A bug fix
  • perf: A code change that improves performance
  • refactor: A code change that neither fixes a bug nor adds a feature
  • test: Adding missing tests or correcting existing tests

Releases

Releases are handled automatically using semantic-release. Its configuration can be found in .releaserc.json.

Here's how releases are currently made:

  • Pushing any commit to the alpha branch will create a new alpha release. These will be tagged as v1.0.0-alpha.1 , v1.0.0-alpha.2, v1.0.0-alpha.3, etc...
  • Pushing any commit to the main branch will create a new (ordinary) release. These will be tagged as v1.0.0 , v1.0.1, v1.1.0, v2.1.0 etc...

🚽 (Useful) Links and Guides

Git Setup

2D Controllers

Third Party Assets

Credits

Deflectomania! was proudly developed by:

About

Deflectomania, an Orange Red Yellow Game, is our first game prototype to be submitted as part of GameOff 2022.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •