Distributed Programming
|
|
- Maurice Caldwell
- 5 years ago
- Views:
Transcription
1 Distributed Programming Lecture 04 - Introduction to Unreal Engine and C++ Programming Edirlei Soares de Lima <edirlei.lima@universidadeeuropeia.pt>
2 Editor Unity vs. Unreal Recommended reading: Unreal Engine 4 For Unity Developers
3 Glossary Unity vs. Unreal Category Unity Unreal Engine Component Component Gameplay Types GameObject Actor, Pawn Prefab Blueprint Class Hierarchy Panel World Outliner Editor UI Inspector Details Panel Project Browser Content Browser Scene View Viewport Meshes Mesh Static Mesh Skinned Mesh Skeletal Mesh Materials Shader Material Material Material Instance
4 Glossary Unity and Unreal Category Unity Unreal Engine Effects Particle Effect Effect, Particle, Cascade Game UI UI UMG Animation Animation Skeletal Animation System 2D Sprite Editor Paper2D Programming C# C++ Script Blueprint Physics Raycast Line Trace, Shape Trace Rigid Body Collision, Physics
5 Unreal Engine Main Classes
6 Unreal Engine Main Classes UObject AActor UActorComponent AController ALight APawn AGameModeBase USceneComponent AAIController APlayerController ADirectionalLight ACharacter UCameraComponent
7 Concept: a game where the player must collect all coins and then go to specific location to complete the level. Gameplay elements: Player character (walk and jump); Collectible coins: after collecting all coins, the player must go the level complete area to finish the level. Enemies (zombies): patrol the level and attack the player. If the enemy touches the player, is game over; GUI messages: number of collected coins, game over, and level completed messages;
8 Create a new C++ Third Person Project:
9 Base project: Next step: create a collectible item (a coin).
10 Low poly coin model: Importing the FBX model: drag and drop Import Uniform Scale = 100.0
11 Create a new C++ class: CollectibleCoin
12 CollectibleCoin.h #pragma once #include "CoreMinimal.h" #include "GameFramework/Actor.h" #include "CollectibleCoin.generated.h" UCLASS() class MYFIRSTGAME_API ACollectibleCoin : public AActor { GENERATED_BODY() public: // Sets default values for this actor's properties ACollectibleCoin(); protected: // Called when the game starts or when spawned virtual void BeginPlay() override; public: ; // Called every frame virtual void Tick(float DeltaTime) override;
13 CollectibleCoin.cpp #include "CollectibleCoin.h" // Sets default values ACollectibleCoin::ACollectibleCoin() { // Set this actor to call Tick() every frame. PrimaryActorTick.bCanEverTick = true; // Called when the game starts or when spawned void ACollectibleCoin::BeginPlay() { Super::BeginPlay(); // Called every frame void ACollectibleCoin::Tick(float DeltaTime) { Super::Tick(DeltaTime);
14 Next step: define the structure of the collectible coin: CollectibleCoin.h #include "Components/SphereComponent.h" #include "CollectibleCoin.generated.h" protected: UPROPERTY(VisibleAnywhere, Category = "Components") UStaticMeshComponent* MeshComponent; UPROPERTY(VisibleAnywhere, Category = "Components") USphereComponent* SphereComponent; virtual void BeginPlay() override;
15 Next step: define the structure of the collectible coin: CollectibleCoin.cpp ACollectibleCoin::ACollectibleCoin() { PrimaryActorTick.bCanEverTick = true; MeshComponent = CreateDefaultSubobject<UStaticMeshComponent> ("Mesh Component"); RootComponent = MeshComponent; SphereComponent = CreateDefaultSubobject<USphereComponent> ("Sphere Component"); SphereComponent->SetupAttachment(MeshComponent);
16 Next step: create a Blueprint Class for the collectible coin:
17 In the Blueprint editor, select the mesh of the coin: Then, compile the blueprint and place it in the level.
18 Rotating the coin in the game: CollectibleCoin.h public: UPROPERTY(EditAnywhere, Category = "Gameplay") float RotationSpeed; CollectibleCoin.cpp void ACollectibleCoin::Tick(float DeltaTime) { Super::Tick(DeltaTime); AddActorLocalRotation(FRotator(RotationSpeed * DeltaTime, 0, 0));
19 Destroying the coin when the player collides: CollectibleCoin.h public: virtual void NotifyActorBeginOverlap(AActor* OtherActor) override; CollectibleCoin.cpp void ACollectibleCoin::NotifyActorBeginOverlap(AActor* OtherActor) { Super::NotifyActorBeginOverlap(OtherActor); Destroy(this);
20 Setup the collision properties in the blueprint: MeshComponent: SphereComponent:
21 UProperty Specifiers Property Tag VisibleAnywhere EditAnywhere EditDefaultsOnly BlueprintReadOnly BlueprintReadWrite EditInstanceOnly Effect Indicates that this property is visible in all property windows, but cannot be edited. Indicates that this property can be edited by property windows, on archetypes and instances. Indicates that this property can be edited by property windows, but only on archetypes. This property can be read by Blueprints, but not modified. This property can be read or written from a Blueprint. Indicates that this property can be edited by property windows, but only on instances, not on archetypes.
22 UFunction Specifiers Function Specifier BlueprintCallable BlueprintImplementableEvent BlueprintNativeEvent CallInEditor ServiceRequest ServiceResponse Effect The function can be executed in a Blueprint or Level Blueprint graph. The function can be implemented in a Blueprint or Level Blueprint graph. The function is designed to be overridden by a Blueprint, but also has a default native implementation. The function can be called in the Editor on selected instances via a button in the Details Panel. The function is an RPC (Remote Procedure Call) service request. This function is an RPC service response.
23 Spawning a particle system when the player collects the coin: CollectibleCoin.h protected: UPROPERTY(EditDefaultsOnly, Category = "Effects") UParticleSystem* CollectEffects; void PlayEffects();
24 Spawning a particle system when the player collects the coin: #include "Kismet/GameplayStatics.h" CollectibleCoin.cpp void ACollectibleCoin::NotifyActorBeginOverlap(AActor* OtherActor) { Super::NotifyActorBeginOverlap(OtherActor); PlayEffects(); Destroy(this); void ACollectibleCoin::PlayEffects() { UGameplayStatics::SpawnEmitterAtLocation(this, CollectEffects, GetActorLocation());
25 Counting the number of collected coins: MyFirstGameCharacter.h public: void AddCoin(); protected: UPROPERTY(BlueprintReadOnly, Category = "Gameplay") int TotalCoins; void AMyFirstGameCharacter::AddCoin() { TotalCoins++; MyFirstGameCharacter.cpp
26 Counting the number of collected coins: CollectibleCoin.cpp void ACollectibleCoin::NotifyActorBeginOverlap(AActor* OtherActor) { Super::NotifyActorBeginOverlap(OtherActor); AMyFirstGameCharacter* character = Cast<AMyFirstGameCharacter> (OtherActor); if (character) { character->addcoin(); PlayEffects(); Destroy(this);
27 Quick way to see the result: blueprint
28 Quick way to see the result: C++ code void AMyFirstGameCharacter::Tick(float DeltaTime) { Super::Tick(DeltaTime); if (GEngine) { GEngine->AddOnScreenDebugMessage(-1, 0.0f, FColor::Blue, FString::Printf(TEXT("Total Coins: %d"), TotalCoins));
29 Quick way to see the result: C++ code for console debug void AMyFirstGameCharacter::AddCoin() { TotalCoins++; UE_LOG(LogTemp, Log, TEXT("Total Coins: %d"), TotalCoins);
30 Displaying the information in the game UI with a Widget Blueprint: 1. First, show total number of coins collected by the player; 2. After collecting all coins in the level, show the message All coins collected!!!. Step 1: create a Widget Blueprint
31 Step 2: instantiate the Widget Blueprint in the BeginPlay event of the ThirdPersonCharacter blueprint.
32 Step 3: create a method to count the number of coins in the level (Game Mode class) and a variable to store the information. private: MyFirstGameGameMode.h int CountCoinsInLevel(); protected: UPROPERTY(BlueprintReadOnly, Category = "Gameplay") int TotalLevelCoins; AMyFirstGameGameMode::AMyFirstGameGameMode(){ MyFirstGameGameMode.cpp TotalLevelCoins = CountCoinsInLevel(); int AMyFirstGameGameMode::CountCoinsInLevel(){ TArray<AActor*> FoundCoins; UGameplayStatics::GetAllActorsOfClass(GetWorld(), ACollectibleCoin::StaticClass(), FoundCoins); return FoundCoins.Num();
33 Step 4: bind the text value and create the Widget Blueprint logic.
34 Level complete area: alter collecting all coins, the player can go to this area to complete the level. LevelCompleteArea.h UCLASS() class MYFIRSTGAME_API ALevelCompleteArea : public AActor { protected: UPROPERTY(VisibleAnywhere, Category = "Components") class UBoxComponent* BoxComponent; UFUNCTION() void HandleBeginOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bfromsweep, const FHitResult & SweepResult); ;
35 Level complete area: alter collecting all coins, the player can go to this area to complete the level. ALevelCompleteArea::ALevelCompleteArea() { BoxComponent = CreateDefaultSubobject<UBoxComponent>("BoxComponent"); BoxComponent->SetBoxExtent(FVector(200.0f, 200.0f, 200.0f)); BoxComponent->SetCollisionEnabled(ECollisionEnabled::QueryOnly); BoxComponent->SetCollisionResponseToAllChannels(ECR_Ignore); BoxComponent->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap); RootComponent = BoxComponent; LevelCompleteArea.cpp BoxComponent->OnComponentBeginOverlap.AddDynamic(this, &ALevelCompleteArea::HandleBeginOverlap);
36 Level complete area: alter collecting all coins, the player can go to this area to complete the level. LevelCompleteArea.cpp void ALevelCompleteArea::HandleBeginOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bfromsweep, const FHitResult & SweepResult){ AMyFirstGameCharacter* character = Cast<AMyFirstGameCharacter> (OtherActor); AMyFirstGameGameMode* gamemode = Cast<AMyFirstGameGameMode> (GetWorld()->GetAuthGameMode()); if ((character)&& (gamemode)){ if (character->gettotalcoins() == gamemode->gettotallevelcoins()){ gamemode->completelevel(character, true);
37 Level complete area: alter collecting all coins, the player can go to this area to complete the level. public: MyFirstGameGameMode.h FORCEINLINE int GetTotalLevelCoins() const {return TotalLevelCoins; void CompleteLevel(APawn* character, bool succeeded); UFUNCTION(BlueprintImplementableEvent, Category = "GameMode") void OnLevelCompleted(APawn* character, bool succeeded); MyFirstGameGameMode.cpp void AMyFirstGameGameMode::CompleteLevel(APawn* character, bool succeeded){ if (character){ character->disableinput(nullptr); OnLevelCompleted(character, succeeded);
38 Level complete area: alter collecting all coins, the player can go to this area to complete the level. 1. Create a Widget Blueprint with a Level Completed! message;
39 Level complete area: alter collecting all coins, the player can go to this area to complete the level. 2. In the Widget, create a new boolean variable to represent succeeded value and a blueprint to bind the correct message based on variable value;
40 Level complete area: alter collecting all coins, the player can go to this area to complete the level. 3. Create a Blueprint for the Game Mode and instantiate the Widget in the LevelCompleted event;
41 Level complete area: if the player goes to the level complete area without collecting all coins, a sound notification is played. protected: LevelCompleteArea.h UPROPERTY(EditDefaultsOnly, Category = "Sounds") USoundBase* LevelNotCompletedSound; void ALevelCompleteArea::HandleBeginOverlap(){ LevelCompleteArea.cpp if ((character)&& (gamemode)){ if (character->gettotalcoins() == gamemode->gettotallevelcoins()){ gamemode->completelevel(character, true); else{ UGameplayStatics::PlaySound2D(this, LevelNotCompletedSound);
42 Moving the camera to a spectator viewpoint location after completing the level: 1. Create a blueprint class with a camera (actor class); 2. Place the camera in the spectator viewpoint location;
43 3. Move the camera to the spectator viewpoint: Blueprint solution
44 3. Move the camera to the spectator viewpoint: C++ solution protected: MyFirstGameGameMode.h UPROPERTY(EditDefaultsOnly, Category = "Gameplay") TSubclassOf<AActor> SpectatorViewpointClass; void AMyFirstGameGameMode::CompleteLevel(APawn* character, bool succeeded)){ if (character){ MyFirstGameGameMode.cpp character->disableinput(nullptr); TArray<AActor*> foundviewpoints; UGameplayStatics::GetAllActorsOfClass(GetWorld(), SpectatorViewpointClass, foundviewpoints); if (foundviewpoints.num() > 0){ APlayerController* pcontroller = Cast<APlayerController> (character->getcontroller()); if (pcontroller) pcontroller->setviewtargetwithblend(foundviewpoints[0], 0.8f); OnLevelCompleted(character, true);
45 Next step: create an enemy with AI that walks between waypoints. When the enemy sees the player, he follows and attacks the player. Create new C++ class for the enemy: base class Character Download and import the enemy model:
46 Next step: create an enemy with AI. Create and setup a blueprint for the new C++ enemy class:
47 Next step: create an enemy with AI. Add a Nav Mesh Bounds Volume and resize it so that it fits all of the walkable space in the level:
48 Next step: create an enemy with AI. Place some waypoints (Target Point) in the level:
49 Next step: create an enemy with AI. EnemyCharacter.h protected: TArray<AActor*> Waypoints; class AAIController* AIController; TScriptDelegate<FWeakObjectPtr> MovementCompleteDelegate; class ATargetPoint* GetRandomWaypoint(); UFUNCTION() void AIMoveCompleted(FAIRequestID RequestID, EPathFollowingResult::Type Result);
50 Next step: create an enemy with AI. #include "Engine/TargetPoint.h" #include "AIController.h" EnemyCharacter.cpp void AEnemyCharacter::BeginPlay() { Super::BeginPlay(); UGameplayStatics::GetAllActorsOfClass(GetWorld(), ATargetPoint::StaticClass(), Waypoints); AIController = Cast<AAIController>(GetController()); this->busecontrollerrotationyaw = false; if ((Waypoints.Num() > 0)&&(AIController)){ MovementCompleteDelegate.BindUFunction(this, "AIMoveCompleted"); AIController->ReceiveMoveCompleted.Add(MovementCompleteDelegate); AIController->MoveToActor(GetRandomWaypoint());
51 Next step: create an enemy with AI. EnemyCharacter.cpp ATargetPoint* AEnemyCharacter::GetRandomWaypoint() { int index = FMath::RandRange(0, Waypoints.Num() - 1); return Cast<ATargetPoint>(Waypoints[index]); void AEnemyCharacter::AIMoveCompleted(FAIRequestID RequestID, EPathFollowingResult::Type Result){ if (Result == EPathFollowingResult::Success) { if ((Waypoints.Num() > 0) && (AIController)) { AIController->MoveToActor(GetRandomWaypoint());
52 Next step: create an enemy with AI. Adjust max speed and rotation settings in the CharacterMovement component:
53 Next step: create an enemy with AI. Add a SensingComponent to allow the enemy to see the player: protected: EnemyCharacter.h UPROPERTY(VisibleAnywhere, Category = "Components") class UPawnSensingComponent* SensingComponent; AActor* target; UFUNCTION() void SeePlayer(APawn *pawn);
54 Next step: create an enemy with AI. Add a SensingComponent to allow the enemy to see the player: AEnemyCharacter::AEnemyCharacter() EnemyCharacter.cpp { SensingComponent = CreateDefaultSubobject<UPawnSensingComponent> ("SensingComponent"); SensingComponent->OnSeePawn.AddDynamic(this, &AEnemyCharacter::SeePlayer); SensingComponent->SetSensingUpdatesEnabled(true); void AEnemyCharacter::SeePlayer(APawn *pawn) { if ((pawn) && (AIController) && (!target)) { target = pawn; this->getmesh()->globalanimratescale = 2.5f; this->getcharactermovement()->maxwalkspeed = 150.0f; AIController->MoveToActor(pawn);
55 Next step: create an enemy with AI. Add a SensingComponent to allow the enemy to see the player: EnemyCharacter.cpp void AEnemyCharacter::Tick(float DeltaTime) { Super::Tick(DeltaTime); if (target) { if (FVector::Dist(GetActorLocation(), target->getactorlocation()) > SensingComponent->SightRadius) { this->getmesh()->globalanimratescale = 1.0f; this->getcharactermovement()->maxwalkspeed = 50; target = nullptr; AIController->MoveToActor(GetRandomWaypoint());
56 Next step: create an enemy with AI. Adjust the sight properties in the enemy blueprint:
57 Next step: create an enemy with AI. If the enemy gets to the player position, show the game over message: void AEnemyCharacter::AIMoveCompleted(FAIRequestID RequestID, EPathFollowingResult::Type Result){ if (Result == EPathFollowingResult::Success){ if (target){ AMyFirstGameCharacter* character = Cast<AMyFirstGameCharacter> (target); AMyFirstGameGameMode* gamemode = Cast<AMyFirstGameGameMode> (GetWorld()->GetAuthGameMode()); if ((character) && (gamemode)){ gamemode->completelevel(character, false); target = nullptr; if ((Waypoints.Num() > 0) && (AIController)){ AIController->MoveToActor(GetRandomWaypoint());
58 Next step: create an enemy with AI. If the player collides with the enemy, the enemy follows him: UFUNCTION() EnemyCharacter.h void EnemyComponentHit(UPrimitiveComponent* HitComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, FVector NormalImpulse, const FHitResult& Hit); void AEnemyCharacter::BeginPlay(){ EnemyCharacter.cpp Super::BeginPlay(); GetCapsuleComponent()->OnComponentHit.AddDynamic(this, &AEnemyCharacter::EnemyComponentHit); void AEnemyCharacter::EnemyComponentHit() { SeePlayer(Cast<APawn>(OtherActor));
59 Exercise 1 1) Finish the implementation of the game and balance the gameplay. a) Add more coins to the level; b) Add more enemies to the level; c) Add more waypoints to the level; d) Adjust the position of the coins, enemies and waypoints; e) Balance the speed of the enemies according to the speed of the player; f) Make the game more challenging and fun to play!
60 Further Reading Carnall, B. (2016). Unreal Engine 4.X By Example. Packt Publishing. ISBN: Web Resources: Introduction to C++ Programming in UE4 - Coding Standard - US/Programming/Development/CodingStandard Gameplay Programming -
C++ gameplay programming in Unreal Engine 4
C++ gameplay programming in Unreal Engine 4 Samuel Schimmel samuel.schimmel@digipen.edu samuelschimmel.com Office hours: Tuesdays 6-7, Thursdays 12-3 in Tesla row O Official YouTube tutorials Live training
More informationDistributed Programming
Distributed Programming Lecture 06 - REST Web Services and HTTP Communication in C++ on Unreal Engine Edirlei Soares de Lima What is a REST Web Service? A Web Service
More informationIntroduction to Unreal Engine Blueprints for Beginners. By Chaven R Yenketswamy
Introduction to Unreal Engine Blueprints for Beginners By Chaven R Yenketswamy Introduction My first two tutorials covered creating and painting 3D objects for inclusion in your Unreal Project. In this
More informationGoogle SketchUp/Unity Tutorial Basics
Software used: Google SketchUp Unity Visual Studio Google SketchUp/Unity Tutorial Basics 1) In Google SketchUp, select and delete the man to create a blank scene. 2) Select the Lines tool and draw a square
More informationGame Design Unity Workshop
Game Design Unity Workshop Activity 4 Goals: - Creation of small world - Creation of character - Scripting of player movement and camera following Load up unity Build Object: Collisions in Unity Aim: Build
More informationTutorial: Using the UUCS Crowd Simulation Plug-in for Unity
Tutorial: Using the UUCS Crowd Simulation Plug-in for Unity Introduction Version 1.1 - November 15, 2017 Authors: Dionysi Alexandridis, Simon Dirks, Wouter van Toll In this assignment, you will use the
More informationVR and Game Engine Workflows with CityEngine. Eric Wittner, Taisha Waeny
VR and Game Engine Workflows with CityEngine Eric Wittner, Taisha Waeny Agenda Introduction into Game Engines - Taisha User Examples - Taisha GIS2VR workflow: CityEngine to Unity - Eric GIS2VR workflow:
More informationGame Design From Concepts To Implementation
Game Design From Concepts To Implementation Giacomo Cappellini - g.cappellini@mixelweb.it Why Unity - Scheme Unity Editor + Scripting API (C#)! Unity API (C/C++)! Unity Core! Drivers / O.S. API! O.S.!
More informationTable of Contents 1.1. Introduction Installation Quick Start Documentation Asynchronous Configuration 1.4.
Table of Contents Introduction 1 Installation 2 Quick Start 3 Documentation Asynchronous Configuration Level Streaming Saving And Loading Slot Templates 1.1 1.2 1.3 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1
More informationAAA Games with Unreal Engine 4 and Python
AAA Games with Unreal Engine 4 and Python Roberto De Ioris @20tab @unbit http://github.com/20tab http://aiv01.it PyCon8 2017 Unreal Engine 4 https://www.unrealengine.com/what-is-unreal-engine-4 Made with
More informationUnity Game Development
Unity Game Development 1. Introduction to Unity Getting to Know the Unity Editor The Project Dialog The Unity Interface The Project View The Hierarchy View The Inspector View The Scene View The Game View
More informationDamaging, Attacking and Interaction
Damaging, Attacking and Interaction In this tutorial we ll go through some ways to add damage, health and interaction to our scene, as always this isn t the only way, but it s the way I will show you.
More informationif(input.getkey(keycode.rightarrow)) { this.transform.rotate(vector3.forward * 1);
1 Super Rubber Ball Step 1. Download and open the SuperRubberBall project from the website. Open the main scene. In it you will find a game track and a sphere as shown in Figure 1.1. The sphere has a Rigidbody
More informationTerrain. Unity s Terrain editor islands topographical landscapes Mountains And more
Terrain Unity s Terrain editor islands topographical landscapes Mountains And more 12. Create a new Scene terrain and save it 13. GameObject > 3D Object > Terrain Textures Textures should be in the following
More information: Rendered background can show navigation mesh : Multi-level backgrounds, priority backgrounds and Z-ordering.
Update history: 2017-04-13: Initial release on Marketplace for UE4.15. 2017-05-09: Rendered background can show navigation mesh. 2017-05-19: Multi-level backgrounds, priority backgrounds and Z-ordering.
More informationTerrain. Unity s Terrain editor islands topographical landscapes Mountains And more
Terrain Unity s Terrain editor islands topographical landscapes Mountains And more 12. Create a new Scene terrain and save it 13. GameObject > 3D Object > Terrain Textures Textures should be in the following
More informationSection 28: 2D Gaming: Continuing with Unity 2D
Section 28: 2D Gaming: Continuing with Unity 2D 1. Open > Assets > Scenes > Game 2. Configuring the Layer Collision Matrix 1. Edit > Project Settings > Tags and Layers 2. Create two new layers: 1. User
More informationMIXED REALITY (AR & VR) WITH UNITY 3D (Microsoft HoloLens)
MIXED REALITY (AR & VR) WITH UNITY 3D (Microsoft HoloLens) 1. INTRODUCTION TO Mixed Reality (AR & VR) What is Virtual Reality (VR) What is Augmented reality(ar) What is Mixed Reality Modern VR/AR experiences
More informationC# for UNITY3d: Sem 1 a.k.a. The Gospel of Mark Part 1
C# for UNITY3d: Sem 1 a.k.a. The Gospel of Mark Part 1 Special Thanks to Mark Hoey, whose lectures this booklet is based on Move and Rotate an Object (using Transform.Translate & Transform.Rotate)...1
More informationAdding a Trigger to a Unity Animation Method #2
Adding a Trigger to a Unity Animation Method #2 Unity Version: 5.0 Adding the GameObjects In this example we will create two animation states for a single object in Unity with the Animation panel. Our
More informationUnity Scripting 4. CS 491 / DES 400 Crea.ve Coding. Computer Science
Unity Scripting 4 Unity Components overview Particle components Interaction Key and Button input Parenting CAVE2 Interaction Wand / Wanda VR Input Devices Project Organization Prefabs Instantiate Unity
More informationCS248 Lecture 2 I NTRODUCTION TO U NITY. January 11 th, 2017
CS248 Lecture 2 I NTRODUCTION TO U NITY January 11 th, 2017 Course Logistics Piazza Staff Email: cs248-win1617-staff@lists.stanford.edu SCPD Grading via Google Hangouts: cs248.winter2017@gmail.com Homework
More informationWorkshop BOND UNIVERSITY Bachelor of Interactive Multimedia and Design Beginner Game Dev Character Control Building a character animation controller.
Workshop BOND UNIVERSITY Bachelor of Interactive Multimedia and Design Beginner Game Dev Character Control Building a character animation controller. FACULTY OF SOCIETY AND DESIGN Building a character
More informationWorkshop BOND UNIVERSITY. Bachelor of Interactive Multimedia and Design. Asteroids
Workshop BOND UNIVERSITY Bachelor of Interactive Multimedia and Design Asteroids FACULTY OF SOCIETY AND DESIGN Building an Asteroid Dodging Game Penny de Byl Faculty of Society and Design Bond University
More informationMIXED REALITY (AR & VR) WITH UNITY 3D (Microsoft HoloLens)
MIXED REALITY (AR & VR) WITH UNITY 3D (Microsoft HoloLens) 1. INTRODUCTION TO Mixed Reality (AR & VR) What is Virtual Reality (VR) What is Augmented reality(ar) What is Mixed Reality Modern VR/AR experiences
More informationSpell Casting Motion Pack 5/5/2017
The Spell Casting Motion pack requires the following: Motion Controller v2.49 or higher Mixamo s free Pro Magic Pack (using Y Bot) Importing and running without these assets will generate errors! Overview
More informationArtificial Intelligence
Artificial Intelligence Lecture 03 Finite State Machines Edirlei Soares de Lima Game AI Model Pathfinding Steering behaviours Finite state machines Automated planning Behaviour
More informationUFO. Prof Alexiei Dingli
UFO Prof Alexiei Dingli Setting the background Import all the Assets Drag and Drop the background Center it from the Inspector Change size of Main Camera to 1.6 Position the Ship Place the Barn Add a
More informationArtificial Intelligence
Artificial Intelligence Lecture 06 Sensor Systems Edirlei Soares de Lima Game AI Model Pathfinding Steering behaviours Finite state machines Automated planning Behaviour trees
More informationSidescrolling 2.5D Shooter
Sidescrolling 2.5D Shooter Viking Crew Development 1 Introduction... 2 1.1 Support... 2 1.2 2D or 3D physics?... 2 1.3 Multiple (additive) scenes... 2 2 Characters... 3 2.1 Creating different looking characters...
More informationAbout the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Unity
i About the Tutorial Unity is a cross-platform game engine initially released by Unity Technologies, in 2005. The focus of Unity lies in the development of both 2D and 3D games and interactive content.
More informationUI Elements. If you are not working in 2D mode, you need to change the texture type to Sprite (2D and UI)
UI Elements 1 2D Sprites If you are not working in 2D mode, you need to change the texture type to Sprite (2D and UI) Change Sprite Mode based on how many images are contained in your texture If you are
More informationPick up a book! 2. Is a reader on screen right now?! 3. Embedding Images! 3. As a Text Mesh! 4. Code Interfaces! 6. Creating a Skin! 7. Sources!
Noble Reader Guide Noble Reader version 1.1 Hi, Toby here from Noble Muffins. This here is a paginating text kit. You give it a text; it ll lay it out on a skin. You can also use it as a fancy text mesh
More informationPacman. you want to see how the maze was created, open the file named unity_pacman_create_maze.
Pacman Note: I have started this exercise for you so you do not have to make all of the box colliders. If you want to see how the maze was created, open the file named unity_pacman_create_maze. Adding
More informationARTIFICIAL INTELLIGENCE: SITUATIONAL AWARENESS
ARTIFICIAL INTELLIGENCE: SITUATIONAL AWARENESS So first of all before we start, we have to ask our self: What s is situational awareness exactly. A Quick google search reveals that: WHAT IS SITUATIONAL
More informationUnreal Engine 4 Course Catalog
Unreal Engine 4 Course Catalog INCAS is Unreal Academic Partner Benefit from the exclusive materials and know-how that we can make available to you. This is made possible by the partner status "Unreal
More informationC# in Unity 101. Objects perform operations when receiving a request/message from a client
C# in Unity 101 OOP What is OOP? Objects perform operations when receiving a request/message from a client Requests are the ONLY* way to get an object to execute an operation or change the object s internal
More informationNOTTORUS. Getting Started V1.00
NOTTORUS Getting Started V1.00 2016 1. Introduction Nottorus Script Editor is a visual plugin for generating and debugging C# Unity scripts. This plugin allows designers, artists or programmers without
More informationMain Page. Wwise Unreal Integration
Main Page Wwise Unreal Integration Requirements Unreal Engine Each release of the Unreal Wwise plug-in is customized for certain versions of the Unreal Engine. Be sure to use one of the supported versions
More informationVEGETATION STUDIO FEATURES
VEGETATION STUDIO FEATURES We are happy to introduce Vegetation Studio, coming to Unity Asset Store this fall. Vegetation Studio is a vegetation placement and rendering system designed to replace the standard
More information3dSprites. v
3dSprites v1.0 Email: chanfort48@gmail.com 3dSprites allows you to bring thousands of animated 3d objects into the game. Only up to several hundreds of animated objects can be rendered using meshes in
More informationArtificial Intelligence
Artificial Intelligence Lecture 05 Randomness and Probability Edirlei Soares de Lima Game AI Model Pathfinding Steering behaviours Finite state machines Automated planning Behaviour
More informationIAT 445 Lab 10. Special Topics in Unity. Lanz Singbeil
IAT 445 Lab 10 Special Topics in Unity Special Topics in Unity We ll be briefly going over the following concepts. They are covered in more detail in your Watkins textbook: Setting up Fog Effects and a
More informationOxAM Achievements Manager
1 v. 1.2 (15.11.26) OxAM Achievements Manager User manual Table of Contents About...2 Demo...2 Version changes...2 Known bugs...3 Basic usage...3 Advanced usage...3 Custom message box style...3 Custom
More informationBasic Waypoints Movement v1.0
Basic Waypoints Movement v1.0 1. Create New Unity project (or use some existing project) 2. Import RAIN{indie} AI package from Asset store or download from: http://rivaltheory.com/rainindie 3. 4. Your
More informationCreating a 3D Characters Movement
Creating a 3D Characters Movement Getting Characters and Animations Introduction to Mixamo Before we can start to work with a 3D characters we have to get them first. A great place to get 3D characters
More informationUser Manual v 1.0. Copyright 2018 Ghere Games
+ User Manual v 1.0 Copyright 2018 Ghere Games HUD Status Bars+ for Realistic FPS Prefab Copyright Ghere Games. All rights reserved Realistic FPS Prefab Azuline Studios. Thank you for using HUD Status
More informationTable of Contents. Questions or problems?
1 Introduction Overview Setting Up Occluders Shadows and Occlusion LODs Creating LODs LOD Selection Optimization Basics Controlling the Hierarchy MultiThreading Multiple Active Culling Cameras Umbra Comparison
More informationCE318/CE818: High-level Games Development
CE318/CE818: High-level Games Development Lecture 1: Introduction. C# & Unity3D Basics Diego Perez Liebana dperez@essex.ac.uk Office 3A.527 2017/18 Outline 1 Course Overview 2 Introduction to C# 3 Scripting
More informationClass Unity scripts. CS / DES Creative Coding. Computer Science
Class Unity scripts Rotate cube script Counter + collision script Sound script Materials script / mouse button input Add Force script Key and Button input script Particle script / button input Instantiate
More informationGame Design Unity Workshop
Game Design Unity Workshop Activity 2 Goals: - Creation of small world - Creation of character - Scripting of player movement and camera following Load up unity Build Object: Mini World and basic Chase
More informationVisual Novel Engine for Unity By Michael Long (Foolish Mortals),
Visual Novel Engine for Unity By Michael Long (Foolish Mortals), michael@foolish-mortals.net http://u3d.as/nld Summary A light weight code base suitable for visual novels and simple cut scenes. Useful
More informationTransforms Transform
Transforms The Transform is used to store a GameObject s position, rotation, scale and parenting state and is thus very important. A GameObject will always have a Transform component attached - it is not
More informationThis allows you to choose convex or mesh colliders for you assets. Convex Collider true = Convex Collider. Convex Collider False = Mesh Collider.
AGF Asset Packager v. 0.4 (c) Axis Game Factory LLC Last Updated: 6/04/2014, By Matt McDonald. Compiled with: Unity 4.3.4. Download This tool may not work with Unity 4.5.0f6 ADDED: Convex Collider Toggle:
More informationUnity introduction & Leap Motion Controller
Unity introduction & Leap Motion Controller Renato Mainetti Jacopo Essenziale renato.mainetti@unimi.it jacopo.essenziale@unimi.it Lab 04 Unity 3D Game Engine 2 Official Unity 3D Tutorials https://unity3d.com/learn/tutorials/
More informationMinecraft Due: March. 6, 2018
CS1950U Topics in 3D Game Engine Development Barbara Meier Minecraft Due: March. 6, 2018 Introduction In this assignment you will build your own version of one of the most popular indie games ever: Minecraft.
More informationCreating and Triggering Animations
Creating and Triggering Animations 1. Download the zip file containing BraidGraphics and unzip. 2. Create a new Unity project names TestAnimation and set the 2D option. 3. Create the following folders
More informationMobile Touch Floating Joysticks with Options version 1.1 (Unity Asset Store) by Kevin Blake
Mobile Touch Floating Joysticks with Options version 1.1 (Unity Asset Store) by Kevin Blake Change in version 1.1 of this document: only 2 changes to this document (the unity asset store item has not changed)
More information8iUnityPlugin Documentation
8iUnityPlugin Documentation Release 0.4.0 8i Jul 18, 2017 Contents 1 What is the 8i Plugin? 3 2 Why are we doing it? 5 3 Supported Unity Versions and Platforms 7 4 Supported Unity Versions and Platforms
More informationSetting up A Basic Scene in Unity
Setting up A Basic Scene in Unity So begins the first of this series of tutorials aimed at helping you gain the basic understanding of skills needed in Unity to develop a 3D game. As this is a programming
More informationPrinciples of Computer Game Design and Implementation. Revision Lecture
Principles of Computer Game Design and Implementation Revision Lecture Introduction Brief history; game genres Game structure A series of interesting choices Series of convexities Variable difficulty increase
More informationAbout the FBX Exporter package
About the FBX Exporter package Version : 1.3.0f1 The FBX Exporter package provides round-trip workflows between Unity and 3D modeling software. Use this workflow to send geometry, Lights, Cameras, and
More informationUnity 4 Game Development HOTSH
Unity 4 Game Development HOTSH T Jate Witt ayabundit Chapter No. 1 "Develop a Sprite and Platform Game" In this package, you will find: The author s biography A preview chapter from the book, Chapter no.1
More informationActions and Graphs in Blender - Week 8
Actions and Graphs in Blender - Week 8 Sculpt Tool Sculpting tools in Blender are very easy to use and they will help you create interesting effects and model characters when working with animation and
More informationComputer Graphics. Lecture 02 Graphics Pipeline. Edirlei Soares de Lima.
Computer Graphics Lecture 02 Graphics Pipeline Edirlei Soares de Lima What is the graphics pipeline? The Graphics Pipeline is a special software/hardware subsystem
More informationDOCUMENTATION THANKS FOR BUYING HORROR FPS KIT!
DOCUMENTATION THANKS FOR BUYING HORROR FPS KIT! If you like my assets please visit my channel: https://www.youtube.com/c/thunderwiregamesindie and check out my tutorials and game developments :) also check
More informationUNITY WORKSHOP. Unity Editor. Programming(Unity Script)
July, 2018 Hayashi UNITY WORKSHOP Unity Editor Project: Name your project. A folder is created with the same name of the project. Everything is in the folder. Four windows (Scene, Project, Hierarchy, Inspector),
More informationIntroduction to Unity. What is Unity? Games Made with Unity /666 Computer Game Programming Fall 2013 Evan Shimizu
Introduction to Unity 15-466/666 Computer Game Programming Fall 2013 Evan Shimizu What is Unity? Game Engine and Editor With nice extra features: physics engine, animation engine, custom shaders, etc.
More informationCoherent GT for UE4 Artist quick start guide. version 1.0.0
Coherent GT for UE4 Artist quick start guide version 1.0.0 Coherent Labs 2015 2 Artist quick start guide 1 Introduction to Coherent GT Coherent GT is industry leading UI middleware specially designed for
More informationGAM 223 Game Design Workshop. Project 3D Maze Level Design DUE DATE: / / Design, Modeling & UV unwrapping
GAM 223 Game Design Workshop Project 3D Maze Level Design DUE DATE: / / Design, Modeling & UV unwrapping Creating games like creating movies needs actors, sets, scripts, sounds and effects. However, first
More information8iUnityPlugin Documentation
8iUnityPlugin Documentation Release 0.4.0 8i Jun 08, 2017 Contents 1 What is the 8i Plugin? 3 2 Why are we doing it? 5 3 Supported Unity Versions and Platforms 7 i ii Welcome to the 8i Unity Alpha programme!
More informationIntegrating Physics into a Modern Game Engine. Object Collision. Various types of collision for an object:
Integrating Physics into a Modern Game Engine Object Collision Various types of collision for an object: Sphere Bounding box Convex hull based on rendered model List of convex hull(s) based on special
More informationGame Programming with. presented by Nathan Baur
Game Programming with presented by Nathan Baur What is libgdx? Free, open source cross-platform game library Supports Desktop, Android, HTML5, and experimental ios support available with MonoTouch license
More informationMerging Physical and Virtual:
Merging Physical and Virtual: A Workshop about connecting Unity with Arduino v1.0 R. Yagiz Mungan yagiz@purdue.edu Purdue University - AD41700 Variable Topics in ETB: Computer Games Fall 2013 September
More information3D Starfields for Unity
3D Starfields for Unity Overview Getting started Quick-start prefab Examples Proper use Tweaking Starfield Scripts Random Starfield Object Starfield Infinite Starfield Effect Making your own Material Tweaks
More informationIntroduction to Engine Development with Component Based Design. Randy Gaul
Introduction to Engine Development with Component Based Design Randy Gaul Overview Intro to Engine Development What is an engine Systems and game objects Components Engine Systems Messaging Serialization
More informationEasy Decal Version Easy Decal. Operation Manual. &u - Assets
Easy Decal Operation Manual 1 All information provided in this document is subject to change without notice and does not represent a commitment on the part of &U ASSETS. The software described by this
More informationUsing the API... 3 edriven.core... 5 A PowerMapper pattern... 5 edriven.gui... 7 edriven.gui framework architecture... 7 Audio... 9 Animation...
1 Using the API... 3 edriven.core... 5 A PowerMapper pattern... 5 edriven.gui... 7 edriven.gui framework architecture... 7 Audio... 9 Animation... 11 Tween class... 11 TweenFactory class... 12 Styling...
More informationHigh level NavMesh Building Components
High level NavMesh Building Components Here we introduce four high level components for the navigation system: NavMeshSurface for building and enabling a navmesh surface for one agent type. NavMeshModifier
More informationWW.IT-IQ Training & Solutions (PTY) LTD
GAMES DEVELOPMENT COURSE OUTLINES DURATION: 4 YEARS Course Modules Prerequisite Prerequisite Completing the Fundamentals of Programming Course Completing the Object Oriented Programming Course Initialization
More informationMechanic Animations. Mecanim is Unity's animation state machine system.
Mechanic Animations Mecanim is Unity's animation state machine system. It essentially allows you to create 'states' that play animations and define transition logic. Create new project Animation demo.
More informationPixelSurface a dynamic world of pixels for Unity
PixelSurface a dynamic world of pixels for Unity Oct 19, 2015 Joe Strout joe@luminaryapps.com Overview PixelSurface is a small class library for Unity that lets you manipulate 2D graphics on the level
More informationTutorial: Understanding the Lumberyard Interface
Tutorial: Understanding the Lumberyard Interface This tutorial walks you through a basic overview of the Interface. Along the way we will create our first level, generate terrain, navigate within the editor,
More informationGodot engine Documentation
Godot engine Documentation Release 1.1 authorname Apr 22, 2017 Contents i ii Godot engine Documentation, Release 1.1 Introduction Welcome to the Godot Engine documentation center. The aim of these pages
More informationComputer Graphics. Lecture 11 Procedural Geometry. Edirlei Soares de Lima.
Computer Graphics Lecture 11 Procedural Geometry Edirlei Soares de Lima Procedural Content Generation Procedural content generation is the method of creating data
More informationTopic 10: Scene Management, Particle Systems and Normal Mapping. CITS4242: Game Design and Multimedia
CITS4242: Game Design and Multimedia Topic 10: Scene Management, Particle Systems and Normal Mapping Scene Management Scene management means keeping track of all objects in a scene. - In particular, keeping
More informationSecond Semester Examinations 2012/13
PAPER CODE NO. EXAMINER : Boris Konev COMP222 DEPARTMENT : Computer Science Tel. No. 0151 795 4260 Second Semester Examinations 2012/13 Principles of Computer Game Design and Implementation TIME ALLOWED
More informationUnity3D. Unity3D is a powerful cross-platform 3D engine and a user friendly development environment.
Unity3D Unity3D is a powerful cross-platform 3D engine and a user friendly development environment. If you didn t like OpenGL, hopefully you ll like this. Remember the Rotating Earth? Look how it s done
More informationNo more engine requirements! From now on everything you work on is designed by you. Congrats!
No more engine requirements! From now on everything you work on is designed by you Congrats! Design check required Ben: Thursday 2-4 David: Thursday 8-10 Jeff: Friday 2-4 Tyler: Friday 4-6 Final III Don
More informationLimon Engine Documentation
Limon Engine Documentation Release 0.5 Limon Engine Sep 23, 2018 Contents 1 Welcome to Limon Engine s documentation! 1 1.1 Contribute................................................ 1 1.2 License..................................................
More informationReallusion Character Creator and iclone to Unreal UE4
Reallusion Character Creator and iclone to Unreal UE4 An illustrated guide to creating characters and animations for Unreal games. by Chad Schoonover Here is a guide to get a Reallusion Character Creator
More informationDynamics in Maya. Gary Monheit Alias Wavefront PHYSICALLY BASED MODELING SH1 SIGGRAPH 97 COURSE NOTES
Dynamics in Maya Gary Monheit Alias Wavefront SH1 Dynamics in Maya Overall Requirements Architecture and Features Animations SH2 Overall Requirements Why Dynamics? Problems with traditional animation techniques
More informationBetter UI Makes ugui Better!
Better UI Makes ugui Better! version 1.1.2 2017 Thera Bytes UG Developed by Salomon Zwecker TABLE OF CONTENTS Better UI... 1 Better UI Elements... 4 1 Workflow: Make Better... 4 2 UI and Layout Elements
More informationDialog XML Importer. Index. User s Guide
Dialog XML Importer User s Guide Index 1. What is the Dialog XML Importer? 2. Setup Instructions 3. Creating Your Own Dialogs Using articy:draft a. Conditions b. Effects c. Text Tokens 4. Importing Your
More informationIntroduction to Game Programming. 9/14/17: Conditionals, Input
Introduction to Game Programming 9/14/17: Conditionals, Input Micro-review Games are massive collections of what-if questions that resolve to yes or no Did the player just click the mouse? Has our health
More informationVISIT FOR THE LATEST UPDATES, FORUMS & MORE ASSETS.
Gargoyle VISIT WWW.SFBAYSTUDIOS.COM FOR THE LATEST UPDATES, FORUMS & MORE ASSETS. 1. INTRODUCTION 2. QUICK SET UP 3. PROCEDURAL VALUES 4. SCRIPTING 5. ANIMATIONS 6. LEVEL OF DETAIL 7. CHANGE LOG 1. Introduction
More informationNext week will be great!
Next week will be great! Three major things are happening next week: Zynga guest lecture Your game pitches (more details later) Christina Paxson Feedback for M 1 Some of you had stacking shapes The stack
More informationGame Design Unity Workshop
Game Design Unity Workshop Activity 1 Unity Overview Unity is a game engine with the ability to create 3d and 2d environments. Unity s prime focus is to allow for the quick creation of a game from freelance
More informationYou can also export a video of what one of the cameras in the scene was seeing while you were recording your animations.[2]
Scene Track for Unity User Manual Scene Track Plugin (Beta) The scene track plugin allows you to record live, textured, skinned mesh animation data, transform, rotation and scale animation, event data
More informationThe Motion Controller uses the Actor Controller to actually move the character. So, please review the Actor Controller Guide as well!
The Motion Controller uses the Actor Controller to actually move the character. So, please review the Actor Controller Guide as well! Input Source Camera Movement Rotations Motion Controller Note: MC is
More information