
.01
E D U I Z
Eduiz is a 3D multiplayer puzzle game for Augmented Reality(AR) and Virtual Reality(VR) platforms: The Android and iOS mobile platforms are the targets for the AR version. Here, the player will be able to point at any page in a book and get an explanation as interactive content.
The VR version of this game will be an immersive experience for the player. Here, a menu with various topics, to indulge and learn, prompts the students.
Puzzles
Puzzles will be as simple and basic as a jig-saw puzzle or complex puzzles that can be designed innovatively, following the completion of a basic prototype of the app.
​
Quizzes- a mind sport
An attempt to answer questions correctly, based on the interactive content. Each level will be categorized topic-wise, the player has to solve multiple puzzles and quizzes to win these levels. The game would have several modes: Single Player mode, Player vs. Player, and collaborative puzzle solving with Team versus Team mode. The details of Puzzles and quizzes will be in an in-depth document.
An Immersive Learning
E D U I Z
Platform
The game will be compatible with Android, iOS, and HMD (which mostly runs on android/windows)
Target Audience
The game is for students and learners of any age, with an ESRB rating of E.
Game Mechanics
The mechanics of the game would be level-based. Each level will contain an interactive content/puzzle which will induce a deeper understanding of the specific topic. There will be some exclusive levels that can only be played as a team to improve team player skills.
Features
- Voice chat
- Collaborative learning through quizzes and puzzles
- Student-centric design
- Text to speech & speech to text features for learning and writing notes
- Interactive 3D (AR/VR) content
Reward System
There will be a reward and ranking system based on the in-game performance of the student. It will show on the screen, tagged with the corresponding profiles.
Students can increase these scores by solving more puzzles and quizzes, faster than the previous record time, and by attending more classes.
For example, Let’s consider the user needs 100 points to earn a badge. An easy puzzle would fetch 10 points, routine logging-in, and attending classes would also add points. The details of the reward system would be in a separate document.
GAME DESIGN DOCUMENT
The Project Plan
-An End-user app/game
-An AR app for the Android and iOS
-A VR app for HMD (Android and Windows)
In-House app (Plan)
If the process of creating the subsequent game level becomes repetitive, an in-house app can automate it. This application will be used only by the internal team members – Content writers, 3D modellers.
Image tracking for Phone users
For the initial release version, We will employ Vuforia for image tracking. The future release version will have a unique backend service developed in-house using OpenCV (python) to reduce the cost substantially.
Database (Optional)
The app will use the Azure Database. A suitable database can be selected based on the complexity and requirement of the app from the following:
Option 1 – Azure SQL Database
https://azure.microsoft.com/en-in/services/sql-database/
Option 2 – Azure Cosmos DB
https://azure.microsoft.com/en-in/services/cosmos-db/
Networking
Option 1 – Photon
The Photon is worth the cost as once the initial framework is completely done, it would be much easier to launch the app. Please refer to the following link for more details:
https://www.photonengine.com/en/
​
Option 2 – Azure Playfab
Azure Playfab is an alternative to Photon networking and provides much broader implications than Photon. Playfab has virtual currency, save player data, etc. Please refer to the following link for more details: https://playfab.com/
Software
The software required to build this AR app are as follows:
- Unity 3D - the game engine (Charges applicable if the turnover is above 100,000 dollars)
- Maya or 3Ds max or Blender (open-source software) – for 3D modelling
- Adobe Suite – to design User interface.
- GitHub/Bit Bucket/Unity Teams is for version control.
Hardware
The hardware required to build this AR app are as follows:
- Android mobile device
- iOS mobile device
- HMD (only the targeted devices- Oculus Rift, Oculus Go, GearVR with the android phone, etc.)

ROAD MAP

Sprint Planning
Phase I
Sprint 1
-
Market analysis/ Business analysis - Upper management
and me. -
Group discussion/brainstorming - Everyone in team( Decide on the basic game).
-
Rapid prototype - VR Developer and me.
-
Go through asset guidelines and create 3D assets for prototype 3D artists.
-
Content for prototype - Content writer.
-
GDD - Game designer, Content writer and me.
-
R& D in multiplayer - Backend Developer.
-
Go through UI specification and make temporary UI designs - UI Designer.
Outcomes
-
Rapid prototyping demo
-
Business Plan
-
Basic game design document
Sprint 2
-
Concept finalization - Upper management and me.
-
Vuforia implementation - VR Developer.
-
Basic game structure - VR Developer and me.
-
Chapter 1 assets - 3D Artist.
-
Chapter 2 Content - Content writer.
-
Chapter 1 puzzle design - Game designer and me.
-
Chapter 1 quiz design - Game designer and me.
-
App basic documentation - Content writer.
-
Initial multiplayer communication - Backend developer.
-
Initial UI Design - UI Designer.
Outcomes
-
Basic AR App
-
QA Test Code structure finalize
-
MVP version 1 planning
Sprint 3
-
Concept refinement (if any) - Upper management, game designer and me.
-
Pre MVP version 1 VR Developer and me.
-
Game programming 1 - VR Developer and me.
-
Puzzle design (4 chapters) - Game designer and me.
-
Quiz design (4 chapters) - Game designer and me.
-
App Concept documentation - Content Writer.
-
Game main menu design 1 - UI Designer.
-
Basic DB Design - Backend Developer.
-
Basic Animation - 3D Artist.
Outcomes
-
Initial game
-
Game test training
-
DB Design Puzzle and
-
Quiz design
GAME PROTOTYPE 1
Phase 2
Sprint 4
-
Basic multiplayer game – VR Developer and me
-
App technical documentation – Content writer
-
3D content (4 Chapters) – 3D artist
-
Test basic game and document it – UI Designer / Game tester
-
In-game basic UI – UI Designer
-
Train backend developer on VR development – me and Backend developer
-
Implement networking and DB – Backend developer.
-
Gameplay programming 2 – VR Developer and me.
Outcomes
-
MVP Version 1
-
Initiate extensive testing
-
Document bugs
Sprint 5
-
MVP version 1 Internal Release Testing – Game tester – Test the game thoroughly and find out if there are any bugs or impediments
-
Multiplayer level design – Game designer
-
Multiplayer level development – VR Developer
-
3D content refinement (if any) – 3D artist
-
Character model (if any) – 3D artist
-
Environment model – 3D artist
-
Implement Basic authentication – backend developer
-
Train in VR development – VR developer
-
Train in Game testing – Content writer
-
Technical documentation – Content writer
-
In-Game content refinement and new content – Content write
Outcomes
-
Bug fixing
-
Basic game environment
-
Technical Document
-
Basic multiplayer game
Sprint 6
-
Icon Design – UI Designer
-
Train in Game testing – Content writer
-
Content 3D model/animation – 3D artist
-
Puzzle design – Game designer and me
-
Puzzle development - VR Developer and me
-
Train in VR development – VR developer and Backend developer
-
FB and Google Authentication – Backend developer
-
Content for the puzzle (if any) – Content writer
-
Content for voice-over (if any) – Content writer
-
Quiz content 1 – content writer
Outcomes
-
New Puzzle design and
-
Development Authentication
GAME PROTOTYPE 2
Phase 3
Sprint 7
-
Bug fixing – VR Developer, Backend Developer, and me
-
User experience changes (if any) – UI Designer and me
-
Chapter content in 3D – 3D artist
-
Puzzle design 2 – Game designer
-
Puzzle development 2 - VR developer and me
-
Quiz content 2 – Content writer
-
DB update for saving rewards – Backend developer
-
Voice chat implementation – Backend developer
-
Collaborative puzzle design –
Outcomes
-
Level design and development
-
Puzzle design and development
-
Coolaborative puzzle design
Sprint 8
-
Puzzle design 3 – Game designer • Puzzle development 3 – VR developer • Collaborative puzzle development – VR developer, Backend developer • Text to speech R&D – VR developer • Reward system design – Game designer • Puzzle Testing – Game tester • DB Load test – Backend developer • Game testing – Game tester.
Outcomes
-
Text to speech
-
Finalized DB
-
Initiate new puzzle test
Sprint 9
-
Reward system development
-
Speech to text R&D – VR developer
-
UI/UX design for VR – UI Designer
-
UI/UX design for AR/Phone – UI Designer
-
New content development VR – Content writer
-
3D content 2 (if any) – 3D artist
-
Game testing (detailed document) – Game designer and tester
-
Product documentation 1 – Content writer
-
UI Development 1 – VR Developer
-
Networking for combined puzzle-solving – Backend developer.
Outcomes
-
Reward system
-
Speech to text
-
UI/UX
-
Initiate collaborative puzzle solving
GAME PROTOTYPE 3
Phase 4
GAME PROTOTYPE 4
Sprint 10
-
Technical documentation Update – Content writer
-
UI/UX design 2 for AR/VR – UI Designer
-
UI Development 2 – VR Developer and me
-
Puzzle and quiz development – VR Developer and me
-
3D content 3 - 3D artist Environment model – 3D artist
-
Networking load test and performance update – Backend Developer
-
Game testing – game designer
Outcomes
-
Technical document
-
Extensive game test
Sprint 11
-
3D content update (if any) – 3D artist
-
Content update (if any) – Content writer
-
Multiplayer latency test and performance update – Backend developer •
-
Finalize DB work – Backend developer
-
DB Load Test 2 – Backend developer
-
DB performance Update (if any) – Backend developer
-
Networking update (if any) – Backend developer
-
Working on Impediments & other bugs – Backend developer and VR developer and me
-
Final game testing – Game tester, game designer and me
-
UI/UX testing – UI designer and me
Outcomes
-
Performance update
-
Network latency test
-
Final game testing
Sprint 12
-
Release plan
-
Content Update (if any)
-
Next version plan
-
App Performance update (if any)
-
External Game Testing
-
The final version of the ap
Outcomes
-
Release plan
-
Final version 1 game/ap
Image
Adopt these following guidelines for creating all 2D assets (icons, textures) for Unity The textures made should follow the basic game textures standard rules. Other specific guidelines will be provided based on the project. The basic guidelines are as below:
-
Textures should be 72 dpi / RGB / 8 bit
-
The resolution of textures should be in the power of 2.
-
Sample power of 2 images 32x32, 64x64, 128x128, 256x256, 512x512 and so on.
-
If the texture has to be rectangular, use resolutions such as 32x64, 64x512, etc.
-
Textures should have a relevant photoshop file along with the final texture/icon.
-
Textures, icons, and images should always be in higher resolution. For example, if the desired resolution is 64x64, then the texture should be made in 512x512 or 256x256.
-
The final texture should be in PNG / TGA format. (Format will be decided or changed according to the project needs)
3D
Asset Creation (Maya/Max) The creation of assets should follow the standard rules, as mentioned below:
-
Suitable references should be with accurate dimensions before creating 3d models.
-
The camera near clip and far clip values should be checked.
-
The dimension settings in the application should be checked.
-
Every model should be created in both High Poly and Low Poly configurations.
-
Assets should be free of open vertices, edges, and polygons by merging them.
-
Assets should not have double polygon faces to avoid mesh artefacts.
-
Assets can have an extra edge only when it is necessary
-
The vertices / Polygon count of the asset should be maintained based on project requirements.
-
Assets Should have a proper naming convention. E.g. Category_Subcategory_01_ mesh.
-
Before proceeding to texture processing, the model should be unwrapped post-completion.
-
UV should not overlap.
-
Pack UV appropriately.
-
Assets should use Maya/Max materials only (if there are any other renderers such as V-ray, do not use those materials for Unity objects).
-
The material count should be minimum by utilizing textures to obtain the required effect. Material names should have a prefix like Category_Subcategory_01_, thereby making them relevant to the object.
-
Use Lambert, Phong, Blin appropriately.
-
The proper texture should be assigned to relevant materials (refer to 2d asset guidelines on creating textures)
-
Name Emissive materials/glow mat with the suffix - glow. For example, glow5_mat / Glow3_Mat, etc. Asset Export (Maya/Max)
-
The Center pivot position should be maintained for all objects.
-
The developer will decide on Pivot positions based on the project requirements.
-
The object should be snapped exactly above the grid. (i.e. the object value should be (0,0,0)).
-
The texture file should be in the same directory location where we export the FBX
-
Texture files should be named accordingly.
-
History deletion.
-
Freeze Transformation.
-
Maintain a separate folder structure for the models, icons, and texture. e.g., As- sets\3d models\fbx\table.fbx, Assets \3dmodels \fbx \ wooden_table.png, Assets\3dmodels\fbx\table_icon.png
-
Export Objects to (.fbx) format. (Object name in the outliner and the FBX name should be the same).
Asset Import (Unity3D)
-
Create a Unity Project file.
-
Add the assets folder and paste the exported 3d models into the project.
-
Extract all the material to the respective folders.
-
Drag all the FBX and drop it into the Hierarchy panel.
-
Verify all the objects are in (0,0,0) position and scale in (1,1,1).
-
Add mesh collider to every object in the Hierarchy panel.
-
Create a prefab individually for all the objects.
-
Install the asset bundle browser from the unity package.
-
Select all the prefab and drop it into the asset bundle browser to create names for the asset bundle (Using the “Asset bundle browser” package).
Select all the prefab and create asset bundles for Android, IOS, and Windows. These are all the standard guidelines for making a 3D static asset for Unity. We can update the Project-specific guidelines according to game/app requirements. Note: I have not mentioned Animation guidelines with this document. We can develop these guidelines separately based on project requirements.
#Code
Document for developers
_namespace
-
Maintain all namespace under Inspirit. For example, Inspirit.UI, Inspirit.Network, etc.
-
All scripts should be under Inspirit namespace.
_functionality
-
Maintain each functionality under relevant scripts. For example, enabling and disabling UI should be under UIManager or UI related scripts. Scripts should not have randomly written functionalities. .
-
For example, An authentication call should be under Eduiz. Network.
_cleancode
-
Use events and delegates to maintain clean code.
-
Check the below links for more
https://learn.unity.com/tutorial/events-uh#5c894782edbc2a1410355442 http://www.theappguruz.com/blog/using-delegates-and-events-in-unity
​
Snippet
-
Public delegate void ButtonPressed ();
-
Public event ButtonPressed OnButtonPressed;
​
Do not use Invoke and SendMessage or anything that uses string to call a method. Use coroutine or action.
​
Snippet
public static Coroutine Invoke(this MonoBehaviour monoBehaviour, Action action, float time)
{
return monoBehaviour.StartCoroutine(InvokeImpl(action, time));
}
​
private static IEnumerator InvokeImpl(Action action, float time)
{
yield return new WaitForSeconds(time); action();
}
_comments
-
Write a summary of each function
-
Each class should have a brief
_usage
-
Use enum instead of Boolean
-
Save game state in enum
-
Save game OnApplicationPause () // OnApplicationQuit ()
-
Save player status on regular intervals (depends on the game)
-
Use prefabs. Do not use models directly in scene. Make use of the “New Prefab System” (keep the prefabs as hierarchy prefab if necessary)
-
Do not use strings other than displayed text. If necessary, use const string and as- sign the value
-
Code repetition is not allowed
-
Do not use public variables for the sake of making it visible in the Inspector window.
-
Use private variables and [serializeField]
-
Use properties to make get/set values private/public
_sourcecontrol//versioncontrol
-
Only commit, when the code is complete and bug-free
-
Get a commit notification à Or enable it from version control software
-
Never commit test assets (3D assets and other binary files). Commit only finalized binary files
_designpatterns
-
Use singletons for all manager classes
-
Use the command pattern to save data as a list
-
To avoid data loss, save as scriptable object and then in DB
_SaveData
-
Save all game data as a scriptable object in unity before saving it to DB
-
Check whether local data or server data is new before updating it to DB
Note: These are only development guidelines. Once the game concept is final other guidelines will be developed.
Technical Guidelines
E D U I Z
E D U I Z
Test Cases
Test
​
Network
Basic network connection_Net001
-
Launch app in the phone.
-
Simultaneously launch the app in VR.
-
Check if both of these are connected (check connection msg)
Voice Chat_Net002
-
Launch app in multiple devices from varied location
-
Try to establish voice communication Shared
puzzle_Net003 .
-
Launch the app on many devices simultaneously
-
Go to Chapter 1 puzzle on all devices
-
Check if the connection has been established (check the connection log msg)
-
Check if all players can play in the same arena
Database
Close the app_DB001
-
Launch the app
-
Login with provided credentials
-
Make progress in the game
-
Close the game and kill the app from the background (restart the device if required)
-
Launch the app again
-
Check if the app returns to the saved location
Switch Off_DB002
-
Launch the app
-
Login
-
Make progress in the game
-
Switch off the device while in the app
-
Wait for few seconds then switch on the device
-
Launch the app again
-
Check if the app returns to the saved location
Clear Cache_DB003
-
Launch the app
-
Login
-
Make progress in the game
-
Close the game
-
Clear app cache from device settings
-
Launch the app again
-
Check if the app returns to the saved location
Gameplay
Basic_Game001
-
Launch the app
-
Login
-
Play the game as a player
-
Note the most enjoyable feature in the game
Multiplayer_Game001
-
Launch the game
-
Login
-
Connect with multiple users
-
Play games, puzzles and quiz
-
Document the most enjoyable thing in the game
Rewards Win Streak_Reward001
-
Launch and login
-
Continuously play the game and never lose
-
Check if you get the win streak reward
Badge_Reward001
-
Launch and login
-
Achieve 100 points (points yet to be decided) by winning several levels
-
Check if you get a badge
Phone/AR
Image Tracking_AR001
-
Launch and login
-
Point the camera at Image (Book and page yet to be decided)
-
Check if the expected chapter gets loaded
Input_AR002
-
Launch and login
-
Use image tracking and choose a chapter
-
Use all sorts of touch inputs mentioned in the document Check for the expected output
AR Game_AR003
-
Launch and login
-
Play the game and progress levels
-
Check if the game experience is good
-
Document what is lacking
VR
Controller ​Input_VR001
-
Launch the game on a VR device
-
Login
-
Load the available level
-
Progress in the game.
-
Test multiple controller input
-
Check if input’s functionality (as per document) works fine.
VR Game_VR002
-
Launch and login
-
Play the game and progress levels
-
Document game experience
Note: These are sample test steps to follow
