Inspiration
We were inspired by the Wii tank game from Wii Play. With the recent closing of the WII U Eshop, we reminded ourselves about the memories we had in our childhood by playing the preceding Nintendo console, the Wii. We especially remembered having fun and spending a lot of time playing the Tanks! minigame. We took inspiration in retro pixel games.
What it does
It is a 2 player game where you control a tank using the WASD keys for moving and turning around, as well as the mouse to aim and shoot at the other player.
How we built it
We used pure TypeScript to code the game loop and the engine. We made our own physics engine which supports collisions detection and bullet deflection. Pixi.js was used for rendering our custom made textures. We styled our app using SCSS. Finally, we used websockets for the connectivity from the client to the server.
Challenges we ran into
Our main challenges were rendering the sprites by learning the Pixi.js library. In order to have type security, half of the team took upon themselves to teach TypeScript to the other half of the team. Furthermore, our second biggest challenge was the physics engines, making collisions work between different size of object. Our third and most hard challenge was making the server using the websocket since we wanted to optimize the data sent between the server and the client to be as minimal as possible.
Accomplishments that we're proud of
We are proud of the project as a whole, but implementing physics that we created our self. Half of the team was completely new to TypeScript therefore they had to learn it on the spot. We are very proud of having gotten through the experience of almost making a full game engine from scratch. We spent a lot of time learning the different mechanics and mathematical concepts in order to achieve different tasks.
What we learned
We learned how to implement some physics algorithm using TypeScript, we learned how to used Pixi.js to draw our sprites on the page, and some of us learned TypeScript. One aspect of making game engines that become evident to us was that even though games a fun to play, they are very hard to make. There is a lot of work that goes in each aspect of the making, be it the creativity of the graphics, the rendering techniques or the game mechanics.
What's next for Tanke
The game can be upgraded to have other game modes, such as a local 1v1 or local player against bot and many more. We want to also optimize our collisions by using Spacial Partitioning techniques like QuadTree. We would also want to make the game more fun by adding special types of power-ups or events during fights between players.
Built With
- pixi.js
- sass
- scss
- typescript
- webpack
- websockets
Log in or sign up for Devpost to join the conversation.