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
Ability to define, collect, and evaluate necessary data in the field of computer programming and effectively apply theoretical knowledge in practical applications..
PO-2
Possession of fundamental knowledge of computer systems, software, and hardware, and the ability to effectively utilize the required technologies for the profession.
PO-3
Possession of up-to-date, fundamental, and applied knowledge related to computer programming.
PO-4
Awareness of occupational health and safety, environmental consciousness, and quality processes, and the ability to apply them in the workplace.
PO-5
Ability to follow developments in information technologies and integrate innovations into the profession.
PO-6
Effectively using information technologies related to the profession (software, programs, animations, etc.).
PO-7
Acquiring the analytical thinking skills required by computer programming, developing and executing programs with an appropriate perspective.
PO-8
Independently evaluating professional problems and issues with an analytical and critical approach and presenting solutions.
PO-9
Effectively expressing the work conducted in the field to project teams and institutions.
PO-10
Taking responsibility in the workplace, organizing employees and workflow, and providing services in accordance with quality and standards.
PO-11
Effectively presenting thoughts at the level of knowledge and skills through written and verbal communication in a clear and understandable manner.
PO-12
Valuing teamwork, contributing to the group, and collaborating effectively with colleagues.
PO-13
Ability to adapt to next-generation technologies such as artificial intelligence, big data analytics, cybersecurity, and cloud computing, and to acquire fundamental knowledge and skills in these areas.
PO-14
Being aware of career management and lifelong learning, following technological advancements, and continuously improving oneself.
PO-15
Possessing social, scientific, cultural, and ethical values in the collection, implementation, and dissemination of field-related data.
PO-16
Possession of foreign language skills sufficient to follow developments in the field and communicate at an international level.
PO-17
Emphasizing effective communication in the field and using the Turkish language accurately.
PO-18
Ability to adopt and promote workplace safety, health, and environmental awareness.
PO-19
Ability to objectively evaluate the performance of team members and provide accurate information to management.
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.