Figured this would be useful somewhat, especially as a way to see what I've accomplished so far at my job...
I'll be updating this from time to time, since I can't remember everything I've done so far.
Not Platform Specific
- Developed a CRC32 generator for unique IDs based on a string's data, more often used to save time when using Maps or to generate a unique ID for a game object
- Developed a drawcall cache that caches several similar drawcalls and then draws them when a call with a different texture/blending mode is applied
iPhone
- Developed Facebook, Twitter, and E-Mail support to Fling
- Developed a custom Sound Engine supporting sound and music streaming, self-repeating sounds, music cross-fading, among other misc features
- Implemented AdWhirl ads on the free version of Fling
Non-iPhone
- Reimplemented native widgets like Text Fields and Alert Views to either a custom OpenGL implementation or the native equivalent of the targeted platform
- Reimplemented large platform-specific parts of the CC codebase, like the OpenGL implementation, sound, file access, among other low-level code, from iOS to the targeted platform.
- Developed a custom libPNG image loader that supports Grayscale, Gray-alpha, Indexed, and RGB/RGBA images, processing RGBA images so they had their alpha premultiplied.
- Developed a custom FreeType text renderer that takes care of properly converting UTF-8 to UCS-4 in order to not only render high-quality text to existing bitmaps, but also to render unicode text properly. This renderer also formats the text accordingly so the game only had to send a blob of text and the maximum bitmap size to format and the formatting type (Characterwrap, Wordwrap, truncation, etc)
- Reimplemented SFML's HTTP client to use non-SC++L code, since SC++L code of any kind would crash on Android, and used it to query the CC server for statistics purposes
Android
- Partially (as of this post's original posting date) ported Fling to Android
- Implemented AdMob ads and Tapjoy Offers for Fling Free
- Implemented in-app purchases
- Developed multiple java "gateways" to save RAM and allow the C++ side of the game to take as much control as possible.
- Implemented screen scaling so the game works on all screen sizes.
- Due to a lot of problems with the Android platform and Native Code, had to debug most things with no debugger, or at the very least, a print-based debugging session (that is, no debugger, just printing values from relevant variables or states)
- Implemented app licensing and obfuscation of java code
- Implemented a common java library used by all versions of Fling based around a base class that handles communicating with the native C++ Fling code and several Feature Sub-classes that implement features such as Admon Ads and in-app purchases
- Implemented save file transferring between free and paid versions of an app
- Wrote an app that can gather a user's adb logcat without that user having an SDK
webOS
- Ported Fling to webOS
- Partially ported Fuzzle to webOS
- Developed a SDL_ttf Text Renderer (later superseeded by a FreeType Renderer I also developed)

0 comments:
Post a Comment