Inspiration

The reason we wanted to make such a .io game was that we found in this fast-paced era, people have less and less entertainment time, so that the rigid demand for entertainment cannot be met in time has become a problem and even a pain point.

Online mini-games like gartic.io or diep.io are great tools to soothe people's nerves from the busy reality. We hope our game will help busy people relieve the fatigue of life and work, and help friends and colleagues have fun socializing.

"Reclaim your curiosity, your sense of adventure, and have some fun. Don’t take every moment of your life so seriously. Allow yourself to enjoy life." -Akiroq Brost.

What it does

Basically it is designed to be a .io game. In the game, two opposing teams will compete to dye the energy towers and opponents on the map with their own team's color, by shooting bullets. And win the victory through thorough dyeing. The first team to dye all power towers or all opponents wins. A round usually lasts no more than 5 minutes. Players can be either humans or AIs.

How we built it

We first built a basic javascript game framework from scratch, including all files, classes and inheritance relationships. Then we began to gradually improve and expand the game logic, and let the game mechanics iterate towards the original design. Finally we added the game AI with basic intelligence using Finite state machine implemented based on State pattern and other minor components like winning progress bar.

Challenges we ran into

  1. One of our team members withdrew due to covid, which resulted in only two people remaining in the team, and the workload increased a lot.
  2. We originally wanted to color the pixels in the canvas of javascript and record the overall change of the rgb of all pixels on the map in real time while constantly refreshing the screen, but we couldn't think of a solution in a short time. We finally adjusted the game logic and successfully avoided this problem.

Accomplishments that we're proud of

  1. For the first time, we have made a complete 2d game with original rules, although it is not particularly difficult, but we are happy, this will be a good start.
  2. For the first time, we really learned how traditional game AI works and implemented it, which was a fulfilling learning process.
  3. We have never written a program of this size in such a short period of time. The difficulty of this activity was challenging for us compared to the school's assignemnts.

What we learned

Technically, we learned how to use peer programming techniques, how to use native Javascript to build a 2d game framework, and how to use state machine to design game AI.

Among other things, we learned how important it is for a product to tell a good product story during mentoring session. We realized that many times the development of a product is carried out around solving the pain points of a class of users, rather than according to the wishes of the developers themselves. A truly useful product that solves a real problem must be shaped by real requirements.

What's next for GrayscaleWar.io

In future plans, the game content will be enhanced, player characters can be upgraded and even evolved through dyeing, and the game's balance mechanism will also be optimized. A UDP server that supports real-time multiplayer online gaming will be developed and deployed, players around the world can play this game online by clicking the url, and people can invite friends or colleagues to participate in the same game by sending an invitation link.

We hope that our game will eventually become a lightweight social game like gartic.io, and can be used by busy people for getting some simple good feelings after a whole day's hard work, colleagues in the company for team building, teachers and students for icebreaking.

Built With

Share this project:

Updates