Tutor: Octavian Gheorghiu
The class aims to introduce students to game engine scripting as a tool for design exploration and design communication. At the end of the class the students will build an app that explores an algorithm related to their design concept.
- Inspire, motivate and challenge students
- Make productive use of assessments
- Adapt classes to respond to strengths and needs of students
- Learn the necessary skills required to write and execute code
- Learn the necessary skills to produce an app or a video game
- Unity Game Engine, Version 2017.2
- Visual Studio Community 2017
- All the objectives subcategories will be assessed by a small exercise that will require the students to use the newly learned skill
- Skills development will require previous understanding of learned skills to proceed, thus showcasing when a necessary skill has yet to be learned
- The final exercise will require the usage of most of the learned skills
Five sessions totalling 10 hours:
- Session 1: Scripting in Unity and Data Structures
- Variables
- Functions
- Arrays
- Lists
- Dictionaries
- Session 2: Conditionals, Loops and Classes
- Shorthand conditions
- For and foreach loops
- Class extension
- Interfaces
- Composition
- Session 3: Scrip logic in Unity and Debugging
- Updates and Delta Time
- Translate, rotate and scale
- Keyboard input
- Mouse input
- Linking scripts to Unity editor
- Debugging
- The Call Stack
- Logging exceptions
- Session 4: Prefabs and Advanced Scripting
- Creating prefabs
- Storing and managing prefabs
- Coroutines
- Events and messaging system
- Ray casting
- Dynamic meshes
- Quadtrees
- Session 5: Conway`s game of Life Example
- Algorithm explanation
- Unity implementation
- Output from code
- Session 1 homework:
- Declare a int variable and set a value
- Declare a float variable and set a value
- Declare a string variable and set a value
- Create a function that prints the declared variables
- Declare and initialize an array
- Declare and initialize a list
- Create and initialize a Dictionary
- Session 2 homework:
- Write a function that uses a condition
- Write a for loop
- Write a dog class and initialize an instance of the class
- Session 3 homework:
- Create a cube and move it across the screen
- Create a cube and change its colour when key is pressed or mouse is pressed
- Add a script to a game object
- Session 4 homework:
- Create a cube prefab that has a script attached to it
- Write a change colour coroutine
- Create a cube array and change destroy them in play mode using ray casting
Modify the Unity implementation of Conway`s game of life by:
- Add a coroutine to change the cubes colour based on time spent alive
- Store in a data structure the results of various frames
- Altering the rules of the game to produce new results
- Object Oriented Languages: https://goo.gl/chcD4L
- C# for Unity: https://goo.gl/dJsHf6
- Advanced Unity Scripting: https://goo.gl/uXct66
- Class Participation – 30%
- Class Homework – 70%
UCL takes plagiarism very seriously and regards it as a form of fraud. The definition of plagiarism that has been adopted by the School of Continuing and Professional Studies is as follows: "Plagiarism is presenting someone else's work as though it were one's own. More specifically, plagiarism is to present as one's own words quoted without quotation marks from another writer; a paraphrased passage from another writer’s work; or facts or ideas gathered, organized, and reported by someone else, orally and/or in writing. Since plagiarism is a matter of fact, not of the student's intention, it is crucial that acknowledgement of the sources be accurate and complete. Even where there is not a conscious intention to deceive, the failure to make appropriate acknowledgement constitutes plagiarism. Penalties for plagiarism range from failure for a paper or course to dismissal from the University.
Reuse and building upon ideas or code are major parts of modern software development. As a professional programmer you will never write anything from scratch. This class is structured such that all solutions are public. You are encouraged to learn from the work of your peers. I won't hunt down people who are simply copying-and-pasting solutions, because without challenging themselves, they are simply wasting their time and money taking this class.
Please respect the terms of use and/or license of any code you find, and if you reimplement or duplicate an algorithm or code from elsewhere, credit the original source with an inline comment.