Giter Club home page Giter Club logo

tank-turn-tactics's Introduction

Tank Turn Tactics

Workflow

The master branch is only for deployment. All pull requests that directly affects the internal code should be merged into the develop. It is also recommended to fork the develop rather than master for the latest code.

Setup

  1. Copy the sample.env file and rename it to .env to set up environment variables.
  2. Run npm install to install dependencies.
  3. Start the server with npm run start:dev or npm run start:debug if you want stack trace.

Project Structure

root
├── config      # setup for libraries
├── controllers # db controllers
├── libs        # utility modules
├── models      # db schema
├── middlewares # routes middlewares
├── public      # static resources
│   ├── css
│   └── js
├── routes      # routes
├── tests       # unit tests
└── views       # ejs and html

Libraries

Dependency Description
express Framework
ejs Templating engine
passport Authentication middleware
bcryptjs Password encryption
mongoose Database controller
express-session Authenticated session
connect-mongodb-session MongoDB session storage
Testing Description
jest Framework
@jest-mock/express Express mocking
mongodb-memory-server Database testing

Environment Variables

Key Value
PORT Default port
DB_URI MongoDB Uri
SESSION_SECRET Session encryption key
INTERVAL_MODE Unit of interval (hour/minute)
ADMIN_EMAIL Admin email
ADMIN_PASSWORD Admin password

Game Design

Design Philosophy

  • All mechanics should build either trust or distrust.
  • Dead players should continue to have a role in the game.

Features

The Default Game

  • The game is played asynchronously on a grid.
  • Each player controls a tank which start with 3 health points. If the health of the tank reaches zero, they lose.
  • They each gain action points at regular intervals.
  • Action points can be spent in 3 ways:
    • Attack another player within the range of the tank
    • Move one square
    • Upgrade the range of the tank by one square
  • Dead players vote each day on which alive player to award an action point to.

Extra Features

  • Action Queue: Actions are performed all at once at the end of the day.
  • Fog of war: Sight is included as a stat alongside range. Player can only see up to their sight stat, even if their range is greater.
  • Spying: In action queue mode, actions are not known until they are executed at the end of the day. However, actions will be broadcasted to anyone online at the moment. This would add the possibility of 'spying' on other players.
  • Loot: Players are awarded all of the action points of those they kill.
  • Bounty: Each day, players are assigned the name of another random player. If they kill said player, they will receive all of that player's action points.

tank-turn-tactics's People

Contributors

poohcom1 avatar tanapthetimid avatar benmanone avatar

Stargazers

caroit farmur avatar Amirtha Krishnan avatar Keith E. Truesdell avatar

Watchers

 avatar  avatar  avatar  avatar

tank-turn-tactics's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.