gophergala2016/AngryGophers

Name: AngryGophers

Owner: gophergala2016

Description: Tanks - Multiplayer game for true Gophers!

Created: 2016-01-22 19:19:16.0

Updated: 2016-03-15 07:28:45.0

Pushed: 2016-01-24 23:45:19.0

Homepage:

Size: 593

Language: Go

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

AngryGophers - Tanks

Description

Our version of “Tanks” is a simple 2D game “from the past”, where you can drive your own tank. The idea came from the game released in 80's, where two players could fight AI opponents on one gaming console. We decided to take it a little further and created a multiplayer game for the masses. We have small battlefield, where tanks battle for supremacy. Graphic is fancy (we used Kenney assets, mostly), we created sounds by ourselves and, what is important, we had a lot of fun during development.

Used Technologies

No one in our team has any experience in game development, but we decided that the best way to earn it is to create our first game. Thus, without any real knowledge about upcoming challenges we tried and mostly succeded in creating this simple game. At first we wanted to simply use websockets connecting straight to the server, but after some work it looked like there would be way to much to do on the front-end side. However, Gopher Gala is all about Go, so ulimately we ditched that idea in favour of writing most of the code in Go. Both server and client are written in Go, and communication between them was switched from websockets to UDP. There is still some code written in JavaScript (drawing canvas) but the calculations are done in backend.

Running a game

Just compile and run client script that is located in client folder. The server is running online on our side all the time so you can just join it.

Running your server instance

We have a public server running for this game. But, if you would like to run your own server instance, simply compile it and run. You would have to change host address in client/main.go for proper player connection.

erAddr, err := net.ResolveUDPAddr("udp", "40.76.43.250:8081")
Rules

Every player gets his own tank to drive and conquer.

There are few types of ground tiles which differ in tank speed:

There are also some random power-ups that give you extra speed.

Players can also release the dust cloud to hide their canny intenstions.

Key bindings
Screenshots

alt text alt text alt text alt text

Gameplay video

YouTube video with gameplay footage (the sound is muted, unfortunately)


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.