Game Programming course will teach you the basic knowledge you need to be able to design, implement, test and debug game programs. In this context, you will have an understanding on the principles of game design, terminology of game programming, technologies underlying modern game engines, team project management. Another significant objective of this course is bringing students in multidisciplinary view on computer science since game programming uses knowledge about several disciplines such as AI, Physics, Learning, Mathematics, HCI and Computer Graphics.
Discovering Unity
- Recognizing the working environment
- Creating and organizing projects
- Manage scene appearance
- Creating objects
- Object transform management
Working with the terrain editor
- To define the land geometry
- Create topography
- Creating land texture
- Creating trees and forests
- To create lawns and works
- Arrange the land settings
Creating the environment
- Adding sky, sun and fog
- Use the primary viewing angle (FPC)
- Publish project settings
Start coding with Unity
- Discovering Unity code structure
- Using variables and functions
- Syntax, punctuation and using the console
- understand rotation and time functions
- Encode simple functions
- Working with Transformations
- Using conditions
Encode in-game
- Working with distance variables and local variables
- Adding sky, sun and fog
- Use the primary viewing angle (FPC)
- Publish project settings
- use Raycast object
- Create timers
- understand the OnCollision variable and its tags
- send messages
- Create response to messages
Working with game objects and components
- Creating game objects
- understand the components
- Using collisions and triggers
- Working with physics components
- Adding wind
- Using an audio source
- Creating a noisy environment
- Add sound effects
Working with reusable objects
- Creating and using a reusable object (Prefab)
Working with particle systems and effects
- Creating particle systems
- Creating effects with particle systems
- Use water effects
Working with exogenous assets
- get objects from outside
- Working with materials
- Animation from outside
Working with light
- Use linear light
- use point light
- Use spotlight
Creating game interfaces
- Working with Unity GUI
- Encode in-game menus
Designing artificial intelligence
- Understanding Artificial Intelligence
- Establishing awareness of threat detection
- Creating an obstacle awareness
Develop games for mobile devices
- Working with TouchPhase and accelerators
Designing Simple Augmented Reality
- Create AR compatible objects
- Create a marker
- AR framework integration
- Publishing on tablet
Design Simple Virtual Reality
- Oculus Rift (Virtual Eyewear) setup
- Unity3d-Oculus Rift integration
- Creating objects and interacting
- Virtual browsing in environments created using Oculus Rift Eyeglass.
Publish the project)
- Compiling code
- Publish for web and mobile platforms
- Distribute via mobile stores
Application
- FPS
- shoot'em up
- platform game
- car race
Prerequisite(s)
None
Corequisite(s)
None
Special Requisite(s)
None
Instructor(s)
LecturerAhmet Gökhan Uluçay
Course Assistant(s)
None
Schedule
Tuesday 13: 00-17: 00 - CATS Meetings
Office Hour(s)
CATS Meetings
Teaching Methods and Techniques
** It was planned as formal, but after the developments in the pandemic process, it was decided to continue the course with the Digital Distance Education method within the framework of the recommendations of YÖK. The theoretical part of the course will be supported by sectoral E-Webinars that will be given in the Fall Semester with 100% Asynchronous and Synchronous enriched digital method and CATs V3.0 interface. Those that can be given from the Applied parts of the course will be given again by the Digital Distance Education method, and according to the developments experienced during the pandemic process of the applications that cannot be given, in the Fall Semester in the last semester of the semester, they will be given with the optional appointment method and the hybrid method alternately watched over the CATs V3.0 system.
Principle Sources
-Game Coding Complete, Fourth Edition by Mike McShaffry and David Graham (Mar 5, 2012)
Other Sources
-The Game Maker's Apprentice: Game Development for Beginners by Jacob Habgood, Mark Overmars and Phil Wilson (Jul 9, 2006)
Course Schedules
Week
Contents
Learning Methods
1. Week
Basic concepts of game programming
oral presentation, laboratory
2. Week
Basic concepts of game programming
oral presentation, laboratory
3. Week
The algorithms used in game development, processes and technologies
oral presentation, laboratory
4. Week
The algorithms used in game development, processes and technologies
oral presentation, laboratory
5. Week
The algorithms used in game development, processes and technologies
oral presentation, laboratory
6. Week
Create simple animations and games using the game engine to develop
oral presentation, laboratory
7. Week
Create simple animations and games using the game engine to develop
oral presentation, laboratory
8. Week
Create simple animations and games using the game engine to develop
oral presentation, laboratory
9. Week
Create simple animations and games using the game engine to develop
oral presentation, laboratory
10. Week
Create simple animations and games using the game engine to develop
oral presentation, laboratory
11. Week
Basic math and physics knowledge to use in programming
oral presentation, laboratory
12. Week
Basic math and physics knowledge to use in programming
oral presentation, laboratory
13. Week
In computer science, a multidisciplinary overview
oral presentation, laboratory
14. Week
Computer game design ethics
oral presentation, laboratory
15. Week
Final
Final
16. Week
Final
Final
17. Week
Final
Final
Assessments
Evaluation tools
Quantity
Weight(%)
Midterm(s)
1
30
Quizzes
1
30
Final Exam
1
40
Program Outcomes
PO-1
Effectively identifying collecting and evaluating the data required for the Computer Programming field and using theoretical knowledge for creating applications.
PO-2
Being equipped with basics of computer science.
PO-3
Possessing the knowledge of all necessary software and equipment in the profession.
PO-4
Emphasizing team work, contributing to the group and operating with team chemistry.
PO-5
Effectively expressing and sharing the completed work with project group and teammates.
PO-6
Objectively evaluating the performance of employees under his/her supervision and providing objective information to the management.
PO-7
Demonstrating problem solving skills and the education he/she obtained at the program.
PO-8
Possessing the computer programming knowledge built on skills, information and competencies provided by secondary education and supperted by higher education course materials, and demonstrating the understanding of concepts in the field of computer programming.
PO-9
Acquiring the analytical thinking skills required in the field of computer programming, and creating and running programs in accordance with this analytical perspective.
PO-10
Complying with ethical values of the field of Computer Programming and carrying social responsibility.
PO-11
Developing sufficent foreign language skills to conduct the work and follow the global developments at the best level.
PO-12
Empasizing communication and using Turkish accurately in this communication.
PO-13
Ensuring the security, environment and health awareness at personal level and among his/her employees.
PO-14
Following technological innovations in software and hardware after graduation and sustaining continuous personal development.
PO-15
Claiming responsibility at his/her workplace, organizing work flow with employees and operating according to high quality work standards.
Learning Outcomes
LO-1
Have an understanding on the basic terminology of game programming
LO-2
Knowledge on the algorithms, processes and technologies used in game programming.
LO-3
The ability to create simple animations and develop games by using game engines.
LO-4
The ability to combine basic knowledge on Mathematics and Physics with programming.
LO-5
A very basic understanding on computer graphics and artificial intelligence.
A multidisciplinary point of view on computer science.
Ethical awareness while designing computer games.