An update on SimpleMMO

The summer has finally arrived (If you’re not from down under!). The second quarter of the year has ended. The Memory Lane event is no more. So… what now?

To the observant players among us, you have probably realised that SimpleMMO has seemingly lacked updates of actual substance. In fact, the last update that wasn’t a measly bug fix or balancing change was the introduction of new items more than two months ago.

“So… what gives?”

A very good question. I’m aware of the fact that some people just simply don’t like to read huge blog posts so let me write two answers; a short TLDR and a longer version.

Too Long Didn’t Read (TLDR)

TLDR; we are shifting our focus on settling a lot of technical debt that has accrued over the last five years. A lot of this tech debt is behind-the-scenes so while it may not look like we are making changes, we are actually making a lot of them. The update logs don’t list them because they don’t affect you (the player). This is an incredibly lengthy process but will it result in a far more sustainable game in the future to extend upon. We have a long-term vision with SimpleMMO and that hasn’t changed.

Tech debt refers to the negative consequences that arise from prioritising short-term solutions or compromises in software development, resulting in additional work and challenges in the future.

Long Answer

Recently we have been developing our other game which is due to come out this summer – IdleMMO. As we approach release, this is obviously taking up a lot of time to prepare the game ready for production. I am aware that, in a previous blog post, that I mentioned IdleMMO won’t affect SimpleMMO, and that still remains true. We always move resources to other projects when they are close to the finish line, but we return them to normal levels once we’ve manage to pass the release. In fact, this is the case with literally any project we do so there is no difference in the way we are working.

However, I’d be lying if I said that IdleMMO didn’t indirectly affect SimpleMMO in a somewhat significant manner. We have been building IdleMMO from the ground up using the same framework as SimpleMMO, except we have one major difference – we are placing a huge amount of focus and attention to detail on the quality of engineering that enters the code base. We are trying to minimise any possible technical debt and, as a result, making changes to existing mechanics and adding new features to IdleMMO is a breeze (albeit a long one). It’s night and day in comparison to SimpleMMO. It’s much easier to see this comparison when they are both fundamentally an online role-playing game.

When I make changes to SimpleMMO, it often feels like I’m engaged in a furious wrestling match with a bear on a wild cocktail of steroids, riding atop another even more roided-up bear. It’s no simple feat, thanks to the technical debt we’ve accumulated over the years.

As you may have heard me mention countless times before, the very first iteration of SimpleMMO was never intended for the public. Have you ever studied a programming course and your very first project is a “Hello World!” project? If you’re not familiar with a “Hello World” project, it’s essentially the simplest way to grasp how to output a message using a language or framework of your choice. It’s like taking that very first baby step into the world of development.

SimpleMMO was essentially my “Hello World” project as I dipped my toes into Laravel, a PHP framework. By that point, I had already been developing web apps for a few years, but I had never ventured into using frameworks, so there was a lot of room for experimentation. Initially, my plan was to create a test project to learn the framework and then start fresh once I gained some footing. However, that plan never came to fruition, and as a result, its mere conception turned into a heavy burden of technical debt.

The very first iteration of the Travel page in SimpleMMO (August 2017)

I built the core concept of SimpleMMO overnight. Specifically, from 12am to 5am. Within that time, I built the travel system, the inventory, and an extremely basic attack page. Perhaps not so coincidentally, they are the three “heaviest” mechanics in the game with the most amount of technical debt. They’ve haunted me for years.

The first iteration of the battle mechanic (August 2017)

The first iteration of the inventory system (August 2017)

Simply put, the reason why I was able to build three entirely separate systems in a mere five hours was because I just thought “Eh, I’ll fix it later.” Obviously, I never did which is why you are reading this blog post. I did make some pretty major changes to the travel mechanic in the past when we moved away from the step limitations, which significantly improved performance but the very foundation of it is still rotten.

“Why did you not fix it later?”

A valid question I presume you would ask. The answer is simply because… I didn’t want to.
Fresh out of university and in search of a job, I started on this project with the simple desire to create a game, without expecting anyone to actually play it. Never in my wildest dreams could I have imagined that over 1 million players would register for the game. I wouldn’t have even anticipated 10 players. Nevertheless, even in such circumstances, a smart and organised individual would strive to enhance their code, regardless of whether the game attracted 10 people or a million. However, my smooth fickle brain thought it would be fine to just leave it… and here we are today… still talking about simple mistakes that were made more than 5 years ago.

The issue with settling technical debt

The concept of initially creating a foundation using “messy” code but subsequently improving it once the system has been built is a sound approach. In fact, that is still what I do today (with a heavy emphasis on improving the code). My preferred approach is to start by creating a “skeleton” of the mechanic I’m building and then go back to it later for a significant restructuring. I find that this method helps me mentally distinguish the user-facing functionality from the underlying structure. Initially, I can concentrate on making it functional, and then I can shift my focus to fine-tuning it to work precisely the way I envision. However, this process should happen before the code hits the production server. With SimpleMMO, I don’t have such a luxury. Ensuring full backwards compatibility with prior iterations of the game when making changes to existing mechanics and frameworks is a major challenge. The primary issue lies in the fact that rebuilding something with backwards compatibility can take me nearly 3 to 4 times longer than starting from scratch. It’s an enormous headache that I’d prefer to avoid.

As a result, our primary focus on SimpleMMO is to lift it out of the stone age and bring it to the 21st century. Luckily for me, I’ve already been going through a lot of systems and bringing them up to speed. You may have noticed a lot of overhauls recently. Tasks, collections, daily rewards, etc. They are, for the most part, considered “up-to-speed” to what I now consider production-ready battle-tested code. However, the very foundation of the game is rotten, and I don’t want to keep kicking the can down the road any longer.

As mentioned previously, we’ve already made plenty of changes, but there is still a lot of work pending. This could honestly take us more than a year.

What to expect

I don’t anticipate SimpleMMO will have any brand-new mechanics in the near future (with the potential exception of the auction house). What you can expect is overhauls and significant improvements of existing systems and UI changes.

Mechanics

A lot of mechanics will significantly change so that they are ultimately easier to play and understand. For example, the World Boss mechanic is older than dirt and was built with string and gaffer tape. That will receive significant changes so that it feels generally nicer to interact with. “Jobs” is another big one.

Mobile UI

The mobile UI is incredibly outdated and based off the old material design language that Google brought to market in 2014. We have plans on giving it a much-needed face lift.

Rebrand

In 2021, we introduced the new SimpleMMO logo. Whilst effective in the Google experiments (thus was the primary reason why we went with it), it still doesn’t feel right. I’m not a big fan of it. In fact, I just don’t like it. There is no established colour scheme to it makes it extremely difficult to work with. Over the next few months, we will be experimenting with new logos and branding designs to ensure that we can find the one that I like and is also effective.

Removal of Features

As we will be taking a look at literally every part of SimpleMMO, no stone will be unturned. Consequently, we will review the least utilised features or those that provide no utility, and we will simply remove them from the game. While we won’t be removing popular or beloved features, we will thoroughly review those that appear to be pointless and prove to be more burdensome than beneficial. “Wishlist” and “Ads” are at the top of the list to review.

Discussion Boards

The discussion boards are reminiscent of the old bulletin boards that consumed the internet in the early 00’s. We have plans on completely changing the way the discussion boards work so that it incorporates new, modern ways of interacting with other players. We are actively exploring alternatives to the suggestion section due to its current issue of being inundated with duplicate suggestions, making it increasingly challenging to identify unique suggestions that hold actual value.

Conclusion

In summary, our ultimate goal is to establish the long-term sustainability of SimpleMMO. Currently, the game’s structure restricts development solely to me, as the spaghetti mess it has become cannot be easily handed over to other developers. Ideally, the workload wouldn’t be solely mine to bear. Moreover, it’s challenging to introduce new features to a game when I am aware of how much of the foundation has decayed over time. Merely piling on additional features would exacerbate the situation further.

All in all, rest assured that SimpleMMO is still under heavy active development despite it having fewer updates that affect the players. As a result of this, we have adjusted our public roadmap by removing the quarterly changes and creating a new category titled “Upcoming”. The reason is that we cannot provide an exact timeline for these changes, as they depend entirely on how the development process unfolds while addressing the accumulated technical debt.

P.S If you haven’t seen it already, you can read about our game “IdleMMO” by pressing here.

10 thoughts on “An update on SimpleMMO

  1. Hi, I dont have any developer experience but since you are looking for people and it’s a enjoyment project, as a big fan of smmo, I’d love to be able to help creatively r even help out with some of the most basic repetitive code, I don’t know or mind what I might be able to do for you but I still hope you might take up the offer! For smmo! 😊

  2. Very excited for the UI redesign and the job rework. The UI actually isn’t terrible at the moment, but I’m excited to see what you can do with it. The job system on the other hand, has needed a rework for a while now.

  3. Hey there Mike!
    It’s great to see some much needed changes come to this game, and I found all of the ”behind the scenes” stuff interesting. No need to hurry too much on these updates, as I imagine most of us will be sufficiently busy when IdleMMO releases.
    Good luck on the development!

    Best regards,
    SimonTheAnka

  4. Thanks for sharing your thoughts with us! I look forward for the upcoming development of SimpleSMO! And of course “Godspeed” for the development of your new project, too!

  5. Thanks for letting all of us know. I love SimpleMMO, and I hope you guys continue working on it. TYSM.

  6. About the UI redesign, have you thought of making the iOS version along with Apple design? Right now it really feels like an android app running on iOS. Anyways, thank you for developing this game!

Leave a Reply

Your email address will not be published. Required fields are marked *