If there’s one thing that stands out when playing Ellipsis, a touch-enabled action-puzzler title from Salmi Games, it’s the strict adherence to a time-tested motto for developers: keep it simple. The interface is easy to understand, the premise is natural, the color scheme is clean and crisp with no text to clutter the view, and the environment is vivid and engaging. That’s a perfect formula for success, and the awards just keep piling up.
Recently, Ellipsis was voted Best Action Game and Game of the Year in the 2016 Intel® Level Up Game Developer Contest, making this a great opportunity to dive deeper into the path Salmi Games took to produce this winning title. What makes their case interesting is that the developers were able to apply the lessons they learned from developing a mobile app toward their contest entry, which ran on PCs. Salmi Games is bringing the phrase “iterating for success” to a whole new level.
For a two-man team, Salmi Games packs a lot of punch. Stefan Hell and Yacine Salmi share coding, design, and art responsibilities. They also work closely with Filippo Beck Peccoz, a Munich-based audio composer, for the game’s audio design. For such a small team they get a lot done, so we recently spoke with Yacine about his background, the games he played as a kid, and what influenced him the most as he co-developed this award-winning game.
Yacine always knew he wanted to work on video games, calling himself a true “Nintendo* boy.” Growing up, he enjoyed such games as the futuristic shooter Geometry Wars*, the puzzle-game Osmos*, and traditional titles such as Super Mario Brothers* and Legend of Zelda*. He especially liked how clean and simple a game like Zelda could be. “They focus on creating a little sandbox for you to play around in, and then just keep adding new things constantly,” he said. “They had a really big influence on me, and that’s what we did with Ellipsis.”
Yacine focused his education on computer science, and traveled a lot to complete his studies. He grew up in the United States, but completed his undergraduate work in Toronto, Canada, and earned a master’s degree in game programming in the UK. He’s been living in Munich, Germany, for the last nine years, giving him a truly international outlook.
After completing school, he coded at Electronic Arts* for a year, then moved on to Sony*, where he worked on the PS3* launch title MotorStorm*. After a couple of years working on PS3 titles, he switched to engineering on the Havok* Physics* engine team. About five years ago, Yacine started his first game studio, but ran out of money and shelved that project. Two years ago, he started Salmi Games—dedicated to creating innovative, minimalist games—mixing work on contract assignments with developing in-house titles.
Yacine met his partner Stefan Hell (then a local student) at a design event in Munich, where they coded a prototype web app, and bonded over subroutines. Even before Stefan graduated, Yacine would bring him in to help on small projects, and they teamed up formally after that.
“You have to get to know somebody for a while before you do a deeper project together,” Yacine advises. “You can learn their style, and how to communicate with them, and whether their strengths and weaknesses complement yours. Then you can engage in the creative process together.”
Figure 1. Yacine Salmi, right, and Stefan Hell.
Because Ellipsis is such a streamlined game, it’s easy to describe how it works. Players start out faced with a very simple screen, which is dominated by a pulsing ring that invites you to touch it and drag it around. When you drag the ring over a token, you release smaller targets that you want to quickly scoop up. When there is nothing left, you move the token to a sanctuary gate, which pulls you to welcome safety.
Figure 2. The open, white circle in the lower-left corner is where you place your finger, and you try to capture the tokens that have smaller circles inside. The vertical white bar is the “gate”, where you escape to safety when you’re done.
As the layers progress, there are things chasing you, firing at you and collisions to avoid, and docking at the gate provides a rush of completion. The first time you complete a level, there’s no time clock or high score, but if you roll back through a second time, you get additional challenges.
Stylistically, the game offers tantalizing neon colors in an explosion of tracers and light particles, with a subtle collection of rewarding sound effects, and an easy system of tracking your progress. It practically defines elegance—there are no help files, no tutorials, and no strategy guide to memorize. The puzzles are addictive, and you can forge through sixty levels in just a few minutes.
Figure 3. Ellipsis features vivid, neon colors, and plenty of action.
Work on Ellipsis started in 2014, and it was always the goal to create a touch-based game that would tap into mobile markets. Yacine and Stefan prototyped some possibilities, but, one day they came at things from a different angle. As Yacine recalls, “How can we approach touch-based games with direct control, instead of just doing a swipe or a tap? What would happen if you put your finger on the tablet and whatever you’re controlling directly follows your finger all the time?” There were a few issues to work out, but they soon found that the basic gameplay idea was clean, simple, and fun. They spent the next year exploring that concept as deeply as possible, but never 100 percent full time. They sandwiched the work in between contracts, working nights and weekends, juggling coding, life, and family with great care.
Yacine gave himself the challenge to polish the game without ever adding any explanatory text. That would make sure there were no translation issues, and keep the screen uncluttered and simple. “I won’t be there to explain the game to people,” he reasoned, so it was very important to just hand a tablet over to a player and say nothing, then watch them start. “I want to embrace the simplicity of the game as much as possible,” Yacine explained.
Getting to such a clean and polished feel was no easy feat. The team dabbled with creating their own engine, but soon dropped that work and adopted the Unity* engine. “Unity was just the easiest to get going with,” Yacine said. “I've written my own engine before, and it can become a huge time sink, where you’re spending more time on the technology side than on the game itself. Unity was very liberating in that sense.”
Not that there weren’t edge cases that gave the team headaches. They struggled with developing for multiple Android* versions, for example. Some devices suffered from lighting issues that made them unplayable, and the team spent days trying to figure out the problem. Finally, a Unity update arrived that magically fixed the issues, and they moved on. Other times, a new update would cause performance issues that they had to painstakingly sleuth by themselves.
“There’s a give-and-take when you’re working with another engine,” Yacine said. “It’s fantastic to get going quickly, but when you want to do something that it’s not capable of doing, then you start to run into problems.”
Even though he had experience with the Havok Physics engine, the physics in Unity provided all the technology Yacine needed for collisions. But there were issues there, too. During early testing, when the avatar would run into a wall but the player’s finger kept going, the game would lose the connection. Resolving that without making the game slow down significantly took some work. “We had to create a lot of different techniques, with catch-up systems to bring you back to your finger without breaking everything, or without it feeling very sluggish. That was a lot of work to get the ”feeling” just right.”
The team used Adobe* Photoshop* for graphics, after playing around with Adobe Illustrator*, and rejecting it. “We thought our game style lent itself to vector art, but then we’d do a vector render and it was a pain. We just went back to using high-quality sprites.”
Figure 4. Puzzles get increasingly challenging as you progress through the game.
Another technical challenge was to support an easy mechanism to save the game. All the player has to do is lift their finger and the game pauses. Synchronizing the saves to deal with cloud saves and offline saves, and merging those two paths correctly, took a lot of time to work out. It’s now possible to start playing on one device and continue on another, which modern gamers expect.
Finally, they had to work on their shader code to get the right flare effect. They adapted a shader that ships with Unity, enhancing it, and adding their own twists.
Because touch latencies have continued to fall—making touch-based games more feasible—the team always planned for mobile gaming. Yacine pointed to newer tablets and phones, which have reduced touch latencies to only a few milliseconds of delay. The market seemed wide open, so they jumped in.
Yacine heard about the Intel® Level Up Contest a year prior to entering, but the team wasn’t ready for that year’s deadline. Using the website PromoterApp*, Yacine was already tracking important festivals, conferences, and local events, and when it flagged him about the next Intel Level Up Contest, he was ready.
“You enter these contests, and you just hope they will see the quality in your game,” he said. “When the Intel contest came back up, and we saw it was focused on touch devices and 2-in-1 PCs, we thought this could be a really cool opportunity.”
That was another advantage of Unity—they could quickly port from an Android to a PC version. They polished the game up for the contest so that PCs with touch screens could easily handle it, as well as PCs with a mouse, and hit the Intel Level Up Contest deadline.
When Yacine learned Ellipsis had not just been named the Best Action Game, but also overall Game of the Year, he admits he started dancing around with joy. All through the day he would get distracted, then remember he’d won the contest, and it would hit him all over again. “It was a really cool surprise. Not only being nominated, but to be considered the Game of the Year is just a really huge and humbling honor.”
Grand-prize winners receive a USD $5,000 cash award, which is always welcome, but there’s much more. They also receive an agency-driven digital marketing creative campaign package, valued at USD $12,000. The campaign will drive targeted visibility through Facebook* or YouTube* over a continuous four-week period.
Yacine plans to coordinate the marketing campaign with the PC release of Ellipsis to maximize exposure. He showed the game off at the 2016 PAX West conference in Seattle. He’s got plenty of judging comments to go through, and is looking forward to incorporating some new libraries and utilities put forward by his Intel account manager to help with recommended specs for more devices.
Yacine expects those Intel optimizations for multiple devices to help with the testing regimen. During their release on iOS* 7, Salmi Games linked to a library that wasn’t supported on earlier versions, and they spent hours trying to figure out why reports came in of serious crashes. So they learned to target the weakest devices, and make that experience as smooth as possible, knowing that the higher-end devices would take care of themselves.
“For the PC version that we’re working on, we’re going to be doing the same thing: targeting low-end devices first,” Yacine said. “We’ll make sure it runs at least 30 frames-per-second on those less-powerful systems, if not 60, and hopefully from that we’ll have a smooth experience across the board.”
Yacine also obsessed over the game’s footprint, cleaning it up so that the game didn’t take up too many megabytes. When the game started to reach a size of 60 megabytes, Yacine decided he needed to spend some serious time looking at file sizes and extra code. “We only had textures and audio, basically, so it shouldn’t get that big. We do have high-quality textures, but throughout development we would keep an eye on these things, and do an optimization pass whenever it was reasonable. Why should it be 60 or 70 megabytes when it could be 30 or 40?”
Figure 5. The Ellipsis display at PAX West 2016 pulled in lots of gamers.
Salmi Games shows yet another variant on the developer’s journey—how to jumpstart your marketing by winning prestigious contests. By taking Game of the Year honors in the Intel Level Up Contest, the team will gain access to more Intel tools and expertise for optimization, particularly when it comes to recommended specs and aspect ratios for various devices. The PC version of their game is due out on general release in early 2017, and will reach a whole new audience.
Figure 6. Yacine left the PAX West 2016 conference in Seattle with some nice new hardware.
Meanwhile, like any good executive, Yacine is already thinking about next steps. Between the concise feedback from the judges, the technical assistance from Intel engineers, and the marketing boost that comes with winning, Yacine feels he is primed for success going forward. The team is playing around with a VR version of Ellipsis on Oculus* Touch* and Samsung* Gear VR* devices, and this entrancing, colorful game combined with an innately immersive environment could well be the perfect match.
Purchase Ellipsis on Steam*: http://store.steampowered.com/app/514620
Play Ellipsis main site: http://playellipsis.com
2016 Intel Level Up Contest: https://software.intel.com/en-us/blogs/2016/05/27/2016-intel-level-up-contest-by-the-numbers
Unity engine: https://unity3d.com
Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.
Notice revision #20110804