This spring I had the pleasure to work for Imago on a project funded by the Office for Students to help convert teaching materials for undergraduate students on software engineering to fit a more flexible learning format.
Specifically, my Imago team was tasked with making online versions of coaching games played in the classroom as part of the University of Manchester’s undergraduate course on Agile Software Pipelines. The main challenge was that we needed to somehow translate the learning outcomes from these games to an online environment, and, what’s more, make our versions of the games actually interesting – which is much easier said than done.
One of these games, The Agile Lego Game is a coaching game based on the famous XP Lego Game, invented by Sam Freeman, Dan North and Mike Hill, at Thoughtworks. The course team at University of Manchester has adapted it to work with undergraduate classes.
The game itself is simple: students split into teams, and build a product for a client out of legos based on the client’s story. In a two hour workshop, two iterations of building are run, with the idea that you should use the information you have acquired in iteration one to improve your results in iteration two. For the stories the same ones are used as the ones in the XP Lego game, which describe an animal that the teams need to design and build with the lego bricks.
We decided during the planning phase that we will focus on this specific game, and that we will implement it with a Minecraft-esque game engine called Minetest.
So this marked the beginning of the transformation between the lego version and the Minetest version of the game! There was a little problem, however – we didn’t think anyone would have heard of Minetest. So to be able to present this idea in a familiar way we transformed it from the Agile Lego Game to the Agile Minecraft Game!
This was a critical point in the lifespan of our project as it solved a lot of the issues we were currently facing:
• we didn’t need to build a game engine from scratch,
• we could utilise the familiar block system to replicate lego bricks online, and
• it has a fairly big supporting community – so we could always find help for any issues.
However, there were still several technical setbacks in the project, most notable of which was setting up the server the game was going to run on. It turns out it’s not as simple as flicking the designated server switch and hoping for the best, but thankfully, there were enough resources online to help us properly tackle this.
In short, staying up to ungodly hours playing around with my router settings in order to create a private network I can invite people to so I can test the server turned out to be more fun than it sounds! I’m sure lots of people who have played Minecraft know the experience of using Hamachi or any other VPN service to create their own Minecraft server and it genuinely wasn’t something I thought I would use in a software development project.
The only thing more impressive than the amount of technical challenges we had was the amount of licensing issues we faced. Having a heavy resemblance to another specific crafting game you might be thinking of, it was unclear at points which textures we could use and which would land us with a copyright claim by the owner. This was also a good time to reconsider our choice of words when it came to presenting this idea, and it funnily enough it kind of became a running joke, but we needed to find that balance between Minecraft’s familiarity and Minetest’s name, so naturally we chose The Agile Minetest Game.
Minetest, by the virtue of being a piece of software, naturally had licensing tied to it, more specifically the LGPL 2.1+ free software license. If you aren’t familiar with licenses you should definitely read through this one since it’s quite common and since this post is for informational purposes only and not legally binding. Some of the requirements in it include linking modified source code, not removing copyright notices, etc., which answered some questions, but it didn’t tell us how to proceed with the texture packs already present in the game.
We went through every possible conceivable option, from making them ourselves to researching open-source texture packs. In the end, we contacted the person who owned the repository for Minetest just so we can get a clear answer to if we’re going to get sued or not, and thankfully it turned out that, despite the confusing wording around the assets in the game, we were allowed to use them for our purposes. Because of this I now believe that with this kind of problem, if it’s a feasible option, you should always try to contact the person or people behind the software, assets or anything similar for clarity. They’re the ones who licensed it, but more importantly, they’re the ones who made it.
The highlight of the project was definitely when we had test runs of the actual game with ourselves and then with other people. After every trial we would get together and think about what went well and what we could definitely improve. If you think about it, it was surprisingly fitting to be working on a project that introduces the iterative approach, using the iterative approach. I had no previous experience in agile software development, but after working on this project I can confidently say that this way of developing software and managing a project feels so natural I’m surprised it’s only recently gained more popularity.
In the first iteration we decided to build decorated houses with some aesthetic fish motifs.
However here it was only us who developed the game playing, the real deal was the next iteration, when we had outside people come in and build!
I’d try and tell what the above thing is supposed to be, but I genuinely haven’t got the faintest idea – that’s okay though, since it’s based on specific user stories I think it’s safe to say it made at least one red dragon domain expert very happy.
If you’d stopped little me while I was playing Minecraft some years аgo and told me that what I’m doing will be helpful in my software development career I’d have genuinely considered calling someone to help with your delusional beliefs, but right now I couldn’t be more grateful that 14-year old me played that game. This internship will now be special to me not only because it was my first ever professional experience of the kind, but also because it’ll be a reminder of why I love video games, so I couldn’t be more grateful I had the opportunity in Imago to combine two of my biggest passions.