this post was submitted on 20 Jan 2024
44 points (97.8% liked)

Pixel Dungeon

1476 readers
67 users here now

This community is a place to talk strategies, tell stories, or discuss anything related to Pixel Dungeon or its many versions.

Rules:

We have a few title tags for standout posts:

Sister Communities:

founded 1 year ago
MODERATORS
44
submitted 10 months ago* (last edited 10 months ago) by The_Snail to c/pixeldungeon
 

A brief evolution of Rogue. Thousands of sites exist on the topic, so I won't go into a lot of repeat here, but I thought you might enjoy a quick gaming history lesson.

Tolkein (Lord of the Rings and many other books), inspired the game Moria. Zeb, Cook, and Gygax, creators of Dungeons & Dragons, inspired the game Rogue. Tolkein, from Europe, and Gygax (mainly credited for D&D), from America, detested one another.

Shattered Pixel Dungeon is based upon Pixel Dungeon. https://play.google.com/store/apps/details?id=com.shatteredpixel.shatteredpixeldungeon

Pixel Dungeon is based upon BRogue.

https://pixel-dungeon.en.uptodown.com/android

BRogue is based on Angband. https://github.com/bilgincoskun/brogue-android-port/releases/

Angband is based on Moria and Larn and Nethack. Moria is Tolkein's world, Nethack is D&D'ish, and Larn took a whole different theme. https://play.google.com/store/apps/details?id=org.rephial.xyangband

This version includes several Roguelikes in one, including Sil-Q, the Android port of Moria.

The Android port of Larn (dLarn) is available at - https://download.appsonwindows.com/b/dLarn_free-v3.3-appsonwindows.com.apk?a=azJIZDl2QyttREIxend4L0tyblQwdz09&b=ZmlJL1paUmowSkdDY25XVy9SbGRlTDdreDhhWFc5WWk5NWJORXNrSWN5L1hOamFkWUZsZ21UVVVhSDlwWWtPa2hiT0VIZmQrQ2drTHZoSXJlZ3p4cjNnVlhvWDFSNnNocU1qM0xwcEVKcFk9&c=VkZzUkZ5QjlwQmxrOFJmSWNqR1EvZ3A5MDlSN3I3ZHk4WDFTZ1ZEVnFmQT0&d=4bf63e00

Moria is based on Rogue. https://play.google.com/store/apps/details?id=org.rufe.moria

"Roguelike Classic" is the only APK I know to include direct ports of Moria, Larn, and Rogue to Android. Sadly, it uses .SO libraries that are no longer supported since Android 11. Mines of Moria does not hold very true to the original Dungeons of Moria. uMoria is not available for Android. Finally, I found Sil. This is an Android port of Moria that holds very true to Tolkein's work, but it is for x86 hardware only. Fortunately, Sil was redone as Sil-Q (silk), and is included in the above Angband apk.

The original UNIX version of Rogue (1978-1980) will not run on modern devices, and the only 2 known Android ports of the 1984-1985 DOS version stopped working at Android 11. The DOS version can be run in an emulator such as MagicDOSBox on Android. The versions up to 1984 were primarily text based, or, if one had a computer powerful enough they could select an ANSI or ASCII sudo graphics mode. It can also be played online. One must register an account before playing. https://rlgallery.org:8080/

A modern Android port can be found in Dungeon Crawl. https://play.google.com/store/apps/details?id=com.crawlmb&hl=en

In 2015, one of the largest roundups of Roguelikes took place and more than 700 versions were archived. https://archive.org/details/RoguelikeMegaCollection2015

The anual 7 Day Roguelike Challenge adds about 10 new games each year.

About the same time, Pixel Dungeon was bursting onto the scene for Android and not even mentioned in that archive at the time.

A decade later, and there is now well over 300 version's of Pixel Dungeon! That makes for over a thousand roguelikes.

Dial-up Multi User Dungeon's (MUD's), network roguelikes such as Diablo, and MMORPG's such as World of Warcraft are also evolution's of the original Rogue.

*Edit

Although Nethack wasn't a part of PD, it has been a major influence on all Roguelikes. As I mentioned it, I am posting the Android version.

https://play.google.com/store/apps/details?id=com.tbd.NetHack

you are viewing a single comment's thread
view the rest of the comments
[โ€“] The_Snail 4 points 10 months ago* (last edited 10 months ago) (1 children)

Most of the source codes are released on Github. Through Github one can look at the Commits and compare code between version's. I don't know that anyone has ever done a percentage comparison report. That would be interesting, though very time consuming.

Also, comparing the APK's won't do. The Smali code (compiled JAVA) is bundled into DEX files, and that code is archived into zip files. To compare code differences that way, one must unpack and decompile every APK and perform a CRC/MD5/etc type comparison of every file, requiring about 15Gb of storage. A simple change in the use of AAP vs AAP2 compression can result in code changes wherein 100% of the code might look different when it is the exact same code. This tripple (or more) packing process for APK's makes CRC/MD5/etc. comparison nearly impossible to get accurate results.

I know as I did a similar method to create my PD database.

https://lemmy.world/post/10401791

Too, several hundred Github repositories are nothing more than clones of the original with names changed and nothing else.

Years ago there was a DOS tool to do comparison of BIN files for the Atari 2600 roms. It decompiled and examined code changes between thousands of roms and produced a family tree output. However, those files are 4K and not compressed. I will look around and see if a modern tool might be able to do the same for Android files, however, I think the Github data is goint to be the easier route.

[โ€“] The_Snail 1 points 10 months ago

Having done some research into this, I find no tool that will do what you want, at least in the way that you want. Everything I find points to recent additions to Android Studio, the APK Analyzer (and apps like it). The tool has significant drawbacks however for this purpose. It doesn't store results, so they must be manually copied and stored. Also, comparison is one app to a second app, with no option for batch comparison. This leaves one manually bubble-sorting hundreds of Pixel Dungeon APK's. It doesn't take folder structure into account, nor does it take image relocation or resizing into account. It is best used for comparing different versions of the same app.

If anything should come up, I'll post here, but given complexities of modern apps, I don't see this ever being a simple project.