Vaporum
![](https://static.wixstatic.com/media/bd49bc_f3052c36f71046d98561a00e83004652f000.jpg/v1/fill/w_812,h_487,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/bd49bc_f3052c36f71046d98561a00e83004652f000.jpg)
Project Overview
Network System
I used TCP to connect server and client. By using a buffer of char, I could send message from server to client or from client to server. I put most of the logic processed by the local machine, and the only buffer is the keyboard and mouse input of two players. To get the buffer send from the other player, I used CallbackFunction to fire events to parse when the server/client get a string.
![](https://static.wixstatic.com/media/bd49bc_4b9d23350be640528488006b6c39c81bf000.jpg/v1/fill/w_690,h_388,al_c,q_80,usm_0.66_1.00_0.01,enc_avif,quality_auto/bd49bc_4b9d23350be640528488006b6c39c81bf000.jpg)
Using Netsystem to Play Vaporum
Code for Netsystem (TCP)
Hex Grid
![](https://static.wixstatic.com/media/bd49bc_b1921aaee7cf4d458ad8a346c5b57f67f000.jpg/v1/fill/w_373,h_210,al_c,q_80,usm_0.66_1.00_0.01,enc_avif,quality_auto/bd49bc_b1921aaee7cf4d458ad8a346c5b57f67f000.jpg)
Select Hex Grid
Code for Generating Hex Grid
Code to Check Raycast vs Hex Grid
Tank Movement
I used BFS to get the area that each tank can move, and DFS to find the nearest path. When moving to the target point, I used CatmullRom Spline to make turning smoother.
![](https://static.wixstatic.com/media/bd49bc_03739698bb0e44adbe3047762e980dcbf000.jpg/v1/fill/w_526,h_296,al_c,q_80,usm_0.66_1.00_0.01,enc_avif,quality_auto/bd49bc_03739698bb0e44adbe3047762e980dcbf000.jpg)
Tank Movement in Vaporum
Code for Using Spline during Movement
Screenshots
![](https://static.wixstatic.com/media/bd49bc_c11c70c927ad49c6a7babc42325c3ee3~mv2.png/v1/fill/w_980,h_488,al_c,q_90,usm_0.66_1.00_0.01,enc_avif,quality_auto/bd49bc_c11c70c927ad49c6a7babc42325c3ee3~mv2.png)
![](https://static.wixstatic.com/media/bd49bc_201f28ad3b244771a1b2eef0ccfd251b~mv2.png/v1/fill/w_980,h_539,al_c,q_90,usm_0.66_1.00_0.01,enc_avif,quality_auto/bd49bc_201f28ad3b244771a1b2eef0ccfd251b~mv2.png)
![](https://static.wixstatic.com/media/bd49bc_aee674bcdb3f49068e454bd7a6728a98~mv2.png/v1/fill/w_980,h_492,al_c,q_90,usm_0.66_1.00_0.01,enc_avif,quality_auto/bd49bc_aee674bcdb3f49068e454bd7a6728a98~mv2.png)
![](https://static.wixstatic.com/media/bd49bc_c11c70c927ad49c6a7babc42325c3ee3~mv2.png/v1/fill/w_980,h_488,al_c,q_90,usm_0.66_1.00_0.01,enc_avif,quality_auto/bd49bc_c11c70c927ad49c6a7babc42325c3ee3~mv2.png)