Creating ELearning Games with Unity
()
About this ebook
This book is intended for novice game programmers with a little experience in Unity3D, who want to learn how to program eLearning games. Educators and trainers who want to use Unity in an eLearning setting will also benefit from the book. It would be helpful to have a basic understanding of the concepts such as Unity scripting and the Finite State Machine (FSM), but no prior experience in game development is required.
Related to Creating ELearning Games with Unity
Related ebooks
Unity Game Development Scripting Rating: 0 out of 5 stars0 ratingsUnity Game Development Blueprints Rating: 0 out of 5 stars0 ratingsGetting Started with Unity 5 Rating: 5 out of 5 stars5/5Unity from Proficiency to Mastery (Artificial Intelligence): Unity from Proficiency to Mastery, #1 Rating: 0 out of 5 stars0 ratingsMastering Unity Scripting Rating: 0 out of 5 stars0 ratingsGame Development with Three.js Rating: 0 out of 5 stars0 ratingsMastering Unity 2D Game Development Rating: 5 out of 5 stars5/5Mobile Game Design Essentials Rating: 0 out of 5 stars0 ratingsProcedural Content Generation for Unity Game Development Rating: 0 out of 5 stars0 ratingsMastering Game Development with PyGame: From Basics to Advanced Techniques Rating: 0 out of 5 stars0 ratingsMastering Unity 2D Game Development - Second Edition Rating: 0 out of 5 stars0 ratingsUnity from Zero to Proficiency (Foundations) Fifth Edition: Unity from Zero to Proficiency, #1 Rating: 5 out of 5 stars5/5Unity from Zero to Proficiency (Beginner): Unity from Zero to Proficiency, #2 Rating: 5 out of 5 stars5/5Unity Game Development Essentials Rating: 5 out of 5 stars5/5Unity from Zero to Proficiency (Intermediate): Unity from Zero to Proficiency, #3 Rating: 2 out of 5 stars2/5Mastering Oculus Rift Development Rating: 0 out of 5 stars0 ratingsUnreal Engine From Zero to Proficiency (Beginner): Unreal Engine from Zero to Proficiency, #2 Rating: 0 out of 5 stars0 ratingsUnity AI Programming Essentials Rating: 0 out of 5 stars0 ratingsUnity from Proficiency to Mastery (C# Programming): Unity 5 from Proficiency to Mastery, #2 Rating: 0 out of 5 stars0 ratingsUnity Multiplayer Games Rating: 5 out of 5 stars5/5Blueprints Visual Scripting for Unreal Engine Rating: 0 out of 5 stars0 ratingsUnity 5.x By Example Rating: 0 out of 5 stars0 ratingsUnity from Zero to Proficiency (Proficient): Unity from Zero to Proficiency, #5 Rating: 5 out of 5 stars5/5Learning C++ by Creating Games with UE4 Rating: 3 out of 5 stars3/5Unreal Engine 4.X By Example Rating: 0 out of 5 stars0 ratingsSFML Blueprints Rating: 0 out of 5 stars0 ratingsAndroid Game Programming by Example Rating: 0 out of 5 stars0 ratingsGodot from Zero to Proficiency (Beginner): Godot from Zero to Proficiency, #2 Rating: 5 out of 5 stars5/5Unreal Engine 4 Game Development Essentials Rating: 4 out of 5 stars4/5First Steps in Unreal: Building Your First Game: Mastering Unreal Engine: From Novice to Pro Rating: 0 out of 5 stars0 ratings
Computers For You
The Invisible Rainbow: A History of Electricity and Life Rating: 5 out of 5 stars5/5Mastering ChatGPT: 21 Prompts Templates for Effortless Writing Rating: 4 out of 5 stars4/5Elon Musk Rating: 4 out of 5 stars4/5The Innovators: How a Group of Hackers, Geniuses, and Geeks Created the Digital Revolution Rating: 4 out of 5 stars4/5Standard Deviations: Flawed Assumptions, Tortured Data, and Other Ways to Lie with Statistics Rating: 4 out of 5 stars4/5How to Create Cpn Numbers the Right way: A Step by Step Guide to Creating cpn Numbers Legally Rating: 4 out of 5 stars4/5Uncanny Valley: A Memoir Rating: 4 out of 5 stars4/5Alan Turing: The Enigma: The Book That Inspired the Film The Imitation Game - Updated Edition Rating: 4 out of 5 stars4/5Excel 101: A Beginner's & Intermediate's Guide for Mastering the Quintessence of Microsoft Excel (2010-2019 & 365) in no time! Rating: 0 out of 5 stars0 ratingsEverybody Lies: Big Data, New Data, and What the Internet Can Tell Us About Who We Really Are Rating: 4 out of 5 stars4/5The ChatGPT Millionaire Handbook: Make Money Online With the Power of AI Technology Rating: 4 out of 5 stars4/5SQL QuickStart Guide: The Simplified Beginner's Guide to Managing, Analyzing, and Manipulating Data With SQL Rating: 4 out of 5 stars4/5The Hacker Crackdown: Law and Disorder on the Electronic Frontier Rating: 4 out of 5 stars4/5Deep Search: How to Explore the Internet More Effectively Rating: 5 out of 5 stars5/5CompTIA Security+ Get Certified Get Ahead: SY0-701 Study Guide Rating: 5 out of 5 stars5/5Slenderman: Online Obsession, Mental Illness, and the Violent Crime of Two Midwestern Girls Rating: 4 out of 5 stars4/5Grokking Algorithms: An illustrated guide for programmers and other curious people Rating: 4 out of 5 stars4/5101 Awesome Builds: Minecraft® Secrets from the World's Greatest Crafters Rating: 4 out of 5 stars4/5Procreate for Beginners: Introduction to Procreate for Drawing and Illustrating on the iPad Rating: 5 out of 5 stars5/5The Professional Voiceover Handbook: Voiceover training, #1 Rating: 5 out of 5 stars5/5ChatGPT 4 $10,000 per Month #1 Beginners Guide to Make Money Online Generated by Artificial Intelligence Rating: 0 out of 5 stars0 ratingsLearning the Chess Openings Rating: 5 out of 5 stars5/5An Ultimate Guide to Kali Linux for Beginners Rating: 3 out of 5 stars3/5CompTIA IT Fundamentals (ITF+) Study Guide: Exam FC0-U61 Rating: 0 out of 5 stars0 ratingsTor and the Dark Art of Anonymity Rating: 5 out of 5 stars5/5
Reviews for Creating ELearning Games with Unity
0 ratings0 reviews
Book preview
Creating ELearning Games with Unity - David Horachek
Table of Contents
Creating E-Learning Games with Unity
Credits
About the Author
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers and more
Why Subscribe?
Free Access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Downloading the color images of this book
Errata
Piracy
Questions
1. Introduction to E-Learning and the Three Cs of 3D Games
Understanding e-learning
Introducing our game – Geography Quest
Comprehending the three Cs
Creating our first scene
Developing the character system
Building character representation
Developing the camera code
Implementing GameCam.cs
Developing the player controls code
Implementing PlayerControls.cs
Try it out!
Summary
2. Interactive Objects and MissionMgr
Understanding the base scripts
Building an interactive object
Implementing the CustomGameObj script
Implementing the InteractiveObj script
Implementing the ObjectInteraction script
Implementing the InventoryItem script
Implementing the InventoryMgr script
Implementing the DisplayInventory method
Implementing the MissionMgr script
Implementing the Mission script
Implementing the MissionToken script
Implementing the SimpleLifespanScript
Putting it all together
Testing the mission system
Try it out!
Summary
3. Mission One – Find the Facts
Finding the facts
Designing games to maximize fun
The teaching loop in game design
Implementing the core classes for mission one
Creating a terrain
Creating the FlagLocators GameObject
Creating the FlagMonument GameObject
Creating the MonumentMgr Script
Creating the InventoryPlaceOnMonument class
Creating the MissionMgrHelper script
Creating the TriviaCardScript script
Creating the SetupMissionOne script
Creating the flag Prefabs
Creating the pop-up card Prefabs
Creating the mission pop-up Prefab
Creating the mission reward Prefabs
Creating the FoundAllTheFlags Prefab
Creating the ReturnedTheFlagsResult Prefab
Configuring the mission manager
Playing the level!
Summary
4. Mission One – Future Proofing the Code
Reorganizing our GameObjects in the Scene view
Creating a global scene
Creating a first level scene
Adding new scenes to the project
Creating the PopupMainMenu GameObject
An introduction to Finite State Machines
Implementing an FSM in a game
The switch case FSM
Classes implementation of FSM
Implementing the GameMgr script
Reflecting on our code changes
Analyzing code functionality
Updating some systems
Making the ScorePlate active
Updating the player motion algorithm
Playing the level!
Summary
5. User Interfaces in Unity
Getting familiar with Unity UI classes
Developing the pop-up system
Exploring the GUIText component
Interpreting the members on GUIText
Exploring the GUITexture component
Exploring the TextMesh component
Ideal use of TextMesh
Creating clickable text elements
Detecting mouse clicks
Detecting mouse over
Detecting leaving mouse over
Exploring UnityScript and the GUIButton object
Using UnityGUI
Creating a clickable button
Detecting a mouse click
Building the main menu pop up
Testing our work
Future extensions
Summary
6. NPCs and Associated Technology
Creating the NPC GameObject
Implementing the npcScript class
Implementing the SplineMgr class
Connecting SplineMgr to NPCScript
Implementing the NPC decision system
Implementing the npcCondition script
Implementing the npcResponse script
Implementing the npcInteraction script
Implementing the npcDecisionMgr script
Building a collection of NPC conditions and responses
Implementing the condition_closerThanThresh script
Implementing the condition_fartherThanThresh script
Implementing the response_changeState script
Putting it all together
Summary
7. Mission Two – Testing a Player's Learning
Exploring the structure of mission two
Defining the framework for mission two
Adding a mission to the missionMgr script
Extending the GameCam script
Modifying the terrain
Adding NpcRacers to the mission
Creating the start and finish line flags
Creating the LevelStart and LevelFinished pop ups
Creating the setupLevel2 Prefab
Creating the raceStartup Prefab
Implementing the LevelLogicObj GameObject
Summary
8. Adding Animations
Exploring 3D hierarchies
Skinned meshes in Unity3D
Acquiring and importing models
Exploring the Mechanim animation system
Choosing appropriate animations
Building a simple character animation FSM
Exploring in-place versus root motion animation
Adding the character script
Building a zombie racer animation FSM
Building a quiz racer animation FSM
Exploring the Unity animation editor
Summary
9. Synthesis of Knowledge
Understanding the mission three GameObjects
Applying learning theory to mission three
Creating the structure for mission three
Modifying the terrain
Adding visitors to the park
Modifying the pop-up system
Creating the NpcLocators Prefab
Creating the CorrectResponse Prefabs
Modifying the quiz cards
Adding another data condition
Using the setupLevel3 Prefab
Creating the AddScore condition
Creating the ShowLevel3Results response
Creating the Time object
Modifying the LevelLogicObj object
Rewarding the player
Summary
10. An Extensible Game Framework Pattern in Unity
Load additively
Using delete/load patterns
Refactoring our work
The pop-up system
Updating level 3 pop ups
Updating level 2 pop ups
Updating level 1 pop ups
Refactoring level 2
Implementing a system to connect object references
Updating the SetupMission2 script
Refactoring level 3
Playing and distributing your game
Reflecting on e-learning and game design
Summary
Index
Creating E-Learning Games with Unity
Creating E-Learning Games with Unity
Copyright © 2014 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: March 2014
Production Reference: 1180314
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-84969-342-4
www.packtpub.com
Cover Image by Parag Kadam (<[email protected]>)
Credits
Author
David Horachek
Reviewers
Neeraj Jadhav
Alankar Pradhan
K. Aava Rani
Ranpariya Ankur J. [PAHeartBeat]
Acquisition Editor
Joanne Fitzpatrick
Content Development Editor
Chalini Snega Victor
Technical Editors
Arwa Manasawala
Manal Pednekar
Anand Singh
Ankita Thakur
Copy Editors
Sarang Chari
Brandt D'Mello
Mradula Hegde
Project Coordinator
Binny K. Babu
Proofreader
Simran Bhogal
Indexer
Hemangini Bari
Graphics
Ronak Dhruv
Yuvraj Mannari
Abhinash Sahu
Production Coordinator
Shantanu Zagade
Cover Work
Shantanu Zagade
About the Author
David Horachek is a video game software developer with over 13 years of experience in programming arcade, home console, and portable games. He has programmed game projects published by Midway Games, EA, Ubisoft, SEGA, and others. He develops games under the Arbelos Interactive label.
I would like to thank my wife Allison and my family for their encouragement and support, the team at Packt Publishing for their patience and advice, and aspiring e-learning game programmers for their work to come.
About the Reviewers
Neeraj Jadhav did his Bachelors in Computer Engineering from Mumbai University and Masters in Computer Science from University of Houston-Clear Lake. He has been working as a software developer for three years. His interests primarily lie in software development with Java and C# as well as web development with HTML 5, CSS 3, jQuery, and JavaScript. During his graduate years, he worked on developing games using Unity's 3D game engine with JavaScript and C#.
Alankar Pradhan is from Mumbai, Maharashtra, and went to Indian Education Society's CPV High School. He is an ambitious person who loves interacting with new people, travelling, spending leisure time with friends, or playing games on both his PC and mobile. Games have been always a passion in his life. More than just playing the game, his main curiosity is how things work. Hence, he decided to pursue his career in the same field. He graduated with BSc Honors in Software Development from Sheffield Hallam University, UK. He is currently pursuing an advanced course in game programming (BAC+5 Equivalent) from DSK Supinfogame, where he is undertaking industry-oriented projects to enhance his skill set and giving his best in doing so. He worked as a game programming intern at The Walt Disney Company India Pvt Ltd. During his internship, he worked on a live project, called Hitout Heroes, where he was responsible for integration of small gameplay modules and then social integration of Facebook into the game, but later on, the whole UI implementation, working, flow, and mechanism was managed solely by him. At the end, he was responsible for bug solving and memory management. His name was added in the credits due to his accomplishments.
He has worked in many small projects in team as well as individually, thus sharpening his own skills in various languages, such as C#, C++, Java, Unreal Script, Python, Lua, Groovy/Grails, and HTML5/CSS. He is familiar with engines such as Unity3D, Unreal Development Kit, and Visual Studio and also SDKs such as NetBeans, Eclipse, and Wintermute. Recently, in 2013, his dissertation on Comparison between Python and Lua in Gaming Industry got published as a book.
More to this, he even likes to read, listen to music, and write poems and rap songs at times. He has his own website at http://alan.poetrycraze.com where he posts his poems and has also published a book called The Art Of Lost Words, which is available on Amazon.com.
We are so often caught up with our goals that we forget to appreciate the journey, especially the people we meet on the way. Appreciation is a wonderful feeling; it's way better if we don't overlook it. I hereby take this opportunity to acknowledge the people who directed me and inspired me in this initiative. I would like to express hearty thanks to my parents, who instilled and believed in me always. I am also thankful to my friends for their constant support and encouraging words that helped me to reach this level. Last but not least, I would like to thank all the people who are directly or indirectly involved in this and helped me in one or the other way.
K. Aava Rani is a co-founder of CulpzLab Pvt Ltd., a software company having 10 years of experience in game technologies. A successful blogger and technologist, she switched her focus to game development in 2004. Since then, she has produced a number of game titles and has provided art and programming solutions to Unity developers across the globe. She is based in New Delhi, India. She has been a recipient of several prestigious awards including Adobe for game technology expert 2012 and SmartFoxServer for her articles. She has experience in various technologies.
Aava is the co-founder of CulpzLab, a software development company of highly skilled professionals in web, game development, and interactive media. Founded in 2010, CulpzLab has proven itself to be a reliable technology partner for its clients. Currently, CulpzLab employs over 50 people and is based in New Delhi, India.
CulpzLab is a leading, custom (bespoke) process-driven software solutions provider that has helped and partnered with many reputable brands, start-up ventures, and offshore IT companies, helping them realize their digital solutions and delivering effectively, efficiently, and on time.
CulpzLab has worked with a plethora of clients globally. With a diverse technology background, industry expertise, and a client footprint that extends to more than 14 countries, CulpzLab is well positioned to help organizations derive maximum value from their IT investments and fully support their business aims.
CulpzLab's core business purpose is to invent, engineer, and deliver technology solutions that drive business value, create social value, and improve the lives of customers.
I would like to acknowledge the creators of Unity3D program, the amazing tool that allows the ultimate digital experience in creative expression. I'd also like to thank my clients for being part of the fun! Many of you have become good friends over my creative successes. And finally, I'd like to thank R.K.Rajanjan, who taught me how to love and appreciate technologies.
Ranpariya Ankur J. [PAHeartBeat] represents himself in the gaming world as PAHeartBeat. He has vast experience in the computer programming field from FoxPro to Microsoft .NET technologies. In game programming, he works with one of India's successful game studios, GameAnax Inc., by IndiaNIC InfoTech Ltd., as a Unity3D game programmer, and also works on racing titles for mobile device-based games and studio's internal reusable code GameAnax Engine
, which works in Unity3D for the iOS and Android platforms. He has worked on the two most successful in-house games, Crazy Monster Truck – Escape and Go Karts, and has also worked on client projects.
Before this, he hasn't worked for any other books either as a reviewer or as a co-author; it's his first experience in book reviewing.
I would to like to thank my family and my roommates who give me space to work for games at night and adjust their routines and time according to my schedule, thus providing their help.
www.PacktPub.com
Support files, eBooks, discount offers and more
You might want to visit www.PacktPub.com for support files and downloads related to your book.
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at
At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.
http://PacktLib.PacktPub.com
Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can access, read and search across Packt's entire library of books.
Why Subscribe?
Fully searchable across every book published by Packt
Copy and paste, print and bookmark content
On demand and accessible via web browser
Free Access for Packt account holders
If you have an account with Packt at www.PacktPub.com, you can use this to access PacktLib today and view nine entirely free books. Simply use your login credentials for immediate access.
Preface
E-learning can be described as the use of computers and digital technology to facilitate teaching and learning. One popular method of accomplishing this, and which is also the approach we will take in this book, is through gamification of learning, that is, the application of cognitive psychology and game-based rules to learning systems.
At the time of writing this book, it is projected that by the year 2020, 85 percent of all daily human tasks will be gamified to some extent (Everyone is a Gamer, a HTML document by Corcione, Andrew, and Fran Tardo, available at www.prnewswire.com, February 25, 2014. This document was accessed on February 28, 2014, http://www.prnewswire.com/news-releases/everyones-a-gamer---ieee-experts-predict-gaming-will-be-integrated-into-more-than-85-percent-of-daily-tasks-by-2020-247100431.html). This book was written in parts to address the need of young programmers to have a robust and substantial example of an e-learning game to learn from.
The reader will participate in the development of an e-learning game that teaches American geography, Geography Quest. The code and the book were written in tandem so that the text could serve as an accompanying guide to the software.
What this book covers
Chapter 1, Introduction to E-Learning and the Three Cs of 3D Games, introduces e-learning and how games are effective at targeting learning outcomes. It also introduces us to Unity3D and guides us through the development of the character, camera, and control systems for the game.
Chapter 2, Interactive Objects and MissionMgr, helps us to develop some of the core technology for our game foundation. We will implement a system that tracks the user's progress in the game through the concept of a mission. We also develop an interactive object class the player can interact with.
Chapter 3, Mission One – Find the Facts, helps us to code the first level of our game by applying the learning theory we know and the technology we have developed to create an exploration level.
Chapter 4, Mission One – Future Proofing the Code, helps us finish developing the first level of our game after taking a look back at our design needs and refactoring our code so that it is maintainable and extendible. This level presents the learning outcomes to the player for the first time.
Chapter 5, User Interfaces in Unity, takes a sojourn into user interface technology in Unity. We then apply our knowledge and develop a pop-up windows system that will be used in our game.
Chapter 6, NPCs and Associated Technology, helps us apply the technology we have already built in the creation of simple computer-controlled characters for our game.
Chapter 7, Mission Two – Testing a Player's Learning, guides us to develop the second level of our game, applying all of the systems and technology we have developed thus far. This level of the game gives the player an opportunity to manipulate and practice the learning outcomes.
Chapter 8, Adding Animations, takes another sojourn into the various animation systems in Unity3D. We then apply this knowledge by replacing our existing characters with 3D animated models.
Chapter 9, Synthesis of Knowledge, helps us to develop the last level of our game in this chapter by using all of the technology and theory we have learned. This level of the game challenges the user to master the desired learning outcomes.
Chapter 10, An Extensible Game Framework Pattern in Unity, integrates our game levels into one extensible framework. We will polish it more and then package the game up for your user to run on their PC.
What you need for this book
You will need Unity Version 4.2.2f1, which at the time of writing this book may be downloaded from http://unity3d.com/unity/download/archive.
Who this book is for
This book is intended for beginners in Unity3D programming who wish to develop games in Unity3D that teach and inform the user of specific learning outcomes. Common target applications could be for training