Il talk porrà una riflessione su pregi e difetti di uno dei motori di gioco più potenti al mondo, attraverso la testimonianza dello sviluppo del platform/shooter Steampunk League. Mentre verrà mostrato un riepilogo delle varie fasi di sviluppo del gioco, saranno messi in luce punti di forza e punti deboli del motore in questione, con commenti a codice specifico o questioni tecniche quali implementazioni di modelli, animazioni e packaging.
Kivy Python Framework - di Gioele GaggioGiuneco S.r.l
Un framework open-source per realizzare il sogno di ogni pythonista: "usare solo Python". Un'avventura nella progettazione di applicazioni cross platform e una analisi di cosa è in grado di offrirci il mondo open-source.
Angelo Impedovo, Linux Day 2016, Programmazione Parallela in openCLAngelo Impedovo
Intro to heterogeneous parallel computing on GPU using OpenCL, the entire presentation has been presented during the Linux Day 2016 @ Polytechnic University of Bari (and therefore it is completely written in italian).
Kivy Python Framework - di Gioele GaggioGiuneco S.r.l
Un framework open-source per realizzare il sogno di ogni pythonista: "usare solo Python". Un'avventura nella progettazione di applicazioni cross platform e una analisi di cosa è in grado di offrirci il mondo open-source.
Angelo Impedovo, Linux Day 2016, Programmazione Parallela in openCLAngelo Impedovo
Intro to heterogeneous parallel computing on GPU using OpenCL, the entire presentation has been presented during the Linux Day 2016 @ Polytechnic University of Bari (and therefore it is completely written in italian).
Introduzione al framework OpenCL
Anatomia OpenCL
Architettura OpenCL
Esempio OpenCL
HelloWorld in OpenCL
Funzioni in OpenCL
OpenCL in C
Lingua Italiano
Presentazione/Seminario di Francesco Garofalo per il corso di Metodi Numerici per l'Informatica, Computer Scince (Informatica Magistrale), presso Università degli Studi di Salerno.
Gestire l’infrastruttura come se fosse codice, ha degli indubbi vantaggi, soprattutto in un team agile che ha più esperienze Dev piuttosto che Ops.
In questa sessione vi racconteremo la nostra esperienza, problemi, vantaggi e cosa abbiamo imparato.
Lo unified tooling è l’area di interesse DevOps che fonde pratiche di software development a quelle di system administration, con lo scopo di semplificare il processo di deployment di ambienti complessi. In questo talk vengono esposte le esperienze di un team di dev che è riuscito a gestire e replicare ambienti complessi, ricorrendo a strumenti e pratiche delle metodologie agili. Saranno evidenziati i vantaggi ottenuti e le problematiche riscontrate.
Implementation of a Brute Force attack on the cryptosystem D.E.S. through an infrastructure of distributed and parallel computing.
Implementazione di un attacco a Forza Bruta sul Crittosistema D.E.S. tramite un’infrastruttura di calcolo distribuito e parallelo
Dynamic Language Programming For The Statically Typed ProgrammerMarco Parenzan
Perchè un programmatore che usa quotidianamente C# o VB.NET, linguaggi compilati di cui è soddisfatto, dovrebbe dare un’occhiata ai linguaggi interpretati?
Risposta: configurazione, parametrazione, personalizzazione, delle applicazioni che di base sono implementate in C# o VB.NET.
Obiettivo: abbassare il costo di manutenzione delle applicazioni spostando la responsabilità dal “core cablato” delle applicazioni, alla configurazione attraverso scripting.
Si parlerà di IronPython, di IronRuby e del Dynamic Language Runtime. Non si parlerà di Ruby on Rails.
Con la nascita di .NET Core l'utilizzo del framework .NET è sbarcato in modo ufficiale anche su altre piattaforme.
Scrivere applicazioni moderne con SDK e tool nativi su altre piattaforme è diventato la normalità.
Lo vedremo realizzando un semplice applicazione .NET Core su Linux ed analizzando varie possibilità di deploy su altre piattaforme Linux based con il minimo sforzo e senza limitazioni.
La versione 2 del Kinect, ed il suo SDK, consentono di implementare applicazioni Windows Store che possono essere pubblicate nello store ed essere disponibili da subito per l’utente consumer. In questa sessione vedremo le caratteristiche base del sensore, come questo possa essere utilizzato in una Windows Store App e quali tool ci mette a disposizione l’SDK per semplificare la realizzazione di nuove app e per abilitare le applicazioni già esistenti all’utilizzo del sensore stesso.
Sessione tenuta durante i CommunityDays 2015 a Milano il 26/03/2015.
Si parla di IcedTea, della macchina virtuale Java completamente libera e degli altri strumenti. Vengono spiegate le differenze tra l’approccio con interprete, compilatore e macchina virtuale. Si racconta di quali macchine virtuali ci sono per quali linguaggi. Vengono descritte le peculiarità di IcedTea e si prendono in esame le differenze tra HotSpot Zero Assembly con la macchina virtuale di Oracle, HotSpot. Si parla di quali linguaggi possano essere compilati per macchina virtuale Java.
SkyMedia: La tecnologia al servizio dell'intrattenimentoMavigex srl
Mavigex parla al #WhyMCA 2012 e presenta l'architettura del sistema #SkyMedia.
Un gruppo di aziende provenienti da tutta Europa sta mettendo a punto un sistema tecnologicamente innovativo per dare una marcia in più agli eventi sportivi, combinando tecnologie all'avanguardia come droni volanti, schermi immateriali, telecamere 3D, applicazioni mobili per iPhone iPad e Android e tracciamento delle prestazioni degli atleti in tempo reale.
Tutte queste tecnologie sono combinate assieme per fornire ad atleti e spettatori una visione a 360 gradi dell'evento, con una prospettiva mai vista fino ad ora. Le prime dimostrazioni delle potenzialità di questo sistema sono state messe a disposizione della Maratona di Torino gia' dall'edizione 2011.
Una peculiarità è la potenziale versatilità di tale sistema e la sua applicabilità a diversi scenari sportivi. Altri sport infatti potrebbero trarre vantaggio da queste tecnologie, quali il ciclismo, l'arrampicata sportiva e lo sci.
Il talk illustrerà l'architettura e i componenti del sistema, e come sia stato possibile rendere accessibili al grande pubblico tecnologie fino ad ora limitate all'ambito di ricerca.
Maggiori informazioni sul progetto al sito http://ict-skymedia.eu/skymedia/
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Codemotion
Increased complexity makes it very hard and time-consuming to keep your software bug-free and secure. We introduce fuzz-testing as a method for automatically and continuously discovering vulnerabilities hidden in your code. The talk will explain how fuzzing works and how to integrate fuzz-testing into your Software Development Life Cycle to increase your code’s security.
Pompili - From hero to_zero: The FatalNoise neverending storyCodemotion
It was 1993 when we decided to venture in a beat'em up game for Amiga. The Catalypse's success story pushed me and my comrade to create something astonishing for this incredible game machine... but things went harder, assumptions were slightly different, and italian competitors appeared out of nowhere... the project died in 1996. Story ended? Probably not...
More Related Content
Similar to Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio
Introduzione al framework OpenCL
Anatomia OpenCL
Architettura OpenCL
Esempio OpenCL
HelloWorld in OpenCL
Funzioni in OpenCL
OpenCL in C
Lingua Italiano
Presentazione/Seminario di Francesco Garofalo per il corso di Metodi Numerici per l'Informatica, Computer Scince (Informatica Magistrale), presso Università degli Studi di Salerno.
Gestire l’infrastruttura come se fosse codice, ha degli indubbi vantaggi, soprattutto in un team agile che ha più esperienze Dev piuttosto che Ops.
In questa sessione vi racconteremo la nostra esperienza, problemi, vantaggi e cosa abbiamo imparato.
Lo unified tooling è l’area di interesse DevOps che fonde pratiche di software development a quelle di system administration, con lo scopo di semplificare il processo di deployment di ambienti complessi. In questo talk vengono esposte le esperienze di un team di dev che è riuscito a gestire e replicare ambienti complessi, ricorrendo a strumenti e pratiche delle metodologie agili. Saranno evidenziati i vantaggi ottenuti e le problematiche riscontrate.
Implementation of a Brute Force attack on the cryptosystem D.E.S. through an infrastructure of distributed and parallel computing.
Implementazione di un attacco a Forza Bruta sul Crittosistema D.E.S. tramite un’infrastruttura di calcolo distribuito e parallelo
Dynamic Language Programming For The Statically Typed ProgrammerMarco Parenzan
Perchè un programmatore che usa quotidianamente C# o VB.NET, linguaggi compilati di cui è soddisfatto, dovrebbe dare un’occhiata ai linguaggi interpretati?
Risposta: configurazione, parametrazione, personalizzazione, delle applicazioni che di base sono implementate in C# o VB.NET.
Obiettivo: abbassare il costo di manutenzione delle applicazioni spostando la responsabilità dal “core cablato” delle applicazioni, alla configurazione attraverso scripting.
Si parlerà di IronPython, di IronRuby e del Dynamic Language Runtime. Non si parlerà di Ruby on Rails.
Con la nascita di .NET Core l'utilizzo del framework .NET è sbarcato in modo ufficiale anche su altre piattaforme.
Scrivere applicazioni moderne con SDK e tool nativi su altre piattaforme è diventato la normalità.
Lo vedremo realizzando un semplice applicazione .NET Core su Linux ed analizzando varie possibilità di deploy su altre piattaforme Linux based con il minimo sforzo e senza limitazioni.
La versione 2 del Kinect, ed il suo SDK, consentono di implementare applicazioni Windows Store che possono essere pubblicate nello store ed essere disponibili da subito per l’utente consumer. In questa sessione vedremo le caratteristiche base del sensore, come questo possa essere utilizzato in una Windows Store App e quali tool ci mette a disposizione l’SDK per semplificare la realizzazione di nuove app e per abilitare le applicazioni già esistenti all’utilizzo del sensore stesso.
Sessione tenuta durante i CommunityDays 2015 a Milano il 26/03/2015.
Si parla di IcedTea, della macchina virtuale Java completamente libera e degli altri strumenti. Vengono spiegate le differenze tra l’approccio con interprete, compilatore e macchina virtuale. Si racconta di quali macchine virtuali ci sono per quali linguaggi. Vengono descritte le peculiarità di IcedTea e si prendono in esame le differenze tra HotSpot Zero Assembly con la macchina virtuale di Oracle, HotSpot. Si parla di quali linguaggi possano essere compilati per macchina virtuale Java.
SkyMedia: La tecnologia al servizio dell'intrattenimentoMavigex srl
Mavigex parla al #WhyMCA 2012 e presenta l'architettura del sistema #SkyMedia.
Un gruppo di aziende provenienti da tutta Europa sta mettendo a punto un sistema tecnologicamente innovativo per dare una marcia in più agli eventi sportivi, combinando tecnologie all'avanguardia come droni volanti, schermi immateriali, telecamere 3D, applicazioni mobili per iPhone iPad e Android e tracciamento delle prestazioni degli atleti in tempo reale.
Tutte queste tecnologie sono combinate assieme per fornire ad atleti e spettatori una visione a 360 gradi dell'evento, con una prospettiva mai vista fino ad ora. Le prime dimostrazioni delle potenzialità di questo sistema sono state messe a disposizione della Maratona di Torino gia' dall'edizione 2011.
Una peculiarità è la potenziale versatilità di tale sistema e la sua applicabilità a diversi scenari sportivi. Altri sport infatti potrebbero trarre vantaggio da queste tecnologie, quali il ciclismo, l'arrampicata sportiva e lo sci.
Il talk illustrerà l'architettura e i componenti del sistema, e come sia stato possibile rendere accessibili al grande pubblico tecnologie fino ad ora limitate all'ambito di ricerca.
Maggiori informazioni sul progetto al sito http://ict-skymedia.eu/skymedia/
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Codemotion
Increased complexity makes it very hard and time-consuming to keep your software bug-free and secure. We introduce fuzz-testing as a method for automatically and continuously discovering vulnerabilities hidden in your code. The talk will explain how fuzzing works and how to integrate fuzz-testing into your Software Development Life Cycle to increase your code’s security.
Pompili - From hero to_zero: The FatalNoise neverending storyCodemotion
It was 1993 when we decided to venture in a beat'em up game for Amiga. The Catalypse's success story pushed me and my comrade to create something astonishing for this incredible game machine... but things went harder, assumptions were slightly different, and italian competitors appeared out of nowhere... the project died in 1996. Story ended? Probably not...
Il Commodore 65 è un prototipo di personal computer che Commodore avrebbe dovuto mettere in commercio quale successore del Commodore 64. Purtroppo la sua realizzazione si fermò appunto allo stadio prototipale. Racconterò l'affascinante storia del suo sviluppo ed il perchè della soppressione del progetto ormai ad un passo dalla immissione in commercio.
Rivivere l'ebbrezza di progettare un vecchio computer o una consolle da bar è oggi possibile sfruttando le FPGA, ovvero logiche programmabili che consentono a chiunque di progettare il proprio hardware o di ricrearne uno del passato. In questa sessione si racconta come dal reverse engineering dell'hardware di vecchie glorie come il Commodore 64 e lo ZX Spectrum sia stato possibile farle rivivere attraverso tecnologie oggi alla portata di tutti.
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Codemotion
There's a lot of talk about blockchain, but how does the technology behind it actually work? For developers, getting some hands-on experience is the fastest way to get familiair with new technologies. So let's build a blockchain, then! In this session, we're going to build one in plain old Java, and have it working in 40 minutes. We'll cover key concepts of a blockchain: transactions, blocks, mining, proof-of-work, and reaching consensus in the blockchain network. After this session, you'll have a better understanding of core aspects of blockchain technology.
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Codemotion
When was the last time you were truly lost? Thanks to the maps and location technology in our phones, a whole generation has now grown up in a world where getting lost is truly a thing of the past. Location technology goes far beyond maps in the palm of our hand, however. In this talk, we will explore how a ridesharing app works. How do we discover our destination?How do we find the closest driver? How do we display this information on a map? How do we find the best route?To answer these questions,we will be learning about a variety of location APIs, including Maps, Positioning, Geocoding etc.
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Codemotion
Eward Driehuis, SecureLink's research chief, will guide you through the bumpy ride we call the cyber threat landscape. As the industry has over a decade of experience of dealing with increasingly sophisticated attacks, you might be surprised to hear more attacks slip through the cracks than ever. From analyzing 20.000 of them in 2018, backed by a quarter of a million security events and over ten trillion data points, Eward will outline why this happens, how attacks are changing, and why it doesn't matter how neatly or securely you code.
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 - Codemotion
IoT revolution is ended. Thanks to hardware improvement, building an intelligent ecosystem is easier than never before for both startups and large-scale enterprises. The real challenge is now to connect, process, store and analyze data: in the cloud, but also, at the edge. We’ll give a quick look on frameworks that aggregate dispersed devices data into a single global optimized system allowing to improve operational efficiency, to predict maintenance, to track asset in real-time, to secure cloud-connected devices and much more.
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Codemotion
What if Virtual Reality glasses could transform your environment into a three-dimensional work of art in realtime in the style of a painting from Van Gogh? One of the many interesting developments in the field of Deep Learning is the so called "Style Transfer". It describes a possibility to create a patchwork (or pastiche) from two images. While one of these images defines the the artistic style of the result picture, the other one is used for extracting the image content. A team from TNG Technology Consulting managed to build an AI showcase using OpenCV and Tensorflow to realize such goggles.
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Codemotion
Blockchain (and Cryptocurrency) is an evolution of 20-year old research from scientists like Chaum, Lamport, and Castro & Liskov. Due to the current hype, it's hard to distinguish beneficial aspects of the technology from a desire for a "silver bullet" for device security, verifiable logistics, or "saving democracy". The problem: blockchain introduces new security challenges - and blind adoption without understanding reduces overall security. In this talk, Melanie Rieback and Klaus Kursawe explain the pitfalls and limits of blockchain, so you can avoid making your applications LESS secure.
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Codemotion
Networking is a core part of computing in the digital world we inhabit. But, how well do you know how it works? Do you understand all the moving parts of the OSI stack inside your computer, and how the network is actually put together? How can this ever work? This guided safari of layers, standards, protocols, and happenstance will bring us close to the copper wire, and up through the layers of CDMA/CD, ARP, routing and HTTP. We will make a few excursions through patchworks that still work forty years later, and cleverly designed mechanisms that show that simplicity is the only way to last.
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Codemotion
Performance tests are not only an important instrument for understanding a system and its runtime environment. It is also essential in order to check stability and scalability – non-functional requirements that might be decisive for success. But won't my cloud hosting service scale for me as long as I can afford it? Yes, but… It only operates and scales resources. It won't automatically make your system fast, stable and scalable. This talk shows how such and comparable questions can be clarified with performance tests and how DevOps teams benefit from regular test practise.
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Codemotion
Sascha will demonstrate the opportunities and challenges of Conversational AI learned from the practice. Both Technology and User Experience will be covered introducing a process finding micro-moments, writing happy paths, gathering intents, designing the conversational flow, and finally publishing on almost all channels including Voice Services and Chatbots. Valuable for enterprises, developers, and designers. All live on stage in just minutes and with almost no code.
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Codemotion
A key challenge we face at Pacmed is quickly calibrating and deploying our tools for clinical decision support in different hospitals, where data formats may vary greatly. Using Intensive Care Units as a case study, I’ll delve into our scalable Python pipeline, which leverages Pandas’ split-apply-combine approach to perform complex feature engineering and automatic quality checks on large time-varying data, e.g. vital signs. I’ll show how we use the resulting flexible and interpretable dataframes to quickly (re)train our models to predict mortality, discharge, and medical complications.
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Codemotion
Coolblue is a proud Dutch company, with a large internal development department; one that truly takes CI/CD to heart. Empowerment through automation is at the heart of these development teams, and with more than 1000 deployments a day, we think it's working out quite well. In this session, Pat Hermens (a Development Managers) will step you through what enables us to move so quickly, which tools we use, and most importantly, the mindset that is required to enable development teams to deliver at such a rapid pace.
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...Codemotion
Quantum computers can use all of the possible pathways generated by quantum decisions to solve problems that will forever remain intractable to classical compute power. As the mega players vie for quantum supremacy and Rigetti announces its $1M "quantum advantage" prize, we live in exciting times. IBM-Q and Microsoft Q# are two ways you can learn to program quantum computers so that you're ready when the quantum revolution comes. I'll demonstrate some quantum solutions to problems that will forever be out of reach of classical, including organic chemistry and large number factorisation.
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Codemotion
Chinese food exploded across America in the early 20th century, rapidly adapting to local tastes while also spreading like wildfire. How was it able to spread so fast? The GY6 is a family of scooter engines that has achieved near total ubiquity in Europe. It is reliable and cheap to manufacture, and it's made in factories across China. How are these factories able to remain afloat? Chinese-American food and the GY6 are both riveting studies in product-market fit, and both are the product of a distributed open source-like development model. What lessons can we learn for open source software?
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Codemotion
The design space has exploded in size within the last few years and Sketch is one of the most important milestones to represent the phenomenon. But behind the scenes of this growing reality there is a remote team that revolutionizes the design space all without leaving the home office. This talk will present how Sketch has grown to become a modern, product designer's tool.
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Codemotion
Would you fly in a plane designed by a craftsman or would you prefer your aircraft to be designed by engineers? We are learning that science and empiricism works in software development, maybe now is the time to redefine what “Software Engineering” really means. Software isn't bridge-building, it is not car or aircraft development either, but then neither is Chemical Engineering. Engineering is different in different disciplines. Maybe it is time for us to begin thinking about retrieving the term "Software Engineering" maybe it is time to define what our "Engineering" discipline should be.
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Codemotion
What is the job of a CTO and how does it change as a startup grows in size and scale? As a CTO, where should you spend your focus? As an engineer aspiring to be a CTO, what skills should you pursue? In this inspiring and personal talk, I describe my journey from early Red Hat engineer to CTO at Bloomon. I will share my view on what it means to be a CTO, and ultimately answer the question: Should the CTO be coding?
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Pregi e difetti dello sviluppo di videogames con Unreal Development Kit: Steampunk League dal concept al gioco by Siro Toracchio
1. This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
2.
3.
4. 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
5. 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
6. 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!!!
7. CLASSI IN UNREAL ENGINE
• Classi Object:
• AnimNode
• Component
• GFxObject
• SequenceObjec
t
• 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
8. 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
9. 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
10. 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
11. UNREALSCRIPT & PROPERTIES
class STP_Lovecraft extends STPPlayer;
//Subclass specific functions…
defaultproperties
{
//Lovecraft Specific Properties
PortraitMaterial=Material'STP_Interface.HUD.Materials.Character_Default_Prt'
Energy=150.0
EnergyMax=150.0
Health=150.0
HealthMax=150.0
EnergyRegenerationRatio=2.0 //Each second
HealthRegenerationRatio=1.0 //Each 0.5 seconds
//Lovecraft Character Mesh and Collision
Begin Object Name=WPawnSkeletalMeshComponent
SkeletalMesh=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.7
bEnableFullAnimWeightBodies = false
End Object
Mesh=WPawnSkeletalMeshComponent
Components.Add(WPawnSkeletalMeshComponent)
Begin Object Name=CollisionCylinder
CollisionRadius=+0020.000000
CollisionHeight=+0060.000000
End Object
CylinderComponent=CollisionCylinder
}
12. 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 Flow
Elaborazione degli
Input del giocatore
Rendering HUD Controllo NPC tramite IAGestione eventi temporali
13. 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
14. 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;
}
}
15.
16.
17.
18.
19.
20.
21. 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