The Finished Thesis: 150 Pages Later
The Thesis Series – Bonus Post
This is a companion post to the 6-part series on learning LaTeX and writing my Masters thesis.
- Starting a Thesis: Why I Chose LaTeX Over Word
- Formatting Hell: 19 University Templates and Why LaTeX Wins
- IEEE Citations and BibTeX: Academic References Done Right
- LyX: The WYSIWYG Path to LaTeX
- Writing IsoMob: A Cross-Platform Game Engine Thesis
- LaTeX Templates, Final Formatting, and Lessons Learned
- The Finished Thesis: 150 Pages Later (you are here)
The Document
After six posts about how I wrote the thesis, here’s the thesis itself. The final version was defended in 2013 – nearly two years after the blog series on LaTeX tooling. What started as a 1,000-line LyX draft with placeholder sections grew into a 150-page document with 70+ figures, 13 tables, performance benchmarks, UML diagrams, and actual game screenshots.
Download
- Finished Thesis PDF (~150 pages, 4.3MB)
- Early Draft PDF (11 pages, compiled from 2011 LyX file)
- Early Draft LaTeX Source (.tex, converted from LyX)
Note: The original LaTeX/LyX source for the finished thesis has been lost to time. Only the compiled PDF survives. The early draft .tex and .pdf are included to show how far the document evolved.
Thesis at a Glance
Title: Cross-Platform Isometric Game Engine Development Targeting Android
Author: Anthony J. DiPerna
Degree: Master of Science in Embedded Systems, Oakland University, 2013
Adviser: Subramaniam Ganesan, Ph.D.
Committee: Subramaniam Ganesan (Chair), Manohar Das, Chingseh Wu
Dedication: To my loving wife Jenny, and my sons Matthew, Jacob and Zachary
Abstract: This thesis describes a game engine named IsoMob that enables developers to create isometric applications that target the World Wide Web, Desktop PC and Android simultaneously. It accomplishes this with a single code base written in HaXe. HaXe is an abstraction language that is able to compile to various languages such as C++, Actionscript 3.0, PHP, HTML5 and Javascript. The design and implementation of the game engine are described, as well as the performance results of a sample application built using the IsoMob isometric game engine.
From Draft to Defense
The 2011 LyX draft had 9 outline sections, 2 figures, and placeholder text (“what”) in most sections. The finished 2013 thesis has 6 fully-written chapters, 4 appendices, and 150 pages of prose, diagrams, and data.
Here’s what changed:
| 2011 Draft | 2013 Final | |
|---|---|---|
| Pages | 11 | ~150 |
| Chapters/Sections | 9 (outline) | 6 (complete) |
| Figures | 2 | 70+ |
| Tables | 0 | 13 |
| Appendices | 3 (empty) | 4 (with code listings and diagrams) |
| Bibliography | 17 entries | 18+ entries |
| Front matter | Title + abstract | Title, approval, copyright, dedication, acknowledgments, abstract, ToC, list of tables, list of figures |
| Performance data | None | Bullet tests + unit tests across 4 platforms |
The thesis was restructured significantly. The draft’s 9 flat sections (Physics, Application, User Interface as separate sections) were consolidated into 6 proper chapters. The AI and Implementation chapters absorbed the draft’s scattered topics. The entire Implementation chapter (Chapter 5) with its performance benchmarks was written from scratch.
Document Structure
The compiled PDF is approximately 150 pages with the following structure:
Front Matter (pages i–xvi)
| Pages | Content |
|---|---|
| i | Title page |
| ii | Approval page (signed by committee) |
| iii | Copyright page |
| iv | Dedication |
| v | Acknowledgments |
| vi | Abstract |
| vii–x | Table of Contents |
| xi | List of Tables (13 tables) |
| xii–xvi | List of Figures (70+ figures) |
Main Content (pages 1–105)
| Chapter | Title | Pages | Key Content |
|---|---|---|---|
| 1 | Introduction | 1–7 | Motivation, why isometric, social gaming, cross-platform development |
| 2 | Related Work | 8–17 | Cross-platform competition: wrapper, scripting, similar API, and abstraction approaches |
| 3 | Engine Design | 18–51 | Isometry (transforms, coordinate spaces), scenes (XML tile maps), dynamic entities, resources (sprite sheets, textures), game objects, rendering (depth sorting) |
| 4 | Artificial Intelligence | 52–72 | Steering behaviors (seek, flee, obstacle avoidance, autonomous movement), pathfinding, finite state machines |
| 5 | Implementation | 73–100 | Design goals, optimizations, FPS, centralized game loop, performance tests across Android tablet, Android phone, Flash, and Windows |
| 6 | Conclusion | 101–105 | Contributions, future work (robustness, UI, AI extensions, physics, evaluation) |
Appendices (pages 106–134)
| Appendix | Title | Content |
|---|---|---|
| A | Development Environment | HaXe configuration, Visual Studio setup, Android configuration |
| B | How Haxe Works | Platform-specific build pipelines for Flash, Windows (C++), and Android |
| C | Android NDK Targeting | Android application structure, JNI bridge details |
| D | Asset Parsing Script | Folder structure and automation for game assets |
What the Thesis Actually Contains
The Math
Chapter 3 doesn’t just explain isometric projection conceptually – it derives the transforms. The isometric-to-screen and screen-to-world coordinate conversions are worked through with rotation matrices, scaling transforms, and the specific 26.565-degree dimetric angle that makes pixel-perfect 2:1 tile ratios possible. Figures show the step-by-step transform: start with a 100x100 pixel square, rotate 45 degrees, scale height by 50%, arrive at a 141.4x70.7 pixel rhombus.
The UML
The engine architecture is documented with proper UML class diagrams: IsoEngine, IsoScene, IsoElement and its child classes, IsoObject. These aren’t hand-wavy architecture boxes – they show actual properties, methods, and inheritance relationships from the HaXe codebase.
The AI
Chapter 4 is essentially a mini-textbook on steering behaviors applied to isometric games. Wall collision detection uses feeler-based line segment intersection with the math fully worked out. Object avoidance projects entity heading vectors to find collision radii. The finite state machine section shows high-level state diagrams for enemy AI control.
The Performance Benchmarks
Chapter 5 is where the thesis becomes genuinely interesting as research. Two test suites – bullet tests and unit tests – are run across four platforms:
Bullet Tests (spawning projectiles to stress-test rendering):
| Platform | 18/round | 36/round | 64/round |
|---|---|---|---|
| Android tablet | ~30 FPS | ~18 FPS | ~7 FPS |
| Android phone (HTC Incredible) | ~23 FPS | ~10 FPS | – |
| Adobe Flash | ~30 FPS | ~30 FPS | ~15 FPS |
| Windows C++ | ~30 FPS | ~28 FPS | ~24 FPS |
Unit Tests (spawning animated AI enemies with full steering behaviors):
| Platform | 60 enemies | 115 enemies |
|---|---|---|
| Android tablet | ~25 FPS | ~15 FPS |
| Android phone | ~15 FPS | Out of memory crash |
| Adobe Flash | 30 FPS (locked) | ~27 FPS |
| Windows C++ | 30 FPS (locked) | 30 FPS (locked) |
The Windows C++ target dominated. Flash performed surprisingly well. The Android phone (HTC Incredible with Adreno 200 GPU) was the weakest link. Every test includes a time-series FPS chart over 100 seconds, showing exactly how frame rate degrades as entities accumulate.
The Game Screenshots
Figure 5.17 shows the actual game running: an isometric world with animated sprite enemies roaming around, complete with diamond-shaped tiles, walls, characters with different sprite sizes, and the IsoMob UI overlay. This isn’t a hypothetical engine – it shipped working software on four platforms from a single HaXe codebase.
The Bibliography
The thesis references cover game AI textbooks, cross-platform SDK documentation, and the foundational papers that IsoMob builds on:
- Game development: Buckland’s “Programming Game AI by Example,” Peters’ “AdvancED Actionscript 3.0 Animation,” Spuy’s “AdvancED Game Design with Flash,” Dunn & Parberry’s “3D Math Primer”
- Cross-platform tools: Cocos2d, Titanium, PhoneGap, Corona SDK, HaXe, Moai
- Foundational work: Craig Reynolds’ “Steering Behaviors for Autonomous Characters” (1999), Neil Walker’s “On Filmation” (documenting Knight Lore’s isometric pioneering)
- Industry context: GigaOM on iPhone’s market impact, CNN on game completion rates, Gatliff on Android architecture
What LaTeX Made Possible
Looking at this finished document, the LaTeX investment from 2011 paid off in ways I didn’t anticipate:
70+ figures placed correctly. Every performance chart, UML diagram, architecture diagram, and game screenshot floats to the right position, gets numbered automatically, and appears in the List of Figures. Imagine managing 70 figures in Word with correct numbering and cross-references.
13 tables formatted consistently. From Android smartphone specs to steering force direction summaries to cross-platform build configurations – every table follows the same style rules without manual formatting.
4 appendices with code listings. The appendices include actual HaXe build configurations, Android NDK setup scripts, and asset parsing code. LaTeX’s verbatim and listing environments handle code formatting that Word would mangle.
150 pages that compile. The entire document – front matter with roman numerals, main body with arabic numbers, bibliography with IEEE formatting, appendices with letter numbering – compiles from source to a perfectly formatted PDF. Every time. No corruption, no style drift, no mysterious reformatting.
This is what I was writing towards in 2011 when I chose LaTeX. I just didn’t know it would take two more years to get here.
This concludes the thesis blog series. The thesis describes IsoMob, an open-source cross-platform isometric game engine written in HaXe that targets Android, Flash, Desktop, and Web from a single codebase. Defended at Oakland University in 2013.
