26
Independent Development and Writing Your Own Engine Using Ananse’s Engine as an Example

Independent Development and Writing Your Own Engine

Embed Size (px)

DESCRIPTION

A talk about why an independet developer would want use their engine. And experiences we had making our own for Stem Stumper

Citation preview

Page 1: Independent Development and Writing Your Own Engine

Independent Development and Writing Your Own Engine

Using Ananse’s Engine as an Example

Page 2: Independent Development and Writing Your Own Engine

Who Am I?

• Born and raised in The Bronx, NY• CMU SCS 2008• Interned at EALA on Medal of Honor

Airborne• Worked at Demiurge Studios for 2 years• Started Ananse Productions in November

2010• Stem Stumper released in April 2011• Background is mostly in Programming!

Page 3: Independent Development and Writing Your Own Engine

Stem Stumper

Page 4: Independent Development and Writing Your Own Engine

Sonar Mode

Page 5: Independent Development and Writing Your Own Engine

Today’s Talk

• Reasons why we went on our own• Lessons learned • Ask questions!

Page 6: Independent Development and Writing Your Own Engine

Why Use An Engine?• Several engines have a strong

community• Less dependency on engineering• Large feature set available from day

one

Page 7: Independent Development and Writing Your Own Engine

Why Write Your Own?

• Engineering a core part of team• Building team expertise• Specialization (Accessibility)• Possibly License

Page 8: Independent Development and Writing Your Own Engine

Ananse’s UI Goals

• Platform independent• Works with accessibility tech • Visual guide to making UI that’s

easy to integrate in game• Non-programmers could easily

design UI

Page 9: Independent Development and Writing Your Own Engine

Interface Builder

Page 10: Independent Development and Writing Your Own Engine

Interface Builder

• Has accessibility and localization built into it

• IOS standard way of making UI• Lots of documentation and tutorials• Very platform specific

Page 11: Independent Development and Writing Your Own Engine

wxGlade

Page 12: Independent Development and Writing Your Own Engine

wxGlade

• Tried to use open source standard• Lets you design UI graphically• Had to parse XML ourselves

(libxml2)• Used for the first month of project• No absolute positioning!

Page 13: Independent Development and Writing Your Own Engine

Glade

Page 14: Independent Development and Writing Your Own Engine

Glade

• A different open source standard• Allowed for easy placement• Still not non-programmer friendly

but we ran out of time!

Page 15: Independent Development and Writing Your Own Engine

UI Lessons Learned

• Be tolerant of different formats• First tool is almost never the right

tool

Page 16: Independent Development and Writing Your Own Engine

UI Lessons Learned

• Process more important than bells and whistles

Page 17: Independent Development and Writing Your Own Engine

UI Lessons Learned

• Text based formats help for debugging first passes

Page 18: Independent Development and Writing Your Own Engine

Platform Specific Tech• File IO• Accessibility Tech• OpenGL

Page 19: Independent Development and Writing Your Own Engine

C++, Java, and Android• Android NDK not really mature until

Gingerbread (OS 2.3)

Page 20: Independent Development and Writing Your Own Engine

C++, Java, and Android

• Still need familiarity with JNI• Try to stay in one language as long

as possible • Be mindful of threading and

garbage collection issues

Page 21: Independent Development and Writing Your Own Engine

File IO on Android

• Assets live in gzip-ed package requiring Android API to read

• IO abstracted to reader/writer classes which internally handle specific

Page 22: Independent Development and Writing Your Own Engine

Accessibility on Android

• Apple has VoiceOver, a very robust touch based screen reader

• Android catching up with Eyes-Free project which is key based

• Android introduces arrow navigation control

• Don’t need to double tap instead of single tap

Page 23: Independent Development and Writing Your Own Engine

OpenGL

• Too much work to abstract draw calls

• All OpenGL functionality limited to one set of cpp files

• Still abstract things like texture loading, etc.

• One place Android and Apple agree

Page 24: Independent Development and Writing Your Own Engine

Platform Lessons Learned

• Decouple systems as much as possible

Page 25: Independent Development and Writing Your Own Engine

Platform Lessons Learned

• Focus on one platform at a time!

Page 26: Independent Development and Writing Your Own Engine

Q&A

[email protected]• @AnanseProds/@insomniac2846