32
Less Code More Fun Making a better Game Foundation

Less code More fun

Embed Size (px)

DESCRIPTION

Making a better game foundation

Citation preview

Page 1: Less code More fun

Less Code More Fun

Making a better Game Foundation

Page 2: Less code More fun

Part I

Intro

Page 3: Less code More fun

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

Page 4: Less code More fun

Web and Mobile Slowly Converge

Developers Leverage Tools and Techniques Between Different Platforms

iOS, AndroidWeb (Flash)ConsoleDesktop

Page 5: Less code More fun

Are we up do date?

Page 6: Less code More fun

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

Page 7: Less code More fun

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.

Page 8: Less code More fun

What is Missing?

Clear Design / ArchitectureCommon FoundationA Suitable Framework

Page 9: Less code More fun

Part II

Foundation and Architecture

Page 10: Less code More fun

Some Conventions

Architecture?Framework?

Page 11: Less code More fun

Architecture

Page 12: Less code More fun

Framework

Page 13: Less code More fun

Engine

Just another component in a Framework - Not the Framework itself.Different Engines typically exist within a Framework.

Page 14: Less code More fun

Runtime / Browser

OS and Drivers

Hardware (CPU and GPU)

Typical Layered Architecture

Project Code

Page 15: Less code More fun

Game Application

UI ComponentsGame Engine

3rd Party Libraries

Runtime / Browser

OS and Drivers

Hardware (CPU and GPU)

Typical Layered Architecture

Project Code

Page 16: Less code More fun

Anatomy of Game Data Flow

Flash was not exported from SlideRocket

Flash was not exported from SlideRocket

Flash was not exported from SlideRocket

Page 17: Less code More fun

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.

Page 18: Less code More fun

Having a Common Foundation == Taking Control Over Our Code.

Page 19: Less code More fun

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

Page 20: Less code More fun

Designed for Efficiency From the Ground Up

Clean, simple and compactReduced size and memory footprintBased on proven, bug free components

Less Code ..

Page 21: Less code More fun

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

Page 22: Less code 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

Page 23: Less code More fun

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

Page 24: Less code More fun

Scroller / Action Game

Demo

Page 25: Less code More fun

All based on a common Framework

Page 26: Less code More fun

Part III

Use and Reuse

[Across Projects and Platforms]

Page 27: Less code More fun

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

Page 28: Less code More fun

Tools for content used across platforms

Page 29: Less code More fun

Tech and Libraries across platforms

Cocos2D, ND2D, Starling, Flixel, Citrus, Box2D, NAPE, TweenMax 12, PBE / SmashCocos2D-XLangauges: As3, Objective-C, C++

Page 30: Less code More fun

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

Page 31: Less code More fun

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.

Page 32: Less code More fun

Thank You