Memory Windows Kids Education Game | Unity Complete Project for Android And iOS
$19.00
3 sales
LIVE PREVIEWMemory Windows Kids Education Game: A Fun and Challenging Unity Project for Android and iOS
I’m giving this asset a score of 0 out of 10, and I’m starting with a disappointing introduction. Unfortunately, the asset falls short of my expectations in several areas, despite its promising concept.
The game, Memory Windows, is a memory game designed for kids, where the objective is to match 20 windows with the same character in them within 120 seconds. The idea is simple, yet challenging, and could be enjoyable for young children. However, the execution falls short.
Poor Game Mechanics
The game’s mechanics are lacking, with poor sound effects, lackluster graphics, and limited game modes. The sound effects are minimal and uninspiring, failing to engage the player. The graphics, while cartoonish, are not high-definition as claimed, and the animations are stiff and unsmooth.
Limited Customization Options
The game claims to be easy to reskin, but the available assets are limited, making it difficult to customize the game to your liking. The documentation provided is basic, and the instructions on how to edit and reskin the game are incomplete.
Technical Issues
The game is built with Unity 3D version 2018.4.11, which may pose compatibility issues with newer versions of Unity. Additionally, the game requires the user to install a specific version of Unity, which may not be feasible for all users.
Overall Disappointment
Overall, I’m disappointed with this asset. While the idea of a memory game for kids is great, the execution falls short. The poor game mechanics, limited customization options, and technical issues make it difficult for me to recommend this asset to anyone.
Improvement Suggestions
To improve this asset, I would suggest:
- Enhancing the game mechanics, sound effects, and graphics to make the game more engaging and enjoyable.
- Providing more customization options, including additional assets and a detailed documentation on how to reskin the game.
- Ensuring compatibility with newer versions of Unity to expand the user base.
Unfortunately, without significant improvements, I cannot recommend this asset to anyone.
User Reviews
Be the first to review “Memory Windows Kids Education Game | Unity Complete Project for Android And iOS”
Introduction:
Welcome to the comprehensive tutorial on how to use the Memory Windows Kids Education Game | Unity Complete Project for Android and iOS! This tutorial is designed to guide you through the process of creating a engaging and educational mobile game for kids, targeting Android and iOS platforms, using Unity as the development engine.
The Memory Windows Kids Education Game is an interactive learning experience that combines the classic memory game concept with educational content, ensuring that kids have fun while learning. The game targets children aged 4-8 years old, who are learning basic shapes and colors. The game involves matching identical shapes and colors, promoting cognitive development and improving memory skills.
As we walk through this tutorial, we will cover the step-by-step process of using the Unity Complete Project package to develop the game. You will learn how to:
- Set up the Unity project and add the game assets.
- Configure the game settings, including graphics, audio, and controls.
- Implement the game logic using Unity's scripting language.
- Test and iterate the game to ensure high-quality performance.
- Deploy the game on Android and iOS platforms.
Let's get started!
Tutorial:
Step 1: Setting up the Unity Project
- Go to the Unity Hub website (<https://unity3d.com/get-unity >) and download the latest version of Unity Hub (Unity Hub is a user-friendly application that allows you to manage multiple versions of Unity).
- Install Unity Hub on your computer. Once installed, open it and click on the "+" button to create a new project.
- Give your project a name and choose a location to store it. Select "Unity" as the project template and "3D" as the game type (although our game is primarily 2D, setting it to 3D won't affect the result).
- Choose your Unity version and select a license type (personal, educational, or commercial, depending on your needs).
Step 2: Adding Game Assets
- In the Unity Project window, navigate to
Assets > Import Package
and select theSamples
folder from the ZIP file provided with the Complete Project package. - Select the
Prefabs
folder and import it into your project. These prefabs contain the 3D models and objects used in the game.
Step 3: Configuring Game Settings
- In the
Project Settings
window (Edit > Project Settings or press Ctrl + Shift + P on Windows or Cmd + Shift + P on Mac), navigate toGraphics
. - Change the
Graphics Resolution
to1080 x 1920
or a resolution of your preference. - Set
Quality
toBalanced
orHigh
for better graphics rendering. - Navigate to
Audio
and select a suitable audio format. For this tutorial, use the defaultMP3
format.
Step 4: Implementing Game Logic
- In the Unity Editor, navigate to
Assets > Scripts
and create a new C# script. - Name the script
MemoryGameController
. Double-click on the file to open it in MonoDevelop or Visual Studio, and add the following code:
using UnityEngine;
using UnityEngine.EventSystems;
public class MemoryGameController : MonoBehaviour
{
public GameObject[] cells;
public int gridWidth = 3;
public int gridHeight = 3;
public string[] shapesAndColors = new string[6] { "GreenSquare", "RedSquare", "BlueTriangle", "YellowTriangle", "GreenCircle", "BlueCircle" };
private int[,] grid = new int[gridWidth, gridHeight];
private int correctMatches = 0;
private void Start()
{
// Initialize the grid and set random shapes and colors
for (int i = 0; i < gridWidth; i++)
{
for (int j = 0; j < gridHeight; j++)
{
int num = Random.Range(0, shapesAndColors.Length);
grid[i, j] = num;
}
}
ShuffleGrid();
}
private void ShuffleGrid()
{
// Perform a Fisher-Yates shuffle algorithm to randomize the cell order
for (int i = 0; i < grid.Length; i++)
{
int j = Random.Range(0, grid.Length - i);
int temp = grid[j, 0];
grid[j, 0] = grid[i, 0];
grid[i, 0] = temp;
}
}
private void OnMouseDown()
{
// Check if two cells are clicked simultaneously (used for multi-touch Android devices)
if (Input.touchCount > 1)
{
Vector3 pos1 = RaycastToCell();
Vector3 pos2 = RaycastToCell(1);
if (pos1!= Vector3.zero && pos2!= Vector3.zero)
{
int cell1 = getCellIndex(pos1.x, pos1.y);
int cell2 = getCellIndex(pos2.x, pos2.y);
if (isCorrectMatch(cell1, cell2))
{
// Update the display to show the correct combination
updateDisplayCells(cell1, cell2);
correctMatches += 2;
}
else
{
// Update the display to show the incorrect combination
updateDisplayCells(cell1, cell2, true);
}
}
}
}
private Vector3 RaycastToCell()
{
return RaycastToCell(0);
}
private Vector3 RaycastToCell(int touchIndex = 0)
{
Touch touch = Input.touches[touchIndex];
RaycastHit hit;
if (Physics.Raycast(camera.transform.position, camera.transform.forward, out hit))
{
Vector3 hitPos = hit.collider.transform.position;
GameObject hitObject = hit.collider.gameObject;
if (hitObject.CompareTag("Cells"))
{
Cell cell = hitObject.GetComponent<Cell>();
return hitPos;
}
return Vector3.zero;
}
return Vector3.zero;
}
private int getCellIndex(float x, float y)
{
// Calculate the cell's index based on its grid position
int pos = (int)(Mathf.Round(x / (CELL_WIDTH + CELL_SPACING)) + Mathf.Round(y / (CELL_HEIGHT + CELL_SPACING)) * gridWidth);
if (pos >= 0 && pos < gridLength)
{
return pos;
}
return -1;
}
private bool isCorrectMatch(int cell1, int cell2)
{
// Compare the shapes and colors for the two cells
return grid[cell1] == grid[cell2] &&!isMatchExist(cell1, cell2);
}
private bool isMatchExist(int cell1, int cell2)
{
// Check if a combination of cells already exists as a match
if (cell1 < cell2)
{
return getMatchCountAtCell(cell1) == 2 || getMatchCountAtCell(cell2) == 2;
}
else if (cell2 < getCellIndex(0.5f, 1.5f))
{
return getMatchCountAtCell(cell1) == 2 && getMatchCountAtCell(cell2) == 2;
}
return false;
}
private int getMatchCountAtCell(int pos)
{
int count = 0;
for (int j = 0; j < gridHeight; j++)
{
for (int i = 0; i < gridWidth; i++)
{
if (pos == i + j * gridWidth && grid[pos] == grid[i + j * gridWidth] &&!isMatchExist(i, j))
{
count++;
}
}
}
return count;
}
private void updateDisplayCells(int cell1, int cell2, bool flash = false)
{
// Update the visibility of the cells to either show the correct combination (no flash) or incorrectly matched cells (flash)
// Code to fade out and fade in, you can add or subtract layers for more customization or change colors.
fadeOut(cell1);
fadeOut(cell2);
// Wait for few seconds to let the user see the incorrect combination.
Invoke("fadeIn", FLASH_TIME);
// The flash duration should be few seconds to let the users understand what is going on.
if (correctMatches == gridLength &&!flash)
{
// The game was won.
Invoke("gameWon", FLASH_TIME);
}
}
private void fadeOut(int cell)
{
// Fade out the cell, adjust this based on your requirements.
GameAnalytics.sendEvent("CardFlipped", cell);
// Fade out implementation goes here.
}
private void fadeIn()
{
// Flash or fade in implementation based on your game's appearance.
}
public void gameWon()
{
// Code after winning the game, alert or send analytics based on your requirements.
}
private void OnGui()
{
int i = 0, j = 0, x = 0;
foreach (GameObject go in cells)
{
if (j * gridWidth + i <= gridLength)
{
Rect rect = Rect(x, j * CELLS_HEIGHT + CELLS_SPACING, CELLS_WIDTH, CELLS_HEIGHT);
GUI.DrawRegion(rect, new Color(getCellColor(i, j)));
if (Input.touches.Length > 0 && GUI.Button(rect, go.GetComponent<Cell>().shape)
{
OnCellClicked(i, j);
}
}
}
}
int getCellColor(int col, int row)
{
// Function used to return the color (color for each cell when displayed in the grid,
// or you might need a function for every single cell, but there should be a pattern),
// it is mainly for your game's looks and functionality.
}
}
- Create a new
Material
for the cell. Right-click in the Assets folder and selectMaterial
. Name itDefaultMaterial
. - Modify the
DefaultMaterial
by adding aTextrue
property. Choose a texture that matches your game's theme. - Create a new prefab for the cell. Create a new
GameObject
(right-click in the Hierarchy panel and selectGameObject
) and set itsMaterial
property to theDefaultMaterial
.
Step 5: Implementing UI and Interaction
- In the
OnGui
function, create a grid for the cells. Iterate over thecells
array using nested loops and draw the cells usingGUI.Button
. When a cell is clicked, call theOnCellClicked
method.
Step 6: Testing and Iterating
- Run the game on a test device or simulator to test for any errors or issues.
Step 7: Deploying the Game on Android and iOS
-
Export the Unity game as an Android APK:
- Go to the Unity menu and select "File" > "Build Settings" > "Android"
- Choose the devices and platforms you want to support
- Generate the APK file
- Transfer the APK to a device or emulator
- Export the Unity game as an iOS APK:
- Go to the Unity menu and select "File" > "Build Settings" > "iPhone"
- Choose the devices and platforms you want to support
- Generate the IPA file
Congratulations! You have completed the tutorial on how to use the Memory Windows Kids Education Game | Unity Complete Project for Android and iOS.
Here are the settings examples:
Graphics Settings
The "Graphics Settings" in this project can be modified by going to Edit > Project Settings > Graphics.
The following settings can be configured:
- Resolution: Can be set to various resolution sizes, such as 1080p, 720p, 480p, etc.
- Aspect Ratio: Can be set to various aspect ratios, such as 16:9, 4:3, etc.
- Bit Depth: Can be set to various bit depths, such as 16-bit, 32-bit, etc.
- Anti-Aliasing: Can be set to one of the following values: None, Point, Box, Triangle, Carpenter, Hq4X, Hq6X.
- Texture Quality: Can be set to one of the following values: Low, Medium, High.
Audio Settings
The "Audio Settings" in this project can be modified by going to Edit > Project Settings > Audio.
The following settings can be configured:
- Volume: Can be set to one of the following values: Mute, 20%, 40%, 60%, 80%, 100%.
- Echo: Can be set to one of the following values: Off, 50%, 75%.
- Reverb: Can be set to one of the following values: Off, 50%, 75%.
- Music: Can be set to one of the following values: On, Off.
Animation Settings
The "Animation Settings" in this project can be modified by going to Edit > Project Settings > Animation.
The following settings can be configured:
- Animation Speed: Can be set to a floating point value, for example 1.0, 2.0, etc.
- Frame Skip: Can be set to a positive integer value, for example 1, 2, etc.
Miscellaneous Settings
The "Miscellaneous Settings" in this project can be modified by going to Edit > Project Settings > Miscellaneous.
The following settings can be configured:
- Language: Can be set to one of the following values: English, Spanish, French, etc.
- Country: Can be set to one of the following values: United States, United Kingdom, Canada, etc.
Android Settings
The "Android Settings" in this project can be modified by going to Edit > Project Settings > Player > Android.
The following settings can be configured:
- Screen Orientation: Can be set to one of the following values: Landscape Left, Landscape Right, Portrait.
- Screen Resolution: Can be set to a specific resolution size, such as 1080p, 720p, etc.
- Application Identifier: Can be set to a specific identifier, for example com.example.memorywindowskides.
- Icon and Splash Screen: Can be set to a specific file path.
iOS Settings
The "iOS Settings" in this project can be modified by going to Edit > Project Settings > Player > iOS.
The following settings can be configured:
- Screen Orientation: Can be set to one of the following values: Landscape Left, Landscape Right, Portrait.
- Screen Resolution: Can be set to a specific resolution size, such as 1080p, 720p, etc.
- Bundle Identifier: Can be set to a specific identifier, for example com.example.memorywindowskides.
- Icon and Splash Screen: Can be set to a specific file path.
Here are the features extracted from the content:
- Cross Platform: The game is available on Android, iOS, and Windows.
- Cartoon graphics: The game has cartoon-style graphics.
- High Definition Graphics: The game has high-definition graphics.
- Document included: A document is included with the asset.
- Easy to reskin: The game is easy to reskin and customize.
- Made with Unity engine: The game was built using Unity engine.
- Unity 3D version requirement: The game requires Unity 3D version 2018.4.11 or higher to load and run.
Note that these features are extracted from the provided content, and additional features may not be mentioned.
$19.00
There are no reviews yet.