Less Code More Fun
Making a better Game Foundation
Part I
Intro
Game Production Process Has Evolved
Best Practices migrated across different platforms: C++ (Consoles), AS3 (Web), Obj C (iOS)Layered Architecture and modular components are commonOpen Source UI Frameworks and Game EnginesMany Studios have their own Tech
Web and Mobile Slowly Converge
Developers Leverage Tools and Techniques Between Different Platforms
iOS, AndroidWeb (Flash)ConsoleDesktop
Are we up do date?
Common Problems in Development
Very little planning ahead. Features are usually implemented on the flyReinventing the wheelDuplicate implementation - Too much Copy/PasteNo common foundationNo distinct production cycle steps
Typical Results
Developers are forced to choose quick and dirty over properly designed code. Team will often overlook features that take longer to implement.Production value and user experience degrade.
What is Missing?
Clear Design / ArchitectureCommon FoundationA Suitable Framework
Part II
Foundation and Architecture
Some Conventions
Architecture?Framework?
Architecture
Framework
Engine
Just another component in a Framework - Not the Framework itself.Different Engines typically exist within a Framework.
Runtime / Browser
OS and Drivers
Hardware (CPU and GPU)
Typical Layered Architecture
Project Code
Game Application
UI ComponentsGame Engine
3rd Party Libraries
Runtime / Browser
OS and Drivers
Hardware (CPU and GPU)
Typical Layered Architecture
Project Code
Anatomy of Game Data Flow
Flash was not exported from SlideRocket
Flash was not exported from SlideRocket
Flash was not exported from SlideRocket
Game Application
UI ComponentsGame Engine
3rd Party Libraries
The Client Code
Popups, HUD Elements, Buttons etc.
Group was not exported from SlideRocket
And that can be used across different projects and platforms.
Having a Common Foundation == Taking Control Over Our Code.
Using a Common Foundation
Provide a modular design, based on swappable building blocksModernize our code base and promote best practicesAllow specialization of developers in the team
Designed for Efficiency From the Ground Up
Clean, simple and compactReduced size and memory footprintBased on proven, bug free components
Less Code ..
We Can Get Our Own Tech
Simplify the Creative ProcessFocus efforts on game code / contents, instead of boilerplate code.Create with higher production value.Allows for quick iterations without cutting corners
.. More Fun
Start Development Faster
With the foundation, the base tier is ready to go from Day 1Significant head start when starting productionChoose from an array of ready made features, or add new ones
Foundation Supported Features
Core Engine (Rendering, Asset Management, etc)Character Animation and MovementParticlesPhysics (Box2D / Nape)Common UI ElementsExtension Layer for common gameplay systemsShop, Inventory, Item Placement
Scroller / Action Game
Demo
All based on a common Framework
Part III
Use and Reuse
[Across Projects and Platforms]
Making Portable Code and Assets
Get a portable project Just using the foundationProperly architected code makes porting much easierAssets and back-end interface should be reusable across platformsModular structure supports one-time porting per block
Tools for content used across platforms
Tech and Libraries across platforms
Cocos2D, ND2D, Starling, Flixel, Citrus, Box2D, NAPE, TweenMax 12, PBE / SmashCocos2D-XLangauges: As3, Objective-C, C++
Flash ==> IOS ==> Android
Fast Route Use Adobe AIR to create mobile apps.
Native Port the common Framework to native IOS and Android, then port the game code
Bottom Line
Streamlined ProcessBetter solutions for common problems, putting real knowledge and innovation into foundation code.
Shorter SchedulesEach subsequent project would see better utilization and shorter timelines.
Thank You
Top Related