BattleTanks: 2.5D Multiplayer Game


Over the last year, I have been creating BattleTanks:

The game is open source:

The board is a mess, but it’s where I am tracking ideas and progress:

I am looking for feedback! What is good, what needs improvement, and what additional features do I need to add?

How quickly do you get bored with the game?
How intuitive is the UI?
What questions do you not have answered after playing the game for a few minutes?
Is the game fun?
Could you see yourself returning to the game?
What additional features would persuade you to return more?

Fair warning, if it’s just you playing the game, you will be playing against some pretty bad bots.

The server is located on the east coast, US, so the game might be latent for some of you. More servers will be added if the game gains any sort of traction.

Thank you for any feedback. I sincerely appreciate it!

Mods / Admins, Is it possible to get a link to the game on this page?
If it’s possible what do you need from me? If it’s just an image, what dimensions are best?


This is so great! The gameplay is super smooth, what hosting service are you using? How much are you paying for hosting?

Congrats on shipping!
It’s indeed very fluid, even on firefox linux.

How quickly do you get bored with the game?
well, I was about to call it a day, but it did keep me on my desk for 10 more minutes.

How intuitive is the UI?
Fairly clear I think. I was just confused at the beginning when looking from top as to why WASD wasn’t working. I didn’t realise yet I was in the queue and the game would only start when in first person view.

What questions do you not have answered after playing the game for a few minutes?
I don’t think I understood what the items are. Are they new weapons or life? I was too busy chasing other tanks or trying to run away.

Is the game fun?

Could you see yourself returning to the game?
Possibly. Although it seems like it would be limited. The other thing I wasn’t sure about is the controls. While they are for tanks and meant to be rigid, I think it’s more fun with very fluid movements.

What additional features would persuade you to return more?
Possibly a single player mode? But that’s a different beast I know.

@marquizzo Thanks! The front end is hosted onHostGator. It’s been a frustrating experience, but I get a database for free with no size limits and no bandwidth limits either.

$9 / mo I believe. The $2.75 “offer” they list is bullsh*t.

Back end is hosted on Heroku. I get a 512MB ram server for free. If the game gets traction, I will switch to a vps pretty quickly. I have been looking at AfterBurst because again, unlimited bandwidth. Biggest issue is worldwide presence there. When I switch to VPS, I will want a presence in the US, Europe and East Asia at a minimum. I don’t even know if the game is playable in AU or India due to latency.

@gui Thank you so much for your replies! I’ll take note of that ambiguity when spectating :slight_smile: Glad it worked well on FF. I’ve had my fair share of browser compatibility problems over the last year.

1 Like

I am in china, it even can’t play due to network latency, 2s later after I click, it fire. The game is very smooth(if I don’t “fire the hole”…)

How quickly do you get bored with the game?
I don’t really have time now so it does not count

How intuitive is the UI?
Intuitive. Didn’t try on my french keyboard, but mind AZERTY touches

What questions do you not have answered after playing the game for a few minutes?
None that I can think of

Is the game fun?
Yes pretty fun ! I don’t like the fact that you cannot watch behind you though, it seems un-natural and it’s frustrating.

Could you see yourself returning to the game?

What additional features would persuade you to return more?
new maps

@xiaomingTang Thanks for taking a look. You know, I just thought of something. It actually makes no sense for me to wait on using a VPS. The game cannot expand to East Asia, Australia, or even the EU realistically speaking without decreased latency. I’ll look into that and see how much work it’ll be. Stay tuned :slight_smile:

@felixmariotto Thanks for your answers :smiley: Did you know you can hold secondary mouse button and the camera flips to look behind you? Not a perfect solution, but it might get the job done. More arenas for sure! There is a button on the left to allow users to create them. Maybe a reward for arena creation would generate more interest?

Just had a try at the arena creator. I was frustrated not to be able to zoom and rotate camera, and also you should not ask the size before, it should be something you tune during the creation process. First coz when you click on create arena it’s frustrating to get this input box, and also during the creation you may want to change your mind about the size. Also I personally would prefer the maps with a little more decoration, first it’s more entertaining, and also it’s easier to find your way, remember where came from, etc… Also a bit more juiciness would not be bad. Some ideas : make the tanks shiver when they shoot and receive a shoot, screen-shake, basic animation sprite when rocket touch enemy tank, decals on the walls when you scratch them with your tank… more output from user input.
Aside from that, I live in Hong Kong and I had no lag at all the two times I tried.
edit: had a try also at right-click to flip the camera, it’s not convenient at all

@felixmariotto You should be able to zoom/move the camera when you switch to camera mode (use C).
I see what you mean regarding size. It’s not as easy as it sounds to increase size dynamically, but I could potentially create some workaround if there is enough demand. Glad you had low latency! And thank you for your suggestions! I will put em on the board.

It’s not such a big deal…
I did it for you here :
Try adding cubes on the grid, and then change the grid size with the slider.

Here is the code :

var params = {
	size: 1000

var gui = new dat.GUI();

var stock = new THREE.Group();
stock.visible = false ;

gui.add( params, 'size', 100, 2000, 100 ).onChange((v)=> {
	// Change arena size

	scene.remove( gridHelper );

	gridHelper = new THREE.GridHelper( v, (v / 50) );
	scene.add( gridHelper );

	plane.geometry = new THREE.PlaneBufferGeometry( v, v );
	plane.geometry.rotateX( - Math.PI / 2 );

	// Remove unwanted cubes

	for (let i=0 ; i<objects.length ; i++) {
		if ( objects[i].name == 'voxel' ) {
			if ( Math.abs( objects[i].position.x ) > (v / 2) ||
				 Math.abs( objects[i].position.z ) > (v / 2) ) {
				stock.add( objects[i] );

	// Replace previously removed cubes
	for (let i=0 ; i<stock.children.length ; i++) {
		let cube = stock.children[i];
		if ( Math.abs( cube.position.x ) < (v / 2) &&
			 Math.abs( cube.position.z ) < (v / 2) ) {
			scene.add( cube );


Add this in the voxel creation part : = 'voxel' ;

Thanks @felixmariotto. I’ll jot this update down too.

@Mugen87 Do you know who I can talk to regarding getting the game listed on

@Kotamigo When visiting, the (Submit Project) button on the bottom-right links you to this very forum’s showcase tag. I think that’s the best thing you can do for now.

Getting placed on the landing page depends on whether the contributors think it deserves to be up there or not. I don’t think there is a petition system.

@marquizzo @Fyrestar Thanks for the info! Just a note that google + link is broken. Let me know if there is anything else I can do.

Yeah, that post was written over 2 years ago, back when Google+ was still alive.

1 Like

Last I checked, I was told to post with #showcase and wait for @mrdoob to have a look. So just be patient :wink: