Anarchy Arcade aims to bring together several state-of-the-art open-source libraries to create a new version of the Source engine that is both slimmed down AND greatly enhanced.
Ultra Slimmed, Fast
In 2010, the Valve Corporation released an SDK for the Source engine that allows independent developers to create total conversion mods, which do not rely on content from other Valve games, to be distributed free to all – much like the popular Unreal Development Kit.
While this 2010 release of the Source engine code was far more general than any previous public version, the code still had a lot of fat geared towards standard first-person shoot ‘em up games. Thankfully the open-source coding project Source SDK – Skeleton strips all the extraneous features from the SDK and lets us start from a bare bones version of the engine.
Source SDK Skeleton (http://code.google.com/p/sourcesdk-skeleton)
The Source SDK Skeleton implements the Source Engine, and nothing more. It is the ideal cruft-free base from which to build your own new game.
With this as the launching pad, we are free to expand the engine in the direction best suited for AArcade. And Anarchy Arcade’s engine design is all about height – highly simplified, highly visual, highly dynamic, and highly interactive. From here, we move forward.
Ultraviolet, Infrared, and Everything In Between
The dynamic arcade cabinets really are the main characters of AArcade. They are what set the theme for each environment. They also reflect the user’s personality. Since these cabinets’ appearance are dynamically generated and their positions chosen by the user, properly lighting something as visually distinctive as an arcade cabinet becomes a primary concern.
To accomplish this, we turn to the state-of-the-art open-source library Swarm-Deferred to bring high quality dynamic lighting effects in high volume with amazing performance to AArcade.
By implementing this code base, we can create a wide range of stunning visual effects that can all be dynamically generated to best suit the media items they represent. The following video is the tech demo for the Swarm-Deferred open-source project and so demonstrates the range of effects available to us as front-end developers utilizing it:
AArcade takes the in-game computer terminal to a whole new level. Each cabinet screen is a fully interactive virtual interface with web-enabled features including Flash technologies. The user can take control of the mouse & interact with the cabinet’s screen directly to change settings, watch videos, or simply browse the web. This is accomplished by integrating a fantastic code library based on Chromium/WebKit called Awesomium. Using this library we are able to render our dynamically generated HTML5 content directly onto the cabinet screens at variable resolutions.
Windowless Rendering – Render web-pages to any graphics surface, 3D texture, or otherwise. Perfect for use in games, multi-touch simulations, and more.
Mutli-Process – Uses a multi-process architecture for crash isolation, security sandboxing, and premium load-balancing across multiple CPU cores.
With Awesomium to bridge the gap between our dynamically generated 2D presentations and the 3D world, we can provide a consistent experience that takes place completely in the virtual world.
Other technologies such as LibCurl and TinyXML are also utilized, but are the subject of more technical articles.
State of the Engine
At its current state, our own modified build of the Source engine is composed of the Source SDK Skeleton with the Swarm-Deferred rendering system implemented. The rest of the tech has been tested in previous prototypes and we are ready to move forward with the rest of the design.