Clone Engine Blogpost - Limits, Restrictions, and Possibilities
Hello everyone, we're happy to see that you're all excited about the possibilities of adding new characters to Project M!
In the time since we've revealed the Clone Engine and its first character, Roy, we've experienced a surge of requests for characters to include in future releases. Additionally, there have been several members of the community inquiring when they can hope to see the Clone Engine released publicly.
In this blog post, we'll go a bit deeper into how we might select future characters as well as the capabilities and limitations of the Clone Engine.
First and foremost as a game mod, we are still under certain legal obligations and restrictions. To stay in Nintendo's good graces and to avoid attracting Cease & Desist letters from 3rd party companies, we are limiting our choice of new characters to those that Nintendo has already licensed for inclusion in Brawl. In other words, that restricts us to characters that already appear in the game in some way, such as trophies, assists, or stickers. Additionally, to avoid appearing as competition to Smash U/3DS sales in Nintendo's eyes, we do not have any plans to try to "back port" any new Smash 4 characters to Project M.
A WIP of Roy's hair texturing demonstrates his modeling job was
far more intensive than a simple port from Melee.
Beyond legal restrictions, characters are chosen based on how popular they are as well as the unique gameplay and personality elements they can bring to the roster. Bear in mind that we aren't actually making a character from scratch in the same manner that Nintendo did – instead, we begin with a clone of an existing character and then modify it from there. We also still lack the ability to create new projectiles and other independent items (known as "articles") from scratch. Luckily, with a lot of extensive work, the behavior and appearance of these articles can usually be edited enough to look new. Beyond article restrictions, we are also limited in our ability to add new special move properties, such as grabbing or homing. So we must always begin by identifying an existing character with roughly the right articles and special attacks for the job.
Once a character is agreed upon based on the previously discussed limitations, the next step is to write the ASM codes and adjust the core files as necessary to get the game to add the character to the roster itself. This is an extremely technical and advanced process, and is part of the reason the Clone Engine is not currently for public use. Resident PMBR ASM wizard ds22 has written his input on the process below.
We first off patch a character's module for it to load over one of the seven unused slots left in the game, and have it load through a custom Character Select Screen slot. Next, if necessary, we go through a process of trial and error in order to patch every article instance in memory so it can properly point to the cloned character. After that, the cosmetics are added, and properly linked to the clone in question. And last, but most certainly not least, we make fixes to where the character saves its result data, which, if left unfixed, will permanently screw up your savefile, with many weird glitches and freezes as result.
Roy sports his own Character Selection data, independent from Marth. He's our boy, alright!
Any conflicts or imperfections in these codes (which must be updated every time a new character is added) results in corrupted save files and frequent freezes. Fear not though! We wouldn't release a new character to the public until we're quite sure they are stable and bug-free. However, the ASM wizards working on the Clone Engine and Brawl ASM modding in general have done so for several years, and are still regularly challenged. Since there are few members of the community, if any, that would have sufficient technical knowledge to use this without causing rampant save corruption and freezes in other users, we have not yet set any date for public release of the Clone Engine.
With the ASM coding in place, we then put together a model and rig that model up to a skeleton for animation, which is easily the most time consuming part of creating a new character. We've estimated that creating all new animations for a character that live up to our quality standards would take at least 700 hours. This is why clones or partial clones are so appealing – by limiting the number of new animations created it cuts down the amount of time required substantially. That's not to say that new characters are entirely off limits, but the most viable proposals often start off of the base of another character. Think of Luigi – he shares many similar moves and animations with Mario, his base, but over time has been given more unique traits. Furthermore, his unique physics instantly shift his entire play style. Creating new play experiences in a polished manner as efficiently as possible is really the name of the game.
These animations may look very similar, but they add completely
different flavors to Mario and Luigi's movesets!
Once the character is implemented with animations, we have to rig up hitboxes and code all of the behavior of their special moves. The process of animating, tweaking move properties, and then playtesting continues on in iterations until we start to settle on something polished. But we aren't developing characters in a vacuum! Introducing a new character means testing and analyzing 40-something new matchups, which may mean making small tweaks to the rest of the existing cast.
As a last note, we'd like to address the fact that there is a 'leaked' Clone Engine that has currently made its way onto the internet. This clone engine was stolen from the PMBR last year. We can say this with 100% certainty after comparing the code line-by-line with our past revisions, and know for a fact it matches our version from August 2012. This Clone Engine is quite outdated, obviously incomplete, and incredibly buggy. Many of the earlier mentioned issues we've worked around are present in this leaked Clone Engine and as such, we highly recommend avoiding using it, as it could result in corruption, freezes, complete loss of save files or other damages.
Finally to close things out, attentive users may have noticed we mentioned our limit of new characters earlier in this post. That limit as it stands is 7 new characters, it is the absolute max we have the potential to add currently. We will not have 7 brand new characters in the next release of Project M, and we may not ever create 7 new characters. The option is there though, and perhaps one day, in the distant future, we might reach that.