PlanetSwitch Planet3DS PlanetVita PlanetiPhone Classics Forum

PGN-ID:[?] (Nicht eingeloggt)
PlanetDS PlanetGameboy


Sonstiges: Developer Diary - The Creation of a Switch Game

Michael Grönert, am 26.12.2016, Seite 15 von 25

Artikel mögen: Weitersagen:

BadToxic Discord Server | GameMaster Discord Server | BadToxic on Twitter
BadToxic on Instagram | BadToxic's Dev Instagram | BadToxic on YouTube

2016- Part 1: Welcome to the world of video game development!
2017- Part 2: It all begins with a first idea
- Part 3: The requirements
- Part 4: Final preparations
- Part 5: Ready to go
- Part 6: GONG! The first mini game
- Part 7: The Inventory
- Part 8: Saving & Loading
- Part 9: Skill tree & Menus
- Part 10: Achievements & Notifications
2018- Part 11: Day and weather change
- Part 12: Network Gaming
- Part 13: Companion Pet
- Part 14: Support for Android and iOS
- Part 15: Pairs - Find matching cards
- Part 16: Integrating Pairs into GameMaster
2019- Part 17: Statistics
- Part 18: Fizhy
- Part 19: Porting Fizhy over to GameMaster & AI
- Part 20: Creating a Community
- Part 21: Shaders and Particles
2020- Part 22: Overworld Landscaping
- Part 23: 3D manga-style characters
- Part 24: "Cooking" hamburgers together
- Part 25: Character Individualization

Part 15: Pairs - Find matching cards
Today we make an exception and implement a new little game independent of GameMaster which we will build into our main game later. It is a ”Pairs” (or “Concentration”) variant, where you have to find pairs of cards. In Germany, this kind of game is mainly known under the name Memory which, belongs to the German company Ravensburger. The player has a set of face-down cards in front of themselves with each of the cards is presented twice. They flip two cards over per turn, hoping to find a matching pair. If it is a pair, the player gets one point and the cards can either be removed or left face-up and the player is allowed to choose two more cards. Should they have picked different cards, they are turned back again and the move is over. Now the next player can choose two cards - so any number of players is possible. If all pairs are found, the game is over and the player with the most found pairs has won. So the challenge in this game is to memorize the cards and their positions in order to find them later.

Title screen of the game

Motivation for independent game
Since GameMaster is an enormously extensive project which will take a lot of time to complete, it would be nice to produce something that can be completed quickly and presented in the meantime. But I had two more reasons: First, I wanted to give a friend a simple introduction to Unity. Second, this game with its pictures on the cards makes a perfect gift. For this stand-alone version, I use photos from my recent holidays in Indonesia and Singapore over Christmas 2017 and New Year's Eve 2018. For the GameMaster version of this game, however, I will have to use different pictures as these photos take up much space even in a strongly compressed state and don’t quite fit into the context.

A few found pairs

The implementation
The key part of the mini game is the cards. These have two different sides and can be turned over by clicking or tapping. For this purpose, Unity offers two-dimensional surfaces such as "plains" or "quads" which can be covered with a texture. Clicking activates an animation that rotates the card 180° in within a certain period of time instead of turning it around abruptly. In addition, we need a controller object that manages everything. It lets only two cards be turned over at once, points are awarded for found pairs and other cards are turned back. Of course, the controller also has to manage much more. It initially creates the pairs of cards and puts them on a square grid in random order. It also visualizes switching the player turn and displays the scores. A little extra feature is collecting cards. There are about 150 different cards randomly selected. Each card that was once found as pair is listed in the "Collection" menu, along with the number of cards found so far and the total number of cards. Here, the pictures can be viewed in peace. Also after a pair was found, the image of the cards gets zoomed in until the user closes this view.

The collection with all found images

The pictures
The pictures also need to be prepared for the game. First, they should be square but the size and quality play an important role, as well. Actually, at the beginning I spent a lot of time trying out moving pictures in the form of gifs or videos. However, I came across several problems that I would not like to explain in more detail here, especially if you want this to work on all platforms. Therefore, I decided to limit myself to normal photos. I have cropped all these photos manually because I wanted to make sure that the respective section is optimally chosen. Since I did not know how many pictures it would take in total and how much storage they would occupy compressed when I started out, I decided to put each photo in two resolutions (256x256 and 512x512) instead of having to do the work twice if necessary. I had even considered building two different variants with these different resolutions, but ultimately decided on the 512x512 pixels.

But with all the pictures I faced a new problem: The game would take a long time to load to prepare the textures. To counteract this problem, the photos are stored in an extra resource folder and are only loaded asynchronous at runtime. In other words, the game can already be started before the pictures are even ready to be displayed. Accordingly, the cards and elements in the collection only have a white surface until the respective photo has finished loading. In practice, however, this is done so quickly that the textures are already done before the cards are laid out or the collection has been opened, but this has a very positive effect on the entire loading time of the game.

Zoomed-in image from Singapore

As already mentioned, you can play “Pairs” with theoretically any number of people. For this version I also offer a two-player mode in addition to the single player. You can choose between three AI levels and a local human player. For the GameMaster version, however, I have four players planned, similar to our pioneer minigame “Gong”. The AIs are relatively simple. The weakest of them always chooses two cards at absolute random. The other two remember which cards have already been revealed and are trying to uncover pairs. If their turn begins, they first check whether a pair is already among the previously visible and reveal it. If not, they choose a random card from those that were not visible yet and uncover it. If its partner card was already visible, this one will be taken. Otherwise, another random one that was not yet visible. This means that they play perfectly from the point of view of an human but do not have information reserved for humans. In order to weaken one of the two AIs, I let them choose a wrong card with a certain probability, even if they already know the correct one - just like a person who has forgotten the exact position of one of the already visible cards.

You can take a look at the result yourself if you want. The game is available for free and without ads: For iOS, in the App Store. And for Android, in the Google Play Store and on Amazon. Until next time!

Do you prefer to read this diary in the developer's mother tongue? Then click here to read this diary entry in the original German language!

Gehe zu Seite:
Vorherige Seite | Nächste Seite

Kommentare verstecken

- Kommentare

- Noch keine Kommentare vorhanden -

Um Kommentare zu schreiben, bitte oben einloggen oder jetzt Registrieren!