Giter Site home page Giter Site logo

philipp-meier / towerdefense Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 995 KB

:video_game: A simple Tower Defense Game written in Typescript.

License: MIT License

HTML 0.84% TypeScript 89.98% Less 9.10% Dockerfile 0.08%
tower-defense tower-defense-game typescript game game-2d web game-in-browser browser

towerdefense's Introduction

TowerDefense

A simple Tower Defense Game written in Typescript.

Preview

Current state

Work in progress. Currently, the game images are being reworked.

Getting started

git clone https://github.com/philipp-meier/TowerDefense.git
cd TowerDefense
# run in dev-container with "npm run dev" or local with:
npm install
npm run dev

Docker

npm run build
docker build -t tower-defense-2d .
docker run -it -d -p 80:80 tower-defense-2d

Contributing

Feel free to fork and modify this project as you like.
If you want to contribute directly to this project, please consider the rules mentioned here.

License

This project is under the MIT license.

towerdefense's People

Contributors

dependabot[bot] avatar philipp-meier avatar

Stargazers

 avatar

Watchers

 avatar

towerdefense's Issues

Increase the enemy spawn rate

Currently most of the time only one enemy is on the field.
The spawn rate should be increased - at least in later enemy waves.

Adding a sell option

Maybe it would be useful to allow the player to sell some game objects, so that the game field will be available for other objects.

Split "bullet loop"

Each "shooting game object" should have its own bullet loop.
Currently all bullets are spawned at the same time.

Different placeable game objects

Similar to "Enemy" and "ShootingEnemy", the currently available player classes should be refactored, so that
new player game objects can be created/derived from them. (see #13)

Manually collect coins from enemies

Maybe enemies should drop the coins, so that the player has to actively pick them up in order to get them.
This would make the game more "interactive".

Add stopwatch

Add a simple stopwatch, which indicates how long the player could defend himself.

Add Game-Settings

The spawn rate, wave damage increase etc. should be configurable in one single file.
This would make balancing the game easier.

Rework svgs

The svgs which are currently in use should be reworked and maybe animated.

Add enemy waves

Add enemy waves in order to increase the difficulty of the game and challenge the player.

Adding armor

Adding armor for the player, towers or/and enemies (with upgrade/repair options) might be a good idea.

Different enemies

Currently we have a "Enemy" and "ShootingEnemy" class.
Both classes can be used as "base classes" for different types of enemies.
Only the attack damage, attack speed, svgs and or bullet svgs must be changed.

This could already be done and would make the game more diverse.

Update game object svgs

The game object SVGs, which are currently in use, should be replaced in order to make the game look a little bit better.

Set up a goal

If the player survives 20(?) waves, he should win the game.

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.