By Karen Marcus
Robocraft* is an online Games as a Service that requires player involvement to build aspects of the game content. Specifically, players build robots that act as the primary agents in the game. Because players are called upon to co-create the game—and because many of them are as young as 10-years old and play Robocraft on older technology—user focus has been at the heart of the creative process for developer Freejam. Key programming and design decisions made early in the development process were based on the desire to build loyalty with users and encourage access for as many of them as possible while at the same time giving them a game that looks good and is fun to play. These decisions raised challenges for the developer, but, two years into the process, Freejam has reached its goals of a loyal user following and a great-looking, fun game.
Robocraft is an online third-person shooter (TPS) game first introduced by Freejam in 2013. Gameplay involves players using individual blocks to build robots that can then fight each other. Players can form teams, and the object of the game is to destroy as many opponent robots as possible and/or capture the enemy base.
Figure 1: Example of unique robot - plane
As with similar building games, user content generation is extremely important. Sebastiano Mandalà, cofounder and chief technology officer at Freejam, explains: “When we started, we knew the game was going to be creative, and we ended up having 300 different cubes players can use to create a unique robot that can both look beautiful and be deadly in battle.” Figures 1 and 2 show examples of unique robots.
Figure 2: Example of unique robot - ship
To ensure this level of user content generation, the original Robocraft team of five had to decide which technology would affordably enable them to do the programming. The team selected Unity*. Mandalà notes, “We don’t have an in-house engine, which means we haven’t developed platform-specific code. We just used what comes out of the box from Unity [Technologies], which is compatible with many platforms.”
Unity fit the criteria; however, the team faced challenges in implementing programming specifics. “For example,” says Mandalà, “all those cubes rendered on the screen were very difficult for most graphics cards, because thousands of cubes were specifically enabled. Eventually, we had to work out some tricks to batch the graphics and collider for the physics to make it run smoothly, especially on low-end machines.”
In addition to user generation, this consideration for low-end player technology has been important. Mandalà comments, “With Robocraft, we were targeting kids between 10 and 14 years of age as well as older teens and adults. But kids don’t usually have very powerful computers, so we were forced to design the game to work with older technology.”
To develop a loyal base, Freejam wanted to make Robocraft accessible to a wide range of players on a variety of computing systems. Initial programming involved targeting older graphics cards as well as newer ones, including both integrated and nonintegrated cards. The team currently uses Unity 4 and Microsoft DirectX* 9 to program the game.
Mandalà notes, “We know that programming for more recent machines is ‘cooler,’ and we might target them later, once we have the lower-end aspects fully under control. For example, we’ll be able to define in more detail things like shading and soft shadows, so the game looks better. That would involve switching to Unity 5 and creating a special version for DirectX 11 or 12. We would be improving an already good game for faster machines. It’s an ongoing process, and that’s part of our plan for the future.” Currently, Robocraft adapts to each player’s computing resources, detecting system specifications such as CPU and GPU fill rate and running accordingly.
Additional challenges came with the graphic design. Mandalà explains: “Because players build the robots, each robot has a unique shape and form. Initially, with Unity 4, we rendered each cube separately and assigned it its own collider, but both the rendering and the physics engines didn’t perform well on many machines. With thousands of primitives, Unity 4 performance was just not enough, so we had to re-design the code in order to be able to handle our scenario. Being able to modify the shape of the robots during combat was another challenge. With our new algorithms, the draw call count was drastically reduced, while the colliders were clustered and simplified. Finally, we incorporated those optimizations in the design process before the game went live.” Figure 3 shows the changing shape of a robot being destroyed during combat.
Figure 3: Robot being destroyed
To optimize the game for PCs that have embedded GPUs using DirectX, the team minimized the number of draw calls, batching all the cubes that form one robot into one draw call where possible. Fill-rate optimization is crucial for integrated cards, and, to optimize it, the team implemented an algorithm to dynamically skip the rendering of the faces of the cubes occluded by other cubes. Finally, the game takes advantage of the Unity LoD system to reduce the number of draw calls and polygons of the dynamic parts of a robot that are far from the camera.
Screen resolution posed a few problems. Mandalà says, “Screen resolution is linked to fill rate. Recent powerful graphics cards can handle high resolutions without problems, while legacy cards are heavily affected. To solve this problem, we implemented multiple graphic resolution settings, from ‘fastest’ to ‘fantastic’ and a few in between. Special optimizations are in place in the lightest modes, while more graphic details are enabled in the heaviest modes for more recent graphics cards.” Figure 4 shows the game in fast mode. Forward rendering and shadows are enabled. Deferred shading and relative post process effects are available in the highest settings.
Figure 4: Optimized screen resolution
Mandalà notes: “Thanks to Unity 5 and the awesome optimizations implemented in the new engine, we are already planning to add more features that could make the game more realistic, with respect to both physics and graphics.”
To ensure that the game runs smoothly on Intel® architecture, the Freejam team runs Robocraft on Unity middleware, which, observes Mandalà, is a great engine for Intel® platforms. “However,” he adds, “we introduced a number of custom optimizations in the game to improve performance on Intel platforms and we’ve been optimizing for 32-bit and 64-bit systems as well. In the near future, we’ll be focusing more on exploiting Intel® multicore technology for our players who have higher-end PCs.”
The team also uses many Intel tools, especially for analysis and quality assurance (QA). “Intel® Graphics Performance Analyzers [Intel® GPA] in particular,” says Mandalà, “have been essential in helping us optimize performance. Performance is crucial for us, as we have discovered that there is a strong correlation between frame rate and player retention. We have used Intel GPA to diagnose bottlenecks and optimize the game to increase the frame rate and, therefore, retention.”
Tools like Intel GPA inform the team how best to optimize the rendering code, but Robocraft is CPU bound instead of GPU bound. Mandalà notes, “We optimize on the CPU while respecting what’s going on with the GPU.” He adds, “Intel support has always been first class! The tools are great, especially Intel GPA, although my ultimate wish would be to use VTune with Unity.”
Testing and Post-Development
The team tests the game through an internal QA process that consists of many iterations before an expansion goes live. The process includes an extensive test bed of Intel PCs, from those with Intel® Core™ Duo processors to those with Intel® Core™ i7 processors.
The Games as a Service nature of Robocraft allows the team to test some features in a closed user environment, gathering feedback from the community. Community feedback is monitored at all times, as it is an essential part of the development processes.
Freejam is an indie developer that self-publishes Robocraft. Mandalà says, “We’re making good progress growing the community as we evolve the game. Our market success is surely also due to our partnerships with Intel, the Steam* entertainment platform, and others we’ve worked with to reach millions of players worldwide.”
The team has plans to improve the game, including adding new game modes, creativity options, community and social facilities, and other elements. Virtual reality is also on the radar for exploration. Mandalà notes, “We’ll continue to rely on Intel’s platforms, support, and tools for the ongoing development, testing, and optimization and to keep the game in line with advances in CPU and GPU technology. The more processing power we have, the better the game performs and the better our ‘fantastic’ setting is. In the future, for example, we will make the game less CPU bound to improve the speed and graphics even further by using the Intel multicore architecture with multithreaded code.”
Freejam has also been discussing with Intel how to work together to raise awareness for both brands and products within their respective communities.
The Robocraft user community has always been a key driver for Freejam. Mandalà remarks, “We always believed in the game, and our gut feeling was that it was going to be good. It’s been rewarding to get confirmation from our passionate community that they love the game. We communicate directly with them a lot—daily, in fact. Sometimes they hate us, and sometimes they love us. It can be exhausting to try and keep up with them, but also euphoric.”
Mandalà says the user community interaction is what drives the pace of game updates. “We have all these great ideas, and we share and discuss our theories with the community. That’s why we’re growing so fast.” The pace of technology plays a part in update speed, as well. Mandalà states, “The quicker higher-performance hardware goes down in price, the faster we can enable our community to play Robocraft with better graphics, because the new architecture supports higher quality settings for the game.”
The growth of the game has meant growth for Freejam. Starting with a team of five, the company has expanded to about 50 staff members in just two years. Mandalà says the scale-up has been necessary because of the number of features the team wants to implement, but the transition has been challenging. “It’s a good challenge. We’ve been forced to impose more structure on ourselves, which has been positive. We’ve also needed to ramp up our marketing efforts and invest more resources in that.”
All that growth has resulted in a solid game with a loyal following. The Freejam team has noticed that since Freejam released Robocraft, several games have come out with a similar concept. Mandalà notes that the game will continue to improve and hopefully add to its following: “As Robocraft is an online service, development is ongoing. We’ve been developing for more than two years now, but we’ve still got plenty to do. We’re not done yet!”
Mandalà advises developers looking to create similar online Games as a Service projects to expect a long, challenging journey. He says, “Expect to continue developing new content on an ongoing basis, improving features, encouraging a healthy community feedback loop, and engaging in partnerships with key platforms and technology. Keep analyzing the game and player behaviors, test ideas, and enhance or improve the service with minimal viable product iterations. Boost winning ideas, and rethink or remove the ones that don’t work as well. Finally, expect the unexpected, get as much data as you can, and fuse those data with creativity and intuition to drive the vision of the game you and your community are building.”
The Freejam team welcomes contact from other developers and is happy to discuss projects over coffee or Skype*. Mandalà can be reached via his Twitter account @sebify.
Using Unity and DirectX, and working in conjunction with Intel, Freejam created an online game—Robocraft—that appeals to players of all ages and works well across a wide range of computing technology. A focus on usability prompted the development team to make different decisions than they might have made if the focus were on appearance. For example, the game was designed to work with older technology and adapt to each player’s computing resources. Optimizations were performed to ensure that these older systems could handle the graphics. Robocraft is a work in progress, and Freejam anticipates many exciting future updates.
Freejam was founded in Portsmouth, United Kingdom, by five guys who had a solid belief in one simple game idea, Robocraft. They pooled their combined 52 years of traditional development experience and threw it out the window. With a great idea and new lean start-up philosophy, they’re free to innovate.
The development team was assembled to prove that truly amazing games can be created through experimentation and evolution. The five team members are skilled and organized professional game developers who have embraced the indie way. The company is small, so it can react fast, listen to its players, make quick decisions, try new stuff, and sculpt the game efficiently. In the same unrestrained way that musicians write songs, from a simple jam session with a few chords, the Freejam team has created a game that has grown into a masterpiece.
The developers’ approach relies on open and transparent interaction with their gamers, with the understanding that they can’t improve their game without input from everyone. They don’t know where Robocraft will end up, but that’s all part of the fun.