Less code More fun

Preview:

DESCRIPTION

Making a better game foundation

Citation preview

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

Recommended