Every open source project has a series of objectives or goals that are expected to be achieved with the development of a software or a community and Gamecraft was not going to be less, so this week I took the opportunity to polish the Gamecraft objectives list, that is, the goals that must be met once the platform has been developed. In this post you will find a more detailed explanation of this project and its objectives.
In the life cycle of a software project, the product goes through different processes such as analysis, design, development, testing and publication. The common thing when working on a project is to perform thousands of different tests on multiple devices with different versions of the same video game and publish it in various application markets and testing platforms for end users. Manually performing all these tasks for a team would be really tedoius and counterproductive to the company as it involves a high economic and opportunity cost due to the time it takes to employ.
For these reasons, companies need to automate the processes followed to improve the final quality of the product by reducing costs and increasing the quality of the softwae produced. From this arises the concept of continuous integration, delivery and deployment. The idea is that members of a team, by uploading the changes they make in the project to a central repository, automatically run a series of tasks and tests in order to achieve the following objectives:
- Find and fix bugs faster.
- Improve the quality of the produced video game.
- Reduce the tame it takes to validate and publish new versions.
To solve this problem, a free and open source software platform will be designed capable of abstracting the user from the configuration of a continuous integration, deilvery and deployment environment in video games’ development and thus to improve the quality of the software produced. The platform will be developed using the Java programming language and the use of the Spring Boot framework to provide a microservice-based architecture, thus ensuring that the platform can scale horizontally easily according to the workload.
The main objective to be achieved with this project is to facilitate the task of continuous integration within development teams in a video game company. Systems of this type that currently exist are either free and difficult to manage and maintain (Jenkins, Hudson, …) or are paid like Unity Cloud Build, whose licenses are so costly that they are inasumable by many video games companies. Thanks to the use of the free open source platform that is going to be developed, it is expected to increase productivity and reduce costs in companies. In addition, the project will follow a microservice architecture, so it will be easily scalable horizontally and, therefore, will have the facililty to adapt to any workload. Finally, the user interface will be designed in such a way that its use is as simple as possible for those who manage the continuous integration environment. Unlike other free systems like Jenkins where the learning curve is higher because of the large number of options that exist in the platform, and being designed specifically for video games, we will try to reduce the number of functions and options to the most strictly necessary for the development and publication of video games with the aim of not taking much time or difficulty to configure and maintain the environment.
The achievement of the previous objective will materialize in a new software product that will allow developers to compile, test, analyze the quality of the code and publish their video games in a simple and fast way. The software will have an interface similar to that offered by other continuous integration platforms that are more popular like Unity Cloud Build. The new product will be able to run on the most used operating systems (GNU/Linux, macOS and Windows), establishing affordable and well determined computing resources.