Using game-agnostic static analysis to determine the loading order of game assets

Use static code analysis to determine the approximate loading order of the assets in any game made using the Godot game engine.


Sista datum för anmälning: 2022-01-31

Företagsnamn: Macaroni Studios

Mail till kontaktperson:

Länk till företag:

Utbildningsnivå: Kandidat Magister/Master

Utbildningsområde: Datavetenskap och mjukvaruutveckling Digitala medier och spelteknik

The target project:
Our passion project is a website called and can be accessed at It is a site for game developers to upload their games for others, both game developers and players, to access and play their games. A great focus has been on making the site fast, easy-to-use and mobile friendly, both for developers and players. All games are played directly in the web browser, which is why these things are so important.
All games uploaded to the site have to be made using the game engine Godot. The reason for this is because games exported using Godot become smaller than from most other engines and are generally very well suited for the web. The drawback is of course that not all games can be uploaded to, but the advantages are many!
The biggest advantage of Godot is that it is completely open source, meaning that we can modify the engine to add new and unique features. This makes into more than just a place to host games. For example, Game developers get automatically working multiplayer without hassles such as port forwarding and all games are automatically compressed on upload which leads to shorter loading times. We have many more exciting features planned, some of which we hope to do together with students.
More info about can be found here:

As mentioned in the description, all games on runs directly in the browser. They are not loaded until the player clicks the thumbnail to play the game. At that time the game must load as quickly as possible so as not to cause the player to exit before the game even starts.
A way to decrease the loading time is to focus loading on the resources that are actually important, start the game as soon as those are loaded and then let the rest of the assets load in the background.
So which assets should be loaded? That is what this project would try to make a system for.

Develop a game-agnostic static analysis algorithm for Godot games that can be used to determine which assets should be loaded first.

* Look for potential similar projects.
* Set up limitations/boundaries for the conditions that the algorithm can/should work on.
* Implement the system for the Godot game engine.
* Compare loading order obtained from static analysis with actual loading order when running the games.

Requirements and conditions
* Neither computer nor dedicated place can be guaranteed.
* You can work both alone or with a partner.
* Continuous feedback and follow-ups will be done but you must be able to work, make decisions and take responsibility on your own.
* Both you and Macaroni Studios own what is developed and both are free to use, modify and publish it. This means that we will not require a specific version of the project to be shown at school and you are free to do what you want with it afterwards (as long as we maintain rights to use and modify it).

Do you have a question? Type it here and we will get back to you as soon as possible!