The game takes place in a universe consisting of many solar systems, each having a set of planets. Each planet has a dynamic market, where prices change based on availability and demand for each resource. Each planet can also be mined for resources. There is a also a number of bots/NPCs in the game that buy, sell, and mine resources.
The players goal is to maximise their amount of money by e.g. buying resources on one planet and selling them for a profit on another, or mine resources and sell them to the planet that gives the best price for that resource. However, each player can only access the market, and other information, for the planet they are currently on. Thus, and need to create their own database schema, populate it with data, and use that data to determine the best strategy forward.
The game also features an in-game chat, ship upgrades, different factions, and so on. See the game's git-repo for more details:
https://gitlab.com/leifhka/datastar
As the game is in early development, there are many possible master topics related to this project, such as:
- Test and improve scalability of the game: How many students can play the game simultaneously when hosted from a given machine, and what can be done to improve the scalability so that either the number of students or the size of the game's universe can increase.
- Investigate/test the pedagogical effects of the game: Test whether whether students actually learn anything by playing this game, and whether they learn better or more efficiently compared to other activities (such as solving exercises). (This may require a co-supervisor with more knowledge of quantitative methods.)
- Implement new features and investigate programming in pure PostgreSQL: The game is implemented using only PostgreSQL's SQL, that is, a combination of pure SQL and PostgreSQL's imperative extension plpgsql. It is not too common to implement full programs in pure PostgreSQL, and it would be interesting to implement new features for the game, and in the process investigate how to organize and maintain large SQL-code bases.
Topics can be adapted based on the student's interests.
I am currently employed as 100% head of education, and is therefore limited in the number of new students I can supervise.