Case Study: NOMAD Apps Leverages Windows* 8 and the Intel® All-in-One Platform to Enhance the AWEsum! Experience

Educational game developer NOMAD Apps recently developed a new version of its math learning app, AWEsum!*, to take advantage of the features available with Intel® All-in-One (AIO) devices that run Windows* 8. The AIO devices consist of an 18- to 27-inch monitor with a motherboard behind the screen. They are powerful, portable, and allow users to do everything they would do with a PC. An AIO device can stand up like a PC monitor or lie flat on a table, so more than one user can interact with it at a time.

The new app version, called AWEsum Friendzy, is the third game in the  AWEsum! franchise. The original AWEsum! was launched in 2011, and AWEsum Plus—a version that incorporated input from teachers and parents—was launched in 2012. As the first two versions of the game were well received by educators, Intel asked NOMAD to create a third version to take advantage of the enhanced capabilities of AIO devices.

Key opportunities for this project included:

  • Developing a multiplayer version of a single-player game;
  • Developing for a larger screen and for various resolutions;
  • Taking advantage of faster download speeds and more storage space on AIO devices;
  • Taking advantage of the multiple form factors possible with AIO devices;
  • Choosing the right development tools;
  • Developing in Windows for the first time and for both Windows Store and Windows desktop;
  • Working around compatibility issues between Windows 8 and Unity* 3D; and
  • Enabling test users without access to Windows 8 to test the app.

The Product: AWEsum Friendzy

The game play for all three AWEsum! games involves combining falling numbered blocks with stationary numbered blocks pairwise to add up to a specified sum. For example, if the target sum is 14, players try to form combinations of 7+7, 9+5 or 8+6. When the target sum is achieved, the two blocks that combined to form that sum disappear. The falling and stationary blocks somewhat resemble those in the game Tetris; as with Tetris, the object is not to allow the stacks of stationary blocks to reach the top of the screen.

Though AWEsum! appeals to casual gamers of all ages, the game’s educational objectives target children under 12 years of age, and AWEsum Plus incorporates customizations for younger children. For example, in AWEsum Plus, players control the rate at which the blocks fall, and there are no high scores per se. Instead, players compete only against themselves.

AWEsum Friendzy (see Figure 1) is a multiplayer version of the original AWEsum! game. Mike Reiners, co-founder of NOMAD Apps, comments, “When Intel indicated interest in a multiplayer version that would involve live social interaction among players, we were excited. This is the ideal play scenario for a game like AWEsum! and suggested multiplayer uses among family members at home or peers, friends, and small groups of students in a school setting.”

Figure 1. AWEsum Friendzy start screen

AWEsum! received several awards right after coming out in 2011. AWEsum! and AWEsum Plus have also been recognized in 2012 and 2013. Among others, the games have received Best App Ever awards, presented by Pocket Gamer, which are based on fan favorites.

AWEsum Plus has also been entered in the New York City Department of Education’s Gap App Challenge, which is New York City Public Schools’ attempt to fill the achievement gap that they were experiencing, particularly with middle-grade students. Reiners says, “They were looking for either middle-grade content apps or apps that would help to provide some remediation and some engaging experiences mathematically for middle-grade kids in some of the more tech-forward schools in the New York City district.”

Development Process for Windows 8

AWEsum Friendzy is the first version of the game to be developed for Windows. Though some of the code from the first two versions could be reused, Reiners says, “We had to essentially rebuild the engine from the ground up. For example, we really didn’t need to redesign the entire scoring algorithm, and we didn’t need to redesign a lot of the rules that dictate the back end of game play—what happens when. Basically, we were working off the same original design document, and then expanding that for a multiplayer format with AWEsum Friendzy.”

Reiners adds, “When we built AWEsum Friendzy, it required that we redesign the single-player game first, because ultimately, when two players are playing AWEsum Friendzy, they’re playing two linked interactive game instances [see Figure 2]. Each of them has his or her own board, so to speak, but in many cases it doesn’t feel like that. For example, when you’re playing AWEsum Friendzy cooperatively, your game boards are back to back or bottom to bottom, so it feels like you’re playing against a singular cube mass. But really, on the back end of the code, what’s happening is that you have a couple of game instances that need to interact with each other on a regular basis. Each person is controlling what’s happening on his or her half of the screen, and then you can just have certain allowable interactions between the boards.”

Figure 2. AWEsum Friendzy competitive play

One reason the team was able to keep many elements was the development environment in which they originally built AWEsum!, Unity 3D. Despite its name, Unity 3D can be used for non-3D applications. Reiners says, “Unity is flexible, because it’s a multidistributional environment. Effectively, you write one code base, and then you have a fair amount of flexibility in being able to compile and distribute for a number of different platforms.”

For example, with the original AWEsum!, the team wrote little native code, were able to distribute AWEsum! for Apple products, and a week later have a build completed for Google* Android*. A couple of weeks after that, they had a build ready for the Amazon* App Store. Shortly thereafter, they built for the Barnes and Noble* Nook* store.

“Granted,” says Reiners, “these are all Android platforms, but you’re also talking about hardware-specific Android platforms with Amazon Kindle* and Nook products and so on. So it’s flexible, and that allowed us to easily move into the Windows 8 space and develop for that platform. There were some challenges, but it would have been a huge task, for example, if we had had just native Apple* iOS* code or native Android code, and all of a sudden Intel comes and says, ‘Can you build this for Windows 8?’ That would have been a wholesale rebuild. You’d be talking about two entirely different code bases at that point, which would become difficult to support.”

Windows Desktop and Windows Store

Because the team wanted design flexibility, they chose to develop AWEsum Friendzy as both a Desktop Mode app and a Modern app in Windows Store. One factor that went into this decision was that Unity support for Windows Store distributions is still in a late beta stage. Reiners says, “We were up front with Intel about the potential challenges this would create for the release of a Windows Store app in that we are completely dependent on Unity’s release schedule. Intel has been flexible and understanding of this matter throughout our development process.”

Distributing both Desktop Mode and Windows 8 Modern versions of the app has allowed NOMAD to overcome hurdles and obstacles in the development process. For example, building a Desktop Mode app using Windows Installer has allowed the team to deliver builds to Intel and some of Intel’s original equipment manufacturer (OEM) partners, even when they were not close to having the Windows Store app ready. Reiners observes, “Having a Desktop Mode app allowed us to create relatively stable builds that we could send out for testing.”

Unity 3D

In developing with Unity 3D, the team encountered a couple of issues that were influential in their process. First, early on, no Windows 8 touch support was built into Unity 3D. Reiners comments, “Of course, we were developing for a rather robust touchscreen product for a 10-point multitouch desktop platform, so we needed to figure out how to get around this issue. It wasn’t like we could call Unity and say, ‘Hey, can you enable Windows 8 touch tomorrow?’ They’re obviously working on it, and there are a lot of kinks that they have to work out.”

The team solved the problem by writing their own Microsoft-based Windows 8 touch DLLs, which worked well with Unity 3D. Development of these DLLs took around 100 hours, including extensive testing. “But,” says Reiners, “it was essential, because without that, we didn’t have any ability to test touch control for our game, which is kind of important.”

When they launch the Windows Store version of the app, the team will have to create a Windows Installer package to incorporate the functionality built into the Windows 8 architecture. In addition, says Reiners, “Each time we develop one of these builds for Intel or an OEM, we have to compile within Unity, get the executable out of Unity, and then build an Installer package around it. We have built time into the front end for that.”

Another development issue was that many test users didn’t have Windows 8 touch devices. So, the team sent a build that these testers could open in Windows 7. Reiners says, “Desktop Mode builds are compatible with both systems, because they’re functionally just Windows 7 programs. So we were able to send those out and not be held up on the translation and localization side by having a Windows Store build that only 20 percent of the test users could test for us.”

As of early June 2013, the team was tying up Windows 8 loose ends and waiting for resolution of compatibility issues between Unity 3D and Windows 8.

Design Implications

The team focused on optimizing the AWEsum Friendzy design to take advantage of the Windows 8–supported AIO platform.

Snap View and Fill View

One specific design element that the team has created within Unity is Snap View and Fill View. This development requires a lot of camera work within Unity. Reiners notes, “Unity is very much camera-controlled as a 3D environment, so there are a lot of camera scripts and camera resizing algorithms that we’ve had to design for when screen resolution changes.”

Reiners adds, “Every device for which we’ve been asked to develop by Intel or by the various OEM partners have used a 16:9 aspect ratio, so they are 1600:900 devices, but when you go into Fill View especially, you might be in 1024:768. You might be in a 4:3 environment. You might be in a 16:10 environment. And most users won’t go in and change their own resolution. That has forced us to write some camera scripting and do some design work to figure out in Snap View and Fill View, ‘Is our game still playable? Do we want it to still be playable? Do we want to have a playable game sitting there?’”

The team decided that in Fill View, they did want the game to remain playable under these circumstances. Reiners explains: “In Snap View, it doesn’t make a lot of sense, because AWEsum Friendzy is almost exclusively played from a landscape format, even if you’re on a tabletop. The users are facing it in a landscape orientation. So we’re not exactly going to ask them to turn to the side or step to a different side of the device just to play a really small version of the game. So, in Snap View, we’ve had to do some design to figure out what information we want to display there and how we can make it nonintrusive to the user.”

Figure 3. Fill View, AWEsum Friendzy Main Menu

Figure 4. Fill View, AWEsum Friendzy game play

Snap View displays information that attracts players to the game and gives them a bit of information about what was going on during play. If users step away from their device for an hour or use it for another purpose, they still realize what’s going on in AWEsum Friendzy and what they’re going back to when they expand to Fill View again. Specifically, says Reiners, “When a game finishes in AWEsum Friendzy, users are brought to a game summary screen, which gives them a bunch of statistics, how they did against each other if they were playing competitively, or how they did together as a team if they were playing cooperatively. Essentially, what we’re doing is modifying our game summary screen to say, ‘Hey, this is going to be paused for now, because you’re interested in doing something else as a primary action, so we’re just going to keep you updated here as to where you are in your game without you having to go into the app again to find out what’s going on.’”

Reiners adds, “When users get out of Snap View and decide that they want to give full attention to AWEsum Friendzy again, the game will come back paused, and they’ll see all of that information much more robustly in the game window.”

Larger Screen Size

To anticipate play on a larger screen, new game development involved a good deal of asset redesign. AWEsum! was a single-player app designed for handheld mobile devices, while AWEsum Friendzy is a multiplayer app intended for much larger screens. Reiners notes, “You can get away with a certain size of assets on mobile devices that you can’t when you have a 27-inch full HD screen. We completely redesigned our entire game board to support element scaling. We realized that the game would be played on a variety of screen sizes and anticipated that some OEMs would want to place this application on a touchscreen Windows 8–supported laptop. So we couldn’t restrict our thinking to 20–27-inch desktops. The design of AWEsum Friendzy is optimized for the AIO environment and designed to be played on a big screen that can lie flat.

Analytics

Another design consideration was a divergence from the decision not to have anything invasive in the original AWEsum! game. Reiners explains: “Games without pop-up ads or in-game purchase requests are more kid-friendly, so we made an intentional decision not to require any user permissions. Neither Internet access nor analytics was called for.” AWEsum Plus was designed in the same way, but the team decided to build some analytics into AWEsum Friendzy to accommodate the preinstallations expected with the new distribution model.

Reiners states, “That’s one of the reasons we haven’t needed to take advantage of some of those Windows 8 features: Our app was designed on the front end to be bare bones. By design, those types of components weren’t there.”

The Windows 8 features that are present provide a better user experience. In contrast to the mobile environment, in which users have to leave one app to use another, the Windows 8 environment is designed for users to have a few things going at the same time. Reiners notes that with AWEsum Friendzy, the team is taking advantage of that “screen real estate.” He says, “Supporting Snap View and Fill View allows players to have other information on their screens or even interact with a different primary application while still having their game of AWEsum Friendzy running in the foreground or background.”

Live Tiles

Live Tiles is another feature the team considered but decided to put off for future development. This feature will enable the game to alert players to game updates and newly downloaded features or provide timely incentives to come back and play. Reiners says, “We do have plans to incorporate Live Tiles, but that’s going to align with our incorporation of some stats and achievements into AWEsum Friendzy, which is slated for another time. This is an exciting feature to us. Apps often get used for a period, and then not used for a long time. The goal is rediscovery by the user, as in, ‘Oh, look, here’s this thing I haven’t used in a while, and this can be fun again.’”

Development Process for AIO

The flexibility inherent in the AIO platform enabled the team to explore some directions in the app that were not possible with previous versions of the game.

Touch

In the development process, the team spent a lot of time on the game’s touch sensitivity and touch controls. Reiners says, “For AWEsum!, all of our touch controls were designed for anything from a phone to a 10-inch tablet device. We had already incorporated some ideas there of, ‘Well, how far do users want to move their fingers to move or slide cubes around? How far is reasonable to ask users to slide their fingers to slam the cubes down as they progress through the game?’ Now, with AWEsum Friendzy, expand that to where you’re playing on a 27-inch screen and you get half of that screen real estate to yourself. How far is it reasonable to ask users to move their fingers? What’s the difference between kids doing it and adults doing it? Can we adjust sensitivity on the fly? Those kinds of things were big issues for us, and a big part of the redesign was making sure that it was a comfortable user experience and that touch felt natural.”

Ten-point multitouch was also an important consideration. During play, two people are interacting, each with his or her own game grid, passing objects back and forth. In some cases, users make actions with both hands simultaneously; if both players are doing so at the same time, multiple touch points are needed.

Figure 5. NOMAD staff testing multiple touch points

Multiple Form Factors

When redesigning the game for the AIO platform, the team imagined the various ways in which users might want to use the app. “For example,” says Reiners, “you might have a standard desktop configuration, where the AIO device is sitting upright on a desk or table, with a couple of chairs in front of it with two kids—siblings or friends—sitting there. In that situation, one person will play on the left, the other person will play on the right, and that’s comfortable for them. But if you lay the screen down flat, you’ve got several different possibilities. Maybe you’re talking about two larger people—two adults—and they don’t particularly feel comfortable sitting and rubbing elbows with each other. We’ve created user-selectable orientations that allow me to sit on the right half of the screen in landscape orientation from my perspective, but you are sitting on the right half of the screen from your perspective on the opposite side of the device from me. Or, each player can sit on the left side from his or her perspective, because we are trying to support both right-handed and left-handed players. So a lot of adaptability concerns are addressed by having as many form factors as are possible with the AIO [see Figures 3, 4, and 5].”

Figure 6. AWEsum Friendzy Versus Mode game play; players on opposite sides of the AIO device

Figure 7. AWEsum Friendzy Co-Op Mode game play; end-to-end orientation

Figure 8. AWEsum Friendzy Co-Op Mode game play; side-by-side orientation

Storage and Download Speed

Reiners describes the process of ensuring easy downloads on mobile devices versus AIO devices: “With AWEsum!, we did a lot of work to make sure it was downloadable on Apple products over 3G and 4G, which require downloads under 20 MB. So we ensured our assets were sized appropriately, and we actually took some assets out of the game and made adjustments to be sure our textures were not too large. With an AIO device, the great thing is that you’re at a desktop computer with a strong wired or wireless connection, so you have many gigabytes of space and you don’t have the same kind of download requirements. So it’s okay if our game is 50 MB or above, because we have a bunch of additional textures there.”

The team took advantage of these expanded parameters by enabling users to choose from a variety of different cube sets and different digit fonts on the cubes. In addition, all user-selectable localization languages are built right into the game. Reiners says, “Those things take enormous amounts of space, relatively speaking, from a mobile app standpoint, and they’re just not possible on a non-desktop computer or a computer without a full storage drive.”

AIO Devices in Education

As an educator, Reiners is excited about the education possibilities that the AIO platform offers. He says, “The idea of social multiplayer gaming coming back is really big to me, but many things are not being considered within educational settings. For instance, mobile devices are personal. They’re not eminently shareable; it’s difficult for two people to use one tablet. It’s even less shareable than a textbook would be. You do see students sharing tablet devices, but it’s not as easy to do. Normally, if there’s any sharing involved, it’s only from a reading standpoint or from an observing standpoint. You don’t actually see any mutual interaction happening with the device.”

In contrast, says Reiners, AIO devices are “set up for collaboration.” He adds, “I can easily see four elementary school kids gathering around a flattened 27-inch device and all interacting with it at the same time. Now you’re talking about form factors that are big enough to actually support that kind of interaction. When you get into middle school and high school and these students are becoming bigger people physically, two people interacting with the device is seamless, especially if you provide orientations that support that.”

Figure 9. Elementary school kids demonstrating simultaneous interaction

Reiners continues: “So you’ve got a greater chance for collaboration, for shared learning experiences. All kinds of tests and studies have shown repeatedly that shared learning experiences are far more likely to be retained than individual experiences, because these experiences include social information, not just intellectual information. So I think there’s a lot of potential there, and it’s pretty exciting, because it brings social learning back to the classroom and the ability to interact with people while interacting with the device.”

AIO Highlights

In working with and developing for AIO devices, the team was most impressed with their portability. Reiners says, “Some of them are designed to be more portable, and some of them are designed to be more stationary but flexible within that stationary position. With the devices we tested, we picked them up all the time and moved them from place to place. If someone wasn’t able to get up to see something on a device, another team member could simply bring it to him or her. Some of them are desktops with batteries, borrowing from laptop design. With one device, you can actually unplug it and run around with it for three hours, and you’re completely cordless. That’s pretty amazing to me.”

Other Development Considerations

In addition to the tools already mentioned (such as Unity 3D), on the back end, the team used Simple SQL to host a database and store user profiles and other information. In addition, within Unity 3D, the team had the choice of using JavaScript or C# for scripting; they chose to use C#, because, says Reiners, “Some of the programming tools available inside Unity for C# aren’t quite as elegant for JavaScript. A big part of our redesign was a discovery process inside of the Unity integrated development environment (IDE), because when we originally designed AWEsum!, we were using JavaScript for that, and we changed over to using C# scripting for AWEsum Friendzy.”

Reiners further explains: “One of the tools that Unity uses as a development environment is MonoDevelop. Its tools for C# recognition, recognition of variables, recognition of functions, and C#’s auto-complete features are far better. C# is better supported than JavaScript within MonoDevelop, so it just makes the programming process faster and potentially eliminates errors in coding.”

Development Experience

The AWEsum Friendzy development experience allowed NOMAD to broaden its reach and explore new development possibilities. Reiners says, “The advantage to designing within Windows 8 is that it provides us a new delivery platform and places us on the bleeding edge of development within our particular IDE. It’s obviously a whole different platform, so that’s an inherent built-in advantage. As an app company, the more platforms you’re available on, the more chances you have of being discovered and the more chances you have to reach a new base of users. We’re excited to add this platform to our portfolio. Also, this is our first Windows development experience, so it allows us to experiment with developing for a new platform. That starts to spur additional ideas for other kinds of apps that would work on this platform. That’s been valuable for us, as well.”

The team also learned two important lessons: (1) “Never trust that something has support for something else just because you’re told that it does,” says Reiners. “For example, ‘Unity has support for Windows 8’ or ‘This plug-in supports right to left fonts’ or ‘Intel supports all of these shaders.’” (2) “You have to test and test and test and be ready for surprises.”

Company

NOMAD Apps was co-founded in 2011 by Mike Reiners, who has been a high school math teacher for 17 years and has a background in various coding projects, and Reuben Simonson, a former console game developer whose credits include Pandemonium!, a platinum best-selling title for Sony* PlayStation*.

Reiners is passionate about developing educational games that anyone can play. He says, “I think we’ve had about 30 years of extremely bad educational software and game content. There are rare exceptions, but I’m dedicated to using the unique position of being a developer and a teacher who can have a foot in both worlds and see both sides to drive our company’s vision. I want to produce good products that have embedded pedagogy but are just solid games and solid software experiences.”

Anyone interested in learning more about NOMAD can visit the company’s website at nomadapps.com, its Facebook page at facebook.com/nomadapps, or its Twitter feed, @NOMAD_Apps.

About the Author

Karen Marcus, M.A., is an award-winning technology marketing writer who has 16 years of experience. She has developed case studies, brochures, white papers, data sheets, solution briefs, articles, website copy, video scripts, and other documents for such companies as Intel, IBM, Samsung, HP, Amazon Web Services, Microsoft, and EMC. Karen is familiar with a variety of current technologies, including cloud computing, IT outsourcing, enterprise computing, operating systems, application development, digital signage, and personal computing.

For more complete information about compiler optimizations, see our Optimization Notice.