Farming/Tower Defense web-based game. Live demo (desktop-only)
- 🌾 Entirely made from scratch (Exceptions)
- 🌾 Written in TypeScript
- 🌾 Linted with ESLint
- 🌾 Built using Node/Gulp (Browserify + TSify + Babelify)
- 🌾 Deployed with Docker multi-stage build
- 🌾 Rendering on HTMLCanvas
- 🌾 Soundtrack by collaborator @julianarnold96
The game is currently at early alpha developing stage, meaning it is neither complete, nor bug-free.
Implemented mechanics:
- Gather wheat by planting seeds and waiting for your crops to grow, harvesting them upon completion ✅
- Avoid hostile robot attacks while farming ✅
- Purchase and build up walls for defense ✅
- Manage your inventory ✅
- Purchase items in the shop ✅
Road map:
- Automate farming by upgrading technology ❌
- Node.js/NPM
- Docker (optional)
Please execute all commands directly inside the project
sub-directory.
Install Yarn
globally:
$ npm install --global yarn # Install Yarn globally
Install project dependencies:
$ cd project
$ yarn
- When the web server is running, it will become accessible on
http://localhost:3000
. - When in development mode, BrowserSync + webserver will become available on
http://localhost:3000
.
$ cd project
$ yarn build # Build once
$ yarn develop # Build once and watch/serve afterwards - (Re-)starts webserver and BrowserSync
$ yarn production # Build in production mode (Compress everything, strip debug)
$ yarn serve # Start Express webserver to serve files
$ yarn test # Run unit tests
$ yarn lint # Lint source TS/JS + unit tests
Install Yarn
globally:
$ npm install --global yarn # Install Yarn globally
Install project dependencies:
$ yarn # Install project dependencies
Run yarn docker:development
or yarn docker:production
to build/start based on your environment.
$ yarn docker:development # Build/start development environment
$ yarn docker:production # Build/start production environment
$ yarn test # Run tests in /scripts
$ yarn lint # Lint /scripts and unit tests
- When in the development environment,
./project
will be synced with your running Docker container. - BrowserSync will deploy itself on
http://localhost:3000
. yarn develop
* will execute upon startup ➡ all changes inside./project
will lead to an immediate re-build and browser refresh.
- @alexanderroidl (maintainer)
- @julianarnold96