CS2335
Master 1.0.0
Master 1.0.0
  • Introduction
  • Introduction
    • Introduction
      • Game Design
    • Unity - Download
    • Visual Studio - IDE
    • Unity Manual, Scripting API
  • Unity Basics
    • Unity Editor Windows
    • Behavior Components
    • 2D Project, Scenes
      • Create 2D Sprite GameObject
      • Create UI-Text GameObject
    • MonoBehavior - Base-Class
    • Create a Custom C# Script
  • Game Coding Structures
    • Games Overview
    • Unity Engine - Event Functions
    • Finite State Machines
    • UML Class Diagram
  • Animation
    • Animator Controller
    • Animation Steps
      • Optional: Dead Animation
    • PlayerController.cs V0
  • Project 1 - Player
    • Player GameObject v1
      • C# Generics, Statics
    • Player GameObject - Jump
    • PlayerController.cs V2-Jump
    • PickUp PreFabs
      • Sorting Layers
    • PlayerController.cs V3-Collide
    • GameData Version1
    • GameData Version2
    • PlayerController V4-Score
  • Project 1 Details
    • Project1 GameObjects
    • PlayerStats Version1
      • UI-Canvas
    • Utility Class
    • Simple Spawner
    • MiniGameManager
      • Logic Diagrams
      • StartButton
      • ResultsPanel
  • Project1 Enhancements
    • PickUp - SelfDestruct
    • Spawn from List of Prefabs
  • Project 2 - StateManager
    • Project 2 - Learning Objectives
      • Inspiration
        • Branching Story Structures
        • Branching Structures
        • Hero's Journey
        • Visual Novel in Unity-Links
    • Project 2 - Starter Assets
    • State Machine Framework
    • StateManager - Singleton Design Pattern
    • Interface IStateBase
    • Create SceneXState.cs
    • OptionPanel Prefab
      • UI Images: Sprite Sheets
      • Button Image-Transitions
    • Project 2 - List of Steps
    • Project 2 - Starter Code
  • Project 2 -Dialogue
    • Hide_Show_Panel Script
    • Edit OptionPanel
    • Simple DialogPrefab
    • Conversation Entry
    • SimpleDialog.cs
    • ScriptableObjects
      • Scriptable Object Factory
    • Conversation Scriptable Objects
    • DialogManager_ConvList
      • DialogManager V2
      • Coroutines: Dynamic Text
      • DialogPrefab wImage
  • Overview: Branching Logic
    • DialogTrigger
    • Dictionary Data-Structure
      • Unity PlayerPrefs Dictionary
    • GameData Version3
    • Dictionary: choiceData
      • SaveChoice, ChoicePanel
        • choiceData - examples
          • Dictionary Value to Disable Options
    • Configure UI-Button Listeners
      • NPC Animation
      • NPC Activation
    • UI-Triggered Animations
    • Simple Inventory
    • EndState Conditions
    • Script ExecutionOrder
    • Custom UnityEvents
    • PlayerStats v2
      • ModifyPlayerData
      • BuyItem
    • Text Input
  • UI Components
    • Finding Game Objects
    • Game Objects: UI vs. 2D Sprite
    • UI Elements
      • Canvas: Screen-Space Render-Mode
      • UI-Buttons To Change Scene
  • Proj4: Inventory System
    • Inventory-System
      • GameData version4
      • Install and Configure
      • Diagrams, Resources
        • Item, Gem, Potion Classes
        • Inventory Class
      • InventoryDisplay, Slot UI
        • InventoryDisplay Class
        • Slot Class
        • Hazard Class
        • Layout Groups
      • Customization Steps
        • Configure Animation
        • AddItem Button
        • Concrete Class: Food
        • MiniGame Mods
          • PlayerController Mods
      • Code: InventorySystem
        • GameData, PickUp Mods
      • Resources: Data Structures
  • Custom Unity Events
    • Event Publishing Patterns
    • Custom Event Messaging
  • Proj4: Mini-Game
    • Simplified Mini-Game
      • PlayerController_v2 Mods
        • PlayerController_v2_final
      • MiniGameManager_v2
    • MiniGame-Overview-Proj4
    • LevelManager
      • LevelManager Logic Diagram
      • LevelManager FSM
      • LoadLevel, StartLevel Logic
      • Code Framework
    • Timer
  • Project 4 - Code Mods
    • Project 4 - Steps
    • Project 4 - Code
      • Code: Final Versions
        • PlayerController Mods
          • PlayerController_v2 Mods
        • GameData - Final
        • LevelManager
        • PlayerStats - Final
        • PickUp, Hazard, ScorePickUp
        • Spawner - Final
        • CameraFollow
        • ScreenFader
        • MiniGameState
        • Example: EndState
      • MiniGameWin Logic
  • Optional, Supplemental Content
    • Optional Content
      • Particle Systems
      • Adding Audio
      • Screen Fading and Reloading
      • ScriptableObjects
      • Disable Debug Logging
      • Events and Actions
      • Saving Data - Serialization
      • Parallax Scrolling
      • Change Sprites
    • XR - Extended Reality
  • Computing Concepts
    • Programming Patterns
      • State - FSM
      • Singleton Pattern
    • C# Language
      • Variables
      • Delegates
      • Dictionary
      • Enum
      • Encapsulation
        • C# Properties
        • Access Modifiers
      • Generics < T >
      • Inheritance
      • Interface
      • List< T >
      • Polymorphism
      • Queue< T >
      • Switch-Case
      • Foreach
      • Static
      • Ternary Operator: ?
      • this
    • Diagrams
      • State Machine Framework
      • UML Class Diagrams
      • Level Manager Logic Diagram
      • Flow-Chart: NumberGame
      • FSM: NumberGame
    • Tools
    • Glossary
    • References and Resources
    • Random Thoughts
Powered by GitBook
On this page
  • WHY Learn about Programming for Modeling Systems with C# and Unity?
  • Course Overview: Program a simple Adventure-Game.
  • C#
  • Unity

Was this helpful?

  1. Introduction

Introduction

PreviousIntroductionNextGame Design

Last updated 5 years ago

Was this helpful?

This book will provide supplemental instructional resources for CS-2335: Computer Science 2 for Non-Majors

WHY Learn about Programming for Modeling Systems with C# and Unity?

Read this article:

Rule #1: "Be nice to programmers," ... "Be very, very nice. Because at the end of the day, the programmer is going to be the one getting your feature in that you're really, really hoping will stay in. And they will remember all that currency you built up when you were irritated with them or anything else, so always treat programmers with the utmost respect.

Romero stressed that game design is not about simply writing a rulebook about how to jump or carry out other actions. Instead, designers have to "teach people how to play through the process of play". Rule: "Start making games" "Don't wait to get to college, just start making games. Now, notice there's no adjective there -- it doesn't have to be a good game. It could be a terrible game, in fact it can be an abysmal failure."

Course Overview: Program a simple Adventure-Game.

Learn: C# OOP-Programming, Object-Oriented Design, System-Modeling (game-systems), Programming Patterns, UML Modeling Language, using Unity Game Engine.

This course aims to enhance your ability to Communicate Game-Experience Ideas, Concepts with programmers and others. This course teaches Computational Systems and Patterns used in programming games by taking a deep dive into the fundamental building blocks of the concepts of game-systems. Game are Event-Driven Systems. The art/science of Designing Computational-Systems falls within the domain of 'Modeling and Simulation', which is a core of Computer Science. This course introduces Computational Languages, Programming Patterns, System-Modeling, and UML, a Visual Language to convey these concepts. This course teaches how to program a Simple Adventure Game, using C# and Unity Game Engine.

This course aims to teach Computational Languages used to create games. These languages include C# OOP-programming, State-Machines, Programming Patterns, and the 'Unified Modeling Language' (UML) which is a visual language. In this course, 'Computing Languages' are used to design and implement Game-System Concepts. Each Student creates a Branching-Narrative Adventure Game where 'designed-interactions' determine the player's path through the game. Students build Finite-State Machines (FSM), to control scene-transitions, animate the player-character, etc. Students will learn the Component Pattern(used by Unity) and the Singleton Pattern for various game-control systems. Custom GameObject-Behaviors and game-systems (Dialog, Inventory, Animation) and are programmed using C#. The Observer Pattern (Publish / Subscribe) is used when coding custom Events for decoupled object-messaging. Code for an Inventory-system uses Abstract, Static Classes and Methods, Virtual,Override Methods, Interfaces, Enums, C# Generics, Data-structures: List<T>, and `Dictionary .

C#

Rob Miles has an excellent book: , which is available as a free-download: pdf-format.

For a comparison between programming languages: Java and C#, see this :

Unity

Brenda Romero's guide to becoming a game designer
Brenda Romero
UTD Mercury Article: Choose your adventure: Spring 19:
MSDN C# Programming Guide:
MSDN C# Language Reference:
C# Yellow Book
MSDN reference
Unity3D Game Engine
Learn Unity:
Unity Documentation
Unity Tutorials
Unity Scripting Tutorials
Unity Community Wiki: Tutorials
Unity Community Wiki: Programming, C# Tutorial
Unity Hot Keys: