Disclaimer: Everything you are about to see is work in progress, entirely consisting of placeholder assets and subject to drastic change and improvement. Do not expect too much fancy UI or polish quite yet.
The Metruh Engine is the most advanced Third Person Multiplayer RPG Engine ever developed for Starcraft 2. Ive been working on and off on this massive endeavour since 2013, though development of it has really kicked into gear again in the last few months.
People got a first glimpse at the engine when I announced "Transformers: Open World", however, it allows for far more than what you have seen so far. I think now is a good time to finally give the engine a proper presentation.
The Metruh Engine will serve as a framework for me to create one of the largest Starcraft 2 mods of all time, a massive multiplayer RPG. Ive been working on this project also since 2013 and it will have a scale and polish only rivaled by "Starcraft: Universe" itself.
While the engine can be used effectively to create all kinds of third person Starcraft 2 games, it was specifically made for that project of mine.
1 - Combat System and Enemy AI
The Metruh Engine features an intricate melee action combat system that can be best described as a very simplified version of Dark Souls like combat. The AI in this system is intelligent, its not just blindly attacking but also reacting to your attacks, dodging them or using special abilities.
The combat is centered around these core pillars:
- Melee Attacks
- Ranged Attacks
- Special Abilities
- Intelligent enemy AI
Enemies telegraph their stronger attacks so you know what you will have to dodge in order to avoid getting stunned, likewise, your more powerfull attacks will also stun enemies. The combat system is easy to learn, but has a good amout of depth to it. Gamechanging special abilities will also completely change the flow of combat, depending on what abilities you are running with.
The combat system is still a work in progress and will see some major improvements in the future. I want it to feel perfect by the end.
2 - Progression System
Character progress is defined by the following things:
- Skill points that you earn by killing enemies/completing quests/doing other stuff. You can spend those points to increase either health, damage or your magical abilities.
- Perk points are earned when you level up. You can spend perks to gain powerful bonuses for your character.
- Acquiring Abilities. The game is designed around powerful abilities which you can gain that will change up how you view both combat and the world as a whole.
3 - Dialog/NPC System
The engine allows for the quick creation of NPCs that you can converse in a dialog system with. The dialog system isnt amazingly complex, but it gets the job done.
When you talk to an NPC, you are presented with a variety of dialog choices. Branching dialog isnt implemented and probably never will be seeing how it doesnt fit into my vision for the game. It is not supposed to be a hardcore RPG, so I dont think branching dialog options are necessary.
NPCs can be easily set up to react to the world around them. You can ask them for rumors, which will give you hints to whats happening out there in the world and find out things you would otherwise miss. This process can be randomized, so that its always rewarding to go after rumors.
The white dialog buttons are quests.
The presentation of the dialog system is due for an update, which I will most likely get on soon.
4 - Quest System
NPCs can give you quests. Quests can be set up to be hand-made, however, Ive also implemented a fully randomized quest system in the engine, meaning you will never run out of quests to complete. However, even randomized quests carry over from session to session, meaning the world will stay consistent even if you relog. This was hell to program, but its well worth it.
Quests will be saved in your questlog, progression in the quest will be noted in the Quest log.
5 - Puzzle and Doors System
The gameplay in the finished game will consist of a variety of activities. Ive created a puzzle system that easily allows me to create platform puzzles where you need to place/push objects on platforms in order to achieve a goal, like opening a door. While completely unique puzzles will still be made for the game, this system is a great starting point to fill the world with interesting challenges besides enemies.
Progress of the puzzles is saved per player, meaning if one player solves a puzzle, that puzzle will appear always solved to him, while other players will still see the puzzles as unsolved.
6 - Character System
Of course, you will be able to create multiple characters (up to six) and your entire progress is saved. Quests (even randomized ones you havent accepted) and progression in puzzles are carried over, ensuring that the world will be in exactly the same state you left it in when you last logged in.
7 - Map System
Using the map, you will be able to see where you are in the world. You will also be able to discover new locations which will then be marked on your map. This system is currently beeing finalized.
More to come at a later date
AVAILABILITY OF THE ENGINE
Currently, I have no plans to release the engine to the public, as it was created for my project specifically. However, after that project is done, I might be willing to give out the engine to people who want to create interesting projects with it. That would most likely occur on a case by case basis, though.
TESTING AND FEEDBACK
I am always looking for feedback and capable testers. Feel free to post feedback into this thread, I would greatly appreciate it. If you want to help test the engine, I do regular testing sessions almost every weekend over on the SC2mapster Discord channel.
The Metruh Engine isnt complete yet, however, it is pretty close to completion now and progress is going fast. I still have to add a few more systems and make some changes to the existing ones, but after that is done, I can finally begin developing it into the game Ive always dreamed of making.
Keep in mind that what you see here in this thread is purely supposed to look servicable for the purpose of testing. The amout of polish and scale that I will try to achieve with the finished product will be something that has not been seen on the Starcraft 2 Arcade ever before. You will believe it when you see it.
Ive redesigned the dialog system from what it was previously to something much more streamlined and engaging.
Instead of a boxy menu that displays everything at the same time, you now have a clean list of your available questions, inspired by the likes of Skyrim and Witcher. Quest specific questions will now be simply displayed in this list in a different color instead of having their own bracket.
Selecting a dialog question will now bring you to a new screen with the NPC answering instead of simply displaying it in a box next to the questions.
While the UI is still a placeholder, the bar on the very left side of the dialog questions scales dynamically with the amout of questions available.
I think this redesign makes the dialog system much more engaging and makes it feel less like you are just checking of a list.
For the record, this is how the dialog system used to look like:
For the last month or two, Ive been hard at work to develop a proper level of detail system (a performance saving measure) for the Metruh Engine and thanks to invaluable contributions from both Talv and Eclipse, the system is now finally finished.
And the performance results are absolutely astounding, it is a game changer.
What this allows me to do is have a huge amout of doodads in the map (talking 10000 - 20000), aswell as have a visual fidelity that is as good as the screenshot above, without either affecting performance all too much.
A quick video showing it off (watch it full screen, 1080p, notice the detail fading in/out in the distance) In the final scene, the screen is more zoomed in to make the detail scaling better visible:
The system makes it so that only doodads in the vicinity of the player actually exist in the game world at all (they are completely erased otherwise, not just hidden). It also scales the model quality of the doodads depending on how close the player is to them. There are three degrees of model quality: High Poly, Mid Poly and Low Poly. It required alot of clever coding, but it was totally worth it.
Heres an example of the detail scaling models:
To give you some numbers:
A scene with 10000 doodads that was using high-fidelity models previously ran at 88 FPS. With this LOD system activated, the same scene run at 215 FPS.
The results are equally impressive on low-spec PCs. Someone with a very weak CPU, when playing my game, would have his FPS crawl to halt with about 1 - 5 FPS (no kidding). With this system activated, he ran at a stable 50 FPS.
Its this system that will make my vision for this RPG possible. Without it, a game of the scale that I have planned simply would not be possibly in Starcraft 2.
Theres more you can do with this system aswell. It allows you to interact with with doodads using triggers in a much more direct way, you could for example easily trigger that grass moves when the player walks through it. Another great thing about this system is that theres really no downsides to using it: You dont have to change your approach to terraining and you can turn it on and off using a single variable!
I will probably release this system once my game is done, however, most Starcraft 2 maps really wont get much out of it. For one, its made for third person gameplay, or atleast a camera that follows one unit. Additionally, it only really shows its strength when you use a massive amouts of doodads and/or you are using very high poly models.