Date post: | 22-Nov-2014 |
Category: |
Technology |
Upload: | anansekmensah |
View: | 407 times |
Download: | 1 times |
Independent Development and Writing Your Own Engine
Using Ananse’s Engine as an Example
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!
Stem Stumper
Sonar Mode
Today’s Talk
• Reasons why we went on our own• Lessons learned • Ask questions!
Why Use An Engine?• Several engines have a strong
community• Less dependency on engineering• Large feature set available from day
one
Why Write Your Own?
• Engineering a core part of team• Building team expertise• Specialization (Accessibility)• Possibly License
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
Interface Builder
Interface Builder
• Has accessibility and localization built into it
• IOS standard way of making UI• Lots of documentation and tutorials• Very platform specific
wxGlade
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!
Glade
Glade
• A different open source standard• Allowed for easy placement• Still not non-programmer friendly
but we ran out of time!
UI Lessons Learned
• Be tolerant of different formats• First tool is almost never the right
tool
UI Lessons Learned
• Process more important than bells and whistles
UI Lessons Learned
• Text based formats help for debugging first passes
Platform Specific Tech• File IO• Accessibility Tech• OpenGL
C++, Java, and Android• Android NDK not really mature until
Gingerbread (OS 2.3)
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
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
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
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
Platform Lessons Learned
• Decouple systems as much as possible
Platform Lessons Learned
• Focus on one platform at a time!