Davidebyzero/Snipes

re:I'm not sure if anybody has ever fully ported a game by reverse-engineering it, keeping 100% identical logic.

DrAlta opened this issue · 2 comments

openTTD was made by reverse engineering Transport Tycoon Deluxe

And I think LSnipes was made my REing Snipes
https://web.archive.org/web/20151024052244/http://www.ugcs.caltech.edu/~boultonj/snipes.html

According to the Linux Snipes change log at https://web.archive.org/web/20131006191100/http://www.ugcs.caltech.edu/~boultonj/snipes/CHANGELOG, there are various entries which certainly would not be present if the development method was the same as this project. For example:

  • Changed the criterion for when snipes change to ghosts. Rather than deciding randomly, the game now follows the DOS version(s) in changing a snipe to a ghost when the weapon hits the snipe in its weapon (as opposed to hitting it in the face, in which case the snipe dies).
  • Changed the characteristics of the different levels.
  • Improved enemy AI.

None of these changes would be present in a 1:1 reverse-engineered copy of the game with identical logic.

OpenTTD is a reimplementation of Transport Tycoon Deluxe, but also not a 100% reverse-engineered copy of the game with identical logic. It certainly is very accurate on the outside, but does not copy the exact assembly code logic like this Snipes project does. Even the OpenTTD community clarifies that with this blurb from their wiki:

the open source transport simulation game OpenTTD, based on the gameplay of Transport Tycoon Deluxe.

It is a separate game, merely based on the gameplay of Transport Tycoon Deluxe. It is not a 100% identical-logic reimplementation.

To clarify further, this project is the result of poring over the assembly code present in the original Snipes binary, and painstakingly copying the logic exactly, porting the existing assembly code to C++. That's what @Davidebyzero meant when he made that claim.

I believe this issue ticket should be closed, as it's probably not actually correct and not an issue in the first place. Even if it was a false claim, it does include "I'm not sure", meaning it is not asserting itself to be correct, and the claim itself is in a forum post, not in the readme or anything else that's tracked by version control inside this git repo.

Thanks for the insights!