Ikopit is a non official fansite for the deceased online video game Empire Universe published by Looki (now owned by Gamigo).
It features tools to help players within the game. The project is multilingue:
- English
- French
- German
The project is written in Java 1.7 and uses Java EE. The application is meant to be deployed on Google App Engine. It uses DataNucleus to access the Google App Engine datastore via JDO. We use Objectify to make this easier.
The UI is written in JavaScript ES5 and was initially using Knockback.js. The most recent components has been written with ReactJs. Graphviz and svg-pan-zoom helps us generate beautiful svg. Bootstrap is used for the design and the mobile experience. Gulp helps us with task like sprite or svg generation as well as compiling jsx.
Visualize the list of available chassis, components and buildings in the game with their statistics, cost and production time based on your settings.
Calculate how much time is remained for your research based on your advancement.
Visualize the technology tree of the game to plan your researches. It also has links to each chassis, components and buildings!
Design your ships as you like with all the components available from the game.
Analyze the performances of your ships in battles.
The game only give you the distance to an unknown planet. This tool helps you find it using triangulation.
You can use wormholes to travel faster within the galaxy. Set a starting point and a destination then let yourself be guided.
The site also works on mobile!
The website is meant to be deployed on Google App Engine.
There is a gulp file to help you do several things:
- assemble images as sprites.
- build the technologie tree as a svg using Graphviz.
- compile the jsx files to javascript files.
- place all those files in the appropriate war sub-directories to make them available for the backend.
Then, you need to deploy the Java EE application on Google App Engine. You will need the DataNucleus plugin as well as Objectify.
The site is poorly written. There would be a lot of things to change! From tooling, refactoring, coding style, tests...
Using the Google App Engine datastore was a mistake for two reasons:
- It make us dependant of App Engine.
- It is useless and we could have used the local storage instead.
In fact there was no need of a back end server and the application could have been written as fully blown single page application!
The project would benefit a lot with a build automation tool like maven or gradle.