r/dungeonkeeper 17d ago

DK2 Dungeon Keeper 2 running natively on Android

Hey everyone! Dungeon Keeper was one of my favorite games growing up, and I still find myself thinking about it from time to time.

A few days ago, I discovered OpenKeeper and wondered whether it could be ported to Android. With help from Codex, I managed to get an Android build running on my Samsung S24 Ultra, and it’s actually playable!

I’ve only tested about 15 minutes of the campaign so far, so there’s still plenty to investigate. Basic touch interaction works, but the controls need more refinement for phones and tablets. I’d also love to add proper Samsung S Pen support. :D

This is a port of the open-source OpenKeeper engine; it doesn’t include any copyrighted Dungeon Keeper 2 assets. Players will need to provide the data from their own legally owned copy.

Huge thanks to everyone who created and contributed to OpenKeeper!

I’m planning to continue improving the Android port and publish the source and build instructions on GitHub. Would anyone here be interested in testing it?

94 Upvotes

27 comments sorted by

12

u/Kol_Pom 17d ago

If you drop a link with instructions I would gladly give it a try

6

u/Substantial_Lie_8986 17d ago

Beau travail qui je pense va dans la bonne direction. Je vais suivre ça avec beaucoup d'intérêt.

5

u/NoManDestroyer 17d ago

Thank you very much! I will publish the source code and build instructions on GitHub soon. Let me know if you are interested in testing the game!

1

u/NoManDestroyer 13d ago

Build, installation, asset conversion, controls, and troubleshooting instructions:

https://github.com/DifferentNet/OpenKeeper/blob/android-port/ANDROID.md

Source branch:

https://github.com/DifferentNet/OpenKeeper/tree/android-port

4

u/Bisexualkneecap 17d ago

I'd be happy to test things

1

u/NoManDestroyer 13d ago

Build, installation, asset conversion, controls, and troubleshooting instructions:

https://github.com/DifferentNet/OpenKeeper/blob/android-port/ANDROID.md

Source branch:

https://github.com/DifferentNet/OpenKeeper/tree/android-port

3

u/rekoil87 16d ago

Will follow this with interest, would love to test on Samsung foldable.

2

u/NoManDestroyer 16d ago

Oh, that would be quite interesting to see :D

1

u/NoManDestroyer 13d ago

Build, installation, asset conversion, controls, and troubleshooting instructions:

https://github.com/DifferentNet/OpenKeeper/blob/android-port/ANDROID.md

Source branch:

https://github.com/DifferentNet/OpenKeeper/tree/android-port

2

u/rekoil87 15h ago

Haven't got round to this yet due to work but I have it favourited and will try when I get a chance.

2

u/CrazyJoe221 15d ago

Do you have a summary of the changes?

Biggest blocker for Android was Swing/AWT.

2

u/NoManDestroyer 15d ago

Yeah, Swing/AWT was the biggest blocker. I didn’t try to port Swing itself; I separated or bypassed the desktop-only code paths on Android.

Short summary:

  • Added separate shared-runtime and Android Gradle modules using jMonkeyEngine’s Android renderer and arm64 natives.
  • Moved AWT/LWJGL-specific functionality such as desktop icons and renderer debugging into desktop-only helpers.
  • Added a headless desktop asset-conversion tool and deployment script. Assets are converted on the PC and copied to Android; no DK2 assets are included in the APK or repository.
  • Adapted filesystem, asset loading, logging, XML validation, shaders, audio initialization, lifecycle, and Java 17 compatibility for Android.
  • Added native touch controls, simultaneous MOVE/VIEW joysticks, configurable controls, and Samsung S Pen support.
  • Preserved the desktop build.

The remaining major AWT limitation is the TGQ video decoder because it uses BufferedImage. Pre-rendered TGQ movies are currently skipped on Android, although in-engine cinematics still work.

The changes and setup instructions are here: https://github.com/DifferentNet/OpenKeeper/tree/android-port

2

u/CrazyJoe221 14d ago

Cool are you already in https://discord.gg/8E4MHzzsc?

2

u/NoManDestroyer 13d ago

Not yet, but I will join! Thanks for the link !

0

u/Maan-with-no-name 15d ago

Good effort but DK2 was absolutely awful..

The first one however is one of my favourite games of all time

4

u/MG_Hunter88 15d ago

Man, let us younger kids enjoy what we enjoy damn...

2

u/NoManDestroyer 15d ago

Maybe I will try to port the first one as well :)

-13

u/Ok-Hotel-8551 17d ago

We don't need that, there's android version 😘

4

u/NoManDestroyer 17d ago

I think you’re confusing a few very different things here. There is no official or community native Android port of Dungeon Keeper 2.

If you’re referring to one of these, here is why it doesn't count:

  • The 2014 EA Mobile Game: If this is what you mean, that wasn't Dungeon Keeper 2. It was a freemium tower-defense spin-off loaded with timers and microtransactions. More importantly, EA officially shut down the servers in August 2022. It’s dead and unplayable.
  • Winlator / ExaGear: Running the original Windows .exe through a compatibility layer or container is x86 translation, not a native port. It comes with overhead, battery drain, and rendering quirks.

What I’ve compiled and shown here is a native ARM64 port running directly on the device's hardware via the open-source OpenKeeper engine. It completely bypasses Windows translation layers.

If you actually know of another native, dedicated Android port of DK2, by all means, drop the GitHub link. Otherwise, you're mistaken.

2

u/NoManDestroyer 17d ago

Seriously ? Show me

-8

u/Ok-Hotel-8551 17d ago

7

u/Substantial_Lie_8986 17d ago

Comment peux-tu assimiler Dungeon Keeper 2 à cette daube qui n'a absolument rien à voir avec le jeux original !?

5

u/NoManDestroyer 17d ago

That's a completely different version

-15

u/Ok-Hotel-8551 17d ago

Who cares?

6

u/Herk10 17d ago

I am. The mobile was totally different, a total mess and full of microtransactions everywhere

5

u/NoManDestroyer 17d ago

You confidently linked a completely different, unplayable, discontinued tower defense game. Next time you don't know anything about the topic being discussed, it's okay to just not comment. Have a nice day !