Pokemon Android Engine


6500+ Lines of code and counting! View on Bitbucket

Some of you may remember a Java Engine that I made a few years ago. It never got completed, and never will, but this engine is based on mostly the same code except for the graphics portion and other Android specific code. This Engine is nowhere close to completion as well, and I probably will never completely finish it. This was originally developed for a Mobile App Development course in college. It is inspired by the second generation of Pokemon games as those will always be my personal favorites in the series (Fact: There is no better Pokemon game than Pokemon Silver). This Engine is built on top of the e3roid OpenGL Engine for Android allowing for hardware acceleration and easier graphics handling in the code. It is a long way from completion and will likely never truly be completed, but it is 100% open source so that anyone can use it if they want to. As far as current completion, it is far more advanced than my Java Engine was in terms of functionality and many improvements have been made such as authentic damage calculation, proper Pokemon stat generation, and much more. It also utilizes resources closely resembling (and in some cases, 100% identical to) the format used in the popular Pokemon Essentials starter kit for RMXP.

I have done a decent amount of work so far. Below is what I have started working on:

App Persistence – Done
Title Screen – Done
On-Screen Controller – Done
Hardware Keyboard (If Applicable) Controls – WIP (Overworld only)
Tile Loading – Done
Map Loading – Done
Scrollable Map – Done
Collision Detection – Done
Tile based animated movement – Done
Battle System – WIP (Nearly Finished)
NPC Interactions = WIP (All you can do is talk to them)
Day/Night System – WIP (Adding Time based events/encounters later)
In Game Menu – WIP (Semi-Functional)
Save/Load – WIP (Only certain things are saved/loaded for now)
Other misc. systems in place.

Due to time constraints (ie: given less than a month to make a “game” on top of a full college semester of other coursework and final exams to prepare for), shortcuts were taken (obviously). After writing a majority of the engine, I had already seen better ways to implement things, such as movement (especially movement!). It is implemented in an odd way, this is something I hope to fix some day. Once fixed and implemented the way it should have been from the start, hardware controls will be added. I had already gotten a version up and running on an Ouya about 2 years ago, but I lost that build (it was from scratch so it was missing a ton of other features) so I will try and redo it and upload that version in the future, although most Android devices no longer have any physical controls/keyboards so this isn’t necessarily a priority anymore.

Map Editing
I am using the very popular Tiled Map Editor for this engine as it is natively supported by the underlying e3roid OpenGL Engine. This map editor allows for multiple layers (for both tiles, objects, and collisions) and multiple tilesets for each map and is overall just an excellent map editor. You can find the Tiled Map Editor and more information about it here. It is fairly popular and many developers use it. Seriously, it’s great.

Latest Release: Build 12 – Uploaded on May 27, 2013
Eclipse Project (Source) – Import this as a project into your Eclipse/ADT workspace and get to work
Pokemon.apk – Sideload this to your Android device and install. You must have unknown sources enabled and have a file browser to install.


Spoiler: Changelog SelectShow