title |
---|
Frequently Asked Questions (FAQ) |
GameCI is a community of game developers aiming to automate the process of creating and maintaining games. It is also a set of tools related to CI/CD process that can be used by game developers.
- Making Continuous Integration and Continuous Delivery more accessible to game developers
- Providing tools and resources to automate game development and deployment process
- Having fun doing it
Did you know that .ci
in game.ci is
the Internet country code top-level domain (ccTLD) for Côte d'Ivoire?
In our case, it is also the abbreviation of Continuous Integration.
Continuous Integration and Continuous Delivery is a process that allows developers to build and deploy software without having to manually intervene each time there is a change. Learn more on Wikipedia: CI/CD
Right now, GameCI only supports Unity. We see a bright future with GameCI's integration with other game engines or simply put, building a community of people who are interested in automation around game development.
For Unreal Engine users, it's worth checking out unrealcontainers, a great resource created by our friend Adam Rehn.
For Godot developers, there are several options to consider. We recommend both abarichello/godot-ci by Artur Barichello and firebelley/godot-export.
MonoGame enthusiasts should look at Lean MonoGame - Automate Release, an excellent guide from Jean-David Moisan (Apostolique).
We want developers to concentrate on their game development, not on the stuff of CI/CD. Having a CI/CD pipeline setup can benefit developers, but also artists, designers, Q/A and testers by providing game builds faster and automatically. We have a large community of developers who are using GameCI on a daily basis. We have community driven documentation to help you get started. Everything we provide is free and open source.
We provide ready to use docker images published to docker hub with Unity pre-installed and ready to run. This is especially useful for CI/CD pipelines where you don't want to waste time installing Unity each time. The main goal is to use these images as part of a pipeline you own. You can find a list of all supported Unity versions here. We have a documentation website providing complete examples of working pipelines for building, testing and publishing games using major CI/CD platforms such as Github Actions, Gitlab CI and CircleCI.
We rely on the community to help us maintain and improve the images.
Right now, we have official support for the following CI/CD platforms:
This question is often ask for these CI/CD services:
If the service you want to use supports Docker (the above list does), then chances are it will work, but we might not have official support for it. Your best bet is to translate the GameCI gitlab-ci unity example project to your desired CI/CD service provider. Caution: if this is your first time using GameCI, you might want to try officially supported services first. The easiest one is Github Actions.
We are also working on a GameCI for Unity CLI which will make it easier to integrate with any CI/CD service. See our Roadmap v3.0.0.
You might also want to have a look at Unity Tools for Azure DevOps
You can find all supported Unity versions here.
You can find a list of succeeding pipelines for supported build targets in game-ci/unity-actions's ReadMe.
We have linux and windows based docker images to support as many build targets as possible. This includes the following build targets:
- WebGL
- Windows Mono
- Linux Mono
- macOS Mono
- Windows IL2CPP
- Linux IL2CPP
- macOS IL2CPP
- Android
- iOS
- Universal Windows Platform
- AppleTV
You can find a list of build targets on Unity's website: Unity Build Targets
Yes, we do, but there are limitations. See Docker images limited IL2CPP support
No, we don't as it is currently not possible to build macos based images. If this is something you are interested in, have a look at macOS Containers initiative.
Yes, but not for all steps. You will only need a mac for building the generated Xcode project. Unity on linux can generate an xcode project.
No, you can learn why by looking at the following issue: game-ci/docker - Support alpha and beta versions of Unity #50
Most likely yes. We have automated pipelines watching every 15 minutes for new releases of Unity. Jobs are then created on github to build and push the docker images to docker hub. You can find the status of the images on the supported Unity versions page.
We have automated pipelines that check for new releases of Unity every 15 minutes. Once a new release is detected, a job is created on GitHub to build and publish a new Docker image to Docker Hub. When the version is available on the Unity's download page, it usually takes a few hours for the new version to become available on Docker Hub. However, the exact time it takes for a new version to become available as a Docker image can vary depending on several factors, such as the time it takes to build the images, the availability of the new version on the Unity download page.
We have a discord channel which you can watch to be notified of new versions detected by our bot here: #new-versions. You will need to join our discord server first.
The Docker image publication process involves several steps. First, we detect new releases of Unity based on Unity's Archive page and we trigger a build job on GitHub. This happens in the GameCI Versioning Backend project. Next, the build job uses Unity Hub to install Unity and the required packages and builds new Docker images for each supported target platforms. This happens in the Docker images for Unity project. The new images are tagged and pushed to Docker Hub, where they are publicly available for download.
The source of truth for the process of publishing Docker images is Unity's Archive page. We use automated scripts to detect new releases on this page and trigger the build process for new Docker images. However, Unity may occasionally release updates that are not immediately available on their download page, which can cause a delay in the availability of new Docker images.
If you are currently using a recent unity version from Unity Hub that is not yet available on the Unity's Archive page, you can usually roll back to previous version which is most likely already available, or you can wait a few hours until Unity publishes the new version on its download page and wait for our pipelines to finish building and publishing the images.
Unity has several activation methods, but they all share the same concept. Unity uses the
machine-id
to identify the user. This is usually unique per machine. On linux, the machine-id
is
located here:
/etc/machine-id
/var/lib/dbus/machine-id
Using a different machine-id
will cause Unity to require a new activation.
To make it easier to use GameCI, we hardcoded the machine-id
in all the docker images we publish,
see Ubuntu's base Dockerfile.
This makes it easier to upgrade from one version of Unity to another as you will not need to re-activate.
Have a look at the Have a look at the troubleshooting / common issues page.
Yes
Yes
Yes, but have a look at Limitations: Concurrent builds on Windows and MacOS
GameCI is free and open source software. Depending on the CI/CD service you use, you can pay for build minutes but you can also use your own machines to build and test your project.
Most CI/CD service providers offer a free tier with free build minutes for private projects. If you are building an open source project, it's often all free. ❤️
Yes, GameCI is free and will always be free. The software we develop is open source and under the MIT license.
First you should look at the documentation and the troubleshooting / common issues page. You can also search in issues of related project on github.com/game-ci/ or gitlab.com/game-ci/. If you still have problems, you can open an issue on the related project. Still unsure? You can visit us on our discord server.
We are a small community of developers who are trying to make the world a better place. We are not doing this for the money and no one is being paid for the support. This is all a community effort to end up with games that are less buggy ;). Don't hold your breath and be nice with people helping you. ❤️
We don't offer premium support. We do offer free support for the community as a best-effort.
We have an opencollective page where you can donate. The donations are used to pay for the costs of the infrastructure, domains and the servers (which we kept to a very reasonable price, thanks to all the free services for open source projects). We might also use the money to pay for improving our visuals or anything that could help us become a better community. It is also possible that we send gifts to major contributors, who knows? ❤️
Yes, see our Roadmap v3.0.0.
GameCI is a collaborative effort. We are a community of developers who are passionate about good practice and automation. You can find a list of our contributors on github.com/game-ci/ in each project.
The core maintainers of GameCI are:
- Gabriel "GabLeRoux" Le Breton, founder of GameCI, Co-owner at Totema Studio, full time dev at TLM and lecturer at UQAC.
- Dick "Webber" Webbink, founder of GameCI and Senior Software Engineer at Just Eat Takeaway.com.
- Markus "Fisher" Dugdale Lead game developer @bossastudios, former product manager @unity3d, arma modder. Game ai, networking, terrain.
- David Finol, creator of Card Game Simulator and Software Engineer at JPMorgan Chase & Co.
See About us for more details.