(The following is a guest editorial written by forums member Guess Who, because frankly, someone needed to say it.)
Starting in the late nineties, a sizable community formed around reverse-engineering Sonic games. Thanks to the work of this community and its extremely talented individuals, amazing feats have been achieved. The original Sonic titles have been disassembled into their raw Motorola 68000 assembly code and thoroughly documented, allowing for substantial modifications; Sonic Adventure DX has similarly been torn apart, allowing for the creation of useful tools such as level and model editors; even the brand-new Sonic Generations has already been hacked wide open for creating custom levels, porting levels from Sonic Unleashed, and importing music. One thing all of these accomplishments have in common is that all of them are the result of collaboration. Many people worked for days, weeks, months, and sometimes even years to acquire and share the knowledge necessary for all of these technical marvels to come to fruition. Sonic Retro has always fostered a collaborative environment thanks to its forums, wiki, and Mercurial repository, and consequently has become the de facto hub for all things Sonic hacking.
So in March 2008, when Sonic 2 HD was announced, it was hailed as a shining example of the collaborative community environment that’s been so crucial to the Retro community. Media outlets like Kotaku covered the game’s announcement with great anticipation. It was given its own forum where members could contribute their own assets to the game, whether it was art, music, programming talent, or just general feedback. The engine, coded primarily by long-established community member LOst, was built using the disassembled code of the original Sonic titles (you know, that code collaboratively reverse-engineered and documented by a number of community members?) as a basis for its physics. The original Sonic 2 HD board received a whopping 14275 replies, mostly from members offering their own work or feedback for the product.
Even then, problems with the project began to arise. In September 2008, LOst released a second tech demo of the game’s engine for users to download, experiment with, and give feedback on. Even at that stage, users complained about poor performance. From the first tech demo to the second, tech member SANiK noticed a drop of thirty frames per second. Others complained about high levels of RAM usage. LOst quickly addressed these issues, saying that such slowdown was to be expected as the resolution of the graphics increased, and not to expect any improvement in later builds. Downloaded the new alpha release? Compare the system requirements in the Readme to the system requirements for Crysis.
The symptoms of the project’s disease did not end there. In March 2010, there had been tremendous amounts of contribution and discussion around the project, but little progress had actually been made. On March 15th, the original Sonic 2 HD forum was locked, and a new forum was opened up complete with new submission threads. With this new forum, however, came a newly revised set of guidelines regarding what could be submitted to the project, and staff members that had been appointed to manage the original forum declared that Sonic 2 HD was now a “closed community project”. In other words, a core team of people would now work on the final product, but submissions would be allowed and considered for inclusion.
This alone was not cause for concern. While ideally a community project should be fully open to the entire community, on a more pragmatic level, completely crowd-sourcing the project would be entirely unfeasible. Many posts in the original project forums consisted of ridiculous overanalysis regarding which shade of green the grass should be or whether a piece of art was a pixel-perfect representation of the original game. One could easily attribute the project’s lack of progress to the sheer volume of feedback, a volume that could never reach consensus or provide coherence. Having a core group of staff members only made sense – they could bring order to the chaos. The alternative is, well, Project: Sonic Retro.
However, declaring Sonic 2 HD a “community project” at all at this point seemed somewhat misleading. A large number of the staff members were not Sonic Retro community members in any meaningful sense outside of their contributions to the Sonic 2 HD project. This includes project manager Canned Karma, many members of the art staff (Cerulean Nights, Scanline99, CornetTheory, SnickerSnack), and musician Tee Lopes. All either have few posts, if any (CornetTheory, for example, has a whopping 25 posts on the forums – 0.02 a day since joining!), or the vast majority of their posts are in the Sonic 2 HD subforum. Yet still, this was – in a loose sense of the phrase – a community project; members could still make submissions, after all. And surely, now that the majority of the power in the project was being taken away from the masses and filtered through a small group of competent individuals, we’ll see more progress, right?
On March 21, 2010 – a scant few days after the declaration of a “closed community project” – Gambit announced that “Sonic 2 HD’s EHZ (Emerald Hill Zone) is now locked up to final adjustments and polishing”. Given such a statement, an alpha release seemed imminent. Instead, a few months passed with almost no news. In the meantime, submissions were still being allowed, but some questioned how much involvement the community really had with the project any more. In January 2011, the project’s previously flat-lined pulse rose with a single heartbeat: a trailer posted to YouTube showcasing in-game footage of a revamped Emerald Hill Zone, with a teaser at the end proclaiming that an alpha release is coming soon. How soon would soon be?
Well, Tuesday. March 27, 2012. The day the Sonic 2 HD team released their first publicly playable demo of actual game content. The culmination of four years of development was a two-act demo of Emerald Hill Zone. That’s about two and a half minutes of gameplay, if you’re rather average at the game. Keep in mind: this is more than two full years after Gambit claimed that Emerald Hill was “locked up to final adjustments and polishing”, and over a year after the staff released a trailer showcasing the level. The implications here are almost too outrageous for me to type. So what is the problem?
Some chalk it up to a simple lack of time. Seems reasonable enough; this is a hobbyist project, done by a few fans in their free time. Black Mesa – a recreation of the original Half-Life title on its sequel’s Source Engine – cites the same reason for its considerable delays. Of course, Black Mesa is not a project to look to for inspiration. Over the past seven years, many of the fans anticipating its release have simply moved on. With four years of development required to produce even a single playable level for Sonic 2 HD, how long might it take for them to release the rest of the game?
But what if the root of the problem goes far deeper? Look again at the system requirements of the game. I noted that they are comparable to Crysis, a game renowned as a visual benchmark by which all other games are measured, a game so distinguished for its demanding requirements that a common in-joke among gamers when discussing a new piece of hardware is to ask “can it run Crysis?”. Sonic 2 HD, on the other hand, is a two-dimensional remake of a twenty year old game. The bare gameplay code – the physics, the collision, the enemy and boss intelligence, all of it – is derived from code meant to run on a 7.67 megahertz processor, but the minimum CPU requirement is a dual-core Intel Core i3 at 2.13 gigahertz. Even factoring in modern niceties that need to run on the CPU such as a more modern audio engine, that’s inexcusable.
At the same time, the recommended system requirement for the GPU is identical to the requirement for Sonic Generations, a brand-new game running on a modern engine complete with high-poly 3D models, pixel-shader effects like depth of field, motion blur, and bloom, and massive levels far beyond the scale of anything Sega Technical Institute could have imagined in 1992. It runs on the recommended card at a resolution of 1920×1080 with every graphical knob turned to 11 – and Sonic 2 HD asks for the same GPU power. I can’t think of a single other game with comparable graphical output to Sonic 2 HD that does this. Rayman Origins, for instance, supports even a humble Nvidia GeForce 6800 GT – a graphics card from 2004. Is there any excuse for this outside of programmer incompetency? Maybe the listed requirements are higher than you’ll need in actual use. In that case, maybe the development team should list different requirements!
It’s not like they’re working on a totally new game, either. All the level layouts, gameplay mechanics, and character and enemy designs were laid out for them two decades ago. If this YouTube video is anything to go by, Tee Lopes has the soundtrack essentially finished. The bulk of the project’s work load must be redrawing the art, with the remaining effort focused on the engine. I must make it clear that I don’t want to discredit the work of everybody involved with the project. The alpha release shows an incredible level of effort. The animations are stunning, the soundtrack is beautiful, and minus a few small physics niggles the game plays quite well (of course, I meet the lofty recommended requirements). So the artists have proven themselves to be talented; maybe, as I suggested earlier, they simply don’t have the free time to devote to the project. Well, this is a community project. Why not enlist some help from their submission threads?
Oh, right. They shuttered the submission threads.
As of the release of Tuesday’s demo, Sonic 2 HD is no longer considered a community project. Submissions are no longer being accepted to the project, and the development team’s involvement with the Sonic Retro community will go no further than any other fan game developer’s involvement, which is to say they will maintain a single thread for news and updates. Oh well. As I said before, and as Canned Karma admits, it hadn’t really been a community project in anything other than name for a long time. Besides, closed-development projects aren’t inherently evil, either. Sonic the Hedgehog Megamix stands as one of the Sonic Retro community’s greatest achievements: many of the finest minds of the community coming together to work on the most ambitious hack of a classic Sonic game ever imagined, with fantastic results – and it’s not a community project. But then again, it never claimed to be.
But still, despite understanding that there are appreciable benefits to this approach, I couldn’t help but be disturbed by their trend towards a purely closed development process. Sonic 2 HD had started life as a testament to the benefits of the collaborative environment at Sonic Retro, but in the end it became yet another closed fan game project. Still, the project began as a product of the Sonic Retro community. The lead programmer, LOst, has been a member of the community for well over a decade. Surely there must be a taste of the old Retro hacker ethic left in the project?
Instead, many people downloaded the demo yesterday and went to extract it from its ZIP archive only to be stopped by a warning from their anti-virus software. No, the game does not contain a trojan. Instead, antivirus software reacted to the way the game’s code is obfuscated to prevent reverse-engineering. Wait a second. The code is obfuscated to prevent reverse-engineering? The entire game engine would not exist were it not for the efforts of Sonic community members past and present reverse-engineering the original Sonic games and documenting their functions. The hypocrisy here is staggering. But that’s not even the most insulting part. Any attempt to modify any of the game’s files presents you with the following screen:
The license mentioned in the screen doesn’t even exist. It’s nowhere in any of the game’s documentation and is not presented upon starting the game. And, again, the engine this game runs on is based on reverse-engineered code. The entire project owes its existence to a community built around collaboration, the freedom of information, the idea of building on previous work, and yet the game actively takes a stand against that. The entire project has become at odds with the philosophical foundations of the community that birthed it.
In the development team’s defense, the inclusion of obfuscation and digital rights management code in Tuesday’s alpha release of Sonic 2 HD was done against the wishes of the team. After project manager Canned Karma heavily implied that the obfuscation was the deliberate work of a single member of the team, S2HD artist Scanline99 revealed that the artwork for the demo was done over a year ago (when the promotional trailer linked above was posted to YouTube), and that all the work since has been programming. Earlier, I emphasized heavily how bloated the engine seemed to be, and that it could only be the result of programmer incompetency (the art team, on the other hand, seems talented enough); it would appear that my theory was spot-on. Another artist on the team, Cerulean Nights, blew the whistle:
… we’d give a certain programmer a little bit of freedom to add a necessary feature, and then he’d come back 6 months later with something completely unrelated in the game (such as stupid security, shader effects which aren’t even in the game, etc) and then not even complete the initial task given to him. Imagine this happening time and time again. I worked close to 8 hours a day for a year, on top of a full time job, in preparation for the January 15th launch of last year, and any assets you see in the game were done at that time. No, they weren’t perfect, but we basically had one chance to add assets into the game until that un-named programmer would lock them down “because it’s too hard to swap out assets” ie “I don’t feel like it, you had your one chance. We were promised a release by January 15th, and when that time came and went with no word it was pretty demoralizing to the whole art staff, and most didn’t want to continue work on a project which may never come to fruition.
Said programmer basically held the Alpha release for ransom, I’m not going to say much more on that particular subject but be rest assured that the whole story will be coming out soon enough. Frankly I’m just happy to finally see my hard work out there to the public, it’s just a shame it had to be sullied by certain people’s egos.
Cerulean Nights elaborated even further on Reddit in response to concerns about the code obfuscation being flagged as a virus:
The DRM technique employed is unfortunately the lesser of two evils that our programmer would settle for. Simply put, he is extremely paranoid and initially wanted to try to remove any capability to take screenshots or capture video as well. Insane I know.
Basically, he comes from Sonic Retro and is so set on showing the programmers there that he can outsmart any attempt at breaking his game like he did with the original games in, he’s lost site on what really matters in the grand scheme of things. He thinks he answers to no one, so it’s been a constant uphill battle to do things the proper way without his ego interfering.
While it’s a relief to hear that the most obnoxious flaws of the alpha release are the result of a single team member’s meddling rather than a deliberate effort on the part of the development team, it’s saddening that all of the incredible effort being put into this game by its talented art and music team are being hindered by the paranoid lunacy of a single programmer. Further posts by the development team have revealed that the programmer in question is indeed the lead programmer on the project, LOst; those who know of his history in the community are not likely to be surprised by this (for instance, he once attempted to charge members of the community for premium features in his art mappings editor, LOst Library). Considering the poor state of the game’s engine and the detrimental effects he has had on the game’s development, I would strongly advise the team to seek out a new lead programmer. I’m sure there’s a number of members of the community with the requisite technical knowledge and programming talent that would be eager to help move the project along.
In the meantime, maybe the Sonic 2 HD team’s abandonment of the Sonic Retro community – and the pretense of being a project of it – is only appropriate. It’s not representative of the Retro community in any way, and it shows. Some people are distraught by the news; Retro administrator David The Lurker claims that the independent future of Sonic 2 HD as told by Canned Karma contradicts what the development team has told the Sonic Retro staff for months.
Personally? I think it’s long overdue.