Skip to content

saoshreyas/AwesomeTanks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

AwesomeTanks

Awesome Tanks is a single player game that requires the player to utilize movement and tactical gunplay to eliminate enemies. To play the game, the player would need to use the standard wasd key to move around: w to move up, s to move down, a to move left, and d to move right. To shoot, the player would press space. And to aim, the player would use their mouse. The player has to land the bullets onto the enemies to eliminate them, and dodge bullets from the enemies at the same time. The player wouold have three lives in total: After three hits are taken from enemy bullets, the player would lose. Each bullet from the enemy tank takes away one life. If he player eliminates all enemy tanks without dying, the player wins. Our group encountered many problems while creating this program. A recent problem that persisted was collision and pathfinding. We had a lot of trouble trying to figure out a working algorithm that would allow the enemy tank to move autonomously. It was a complete and utter pain to implement, and was only solved through sheer determination. When the enemy tank collides with a wall, it becomes stuck there since we did not give directions for what it should do when it detects collision. This is the main problem that still persists now. In the past, we had problems on the exploding animation, the turning tank heads, mouse detection, and movement of enemy tank. Some features we were not able to implement into our program were bouncing bullets off walls, having a fully functional pathfinder, and tank to tank collision. For the bullets, our group simply did not have time to implement this feature. Due to the complex terrain and tiles of our map, it would make bouncing bullets a really hard thing to implement. For the pathfinder, we were able to get it mostly to work. However, there would be some cases where the enemy tank would get stuck onto the walls, along with sometimes backing up. The issues were caused by the dynamic nature of our pathfinding algorithm, as frequent recalculations of the path caused sharp movements. We were not able to fully troubleshoot the issue and fix the code. Lastly, we were not able to implement tank to tank collision. We have had trouble with collision througout this project. The enemy tank to wall collision was not working, and when working on tank to tank collision it also did not work. We do not have enough time to look into why it's not working and fix the errors. As a result, the tanks can overlap each other. Some things that we learned in creating this assessment is that things require a lot more thinking and testing than you expect. We have experienced this a lot throughout our project. Even before starting the actual code, it took us a considerable amount of time to have github set up and learning about how it works. Not to mention the actual coding part, every part took longer than we expected. This is because we are not familiar with the things we are working with, including the tools we are trying to utilize and the code itself. Another thing that we learned is that collaborative coding is extremely hard to coordinate just by uploading files. There are times where we just spend a lot of time merging our codes together alone rather than writing down new codes. Sometimes, it generates a lot of errors and we would need to go back and troubleshoot them.

About

Tank Game for APCSA Final 2022-2023

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages