This article is in the Product Reviews category of Article section for our sponsors at DotNetFunda. These reviews are intended to provide you with information on products and services that we consider useful and of value to developers.
Game development took place over just six weeks as part of the Intel® Ultimate Coder: Ultrabook™ Challenge. A large part of this development was focused on multiplatform programming, determining the best use of hardware features, and ramping up visual effects based on the power of Ultrabook.
This case study describes the development opportunities and decisions the Soma Games team made as they designed Wind Up Football for Windows 8 and optimized it for Ultrabook. Key opportunities included:
- Creating a new game with existing characters and elements
- Developing with Unity* 3D
- Crafting graphic elements to make the best use of Ultrabook capabilities
- Using new technologies to include fun contextual elements
- Adjusting the user interface (UI) to take advantage of a larger screen size
- Committing to a touch-only interface
Soma Games and its sister brand, Code Monkeys, create games within a wide range of genres on PC, online, and mobile platforms. Games include G:Into the Rain, which was awarded the Best iPhone Game Award at the Christian Game Developers Conference in 2009, and the upcoming F:The Storm Riders. These games are the first two installments in a planned series called Arc. The team’s other games include Bok Choy Boy, Santa’s Giftship, Wind Up Robots, and Wind Up Football.
Wind Up Football (see Figure 1) is a spin-off of a game Soma Games put out last year, Wind Up Robots. The story line for Wind Up Robots involved six-inch robots that protect a sleeping boy from monsters climbing up from under his bed. Chris Skaggs, CCO and CTO of Soma Games, says, "When we found out about the Intel® Ultimate Coder: Ultrabook™ Challenge, we thought we’d use those same characters, because we could repurpose some models without having to go back and create a whole new asset workup." Wind Up Football mixes football and keep-away themes and, according to Skaggs, plays with the question, "What would the Wind Up Robots do on a day off?" The answer: "They get together on a football field in the backyard, and they just run into each other. It’s part demolition derby, part keep-away, and it’s all just about mash and smash and things flying."
Figure 1. Wind Up Football start screen
Choosing the Right Development Tool: Unity 3D
Critical to the development process was the use of the right programming tool. The Soma Games development team had been using Unity since 2010. Skaggs describes the team’s initial impression of the tool: "It was an up-and-coming game-development engine primarily for mobile. It was easy to pick up and inexpensive. Over the years, it has become more robust and more feature rich; we are huge fans."
For Wind Up Football, the team was able to build the game once, and then, with simple plug-ins, port it to Mac OS* X, PC, Apple iPhone*, Apple iPad*, and Google Android*. Skaggs says, "You can do it basically all at once, with only minimal changes to the UI. The main reason we use it is for this cross-platform piece."
Skaggs explains that Unity allowed the team to create "feature layers." The game has certain features that can be turned on or off, depending on the platform. For example, "The Ultrabook has a lot more graphic horsepower than an iPad. Graphic-rich features, like the particle, smoke, and seasonal effects; the light sensor; or a larger number of creatures on the playing field all respond to what happens on the Ultrabook. So, when we flip the switch that says, ‘Export to Ultrabook,’ those features stay on, but when we export to iPad, they turn off. So, we are able to have a single game in which we organize features according to what’s available on the hardware."
Another consideration for being able to easily customize for specific platforms is how the game is monetized. Skaggs explains the team’s approach: "How you sell an in-app purchase can be widely different between Apple and Android. We broke the project up knowing what pieces were going to work in which environment, so we could standardize the main piece and only swap out little pieces for the individual hardware."
Skaggs adds, "Unity did much of what we needed all in one program and gave us all the benefits for Wind Up Football that it gave us for other projects we’ve done in 3D." Other development tools included Autodesk Maya* and Adobe Photoshop*, which are used for comps and textures that then go into the engine, and C# as the scripting environment.
Development Process for Windows 8
Soma Games deliberately tries to be platform agnostic. Skaggs explains: "The more eyeballs I get on my app, the more likely I am to find my core audience. Windows 8 obviously is going to have a bunch of people looking at it. Ultrabook is a big push. It’s friendly to the code that we already have. So if I have to buy one more particular plug-in so that I can export to Windows 8, it’s a no-brainer."
Windows 8 Desktop vs. Windows 8 Store Apps
The team had the choice of developing Windows Desktop or Windows Store apps and chose Windows Desktop because it was the platform the Unity engine supported at the time. Skaggs says, "Unity didn’t have a Windows 8 Store export tool. At that moment, it was still in development, so we couldn’t do Windows RT if we wanted. Unity just didn’t support it." He adds that if the option had been available, the team might have selected Windows Store because it is a newer platform.
Windows 8 Hardware Support
Aside from taking into account screen size and screen resolution, the team had to make very few changes to their process to design for Windows 8 Desktop. "The bigger challenge," says Skaggs, "was the hardware." In particular, a multitouch screen is key to a game like Wind Up Football, which has no keyboard and mouse equivalent. Skaggs says, "Windows supports touch and has for a long time, so it supports the game. As long as the hardware has a touchscreen, we’re good to go with Windows."
Still, says Skaggs, "Multitouch is pretty new, so it’s hard to know exactly which part of it is Windows and which part of it is Unity. As a relatively new platform that’s supporting multitouch, I don’t think all the kinks have been worked out in the various pieces of the software."
For example, the team had difficulty handling double-tap events. Skaggs explains: "As far as we could tell, Unity was understanding double-tap events through sort of an Apple iOS*-similar framework, but Windows was reporting it back as a mouse click. So we had weirdness going on with that, and it caused us some significant trouble. The funny thing is, the way it happened, we could not fix the darn thing to save our lives, and the deadline was coming up. It was a big blocking feature, but we just couldn’t solve it. Then, Windows 8 had an update, and when we installed it, all of a sudden the problem went away." Skaggs is confident the team would have found a workaround if the problem had not been resolved.
He notes that Unity treats many components differently between iOS and Windows: "Unity is designed to be multiplatform. It’s the same proposition with any of these multiplatform engines, like Corona. We happen to like Unity, but there are others out there that do the same thing." Skaggs emphasizes that in the current development world, being a multiplatform programmer is key, as opposed to being a Windows, Mac, or iOS developer.
Unity did help to genericize features, but Skaggs notes that it didn’t handle the Ultrabook light sensor, which changes the game play depending on light conditions. The team had to figure out how to specifically access the light sensor. They also used a C# script to plug into Unity for the scripting environment.
Development Process for Ultrabook
The Soma Games team included several optimizations for Ultrabook. First, they enhanced what Skaggs calls eye candy, such as lighting and particle effects, and season-related effects such as blowing leaves and falling snow. The art assets for these effects are made by hand, then used to create the effects in Unity. Skaggs notes they were able to do this because "The Ultrabook had a lot of headroom in terms of processor, both graphically and in the core processor."
As the team worked with the Ultrabook, they realized the greater flexibility that comes with more power, compared with the mobile devices they had been programming for over the past few years. Skaggs says, "This is one of the first times in a long time that we’ve programmed for more powerful units. In the mobile space, you learn to work pretty lean in terms of memory and processor speed. So this was exciting to have a lot of extra horsepower to play with." The additional power allowed the team to add new features, characters, and graphics and encouraged them to think about the possibility of returning to a PC market.
Through the development process, the team learned more about the potential of Ultrabook. The Soma Ultimate Coder blog explains one component of this potential: "[We wanted Wind Up Football] to be more aware of what’s going on around the user and adapt to [his or her] situation. A simple example of this would be to use the Ultrabook light sensor, clock, and GPS to track things like ambient light and what weather.com reports as the local weather, then alter the game’s environment to match. It’s dark outside? Crank up the field lights and add the fireflies. Daytime? Turn the stadium light off and add sharp daytime shadows. Rain? Snow? Heat wave? Any or all of those things could be reflected in the game’s environment."1
Development of the contextual computing components, such as weather-related graphics (see Figure 2), evolved throughout the process. Skaggs explains: "The nature of the contest was to try to see what application is best suited for Ultrabook. We didn’t want to just throw features in there for the sake of the contest. So that led into some larger conversations about what was the goal of the Ultrabook platform. One of the answers to that question was the concept of portability and awareness of user location. So making the game aware, at least to some level, of its surroundings and its context felt like a really big move in that direction. It didn’t require a whole lot of extra work; it just required some different thinking."
Figure 2. Wind Up Football with leaves (two-player view)
At the conclusion of the Intel® Ultimate Coder: Ultrabook™ Challenge, the use of contextual computing was impressive enough to catch the attention of the judges: "Wind Up Football has done a good job of making their game show off the graphics prowess of the Ultrabook. They have also made the app take advantage of the Ultrabook sensors in an especially unique way—with contextual computing. They have managed to accomplish this by coding the game so that it is aware of the time of day and time of year, and in turn the game’s environment responds to that awareness with appropriate weather effects and lighting."2
Another change from previous game designs was to the UI, which was altered to match the screen resolution and aspect ratio of Ultrabook. Skaggs says this involved creating a few different graphics, but it was a "relatively easy change to make."
Another proposed feature that didn’t make it into the final design was the development of a new way of displaying helpful information during the game. The Soma Games blog states, "The plan basically replaces the hover tool all of us are familiar with as mouse users. [The control is] a simple question mark that when touched and held down will pause the game and darken the entire screen except for the item it is over. For example, during game play, you will hold down the question mark icon and drag it to a robot. While it is over the robot, all other parts of the game will remain darkened except that robot. A callout area will appear showing details about the robot as well as other tutorial text and instructions."3
However, notes Skaggs, "This feature never made the final build. We worked with the concept, but what sounded interesting on paper turned out to be clunky and confusing in practice."
Through the development of Wind Up Football for Ultrabook, the team improved the game. Skaggs explains this was especially true for graphics: "We were able to maximize some of the effects, like lighting, shadows, and particles, which add so much more fun and richness and polish to the user experience. We could also do dynamic shadows and changing lighting conditions to a much higher degree because of the increased processing power. These types of effects make the game look prettier, sharper, crisper, and cleaner. The quality of the sound effects was also improved."
Because Unity 3D is multithreaded (running a thread for each hardware core), it takes advantage of all the CPUs. This works, because Unity performs task-based work for some of its systems, like physics and particles. Several additional systems run on separate threads (such as audio, rendering, and decompression).
One optimization the team wasn’t able to implement was a multiplayer function. Skaggs says, "The Ultrabook doesn’t support as many touches as the iPad, which means we couldn’t do multiplayer on the Ultrabook the way we wanted to." The team does intend to incorporate multiplayer functionality when it is supported on Ultrabook. Skaggs notes that the plan is to give players an option of head-to-head play for Ultrabook models that don’t lie completely flat or side-to-side play for those that do.
Another potential Ultrabook component the team decided not to use was the keyboard. Skaggs explains, "We had a discussion about whether or not keyboard support made sense in our game, and in the final analysis, we decided that it didn’t. The biggest reason it doesn’t work for a keyboard is that players are required to drive three different robots simultaneously, and they all move in different directions independently. On top of that, there are things like special attacks. Trying to map all of that to a keyboard would require a deeply complicated keyboard layout. There would need to be three sets of ASDF keys plus extra sets for attacks. So, we realized that the nature of the game was very deliberately touch, and the keyboard didn’t actually add anything. We could have shoehorned something in there so that you could use the keyboard to do something. Instead, we set out to make a game that made the most of the touch aspect of the Ultrabook."
However, the team is not necessarily opposed to using a keyboard in their design. Skaggs notes, "We have another game that will be put out on Ultrabook shortly that is the opposite. The game certainly works well as a touch device, and that was its home platform, but it makes a lot more sense to act on a keyboard too. It has a much more limited set of controls, so a two-handed keyboard layout works. The controls are just simpler. This game is an orbital shooter. Using the keyboard to change elevation or move the target makes perfect sense. We will change keyboard use for each game on a case-by-case basis, depending on the game’s nature."
One learning experience in the development process the team had experienced before: observing how users actually use the program. Skaggs explains, "One of the things we like to do as early as possible is take the prototype out to a college campus up the street from us and just put it out to people and see what they do. It’s always very informative because people will use your game in ways you didn’t expect, and you want to see what their natural tendencies are. Do they want to hold it in their lap? If they expect to fold it open, are they using the keyboard? You look for what they are trying to do and whether or not you are accommodating it."
One specific example was that users wanted to drag objects from the status bar onto the field. Skaggs reports, "That had never occurred to us. Several people tried to do this, and the game didn’t support it. So, we knew it would be a good place to add functionality. We also found that with a tablet, people are typically holding it in their hands and using their thumbs on the sides like joysticks." Wind Up Football has a selection for people who want to play that way. People can play using a one-handed or two-handed approach (see Figure 3).
Figure 3. Wind Up Football with touch navigation
Benefits of Ultrabook
The team found several useful benefits in developing for Ultrabook.
When Wind Up Football was initially designed, the game operated at a low frame-per-second (FPS) rate. The capabilities of Ultrabook allowed the team to tweak the program to take advantage of texturing, shadow effects, and other effects, resulting in a more interesting game while maintaining a reasonable frame rate. Skaggs says, "FPS is a major metric we use. We’re aiming for about 60 FPS. We can live with 40 to 45, but 60 is what we’re aiming for. We were able to run the full game at about 100 FPS on Ultrabook in tests. The final game throttles to 60, so we still have room to expand."
One example of something the team could include as a result of the higher Ultrabook FPS rate that they couldn’t include in the iPad version is stadium lights over the field. These lights provide fixed bright light sources within the game. Skaggs says, "On the iPad, the characters have just a blob shadow that follows them around on the ground. But with Ultrabook, we can use real shadows from all of those real lighting sources. So you get this cool thing where here’s the robot standing in the middle of the field. He’s casting a shadow in each of four directions. The shadows intensify or dull out, depending on if he moves forward or away from each light source. It’s a little thing, but it adds a lot of richness. Toward the end of a single-player game, you can have 30 characters on the field, and each one is casting six shadows. But Ultrabook seems to handle it just fine."
Power and Flexibility
The team was impressed with the operation of Ultrabook and also the possibilities it opened for development. Skaggs notes, "If you think in terms of traditional mobile, you get high mobility but less robust hardware. With Ultrabook, you get a nice, robust piece of hardware that is still also mobile.
"We can use that combination of capabilities to do some pretty fun stuff. For example, we talk a lot about GPSs and how can we make some fun games and techniques that use that. And as that functionality rolls out in Ultrabook and browser support is there, we can start to roll out any number of game ideas that are pretty cutting edge and different from what is out there now.
"This technology could be used for business, such as using GPS to handle perishable inventory or implementing geosensing. For example, say I’ve got a movie starting in 15 minutes, but half the movie theater is empty. As the theater owner or manager, I could broadcast to everyone within a certain radius, ‘Hey, this movie starts in 15 minutes. If you come down, you get half off.’ Other examples include geocaching or managing emergency response. Those kinds of things are a really neat way that the flexibility and the mobility of these hardware platforms allow for things that have never been done before."
Ultimate Coder Challenge Experience
The Intel® Ultimate Coder: Ultrabook™ Challenge gave the team an opportunity to expand to a new platform. Skaggs says, "Having one more platform we can launch on just makes good sense. We get more eyeballs, more distribution, and Ultrabook offers a cool new space. We think Ultrabook is likely to reach a wider gaming audience than, say, netbook, which we had developed some apps for as well."
Skaggs notes that the contest pushed the team in what they could accomplish: "It presented new technical challenges. It taught us some new tricks, and it re-exposed us to the PC world. We had not been thinking about PCs at all, and it got us excited about that space again. That was a big deal."
For details on the Intel® Ultimate Coder: Ultrabook™ Challenge, visit http://software.intel.com/sites/campaigns/ultimatecoder.
Soma Games recently participated in the Intel® Ultimate Coder: Ultrabook™ Challenge by creating a new game, Wind Up Football. One key to a successful development process was the use of Unity 3D, which the team chose as their programming tool and that enabled them to build cross-platform functionality into the game. The decision to port to Windows Desktop rather than Windows Store was made by the capabilities of Unity 3D at the time development took place. Ultrabook optimizations included graphics and performance upgrades and an updated UI. In the Ultrabook upgrade, the team was able to maintain a high level of graphic operation while keeping the frame rate at an acceptable level, enabling a deeper level of graphic complexity that enhanced the game.
1"Ultimate Coder: Ultrabook Challenge Week 5: Post IDF Thoughts," Som(a)niloquy. September 2012.
2Stone, H. "Intel’s Ultimate Coder Challenge: Week 7," Chip Chick blog. October 3, 2012.
3"Ultimate Coder: Ultrabook Challenge Week 4 All About Touch," Som(a)niloquy. September 2012.
About the author
Karen Marcus, M.A., is a technology marketing writer with 15 years of experience. She has written case studies, brochures, data sheets, solution briefs, success stories, articles, and website copy for such well-known companies as HP*, Samsung*, IBM*, Microsoft, Amazon Web Services*, Intel, and EMC*. Karen is familiar with a wide variety of current technologies and concepts, including cloud computing, enterprise computing, video displays, operating systems, and personal computing. In addition to technology copywriting, Karen has experience with grant writing, content marketing, interpretive writing, and book editing. In all her work, Karen is known for thorough interviewing and research, exceptional language ability, and responsive service.
Intel, the Intel logo, and Ultrabook are trademarks of Intel Corporation in the US and/or other countries.
Copyright © 2012 Intel Corporation. All rights reserved.
*Other names and brands may be claimed as the property of others.