![]() ![]() There should be a direct correlation between the amount of change and developers’ wait time. One content change should not result in all workstations rebuilding the game content. One game code change should not result in all workstations rebuilding the game code. One engine code change should not result in all workstations rebuilding the engine code. There should be a direct correlation between the amount of change and the amount of build work done. We would like to have engine code there as well, but Git would also be acceptable for engine code. We keep game code & content in Plastic SCM. This is what we expect from a modern solution:Īll code should be managed in cloud-based, branch-capable SCMs. Every single step, such as building and distributing a custom UE4 version, is a huge effort. Most build system development is done on the production system, and test runs & configuration mistakes impact production negatively. Adding extra build machines is error prone. The core problem is that the approach does not scale. It has served its purpose so far we have been able to iterate quickly on our game, and we haven’t even tried building & distributing our own engine. All software has been installed manually. We have a crude solution today a single beefy physical machine that runs Jenkins. Therefore, every company is doomed to reinvent it more-or-less from scratch. Large projects usually use Perforce and their tooling often relies on internal company infrastructure. The UE source code is not available publicly. It is difficult to design a turn-key solution that works for small projects. How do you set up an effective CI system for Unreal Engine based games? There is no ready-to-use template available. The no-changes UE build job runs 800 compilation actions even though nothing should have changed. Editor, game, client, server, all source code, all debug symbols, templates. The UE build produced is a full installed build for Win64. No-changes example-game build job: 3 minutesįetch UE build: downloads 2.7GB of data, expands to 40GB on-disk, takes 10 minutes.Clean example-game build job: 10 minutes to fetch UE4, 10 minutes to build + upload game.Clean UE build job: 2 hours to build + package + upload.It is not yet useful for building game applications.Ĭheck it out for yourself: Build system, Engine build script, Example game + build script Performance numbers This is well suited for making custom-built UE versions to distribute within the taem. The build system automatically spins up/down the runners so we only pay for what we use. The build jobs are run by self-hosted runners in Google Cloud. We have a proof-of-concept that builds UE engine code and an example game, all using GitHub Actions. Our investment in build systems is beginning to pay off! Overview We have switched to Unreal Engine, grown a bit, started on a new game, and reinvented a lot of base tech. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |