This was the third prototype in the prototype phase I experienced at Gameloft. This time around we were requested a Match 3 game, much like Candy Crush or Disney’s Free Fall. We had a license for the movie [undisclosed], and we were to develop a similar game with the same core mechanics, but some differences in gameplay, like character power-ups, very story-focused gameplay, and non-linear level progression. The prototype was developed in around three weeks by two programmers (gameplay and me for the more technological parts), an artist and a game designer.
Just like for the prototype The Cube we used Unity, with some additional plugins like 2D Toolkit and NGUI. We chose those plugins because Unity’s native tools at that version had some issues performing dynamic batching of sprites properly (especially when dealing with objects of different scales), and performance, even for such a simple game, is important when targeting mobile devices.
A very interesting aspect of this prototype was the replay system. Performing game recording/playing is very complex when using Unity, since their engine is closed source, and we don’t have access to the main loop. There are two main problems to solve when creating a replay system: input and the different Update loops.
The first problem was solved by overriding Unity’s Input class, adding another layer on top which calls Unity’s native functions when simple input is needed, while also performing recording functions. The second problem was solved by properly coordinating Unity’s several Update loops, and making sure the replay executes only in the FixedUpdate loop. For a more detailed explanation of this problem and the solution we devised, read this blog post here.