Gamecraft Update: October 20, 2017

State of Art

In this week there was no technical development of the platform. However, I preferred to carry out a research task of the continuous integration platforms market. Carrying out this study of the state of the art allows identifying the main tools used in the sector and obtaining new ideas for the development of Gamecraft or proposing solutions to existing problems. The results of this study can be found in this post.

Jenkins

Jenkins is a popular open source integration platform developed in Java and emerged as Hudson’s fork after a dispute between the community and Oracle. Jenkins enables you to automate the software development process through continuous integration and continuous delivery. It is a server that is deployed in servlets, such as Apache Tomcat. It has support for downloading the source code of the following repositories: CVS, Subversion, Git, Mercurial and Perforce and can execute projects based on Apache Ant, Gradle and Apache Maven and commands in Terminal.

Compilations can be launched in different ways, for example, when someone commits a repository or has been programmed using a cron-like system.

Jenkins functionality can be extended by plug-ins.

The main disadvantages of Jenkins are its complexity, since it takes time to adjust it properly for each project and the server-slave model causes the following problems when it comes to scaling horizontally:

  • Each slave has to execute the pipeline from beginning, which typically involves cloning the repository and performing the compilation to prevent incremental compilations from failing.
  • Jenkins has poor perfomance on staggered models involving many slaves.

Gamecraft will offer a simpler interface, aligned with the use that will be given in the video game development world, as its main objective is to be a platform to automate development of video games, mainly. In addition, the microservice architecture of the platform to be developed will offer scalability according to the demand that is occurring, so that all the deployed instances of the microservices are being used and when an instance is no longer used, then it is eliminated.

 

Jenkins

User Interface of Jenkins

Circle CI

Circle CI is a continuous integration and deployment platform in the cloud. Like Jenkins but offering a simpler user interface, it automates the software development process through continuous integration and continuous delivery. Compilations can be launched in different ways, for example, when someone commits a repository or has been programmed using a cron-like system. The main disadvantages of Circle CI are:

  • Circle CI only offers the possibility to do the continuous integration and deployment in GNU/Linux and macOS environments, discarding Windows.
  • Only supports a limited set of languages (Go, Haskell, Java, PHP, Python, Ruby and Scala) and the user needs to install plug-ins to add support for new languages.
  • It is not free.

Gamecraft will be open source and free and will have support for the most popular engines and programming languages that are used in the world of video games development. In addition, the project will be compatible with Windows, GNU/Linux and MacOS so it will be possible to generate versions of the same game for these three platforms, unlike with Circle CI, because it does not have support for Windows, so it is impossible to generate versions for the most popular operating system.

Circle CI

User Interface of Circle CI

Travis CI

Travis CI is a continuous integration and deployment platform in the cloud, similar to Circle CI and focused on providing a simple user interface where he does not have to spend much time in preparing the environment for his project. Compilations can be launched in different ways, for example, when someone commits a repository or has been programmed using a cron-like system.

There are four payment plans, configured according to the needs of each team, ranging from $69 per month to $489. Each plan differs only by the number of tasks that can operate concurrently:

  • For the $69 monthly plan, the team can only run one task concurrently.
  • For the $129 monthly plan, the team can run two tasks concurrently.
  • For the $249 monthly plan, the team can run five tasks concurrently.
  • For the $489 monthly plan, the team can run ten tasks concurrently.

The main disadvantages of Travis CI are:

  • It is not free.
  • Does not allow a high degree of customization, and to prepare the environment, it is necessary to install third-party plugins.

Gamecraft will be open source and free and will have support for the most popular engines and programming languages in the world of video games development. In addition, the fact that the platform to be developed follows a microservice architecture will facilitate the possibility of integrating new features to the platform, it would only be necessary to develop a new service with the new functionality implemented and deploy it, without needing to stop or restart the entire platform at the time the new service is being deployed. In other words, Gamecraft is compatible with the hot swap idea.

 

Travis CI

User Interface of Travis CI

Unity Cloud Build

Unity Cloud Build is a continuous integration platform in the cloud offered directly to the Unity engine users. Unlike the other platforms discussed above, this solution is intended for direct use by video games developers. Its operation is quite simple, first you choose the Unity project that you want to use on the plataform. Subsequently, the user must enter the URL of the repository where the project is stored. Each time someone sends a new commit, Unity Cloud Build will compile and test the project and if all goes well, it will publish the game on the App Store chosen by the user.

The disadvantages of Unity Cloud Build are:

  • It is not free. To use this service you need to pay for a Plus ($35 per month) or Professional ($125 per month) license. This service cannot be used with the free Personal license.
  • You cannot customize or add new functions through plug-ins.
  • Only supports Unity and cannot be used for games developed with another engine.
  • Does not allow to analyze the quality of the code.

Gamecraft will be open source and free and will have support for the most popular engines and programming languages that are used in the video games development world. In addition, the fact that Gamecraft follows a microservice architecture will facilitate the possibility of integrating new features to the platform, it would only be necessary to develop a new service with the new functionality implemented and deploy it, without needing to stop or restart the entire platform at the time the new service is being deployed. In other words, this project is compatible with the hot swap idea. Finally, the platform will have a connector to use Sonarqube to analyze the source code while running a pipeline.

Unity Cloud Build

User Interface of Unity Cloud Build

 

Comparative

A comparison of the characteristics of the previous tools is shown and can be observed that Gamecraft will provide all of them:

 

JenkinsCircle CITravis CIUnity Cloud BuildGamecraft
macOS support
GNU/Linux support
Windows support
Free
Open-source
Internationalization
Third-party plug-ins integration
Unity engine support
Unreal engine support
Monogame engine support
LibGDX engine support
Custom engine support
Quality of code analysis

 

 

 

 

 

 

 

 

 

 

 

 

Hi there! My name is Ivan and I am a computer engineer. I was born in Segovia in 1993. Passionate about the world of new technologies, computer science and the world of game development. Always eager to continue my education and improve my technical skills.