Skip to content

Kaszana102/AR_Education

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 

Repository files navigation

MSI AR Game

Introduction

The aim of this project is to create an educational AR (Augmented Reality) mobile game for the Multimedia Interactive Systems university course. The game is to contain issues from a selected field of computer science, computer graphics was chosen. The task was completed by a team of three people during the first semester of master's studies. Each team member had to create a separate mini-game based on different issue of computer graphics. The final version contains 3 mini-games:

  • RGBMixer - Michał Kuprianowicz
  • Lattice Deform - Jakub Wierzba
  • Bézier Curves - Krzysztof Pisarski

RGBMixer

The aim of this mini-game is to combine fun gameplay with understanding how mixing RGB colors work. To start playing 4 vumarks (1-4) are needed. The game randomly selects 4 colors (except black) and sets them as starting colors. They can be seen appearing on vumarks when camera tracking works correctly. Each mark shows:

  • its color and hex representation
  • number of how many times it is used in mixing
  • + and - signs

UI

The top part of the screen has a simple UI containing:

  • exit to the main menu button
  • current representing color created from mixing starting colors. At the beginning of the level, it is set to white
  • target is a color that the player has to create using starting colors. It is randomly chosen from starting colors and mixing them 5 - 9 times
  • similarity which represents how close current is to target. The value is calculated by the distance of 2 colors in an RGB cube which is similar to the human eye comparing 2 colors.
  • next level button after completing the level
  • reset button at the bottom of the screen to reset the whole level and start again

Gameplay

To complete a level it is needed to create current color with at least 96% similarity to target. After this ability to go to the next level is given. Then new colors are chosen and the game repeats itself.

If some issues happen with vumarks tracking it is recommended to cover the phone camera for 3 seconds to make it lose tracking for all vumarks.


Lattice deform

This minigame is supposed to teach the user about lattice deform, and how it deforms the mesh. For simplicity it uses armature deform, which imatated lattice deform.

UI

The interactive part of the UI consists of only two simple buttons:

  • Wróć - returns to the main menu
  • Nowe zadanie - generates a new task (One of 4 models with new random offsets from vumarks)

Gameplay

The aim of the player is to restore the mesh's shape using vumarks. Each vumark had random offset cotnrolling the lattice point, and height of it can be controller using the vumark rotation.

If shape is close enough to resemble the original shape (with certain margin error), the object shape is restored, and the challenge is finished. Score is shown, and dissapears after a moment. After that the the model is glued to the single vumark and player can see the model in detail.


Bézier Curves

In this minigame, the player is supposed to move four vumarks to closely match a reference Bézier curve. When the marks are moved within some margin of error of their corresponding control points of the reference curve, the task is succesfully completed.

UI

The interactive part of the UI consists of only two simple buttons:

  • Wróć - returns to the main menu
  • Nowe zadanie - generates a new task (new Bézier curve that the player will have to match)

Apart from them, there are other UI features related to the curves:

  • Indices of the curve's control points, displayed above each vumark (1, 2, 3 and 4)
  • Thin green lines, connecting consecutive control points
  • Blue Bézier curve, controlled by the position of vumarks - the player's curve
  • Yellow Bézier curve, displayed in the middle position between all the vumarks - the reference curve

Gameplay

The task of the player is to move the vumarks in order to make the player's curve (blue) closely match the reference curve (yellow). When the vumarks' positions are within a margin of error of the reference curve's control points, the task is successfully completed: both curves are animated and a congratulations text as well as score for completing the task appear on the screen. The score is also saved to the high scores list if it is greater than the previous high score for this particular curve. The player can use the new task button to move to a next task after completing the current one, or to skip the current task (without saving the score) if it was not yet completed.

Each new curve is generated by randomly choosing the control points' positions within some range, while ensuring no two points are being placed too close to each other. Moreover, if the new curve too closely matches the previous one (i.e. if the task would be immediately completed), a new curve is also generated. While the curves are random, the random seed is set to a constant value when starting the Bézier Curves minigame (so the n-th reference curve is always the same), in order to allow a fair comparison of scores and a sensible high score system.


Technologies

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •