Inspiration
When we all met up at 11 am at the event, the only thing that we could agree upon was that we wanted to do something multiplayer. The only thing we had in common was that we all went to college, so we decided to combine these two things into an online game where you can chat with your friends and perform various actions on the UW campus. This was mostly because we all recognized how hard it can be to meet new students, we designed it specifically so its easy to talk to people that you don't know. Initially, we were planning on making a chat bot, but then figured that the MUD format would be much more effective for implementing this.
What it does
The main functions of Madlife are movement and chat. When you first log in, you find yourself in limbo and on the screen are some basic instructions about how to move and act. You can type the name of an adjacent room to move there, and you can talk to people who are in the same room as you with the "say" command. You can also poke people who are in the same room as you. Ultimately, Madlife acts as a tool for people who know their way around Madison to meet each other without having to actually move around-- useful, since the Madison campus can be so huge and meeting people can be intimidating.
How we built it
We used the Evennia Python library, which acts as a powerful tool for making MUDs and MUD-like games. We made several custom typeclasses for objects around campus as well as actions that can be performed on them and set up a network of rooms around campus that players can visit.
Challenges we ran into and how we learned from them
The biggest challenge that we ran into was Evennia itself. When it comes to libraries, with great power comes great complexity, and Evennia is incredibly powerful. Just setting it up on our systems so that we could make custom typeclasses took several hours, and building the world took several more. However, now our collective experience with Evennia means that if we were to do another Hackathon project based around Evennia, we would be able to get twice as much done in half the time. The second biggest challenge we encountered was with Python. Evennia is only in Python, which was unfortunate because only one of the four people in the group had any experience at all in Python and his was only about two weeks' worth. Many hours were spent stumbling through Evennia documentation, trying to learn Python from context instead of from explanation. However, we are all significantly more experienced in Python now as well, all having at least a basic grasp about the syntax of the language.
Accomplishments that we're proud of
We installed Evennia. No joke, the hardest part of using Evennia was getting it into our computers. Since we didn't know what a virtual environment was and Evennia must run on one, finally making it function was by far the most satisfying experience of the Hackathon. We also figured out how to use a Python library. Going from no experience in a language to successfully implementing a library is no small feat, but we did it.
What we learned
The biggest thing we learned was the value of preparation. If we had come into the event knowing exactly what we wanted to do, experienced in the language and library(s) that we wanted to use, an with a basic idea of the structure of our project, we would have been able to be ten times more productive throughout the event and our MUD would have been much more fleshed out. Next time, we will make sure to be more prepared with our idea. We also learned the value of specialization. We got the most work done when we had one person working on designing rooms, one person working on making them, one person working on designing objects, and one person working on making them. This division of labor made it much easier to avoid tripping over each other as we progressed, but didn't actually start to happen until about twelve hours in. Next time we will make sure to assign clear divisions of labor in order to improve our productivity.
What's next for Madlife
Madlife was a fun project, and we will all keep working on it in our free time. Its simple text interface and commands make it easy to pick up for people without experience, and the social aspect vastly increases the appeal of the game. We will continue to work on and expand the game, as well as our Python skills and experience.
Built With
- evennia
- python
Log in or sign up for Devpost to join the conversation.