I spent a lot of time exploring the projects featured in the Three.js showcase and community. While there are many incredible demos and experiences, I couldn’t find a tank simulator that focused on fun gameplay and stress relief. So I decided to build one myself.
This project is a tank simulator built with Three.js and Rapier Physics, featuring a custom editable track system, tank customization, physics-based combat, and a battlefield where players can create and fight with their own tanks.
As a computer science student nearing graduation, this project represents many months of learning, experimentation, optimization, and problem-solving. Working with Three.js has genuinely been one of the most enjoyable development experiences I’ve had.
I would love for the admins to take a look at it, and if possible, I’d be honored to have it considered for the official Three.js showcase. If not, that’s completely fine as well—I’m still grateful for everything I’ve learned from this community.
I’d also love to hear your thoughts and feedback:
What do you think about the custom tank track system?
What features would you like to see added?
Would a multiplayer 8v8 Team Deathmatch mode be something you’d be interested in playing?
This is sick. the dynamics and sound are really good..
Is there a way to get daytime lighting? I like the fog but its a bit hard to make out details…
I think.. this would be some of the biggest bang for the buck… A nice environment map + sky + sun could really bring out some of the detail on the tanks! The dark environment doesn’t show off the detail in the simulation very well..
It wasn’t obvious how to control the turret either? I finally figured out shift key…
Could Esc key take you to a pause screen with keyboard/controls instructions… and maybe menu with settings page there.. so I can flip Up/Down on the camera
The tank configuration is crazy detailed, but overwhelming for the home screen.. maybe that can be a little > collapsible menu, so the main thing you see is the start button, and game controls info at the startup!
This is really nicely executed.
multiplayer 8v8 Team Deathmatch would be siick.
But even some single player scenarios like.. “Make your way to the village/depot” or “patrol the front line” with waypoints you have to hit.. or caches you have to pick up… maybe it could just put you in a random scenario as a first time visitor.
For battles, I would suggest that players have access to the terrain map so that they can work out tactics. From the many hours I spent playing tanks on War Thunder, I quickly learned the risks and benefits of various types of terrain. If you are an attacker, you like hilly terrain because you can use valleys, or the far side of hills to hide your progress. Conversely, sitting on top of a hill or blindly climbing over the top of a hill is dangerous because it can expose you to the enemy.
Team Deathmatch would be interesting. You might have to add an objective on the enemy side of the map to prevent teams from just sitting in place and waiting for the other side to attack.
Oh I miss my War Thunder days…that’s a really fun project you’ve made! I love how immersive the sound effects are.
For me, I would love to see a more interesting environment/terrain like adding more ruins and rocks. And it would be a better UX if there’s somewhere evident(maybe a popup?) to show a tutorial on how to control the tank e.g. I was figuring out if there’s a way to adjust the polar angle of the cannon and how to rotate the screen initially.
Thanks a lot for the detailed feedback! I’ve already adjusted the renderer.setClearColor(), lighting colors, fog, and directional light to improve visibility and make the tank details stand out more. I’m also planning to add different maps, missions, and gameplay scenarios in future updates. Your suggestions about the controls, pause menu, and overall UI/UX are really helpful and are definitely something I’ll be looking into. Thanks for taking the time to play and share your thoughts!
Thank you sir! That’s a really good point. Terrain plays a huge role in tank combat, and adding a tactical map would help players plan routes and use cover more effectively.In the future when i will add the multiplyer mode, there should be objectives or capture points to encourage movement and teamwork rather than having both teams camp in one position. I appreciate you sharing your experience and suggestions!
Thanks for trying it out and for the feedback! The control information is actually available in the top-right corner of the screen, but if it wasn’t immediately noticeable, that’s something I should improve. For reference, the controls are:
W / S — Drive (Gear Change) A / D — Steer Shift — Toggle Aim LMB — Fire RMB + Mouse Drag — Orbit Control MMB — Target Lock Double RMB — Toggle Scope E (Hold) — Laser Range Finder 1 / 2 / 3 / 4 — Weapon Slots B — Physics Debug
I’m also planning to upload a video tomorrow or the day after that demonstrates the full tank assembly workflow. One of the goals of this project is to let users create their own custom tanks. You can model a tank in Blender or other 3d editor however you like, or download one from platforms such as Sketchfab or ArtStation. The only required parts are a hull, turret, barrel gun, and a few empty nodes for gun and machine-gun empty nodes.
After importing the model, you can generate your own track system, whether it uses interleaved wheels, bogie wheels, or other layouts.
One of the biggest technical challenges I wanted to solve was creating a generalized track system that works across different tank designs. To help with performance, I also implemented simplified instanced wheels for road wheels, idlers, and sprockets using low-polygon meshes.
Thanks again for the suggestions regarding the environment and onboarding experience. I’ll continue improving both .
some clips of the game first press “shift key” to toggle the turret , now if you move the mouse the both barrelgun and the turret will move according to your target , some tanks may not be rotate the turret according to the min and max limit (ex: karl gerat) , now if your right click on the screen and drag , the camera will rotate according to the tank orbit.Now you can simply press left click to shoot at the target .You can simply predict the target path and shoot other wise double click to open your scope and press and hold “E” key to find the projectile range LRF while targeting on the enemy and try to match the RNG on the right bottom value which is been calculating according to the barrel’s pitch and simply shoot .Note if your target is far away and targeting on the enemy and firing may not hit if you are not using LRF and measuring the range. And if you press 2 in the keyboard the MG will be selected by pressing left mouse button or holding it it will keep firing in automatic mode .Most of the MG has a yaw limit so try to face your tank a bit to the enemy while firing and MG cannot fire to the far distance because it has a raycast fixed range .
And the one thing I tried hard to maintain was the FPS by optimizing everything. I have an HP Victus laptop with 16 GB of RAM and an RTX 3050, and the game was averaging around 100–120 FPS. I hope it runs well on your PC too.
I am not dead man :),
I finshed the tank physics in everyway possible to make it look realistic along with optimized, and also i have improved the game map using shaderbased animated grass and trees , also I have added some capture points , now you have to capture and hold those positions , I have completed the User vs AI , the only thing is to do is to extend it User vs User for make it a multiplayer , atleast 5v5
I am guessing to follow the server authorative architecture , but this will not free probably , otherwise if you can give me some other ideas i will be glad to know.
micro payments. This is unproven, has issues, but in my mind is a very good business model for projects like this. I have much of the infrastructure in place, but is not plug and play at this point. I am building an online community platform (like facebook but for communities) and intend to use micro payments as the business model. But not there yet.
The advantage of micro payments as a business model is that it allows fee-for-service. If you want to make more money you provide better service. The other options are advertising (ick) and some kind of lock in. Paywall, subscription etc. None of those provide the inherent motivation and sustainability of micro payments.
That said, actually implementing a usable micro payment system is very complex. Pump priming. FINCEN. etc.
If you would like to add this as one of several business models and be an experiment, let me know. I can get direct email here:
tab at kbxmx . com . Or post here and I will get in touch.
I think I understand what you mean. Using microtransactions for in-game purchases sounds like an interesting approach compared to building a complete payment system myself, which would involve many challenges such as payment processing, regulations, and different laws across countries.
For now, though, I’m focusing on finishing the multiplayer and polishing the gameplay. Once I have a playable release, I’d definitely reach out to you to learn more about your platform and how it could fit into the project.