
Hello boys and girls,
It is with great excitement I announce I will be working full time on Mirage Realms again from the 8th of April (tomorrow)!
Now, before I went back to working a normal job I had been pouring all of my time and resources into completely stripping the game back to its core maths in the pursuit of being able to programmatically tweak balance, generate items, monsters, spells, etc at any level and have it all just work and make sense.
While I was away over the last year, it became increasingly obvious I was drowning in admin tasks. The realm store was constantly not delivering peoples purchases, the support issues were poorly tracked and I often went months(!) without reading it, and the whole lot was stressing me out. In addition, updating the game was a nightmare, it was split across 5(!) projects and putting a release together was like a 20 step process… and even after a release it was very difficult to even run the client on a PC! As such, in my spare time I set to trying to make life easier in preparation for going back full time, so we got:
- A from scratch rewrite of the Realm Store, using Googles API directly and storing significantly more information about your purchases server side. This seems to have completely eliminated the issues with delayed payments resulting in undelivered purchases which is huge!
- The Support Helpdesk, a purpose built ticket tracker where you can email or use the website to raise issues and support requests.
- 4 paid Game Masters who monitor and look after the Support Helpdesk. They are paid an insultingly low amount for their time but they are great people who believe in the project and are doing an amazing job taking weight off of my shoulders and ensuring you guys get help when you need it.
- The PTR is now running off of a combined codebase with a significantly streamlined release process, I press 1 button and everything is deployed automatically.
- The PTR now generates platform specific client builds for Linux, Windows, MAC, Android, and of course the platform agnostic Jar – as well as now supporting Java 21.
With this, the admin load has been drastically reduced, the cognitive load of working on the project has been significantly reduced with it all tidily in one project, the release process has been massively streamlined and it is easier than ever to get the client running on your computer. Of course, the latter two points only currently apply to the PTR but the PTR will make it to live if it kills me!
Speaking of the PTR, having some time away really allowed me to step back from Mirage and consider what currently exists, what I have learned, and the direction I would like the game to go. I view the current live game as a horizontally shallow technical demo that has proven the technology works and the fundamental gameplay has an audience.
With that in mind, I have spent a lot of time contemplating what sort of game I would love to build on top of this platform, a bunch of ideas have stuck in my mind, and here is a handful of them (some fully realised on the PTR already, some in progress, some not started):
- A point in any given stat should equal a point of difference in that regard. For example, 1 Sword Mastery should equal 1 more damage with swords. 1 Defence should equal 1 less damage taken, etc.
- Every class should be able to wield any combination of weapons or equipment they wanted. They may not have spells to take advantage of those weapons, but if you want to run around firing arrows as a Shaman, you should be able to.
- Dual wielding any combination of weapons should be possible, and when doing so your auto attacks should alternate between the two weapons as appropriate. Taken to the extreme, wielding two shields could be a viable strategy to pull large groups of monsters, should damage output not be a concern.
- Characters should be able to switch between classes in town, and level them up individually. For example, you could be a level 1 Knight, 450 Ranger, and 30 Mage all on the same character.
- Players should be able to customise how tanky they are vs how much damage they deal regardless of which class they are. If a Mage wants to be a brick wall, or a Knight a glass cannon, this should be possible. To facilitate this, light, medium, and heavy equipment will now determine the distribution of offensive and defensive stats, rather than the class that can wear it. Players can then wear an approprate combination of light, medium, and heavy gear to customise their offensive vs defensive capabilities.
- Drastically reduce the amount of RNG in the game. Players should be able to set goals and progress towards those goals in a meaningful way each time they play. This will be achieved through horizontal progression and a focus on professions for modifying equipment with the desired stats.
- Spells should have significantly more mechanics that define playstyles and builds. Status effects and cast times are a necessity, and the number of active spells should be doubled to 6 to facilitate more experimentation and situational utility.
- Spells should no longer have ‘tiers’, and instead each spell should represent a unique mechanic or interaction. The pool of available spells should be substantial, and a significant ‘selling point’ of what makes Mirage interesting and fun.
- Monsters should rely on the same resource pool (mana, focus, rage) as the players, as well as the same spells. Monsters should have classes and levels just like players do, should have 6 spell slots just like players do, and should be given spells based on the class and level they are.
- Gear progression should be significantly more impactful, as should the power curve in general for both PVP and PVE. A level 50 player should pose no risk to a level 100 player in 1 on 1 combat. In addition, Monsters 10+ levels above players should be a significant challenge.
- Masteries and Magics will be split into individual stats players can raise, with a mastery for each weapon type. Masteries and Magics will persist across all of the classes on a character, however your effective mastery / magic will be capped based on your current classes level to prevent say… a level 350 Ranger from power leveling all of their other classes wielding bows with 200 bow mastery. You will be able to train beyond your mastery cap, but unable to take advantage of it until you level up appropriately. Masteries and Magics will receive a base 100% training bonus if they are a primary stat for the characters current class, and other means of further enhancing that bonus will become available as characters become increasingly higher level to enable meaningful late game training progression.
Everything above will need to be completed, tested and balanced before the next release – and it will be the biggest update the game has ever seen. Every item, monster, and combat interaction will play and feel completely new, so it is extremely important we heavily test everything on the PTR before going anywhere near a live deployment.
As it stands there is a bunch of technical debt (shit code) in the client that I have been wanting to overhaul for a long time that I am half finished with, and I think it still makes sense to get this dealt with sooner rather than later so my immediate focus is on finishing that work and rolling it out to the PTR asap. For transparency and to help me track my own objectives and deadlines, we have a new roadmap which you can use to see what I am working on at any given moment and what the immediate next stuff is set to be:
Mirage Realms Development Roadmap
You can also now find the Roadmap linked in the Development menu on the website.
This week my focus is almost entirely on deploying the new server hardware alongside some final tweaks and fixes to the live game before shifting 100% of my attention to the PTR. I have the new game server sat in a box under my desk where it is doing no good to anyone. It’s going to feel great getting it set up and deployed 🙂
See you on the PTR soon!
Fhox