CS2335
Master_v2
Master_v2
  • Introduction
  • Introduction
    • Introduction
      • Design
      • Game Design
    • Unity - Download
    • Visual Studio - IDE
    • Hero's Journey
  • Unity Basics
    • Unity Editor Windows
    • MonoBehavior - Base-Class
    • Unity Engine - Event Functions
  • Getting Started
    • UI-Elements
    • Animator Controller
      • Animation Steps
    • PlayerController Flow Chart
    • PlayerController Code
      • PlayerController - V1 - S20
      • PlayerController V2 S20
      • PlayerController V3 S20
  • Project 1 - Simple Game
    • Overview
    • Project 1 - Get Started
      • UML Class Diagram
    • Player GameObject
      • PlayerController.cs V2
      • PlayerController.cs V3
    • Create 2D Sprite Prefab: Rock
    • Sorting Layers
  • Project1 Code
    • PickUp PreFabs
    • Player GameObject
    • PlayerController - jump
    • GameData Version1
    • PlayerStats Version1
    • MiniGameManager
      • Logic Diagram
    • Simple Spawner
    • Utility Class
  • Project1 Enhancements
    • PickUp - SelfDestruct
    • Spawn from List of Prefabs
  • Project 2 - StateManager
    • Project 2 - Learning Objectives
    • Project 2 - Starter Assets
    • Project 2
      • State Machine Framework
        • Singleton Pattern
      • StateManager - Singleton Design Pattern
      • IStateBase, BeginState
      • Project 2 -Steps: Create new Scene and State
      • Project 2 - List of Steps
        • Project 2 - Starter Code
  • Project 2 -Dialog
    • Hide_Show_Panel Script
    • Configure TitlePanel, DecisionPanel
    • Simple Dialog Prefab
    • Conversation Scriptable Objects
    • DialogManager_ConvList
    • Image Transitions for Buttons
  • UI Components
    • Finding Game Objects
    • Game Objects: UI vs. 2D Sprite
    • UI Elements
      • Canvas: Screen-Space Render-Mode
      • UI-Buttons To Change Scene
      • Text Input
  • Project2 Resources
    • Visual Novel in Unity-Links
    • Scriptable Object Factory
      • ScriptableObjects
    • Dialog Prefab Packages
  • Project 3 - Overview
    • Branching Story Structures
    • Dictionary Data-Structure
      • Unity PlayerPrefs Dictionary
    • Dictionary: User-Choice Data
      • User-Choices - Example
        • Dictionary Value to Disable Options
    • Simplified Mini-Game
      • PlayerController_v2 Mods
        • PlayerController_v2_final
      • MiniGameManager_v2
  • Proj3: Inventory System
    • Inventory-System
      • 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
  • Proj3: Custom UnityEvents
    • Event Publishing Patterns
    • Custom Event Messaging
  • Proj3: Mini-Game
    • MiniGame-Overview-Proj3
    • LevelManager
      • LevelManager Logic Diagram
      • LevelManager FSM
      • LoadLevel, StartLevel Logic
      • Code Framework
    • Timer
  • Project 3 - Code Mods
    • Project 3 - Steps
    • Project 3 - 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
      • Adding Audio
      • Screen Fading and Reloading
      • ScriptableObjects
      • Disable Debug Logging
      • Events and Actions
      • Saving Data - Serialization
      • Parallax Scrolling
      • Change Sprites
  • C# Language
    • C# Language
      • Variables
      • Enum
      • Encapsulation
        • C# Properties
        • Access Modifiers
      • Inheritance
      • Polymorphism
      • Interface
      • Switch-Case
      • List< T >
      • Queue< T >
      • Dictionary
      • Foreach
      • Static
      • Ternary Operator: ?
      • this
      • Delegates
    • Diagrams
      • State Machine Framework
      • UML Class Diagrams
      • Level Manager Logic Diagram
      • Flow-Chart: NumberGame
      • FSM: NumberGame
    • Glossary
    • References and Resources
    • Random Thoughts
Powered by GitBook
On this page
  • Game Requirements:
  • Simple Game Objects
  • Player GameObject - Component Details

Was this helpful?

  1. Project 1 - Simple Game

Overview

PreviousPlayerController V3 S20NextProject 1 - Get Started

Last updated 5 years ago

Was this helpful?

In Project 1, we will create a very simple game so we can become familiar with the Unity Editor and using custom scripts to create GameObjects with custom behaviors.

Games:

A game is a voluntary interactive activity, in which one or more players follow rules that constrain their behavior, enacting an artificial conflict that ends in a quantifiable outcome. [Eric Zimmerman]

Game - System:

Game: A system that encourages learning through strong feedback mechanisms is a game.

Mechanics:

Mechanics - a "mechanic", something that connects players' actions with the purpose of the game and its main challenges.

Game mechanics are concerned with the actual interaction with the game state, while rules provide the possibility space where that interaction is possible, regulating as well the transition between states. In this sense, rules are modeled after agency, while mechanics are modeled for agency.

In this object-oriented framework, rules could be considered general or particular properties of the game system and its agents. All objects in games have properties. These properties are often either rules or determined by rules. These rules are evaluated by a game loop, an algorithm that relates the current state of the game and the properties of the objects with a number of conditions that consequently can modify the game state. For example, the winning condition, the losing condition and the effects of action in the player's avatar health are calculated when running the game loop. This algorithm relates rules with mechanics, exemplifying the applicability of an ontological distinction between rules and mechanics.

Game Requirements:

A simple list of essential game components could be:

  1. Player Interaction

  2. Win / Lose condition

  3. Feedback

Simple Game Objects

For a simple 2D game, we'll focus on simple 2D game-mechanics and UI-display of game-stats to provide feedback to the player:

GameObjects:

  1. A Player gameObject (see image below) that can be controlled by the user to interact with other objects in the game-world.

    • User-Input: Input-Events control movement

    • Interaction: Collision-Events modify: Score, Health, Collected Items, etc.

  2. PickUp objects: gameObjects that the Player gameObject interacts with to change the game's data.

    • Interaction: Collision-Events - destroy or inactivate gameObject

    • Movement - add Rigidbody2D for simple falling movement

  3. GameData - Singleton gameObject to store score, health, etc.

  4. User Interface - PlayerStats Display - Display changing score, health, inventory to give player feedback about game-play actions.

  5. Spawner - Script on Empty GameObject. Script will randomly instantiate PickUp prefabs.

  6. MiniGameManager - Script on Empty GameObject. Script will contain logic for Starting the game and determining when the game is over due to win / lose conditional logic

Player GameObject - Component Details

The image below shows the general behaviors controlled by each component on the Player gameObject.

User-Input controls GameObject movement : The PlayerController script controls how user-input events are used to control the Player gameObject's movement by interacting with the RigidBody2D component.

Collision-Events - Mechanic to implement Game-play Rules The PlayerController script works with the Collider2D component to determine what should game-play consequences should happen when the Player gameObject has a collision-event occur. The PlayerController script implements game-play rules caused by collision-event mechanics. What are some options for consequences?, animation, particle effects, score, health, etc.

References:

Zimmerman, E. Narrative, Interactivity, Play, and Games. In Wardrip-Fruin, N. & Harrigan, P. (eds), First Person, MIT Press, 2004.

Daniel Cook
Michael Sicart