- Management of a team of 10 volunteers, working on their free-time
- Administration of a ~100 players community
- Gameplay systems conception and implementation in Java
- General producing tasks, from programming to 3D modelling
- Writing and editorial line keeping of a consistent fictional world
- Minecraft retro-engineering to inject modified behaviors
May 2014 – July 2017 – France
Almost every gamer of our days has laid hands on Minecraft at least once. For me, it was a much bigger story, beginning with the discovery of this game and its creative potential back in 2010. I quickly understood that the power of this game came with the multiplayer mode.
In 2014, I joined Mc-Fr, the biggest role-playing Minecraft server in France, as a simple player. One year later, as the server was undergoing some big changes, I joined the administration and development team.
Alongside two other administrators that became close friends, we transformed Minecraft into a platform able to support an immersive role-playing experience, managed our team and our community, until the point where our studies and work activities forbid us to give our baby the time it required.
What is a “role-playing server”?
Role-playing basically means that players incarnate characters inside the world, which are purely fictional. They begin by writing their backstory, their motives and desires and then start to act and talk in their place, into the world. Although you might have heard of tabletop role-playing games consisting of a group of friends sitting around a table and doing what I describe, doing so on a server means that the number of simultaneous players can be far greater. Imagine living a fictional life in a fantasy world with a hundred other players, meeting their characters and building up friendships, war motives and even romance once in a while.
At this point, Minecraft was more a platform than a game. Metaphorically, it was the table we were playing our RPG on. Its creative potential and its simple graphics allowed us to maintain a persistent and changing world where every character’s actions could leave a mark.
Our job as an administration team
This was my first great management experience, as a student. Our job as a full team was quite ambitious: we were building a fictional world which needed to be deeply described (politics, geographic, biology, fantasy…), some parts of it needed to be built inside the game, then we had to modify the entire game rules to make it as immersive as possible… But the most difficult task was to manage the team itself and our community.
The whole team was working for free, whatever the hours of work, the skills needed or the difficulty of the tasks at hand. This simple fact made everything different from the management inside a typical company. As everyone is working on their free time, the way you manage the team has to be very wise in order to get the job done in time and to keep everyone on board. I will not lie: we made a lot of mistakes, but we always did our best with our skills and our will at the time.
Making your team members appreciate what they’re doing, see the big picture of the project they work for and understand why the schedule is sometimes so short is imperative. You also have to be able to adapt your schedule to anyone’s drop of productivity, because you have strictly no legitimacy to ask for more. But the community is here, and it surely asks for more than you could ever do!
It taught me a great lesson: if management is appearing easier in a company than when people work for free, it’s an illusion. It isn’t easier at all, it is simply that people are expected to work because they get paid. But if you don’t see the signs of a bad management and believe that everything is fine because everyone keeps working, you’ll just let things build up and this will end bad. In a volunteering environment, it is just faster to tell when things are going wrong. Then, keep your eyes and your ears wide open!
Learning OOP and Java with a mentor
Aside from managing, those years on Mc-Fr allowed me to learn Java language, and more generally the design patterns and deep concepts of object-oriented programming. Indeed, one of the two other administrators was a brilliant IT engineering school student who taught me a lot of things while I was working with him on the conception and implementation of our many in-game systems.
I already had some amateur knowledge of C++ and Java before joining the server, but we went more deeply into the high-level concepts and I discovered what it truly meant to develop as a team.
During our work together, we developed several systems. For example:
- Implementation of a complete role-playing system:
- Complete character sheet editor in a web interface
- Character sheets, skills, races, etc. storage into SQL databases
- Simulated dice system on Minecraft, linking every player to its own character sheet
- Real-time simulated weather system
- Fauna demographic logic
- Indigenous tribes behavior and resource management
One of the biggest difficulty was to develop inside a already coded game. Minecraft is well-known to be quite hermetic, although it’s one of the most modded games of all times. One could basically say it is poorly coded and indeed, some mechanics were very difficult to bypass properly.
This was a long article, but it reflects the great experience all of this was and the handful of skills it taught me, both technical and social. I truly like to bring my entertainments further by joining the working teams and diving into the details with them.
This all experience led me to develop games from scratch, instead of trying to bend an existing base to a purpose it is not intended for. Although it is much more work, it allows me to think mostly about the structure of what I want to do and not about the way I will make the platform fit to it.