Game Programming Using C#
Game Programming Using C#
Prerequisites:
Course Objectives
1. Learn programming basics, data structures, algorithms, and OOP using C#.
2. Gain proficiency in the Unity Editor, scene hierarchy, and game object manipulation.
3. Design and implement 2D game mechanics, animations, physics, and UI in Unity.
4. Develop 3D game objects, character controls, camera systems, and environments.
5. Explore networking, coroutines, and advanced OOP for game development.
Course outcome
1. Develop and apply fundamental programming skills using C# for problem-solving and
algorithm implementation.
2. Navigate and utilize the Unity Editor to create and manipulate game objects effectively.
3. Create 2D games with functional mechanics, animations, and user interfaces in Unity.
4. Implement 3D game features including character movement and camera systems in
Unity.
5. Apply advanced programming techniques and networking concepts to create robust and
interactive game features.
Hands on:
Description: Students will examine simple code examples to understand how basic
programming constructs work in practice.
● Sorting Algorithms: Comparison and analysis of different sorting algorithms (e.g.,
Bubble Sort, Insertion Sort, Merge Sort).
Description: Students will compare the efficiency and implementation of different sorting
algorithms, understanding the trade-offs between them.
Experiments/Practical Activities:
○ Write a C# script for player movement: Students will write a script in C# that
controls a game object's movement based on player input. Description: This
experiment reinforces the application of variables, operators, and control flow in a
game context.
○ Implement a simple search algorithm: Students will implement a search
algorithm (e.g., linear search, binary search) in C#. Description: This experiment
provides hands-on experience with implementing and using algorithms.
Unity Editor, Scene Hierarchy, Game Objects, C# in Unity, Navigating the Unity Editor,
Creating and Manipulating Game Objects (Transforms, Components), C# Scripting in
Unity (Mono Behaviour, Game Object Interaction)
Hands on:
● Create a simple 3D scene: Students will create a simple 3D scene using basic
shapes, lighting, and materials in Unity. Description: This experiment provides
hands-on experience with the Unity editor and basic scene construction.
● Write a C# script to control a game object: Students will write a C# script to
control the behavior of a game object in Unity (e.g., movement, rotation).
Description: This reinforces the connection between C# scripting and Unity game
objects.
Case Studies:
Hands on:
● Create a 2D platformer level: Students will create a simple 2D platformer level with
basic player movement and collisions. Description: This experiment applies 2D physics
and collision detection in a practical level design exercise.
● Develop a 2D game with UI: Students will develop a small 2D game with a basic UI
(e.g., score display, game over screen). Description: This experiment combines 2D game
mechanics with UI design and implementation.
Case Studies:
Topics: 3D Game Objects, 3D Models, Character Control, Camera Systems, Importing and
using 3D models, implementing 3D character movement (Character Controller, Rigidbody),
Implementing different camera systems (Third-person, First-person)
Hans on:
● Create a simple 3D character: Students will create a simple 3D character and import it
into Unity. Description: This experiment provides hands-on experience with importing
and setting up 3D models.
● Super Mario 64: Analysis of the game's 3D character movement, camera control, and
level design. Description: Students will analyze a classic 3D platformer to understand
how movement and camera are handled in 3D space.
● Simple 3D scene creation: Analysis of the process of creating a simple 3D scene with
character and camera setup. Description: Students will learn how to combine 3D models,
character controller, and camera setups to create a functional 3D scene.
Hands on:
Implement a state machine: Students will implement a state machine using C# classes
and interfaces. Description: This experiment applies OOP principles to create a common
game development pattern.
Case Studies:
● Unity Game Engine Analysis: Analysis of how Unity utilizes OOP principles in its
architecture. Description: Students will examine the Unity engine's structure to
understand how OOP is applied in a complex system.
● Inventory System Development: Analysis of how an inventory system can be
implemented using C# classes and OOP principles. Description: Students will analyze
how to use OOP to create a practical game system.
Text Books:
1.Troelsen, A., & Japikse, P. (2021). Pro C# 9 with .NET 5: Foundational Principles
and Practices in Programming. Apress.
3.Milella, F. (2020). Unity Game Optimization: Enhance and Extend the Performance of
Your Unity Projects. Packt Publishing.
5.Bernal, A. (2022). Game Development Patterns with Unity 2021. Packt Publishing.