Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal...

33
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

Transcript of Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal...

Page 1: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

Page 2: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio
Page 3: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio
Page 4: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio

PROGRAMMAZIONE CON UDK

Tools:

• UDK Editor

• Unrealscript IDE

• UnCodeX

Requisiti:

• Skills OOP

• Tanto tempo!

Responsabilità:

• Creare classi di supporto per i Game

Designer

• Risolvere problemi non risolvibili

dall’Editor

• Non solo scrivere codice, ma conoscere

tutte le principali funzionalità

dell’Engine

• Comunicare con gli altri membri del

Team

Page 5: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio

UNREALSCRIPT

Pregi:

• Sintassi semplice e intuitiva

• Potenza di un linguaggio ad oggetti di alto livello

• Peculiarità di linguaggi come C#, Java

• Flessibilità nella programmazione del Gameplay

• Supporto per gli stati

• Fornisce un alto livello di astrazione

Difetti:

• UDK non offre strumenti di sviluppo a cui un programmatore a oggetti è abituato

• Scomodo per il Debug

• Poco conosciuto

• Scarsa documentazione

• Script lenti rispetto al codice nativo

Page 6: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio

PROGRAMMATORE VS ENGINE• Un’installazione completa di UDK fornisce

un’elevatissima quantità di classi e API già pronte a essere utilizzate

• Possibilità di utilizzare il codice sorgente e le risorse di Unreal Tournament

Per lo sviluppo del Gameplay bisogna avere le idee ben chiare.

Al programmatore sono aperte due strade:

1 Riscrivere da capo solo il codice necessario permette di avere codice pulito ed efficiente, ma può richiedere moltissimo tempo

2 Estendere le proprie classi da quelle preesistenti e aggiungere solo funzionalità specifiche metodo più rapido, ma necessita di una buona comprensione del funzionamento delle classi dell’Engine.

Moltissime funzionalità sono già implementate!!!

Page 7: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio

CLASSI IN UNREAL ENGINE

• Classi Object:

• AnimNode

• Component

• GFxObject

• SequenceObject

• SoundCue

• DamageType

• Classi Actor:

• Camera

• Controller

• Emitter

• HUD

• Inventory

• Pawn

• Trigger

Le classi in UnrealScript interagiscono tramite riferimenti (quello che accade in Java)

Due categorie di classi differenti, che comportano due Workflow diversi

Page 8: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio

PROGRAMMAZIONE DEL GAMEPLAY

• Progettazione di regole e meccanismi di Gameplay

• Implementazione di un’Intelligenza Artificiale funzionale

• Gerarchie di classi per i contenuti: oggetti trigger, NPC, armi, classi di supporto, ecc.

• Interazione tra i particellari e i Pawn

Page 9: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio

PROGRAMMAZIONE DEL GAMEPLAY

• Algoritmi di posizionamento e rotazione della Telecamera

• Generazione di feedback per l’Utente finale (HUD)

• Inventario e sistema di upgrade degli oggetti

Page 10: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio

SUPPORTO ALLA PRODUZIONE DI ASSET• Unrealscript permette la creazione di variabili e proprietà

modificabili da Editor

• Spesso si implementano funzionalità senza avere le risorse finali nei package Necessità di utilizzo di placeholder per finalità di testing del codice

class z_LeverTrigger extends Trigger;

//Trigger event bool

var bool used;

var bool bActive;

//prompt

var() const string Prompt;

//skeletal component

var(Lever) SkeletalMeshComponent LeverMesh;

var(Lever) DynamicLightEnvironmentComponent LightEnvironment;

var STPOutlineComponent OverlayComponent; //Glowing overlay component

• I level designer non vogliono sapere

cosa fa funzionare tutto, ma sono

interessati ad avere classi e

componenti “out of the box” a cui

attaccare skin e materiali

• E’ importante utilizzare un alto

livello di astrazione, e affidarsi a

delle classi “Template” Si offre

agli altri reparti di produzione alta

flessibilità con modifiche minime a

livello Software

Page 11: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio

UNREALSCRIPT & PROPERTIESclass STP_Lovecraft extends STPPlayer;

//Subclass specific functions…

defaultproperties{

//Lovecraft Specific PropertiesPortraitMaterial=Material'STP_Interface.HUD.Materials.Character_Default_Prt'Energy=150.0EnergyMax=150.0Health=150.0HealthMax=150.0EnergyRegenerationRatio=2.0 //Each secondHealthRegenerationRatio=1.0 //Each 0.5 seconds

//Lovecraft Character Mesh and CollisionBegin Object Name=WPawnSkeletalMeshComponentSkeletalMesh=SkeletalMesh'STP_Char.Main.Lovecraft.Skel.Lovecraft_Skeletal'

AnimSets(0)=AnimSet'STP_Char.Main.Lovecraft.Logic.Lovecraft_AnimSet’AnimTreeTemplate=AnimTree'STP_Char.Main.Lovecraft.Logic.Lovecraft_AnimTree’PhysicsAsset=PhysicsAsset'STP_Char.Main.Lovecraft.Logic.Lovecraft_Skeletal_Physic

s'scale = 0.7bEnableFullAnimWeightBodies = false

End Object

Mesh=WPawnSkeletalMeshComponentComponents.Add(WPawnSkeletalMeshComponent)

Begin Object Name=CollisionCylinderCollisionRadius=+0020.000000CollisionHeight=+0060.000000

End ObjectCylinderComponent=CollisionCylinder

}

Page 12: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio

FLOW DEL GIOCO

Caricamento della mappa e impostazioni della tipologia di gioco. Vengono caricate le classi Helper

Generazione di tutti gli Actor di gioco e collocazione sulla mappa

Creazione del Giocatore e del Controller di gioco

Spawn del Giocatore e inizio del Match

Gestione eventi generati localmente o da NPC

Game FlowElaborazione degli Input del giocatore

Rendering HUD Controllo NPC tramite IAGestione eventi temporali

Page 13: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio

UNREAL KISMET• Permette la gestione di funzionalità specifiche di

un livello di gioco• Eventi Cinematic

• Eventi generati da trigger (e.g. Apertura porte)

• I level designer non devono toccare il codice!

Vengono loro forniti i mezzi per gestire eventi di gioco dall’Editor

• E’ possibile la creazione di nodi Custom specifici per ogni necessità

• I nodi custom vengono automaticamente riconosciuti da UDK (sottoclassi di SequenceObject)

• Si possono far interagire nodi Kismet con tutte le altre classi e funzioni già definite

• Nodi collegabili tra loro:

• Nodo evento

• Nodo variabile

• Nodo azione

Page 14: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio

UNREAL KISMET

class HUDKismetSeqAct_MessageBox extends SeqAct_Latent;

event Activated()

{

// Collega questo elemento all'HUD

local PlayerController c;

c = GetWorldInfo().Game.GetALocalPlayerController();

if(c != none)

{

STPHud(c.MyHUD).Kismet_MessageBox = self;

STPHud(c.MyHUD).Kismet_MessageBox.ForceClose = false;

startTimer = GetWorldInfo().TimeDilation;

}

}

Page 15: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio
Page 16: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio
Page 17: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio
Page 18: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio
Page 19: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio
Page 20: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio
Page 21: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio

FISICA E SIMULAZIONE

PHYSICS ASSETSCLOTH SYSTEMFRACTURED MESH

Nvidia Apex Technology

Generata con PhysLab

Semplice

Possibilità di usare una

texture per definire i

punti di cedimento della

mesh

Nvidia Apex

Technology/PhysX Clothing

System

Supporta Self collision

Apex: setup in Maya/3ds

Apex: permette collisione

tra cloth e rigid bodies del

character

Nvidia Apex Technology

Generata con PhysLab

Semplice

Possibilità di usare una

texture per definire i punti

di cedimento della mesh

Page 22: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio
Page 23: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio
Page 24: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio
Page 25: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio
Page 26: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio
Page 27: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio
Page 28: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio
Page 29: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio
Page 30: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio

ESPORTAZIONE DEL GIOCO

Default Engine

Default Game

Page 31: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio

UNREAL FRONTEND

Page 32: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio
Page 33: Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio

CONTATTI

http://www.steampunkleague.net

http://www.dixidiasoft.com

@dixidiasoft - @steampunkleague

Mail: [email protected]