DevBlog #1

DevBlog #1

Development has went well… Pretty fast so far. Just to keep ppl interested and for those who don’t understand code I would like to open what we have done for now.

Authentication Microservice

We have complited the authentication microservice and we have deployed it to production. What this basically means, we have working authentication in our application. Currently supported authentication methods are only Wargaming NA, EU, ASIA and RU accounts.

Just as notice. When you login with Wargaming credentials, we do get permission to your gold amount etc, whatever the access token is allowed to be used. However we drop it. This is made due your security, we are not interested about your account details, only region, username and id.

Microservice basic princible is, itcan be used via http/https according to your configuration. Currently the flow works you request authentication via GET request into one of the authentication URLs. Then it will redirect you to your provided url with GET parameter code.

This paramter contains a JWT token, which can be used to authenticate any other microservices as Bearer token. It also contains some essential information about logged in user, like region, username and id.

Example data used in the token
ProviderURL
Wargaming/connect/wargaming/{eu,na,ru,asia}/{redirect_url}

https://github.com/GameTactic/Authentication
Licensed under GPLv3.

Author: Niko Granö

Users Microservice

Users microservice has got a basic implementation. Currently it has no features whatsoever than just extracting data from your JWT token and saving it to the Database. When we get frontend more into progress, our plan is to save tactics into it.

Users microservice was published into production today. It has been tested to be working well, for it’s features.

https://github.com/GameTactic/Users
Licensed under GPLv3.

Author: Niko Granö

Echo Microservice

Here we made small decision. We dropped the Java Sprint Boot version of the echo microservice and decided to replace it with C++ implementation.

Princible of this microservice is just to echo messages it gets for correct people. Basically it will just echo pings on the map to everybody in the room.

Example usage of echo microservice

We have currently some need in this microservice and we have created issues about those. If you see you could help use, check here!

https://github.com/GameTactic/CPP-Echo
Licensed under GPLv3.

Author: Niko Granö

Maps Microservice

Maps microservice is work-in-progress and currently waiting full implemenation of it. The implementation will provide JSON list of available map image URLs for the games.

Why to do this? Why not just expose static json file? Well, the problem with this is, like for WorldOfWarships there is API provided by Wargaming to get this information, however the information requires a API token, which we cannot expose. Due of that, we have to do this microservice here between the Wargaming API and our clients.

https://github.com/GameTactic/Maps
Licensed under GPLv3.

Author: Niko Granö

Room Frontend

This has been talk now for a long time. Currently we are aiming to do this with Vue.JS and some popular CSS framework. Some design ideas has been presented.

Pretty much ideally the map needs room to breath and move. Users will need to be able zoom and maps should work there, even tough their sizes might vary.

Top bar could contain standard map settings, user login button if not logged and other room settings. Right side would be reserved for entity settings and later to be added chat box and notes. This is just a draft from author head, nothing must-be planned.

Initial ideas for the room itself

Please comment bellow for any features you would want see or join our Discord!

Overall frontend part for the tactic room is very early WIP.

https://github.com/GameTactic/Room
Licensed under GPLv3.

Author: Samuel Bryan

Servers

We have finally complited servers setup. Our EU server is now up and running for implemented microservices. We are running for now all services on our EU located single server until we need something better.

Our server is running Alpine linux and host and microservices are running in a Docker containers. Nothing big here. Scripts used in the enviroment can be found here.

Overall our plan is to make software available run multiple servers on different regions, this is accomplised by doing URLs in format of ${microservice}.${server}.gametactic.eu. Anyways, for at start only server will be EU and it will be also available for all regions, but it is just hosted in the EU.

https://github.com/GameTactic/Deployment
Licensed under GPLv3.

Author: Niko Granö

Sponsored by IronLions

Big thanks for our sponsor IronLions for providing the servers! This blog and currently all services are hosted at zero cost, until we get services up and running. Big thank you!

Niko

Hey there! I'm currently acting as Lead-developer in the GameTactic and doing mostly backend.

Leave a Reply

Your email address will not be published. Required fields are marked *