Engine Overview A Programmer’s Glimpse at UE4 Gerke Max Preussner

Slides:



Advertisements
Similar presentations
Extending Eclipse Kai-Uwe Mätzel IBM OTI Labs Zurich
Advertisements

CACORE TOOLS FEATURES. caCORE SDK Features caCORE Workbench Plugin EA/ArgoUML Plug-in development Integrated support of semantic integration in the plugin.
Epic’s Build Tools & Infrastructure
Building a UE4 Plugin FMOD STUDIO Case Study.
Building Localized Applications with Microsoft.NET Framework and Visual Studio.NET Achim Ruopp International Program Manager Microsoft Corp.
Developing an Eclipse Plug-in David Gallardo. Platform Runtime Workspace Help Team Workbench JFace SWT Eclipse Project Java Development Tools (JDT) Their.
Game Framework & Sample Projects
The Slate UI Framework Architecture & Tools Gerke Max Preussner
Extensibility in UE4 Customizing Your Games and the Editor Gerke Max Preussner
Concurrency & Parallelism in UE4
Integrating a Cloud Service Joe Overview Example from our games Support in UE4 to achieve that.
MIT iCampus iLabs Software Architecture Workshop June , 2006.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Microsoft ASP.NET AJAX - AJAX as it has to be Presented by : Rana Vijayasimha Nalla CSCE Grad Student.
Game Framework & Sample Projects
The Slate UI Framework Part 1: Introduction Gerke Max Preussner
1 Plug-in Development Environment (PDE) Guide. 2 Introduction to PDE l What is PDE: »a tool designed to help you develop platform plug-ins while working.
Chapter 3.6 Game Architecture. 2 Overall Architecture The code for modern games is highly complex With code bases exceeding a million lines of code, a.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying.
Platforms and tools for Web Services and Mobile Applications Introduction to C# Bent Thomsen Aalborg University 3rd and 4th of June 2004.
User Group 2015 Version 5 Features & Infrastructure Enhancements.
Niklas Smedberg Senior Engine Programmer, Epic Games
Doxygen: Source Code Documentation Generator John Tully.
Technical Workshops | Esri International User Conference San Diego, California ArcGIS Viewer for Flex – Advanced Topics Lloyd Heberlie Björn Svensson July.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Introduction to Object-oriented Programming CSIS 3701: Advanced Object Oriented Programming.
Tips and Tricks to Speed LabVIEW Development Useful Nuggets to Save You Time ni.com/labviewzone.
Java Beans.
M1G Introduction to Programming 2 4. Enhancing a class:Room.
A Simplified Approach to Web Service Development Peter Kelly Paul Coddington Andrew Wendelborn.
An Introduction to Software Architecture
COMP 410 & Sky.NET May 2 nd, What is COMP 410? Forming an independent company The customer The planning Learning teamwork.
Framework Universal & Infinite Software Solution.
Extending ArcGIS for Server
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
1 Presentation will begin momentarily…. 2 Service Stub and Transparent Proxy: Wilma INNOVATION WE MUST DO AUGUST 24, 2015.
Struts2 Plugin Development - Extending Struts2 Justin Yip.
Scalable Game Development William Roberts Senior Game Engineer
0 OCAP RI SDK July 1-2, Cable Television Laboratories, Inc All Rights Reserved. Proprietary/Confidential. 1 RI SDK Status Current State Released.
.NET Framework Danish Sami UG Lead.NetFoundry
Ontology Engineering and Plugin Development with the NeOn Toolkit Plug-in Development for the NeOn Toolkit June 1st, 2008 Michael Erdmann, Peter Haase,
University of Illinois at Urbana-Champaign A Unified Platform for Archival Description and Access Christopher J. Prom, Christopher A. Rishel, Scott W.
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
Shannon Hastings Multiscale Computing Laboratory Department of Biomedical Informatics.
Frameworks CompSci 230 S Software Construction.
Chapter 3.6 Game Architecture. 2 Overall Architecture The code for modern games is highly complex (can easily exceed 1M LOC) The larger your program,
Developing Applications with the CSI Framework A General Guide.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
ESUG DOUAI F-Script: Smalltalk Scripting for Mac OS X Philippe Mougin
1 EiffelMedia. 2 Overview Features of the library Documentation Demos Community Stats Roadmap.
Design Overview. Generated Packages ► fUML.Library.* - generated ► fUML.Semantics.* - generated ► fUML.Syntax.* - generated ► fUML.Test.* - generated.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
Customizing Share Document Previews Will Abson Senior Integrations Engineer and Share Extras Project Lead
#SummitNow The Share Widget Library 13 th November 2013 Dave Draper
Bootstrap Tutorial Overview Objective Learn how to use the bootstrap for configuring the system. Requirements Installed Version of.
Name of Presentation Red Hat Presenter RED HAT Developer conference Brno 2009 Mobicents/JBCP Pavel Slegr.
The Holmes Platform and Applications
Computer System Structures
CMPE419 Mobile Application Development
MVC in ASP.NET Core: The new kid on the block
William Roberts Ryan Hipple
CANalytics TM CAN Interface Software BY.
An Introduction to Software Architecture
Cordova & Cordova Plugin Installation and Management
Dreaming up a CMS in Go (golang)
CMPE419 Mobile Application Development
Concepts in ASP.NET Core App
Map Reduce, Types, Formats and Features
Presentation transcript:

Engine Overview A Programmer’s Glimpse at UE4 Gerke Max Preussner

The Big Picture Overview Directories Configuration Modules Projects What’s Next? This Is Not Your Grandma’s Engine UE4 is pretty hot… but also huge! directories, 40,000+ files Bazillions of lines of code Hundreds of modules Dozens of tools, thousands of features Centuries of man years How To Master All This? Start with toes, work your way up Most code & content you’ll never touch Nobody knows everything about UE4 But you’ll see, it’s really quite easy!

The Big Picture Overview Directories Configuration Modules Projects What’s Next? Root Directory /Engine – All code, content & configuration for the Engine /MyProject – All files for the game project ‘MyProject’ /Templates – Templates for creating new projects Inside the /Engine and /MyProject Directories /Binaries – Executables & DLLs for the Engine /Build – Files needed for building the Engine /Config – Configuration files /Content – Shared Engine content /DerivedDataCache – Cached content data files (Engine only) /Intermediate – Temporary build products (Engine only) /Plugins – Shared and project specific plug-ins /Saved – Autosaves, local configs, screenshots, etc. /Source – Source code for all the things!

The Big Picture Overview Directories Configuration Modules Projects What’s Next? INI Files Hold class default properties Will be loaded into CDOs on startup Organized in a hierarchy Higher INIs override lower ones Organized in sections Key-value pairs within sections Important ones exposed in Editor UI Low-level access with FConfig

The Big Picture Overview Directories Configuration Modules Projects What’s Next? INI Files Hold class default properties Will be loaded into CDOs on startup Organized in a hierarchy Higher INIs override lower ones Organized in sections Key-value pairs within sections Important ones exposed in Editor UI Low-level access with FConfig Class Constructor BaseXXX.ini DefaultXXX.ini XXX.ini

Editor & Project Settings

Sections for UObjects [/Script/ModuleName.ClassName] Sections for Custom Settings [SectionName] Supported Value Types Numeric values, strings, enums Structured data Static and dynamic arrays Automatic serialization for UObject properties

The Big Picture Overview Directories Configuration Modules Projects What’s Next? Modularity Promotes Reusability Extensibility Maintainability Decoupling Efficiency Monolithic builds are still possible though!

The Big Picture Overview Directories Configuration Modules Projects What’s Next? Module Types Developer – Used by Editor & Programs, not Games Editor – Used by Unreal Editor only Runtime – Used by Editor, Games & Programs ThirdParty – External code from other companies Plugins – Extensions for Editor, Games, or both Programs – Standalone applications & tools Module Dependency Rules Runtime modules must not have dependencies to Editor or Developer modules Plug-in modules must not have dependencies to other plug-ins

The Big Picture Overview Directories Configuration Modules Projects What’s Next? Module Type UnrealEdAppGame Runtime √√√ ThirdParty √√√ Plugins √√√ Developer √√ X Editor √ XX Module usage across different types of applications

The Big Picture Overview Directories Configuration Modules Projects What’s Next? Important Modules for Beginners Core – Fundamental core types & functions CoreUObject – Implements the UObject sub-system Engine – Game classes & engine framework OnlineSubsystem – Online & social networking features Slate – Widget library & high-level UI features

The Big Picture Overview Directories Configuration Modules Projects What’s Next? Interesting Modules for Advanced Programmers DesktopPlatform – Useful APIs for Windows, Mac & Linux DetailCustomizations – Editor’s Details panel customizations Launch – Main loop classes & functions Messaging – Message passing sub-system Sockets – Network socket implementations Settings – Editor & Project Settings API SlateCore – Fundamental UI functionality TargetPlatform – Platform abstraction layer UMG – Unreal Motion Graphics implementation UnrealEd – Unreal Editor main frame & features

The Big Picture Overview Directories Configuration Modules Projects What’s Next? Interesting Modules for Cool Features Analytics – Collects usage statistics from Editor & games AssetRegistry – Database for assets in Unreal Editor GameLiveStreaming – Twitch Streaming HeadMountedDisplay – HMD Support API (Oculus, etc.) JsonUtilities & XmlParser – Handle Json & XML files SourceControl – API for custom source control providers

The Big Picture Overview Directories Configuration Modules Projects What’s Next? Your Game Projects can… Use Blueprints, C++ Code or both Contain any number of modules & plug-ins Be moved around and shared with others Project Templates to Get You Started Blank (with or without sample content) First Person Shooter Side scroller, top-down & puzzle games Flying & driving games They all come in Blueprint and C++ flavors More to come, and make your own!

Project Templates & Samples

Project Packaging & Deployment

Overview Directories Configuration Modules Projects What’s Next? Y U No Use C++11??!?! Actually, we do override, final, nullptr keywords auto (automatic type deduction) range based for-loops Lambdas and anonymous functions Strongly typed enumerations Move semantics What about the rest? XboxOne SDK is still on VS2012

Overview Directories Configuration Modules Projects What’s Next?

Questions? Documentation, Tutorials and Help at: AnswerHub: Engine Documentation: Official Forums: Community Wiki: YouTube Videos: Community IRC: Unreal Engine 4 Roadmap lmgtfy.com/?q=Unreal+engine+Trello #unrealengine on FreeNode