Information
| Unit | FACULTY OF SCIENCE AND LETTERS |
| COMPUTER SCIENCES PR. | |
| Code | BBZ404 |
| Name | Game Programming |
| Term | 2026-2027 Academic Year |
| Semester | 8. Semester |
| Duration (T+A) | 2-2 (T-A) (17 Week) |
| ECTS | 5 ECTS |
| National Credit | 3 National Credit |
| Teaching Language | Türkçe |
| Level | Belirsiz |
| Type | Normal |
| Label | E Elective |
| Mode of study | Yüz Yüze Öğretim |
| Catalog Information Coordinator | Dr. Öğr. Üyesi Cevher ÖZDEN |
| Course Instructor |
The current term course schedule has not been prepared yet.
|
Course Goal / Objective
The aim of this course is to enable students to learn 2D and 3D game development processes at both conceptual and practical levels using the Unity game engine and the C# programming language, and to apply the game loop, scene management, object-component architecture, physics, user interaction, animation, user interface, basic game artificial intelligence, and project development processes within an integrated game prototype.
Course Content
Introduction to game programming; game loop, game objects, component-based architecture, and the basic use of the Unity Editor; Unity scripting with C#; 2D game development, sprites, 2D physics, collision, trigger events, animation, and user interface design; 3D game development, camera, lighting, materials, 3D physics, character/object control, and interaction; prefab structure, scene management, level design, score and game state management; basic game artificial intelligence, audio and visual effects; debugging, performance improvement, game packaging, and term project development.
Course Precondition
There is no prerequisite. Prior knowledge of object-oriented programming, basic algorithm development, and the C# programming language is recommended.
Resources
Lecture notes, official Unity documentation, Unity Learn materials, Microsoft C# documentation, and sample project notes provided by the instructor. The Unity documentation is the main technical reference for developing 2D and 3D games, applications, and experiences with Unity, while Unity Learn provides free learning pathways and tutorials for game development and real-time 3D skills.
Notes
Nystrom, R. Game Programming Patterns; Microsoft C# Guide; Unity Manual; Unity Learn beginner projects; Unity 2D Game Development Documentation; Unity Physics, Animation, UI, and Audio documentation. The Microsoft documentation for C# provides tutorials, code samples, and language reference materials for getting started with C# and the .NET platform
Course Learning Outcomes
| Order | Course Learning Outcomes |
|---|---|
| LO01 | Explains the fundamental concepts of game programming, the game loop, and the role of game engines in the software development process. |
| LO02 | Creates game objects using the Unity Editor, scene structure, GameObject model, and component-based architecture. |
| LO03 | Develops the behaviors of game objects using C# and Unity scripting structures. |
| LO04 | Develops 2D game mechanics using sprites, camera, 2D physics, collision, and trigger events. |
| LO05 | Applies animation, user interface, score system, and game state management components in 2D games. |
| LO06 | Develops 3D game scenes using camera, lighting, materials, 3D physics, and object control. |
| LO07 | Uses prefabs, scene management, level design, and interactive game objects within an integrated game structure. |
| LO08 | Applies basic game artificial intelligence, audio, visual effects, debugging, and performance improvement approaches. |
| LO09 | Develops and presents a working 2D or 3D game prototype according to specified requirements. |
Relation with Program Learning Outcome
| Order | Type | Program Learning Outcomes | Level |
|---|---|---|---|
| PLO01 | Bilgi - Kuramsal, Olgusal | Gain comprehensive knowledge of fundamental concepts, algorithms, and data structures in Computer Science. | 3 |
| PLO02 | Bilgi - Kuramsal, Olgusal | Learn essential computer topics such as software development, programming languages, and database management | 3 |
| PLO03 | Bilgi - Kuramsal, Olgusal | Understand advanced computer fields like data science, artificial intelligence, and machine learning. | 3 |
| PLO04 | Bilgi - Kuramsal, Olgusal | Acquire knowledge of topics like computer networks, cybersecurity, and database design. | 2 |
| PLO05 | Beceriler - Bilişsel, Uygulamalı | Develop skills in designing, implementing, and analyzing algorithms | 3 |
| PLO06 | Beceriler - Bilişsel, Uygulamalı | Gain proficiency in using various programming languages effectively | 3 |
| PLO07 | Beceriler - Bilişsel, Uygulamalı | Learn skills in data analysis, database management, and processing large datasets. | 2 |
| PLO08 | Beceriler - Bilişsel, Uygulamalı | Acquire practical experience through working on software development projects. | 3 |
| PLO09 | Yetkinlikler - Bağımsız Çalışabilme ve Sorumluluk Alabilme Yetkinliği | Strengthen teamwork and communication skills. | |
| PLO10 | Yetkinlikler - Alana Özgü Yetkinlik | Foster a mindset open to technological innovations. | |
| PLO11 | Yetkinlikler - Öğrenme Yetkinliği | Encourage the capacity for continuous learning and self-improvement. | |
| PLO12 | Yetkinlikler - İletişim ve Sosyal Yetkinlik | Enhance the ability to solve complex problems | 3 |
Week Plan
| Week | Topic | Preparation | Methods |
|---|---|---|---|
| 1 | Introduction to game programming; game loop, game engines, Unity Editor, scene, GameObject, and Component logic | Unity installation and interface review | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma |
| 2 | Unity scripting with C#: MonoBehaviour, Start, Update, variables, methods, prefab logic, and basic code organization | Review of basic C# syntax | Öğretim Yöntemleri: Gösterip Yaptırma, Anlatım |
| 3 | Introduction to 2D game development: sprite usage, camera settings, input handling, and character movement | Review of sprite and 2D scene examples | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma |
| 4 | 2D physics: Rigidbody2D, Collider2D, collision, trigger events, jumping, and platform mechanics | Review of Unity 2D physics components | Öğretim Yöntemleri: Alıştırma ve Uygulama, Gösterip Yaptırma, Anlatım |
| 5 | 2D level design: Tilemap usage, scene layout, placement of obstacles, enemies, and collectible objects | Review of Tilemap and level design examples | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 6 | 2D animation: Animator, character states, simple enemy behavior, and improving game feel | Review of Animator window and animation examples | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 7 | 2D game user interface: score, health, timer, menu, game state, winning and losing conditions | Review of Unity UI components | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 8 | Mid-Term Exam | Review of topics | Ölçme Yöntemleri: Yazılı Sınav |
| 9 | Introduction to 3D game development: coordinate system, camera, lighting, materials, 3D scene structure, and basic object usage | Review of 3D scene, camera, and lighting examples | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 10 | 3D movement and camera control: character/object movement, first-person or third-person control approaches | Review of 3D movement and camera control examples | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 11 | 3D physics and interaction: Rigidbody, Collider, raycasting, trigger events, and interactive objects | Review of Rigidbody, Collider, and raycasting concepts | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 12 | 3D level design: prefab usage, scene organization, collectibles, obstacles, and game objectives | Review of prefab and scene organization examples | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 13 | Basic game artificial intelligence: patrol, chase, avoidance, target selection, simple decision rules, and introduction to NavMesh | Review of simple enemy behavior and NavMesh examples | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 14 | Audio, visual effects, debugging, performance improvement, secure coding, and improving game quality | Review of audio, effects, and profiler tools | Öğretim Yöntemleri: Anlatım, Gösterip Yaptırma, Proje Temelli Öğrenme |
| 15 | Game packaging, building the game, term project presentations, code defense, and general evaluation | Preparation of project files and presentation | Öğretim Yöntemleri: Gösterip Yaptırma, Anlatım, Proje Temelli Öğrenme |
| 16 | Term Exams | Final project presentations | Ölçme Yöntemleri: Proje / Tasarım |
| 17 | Term Exams | General review | Ölçme Yöntemleri: Yazılı Sınav |
Student Workload - ECTS
| Works | Number | Time (Hour) | Workload (Hour) |
|---|---|---|---|
| Course Related Works | |||
| Class Time (Exam weeks are excluded) | 14 | 4 | 56 |
| Out of Class Study (Preliminary Work, Practice) | 14 | 4 | 56 |
| Assesment Related Works | |||
| Homeworks, Projects, Others | 5 | 2 | 10 |
| Mid-term Exams (Written, Oral, etc.) | 1 | 3 | 3 |
| Final Exam | 1 | 5 | 5 |
| Total Workload (Hour) | 130 | ||
| Total Workload / 25 (h) | 5,20 | ||
| ECTS | 5 ECTS | ||