Page 2 of 2

Posted: Fri Feb 12, 2010 2:54 am
by RTADash
One of my primary points was that the best-designed levels (the classics) can actually withstand changes to the engine.

Nevermind that though, I give up; now going back to pure Boulder Dash and levels created from within RnD.
You won.

Posted: Fri Feb 12, 2010 10:41 pm
by Holger
dave wrote:this is why i want to be credited properly.
If you think that you are not credited properly for your valuable contribution to R'n'D at the moment, and how it should be done instead, please let me know. (Here in the forum, or by private e-mail, as you prefer.)
i played diamond caves when it first came out, (when i still had my amiga :-) and it is not a perfect clone. iirc you could collect emeralds and diamonds as they fell, which is a fatal flaw in any emulation of emerald mine.
I have to defend Diamonds Caves a little bit here: I think it is a very good clone which plays pure Emerald Mine levels quite nicely. I also don't think that differences in behaviour you mentioned above (collecting falling gems) are a "fatal flaw", as this only makes a minority of levels a little bit easier to play (sort of "cheating", if you like). IMHO, a "fatal flaw" is an engine difference that makes a majority of levels completely unplayable/unsolvable.
i disassembled original kingsoft emerald mine, and re-wrote it from scratch in assembly for the amiga.
Yep, that's what I expected. To those who may now think "Well, writing a highly compatible game engine in a certain language if you have a perfectly compatible (original) version of the exact same game engine in the exact same language should be a reachable goal.", I have to tell that it's easy to disassemble a program, but quite hard work to make sense of it, with no variable names and functions and all (just to name a few things). Everybody who has ever seen (not even to talk of modified, re-assembled and successfully run again) a disassembled binary program will agree here.

IMHO, the most important part was to translate the engine to C, which made it available to all modern systems, not only antique Amiga systems. I cannot emphasize enough how much I appreciate this!
so to answer your question, no it is not based on disassembly, it is written and re-written three times, in c, entirely from scratch.
Yes. But I think it wouldn't have been possible to reach the same agree of compatibility without the analysis of the disassembly (but by only looking closely at the running game engine, as it may have been the case with Diamond Caves).

About the new Supaplex engine:
(i am skeptical of this. you have very different programming langauges and runtime environments. if the original code relys on such things you will have a hard time emulating it. for example in emerald mine to be 100% compatible would require the amiga ROM because it is used for random numbers. another problem is code that examines uninitialized memory (see level 80, in both ruppelmine 4 & 5).
Yes, that's right. The Supaplex engine indeed has this "problem" -- you can create levels that cause access to non-playfield memory, and quite a number of levels make (ab-)use of this, so just preventing off-playfield access (like it is done in the R'n'D engine) would cause a number of levels to be unplayable/unsolvable. To find correctly working solutions for such special cases is a good part of integrating such a native engine that originally ran in a non-memory-protection, non-multitasking environment.
yet you, and others, continue to say its 'partially' compatible with emerald mine.
Yes, it is. (In a similar sense that Diamond Caves is Emerald Mine compatible, although Diamond Caves beats R'n'D here, I think.)
try 99.8% incompatible (100 em levels shipped with rnd divided by 50 000 total).
Yes, it's not generally Emerald Mine Club engine compatible.

(On a side note: I added those additional EMC game elements to the R'n'D engine not to play native EMC levels in the R'n'D engine, but to be able to create or modify EMC style levels, as R'n'D internally uses R'n'D engine elements also for levels designed to be played with a native game engine before they are played with that engine. To get a seamless integration without people wondering why certain elements do nothing when played with the R'n'D engine, I added some similar functionality to those EMC elements also in the R'n'D game engine, which may be only slightly compatible with the original. After all, it's no coincidence that all levels from that huge EMC collection are played with the EMC engine by default, and not with the R'n'D engine, although this can be changed in the level editor if somebody wants to see how a certain level plays with the R'n'D engine. But it shouldn't be forgotten that the R'n'D engine wasn't created to play all EM/EMC levels, but to play R'n'D levels.)
RTADash wrote:One of my primary points was that the best-designed levels (the classics) can actually withstand changes to the engine.
Interestingly, this is right. Most of the classic original levels are not only well-designed regarding fun and playability, but also in a surprisingly engine-robust way, which means that most of these levels do not require frame-exact timing or make use of ultra-specific engine details -- something which cannot be said for quite a number of the EMC levels, or some of the additional, player-designed Supaplex levels, where in both cases special/strange engine behaviour was used to make levels especially tricky, which unfortunately does not always add to the fun and playability for those players who don't have this inside know-how about the engines.

As a result, the classic original Emerald Mine levels can also be played nicely with game engines like Diamond Caves or R'n'D, which in fact are not perfectly Emerald Mine compatible, while many of the EMC levels need a much higher compatible game engine to be played.
On a side note, I feel the need to mention that 99/100 of the original Boulder Dash levels and 110/111 of the original Supaplex levels are also solvable under the RnD engine.
It's interesting to see that the above not only seems to be true for only the Emerald Mine engine, but also the Supaplex and Boulder Dash game engine. Apparently these original levels focussed on different game aspects that bashing the engine to the limits! ;-)
I personally am very interested to see how the BD engine will turn out, with that classic being my forte of the three.
Don't know why, but when I worked on the EMC engine integration, everybody and his dog asked for the native Supaplex engine. Since I work on it, I got quite an amount of requests and questions regarding the native BD engine! :-)

BTW1: The code for that BD engine (which is said to be highly, if not perfectly compatible) is already waiting to be integrated. It's just a matter of free time for coding, instead of writing forum posts. ;-P

BTW2: When that BD engine is done one day, I also have a collection of around 550 classic (from C64 times) player-created BD level sets available for it... :-)

Posted: Mon Feb 15, 2010 6:51 am
by dave
Holger wrote:
dave wrote:this is why i want to be credited properly.
If you think that you are not credited properly for your valuable contribution to R'n'D at the moment, and how it should be done instead, please let me know. (Here in the forum, or by private e-mail, as you prefer.)
like i said back in september, follow the license:

All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by David Tritscher.
i played diamond caves when it first came out, and it is not a perfect clone. iirc you could collect emeralds and diamonds as they fell, which is a fatal flaw in any emulation of emerald mine.
I have to defend Diamonds Caves a little bit here: I think it is a very good
but not perfect like you claim
clone which plays pure Emerald Mine levels quite nicely. I also don't think that differences in behaviour you mentioned above (collecting falling gems) are a "fatal flaw", as this only makes a minority of levels a little bit easier to play (sort of "cheating", if you like). IMHO, a "fatal flaw" is an engine difference that makes a majority of levels completely unplayable/unsolvable.
you say that because diamond caves and your 99% incompatible game has these bugs.

collecting emeralds while they fall, and surviving being hit by a bomb are indeed fatal flaws:

* no emerald mine game has ever allowed it
* it violates the basic rules of the game: http://www.lemonamiga.com/games/docs.php?id=557 line 120: "... they kill a player when falling upon him."

the computer program follows the rules of the game. it is not subject to the levels.

see the mess you get when you ignore that: viewtopic.php?t=651
i disassembled original kingsoft emerald mine, and re-wrote it from scratch in assembly for the amiga.
Yep, that's what I expected. To those who may now think "Well, writing a highly compatible game engine in a certain language if you have a perfectly compatible (original) version of the exact same game engine in the exact same language should be a reachable goal.", I have to tell that it's easy to disassemble a program, but quite hard work to make sense of it, with no variable names and functions and all (just to name a few things). Everybody who has ever seen (not even to talk of modified, re-assembled and successfully run again) a disassembled binary program will agree here.
IMHO, the most important part was to translate the engine to C, which made it available to all modern systems, not only antique Amiga systems.
here we see an unmistakable cone of ignorance.
I cannot emphasize enough how much I appreciate this!
so to answer your question, no it is not based on disassembly, it is written and re-written three times, in c, entirely from scratch.
Yes. But I think it wouldn't have been possible to reach the same agree of compatibility without the analysis of the disassembly (but by only looking closely at the running game engine, as it may have been the case with Diamond Caves).
as it may have been the case with rocks'n'diamonds.
i guess what you say is true for diamond caves and your game, but not mine :-)
About the new Supaplex engine:
Yes, that's right. The Supaplex engine indeed has this "problem" -- you can create levels that cause access to non-playfield memory, and quite a number of levels make (ab-)use of this, so just preventing off-playfield access (like it is done in the R'n'D engine) would cause a number of levels to be unplayable/unsolvable. To find correctly working solutions for such special cases is a good part of integrating such a native engine that originally ran in a non-memory-protection, non-multitasking environment.
This second native game engine is indeed 100% compatible with the original game engine
again, not 100% compatible like you claim.
yet you, and others, continue to say its 'partially' compatible with emerald mine.
Yes, it is. (In a similar sense that Diamond Caves is Emerald Mine compatible, although Diamond Caves beats R'n'D here, I think.)
oh i think i get it. when you say 'emerald mine' you mean only the very first emerald mine game released by kingsoft.

so you have written an engine designed specifically to play those levels, and no more! it is 100% compatible with 0.2% of the total levels!

ah it makes sense now. thats why it is such a poor clone!

ps. what about the 2 sequels from kingsoft? do they count as 'emerald mine' ?
As a result, the classic original Emerald Mine levels can also be played nicely with game engines like Diamond Caves or R'n'D, which in fact are not perfectly Emerald Mine compatible
you designed your engine to specifically play the 100 original kingsoft levels and you say its still not compatible?

Posted: Mon Feb 15, 2010 10:11 am
by Holger
Thank you. This last post has finally answered all remaining questions, and brought the discussion to a good end.

I'll continue coding now! :-)

Posted: Mon Feb 15, 2010 6:30 pm
by RTADash
dave wrote:you designed your engine to specifically play the 100 original kingsoft levels and you say its still not compatible?
I know I said that I gave up, but one more thing that you still don't get:
The RnD engine was NOT designed to play Emerald Mine levels!

Just because at least one EM level works under RnD, doesn't mean that was his sole intention.
And, the Emerald Mine Engine is still clearly not finished nor will it ever likely be pinpoint perfect, especially when there's more interest in hounding him and not the slightest hint of any interest whatsoever in actually being constructive and helping him.

Now I give up, big time.
Holger wrote:Thank you. This last post has finally answered all remaining questions, and brought the discussion to a good end.
Whoops, did I just post all that? :shock: *whistles*

Posted: Tue Feb 16, 2010 2:17 am
by dave
RTADash wrote:The RnD engine was NOT designed to play Emerald Mine levels!
it was designed to play the original kingsoft emerald mine 1 levels, but no others :-) the proof is in the rocksndiamonds zip file; it includes the original kingsoft emerald mine 1 levels. it would be pretty dumb to distribute levels with a program that cant play them :-)

Posted: Tue Feb 16, 2010 2:42 am
by RTADash
I'm guessing you've caught on to the fact that I haven't really been angry this whole time :) - I tend to overreact/exaggerate, etc.

Anyway, I think then that the same could be said about Boulder Dash 1, Original Supaplex, and Sokoban. All of those classic elements are included also and two of those sets actually have an unsolvable level. I primarily play RnD for these levels, though.

Nevertheless, though, I'm willing to put this to rest too as Holger did, sorry for dragging it on

Posted: Tue Feb 16, 2010 3:01 am
by dave
RTADash wrote: And, the Emerald Mine Engine is still clearly not finished nor will it ever likely be pinpoint perfect, especially when there's more interest in hounding him and not the slightest hint of any interest whatsoever in actually being constructive and helping him.
what an odd thing to say.

from the start i have said Emerald Mine for X11 http://www.emeraldmines.net/?emeraldx11 has implemented wrap-around. FYI Emerald Mine for X11 is the engine used in rnd. i even gave instructions on how to use it viewtopic.php?p=12629#12629 . (as long as i am credited properly, and it is not changed).

the rest is correcting his ignorance of my software and emerald mine in general.

Posted: Tue Feb 16, 2010 3:11 am
by RTADash
My apologies for jumping to conclusions in that case (and for the exaggerated verbiage)

Posted: Thu Feb 18, 2010 6:16 am
by dave
Holger wrote:RnD is partially compatible with Emerald Mine
RTADash wrote:The RnD engine was NOT designed to play Emerald Mine levels!
you're right, i dont get this.

in order to be 'any' compatible, you would need to have some things in common between rnd & emerald mine.

but then you say its not designed like that, so things arent in common between rnd & emerald mine.

how can both claims be true?

Posted: Thu Feb 18, 2010 7:50 am
by RTADash
Delayed reaction a bit?
Just because the original emerald mine levels work in RnD doesn't mean it was tailor-made from them. Is every cave game engine supposed to have absolutely not a single thing in common with any other engine? I didn't think so. :wink: Similarities and compatibilities between engines will arise without being forced. It's inevitable, and that is an observation made by my own eyes, not a random claim.

I don't have much left to argue - I acknowledge that you and Holger are more experienced in the programming aspect of things, and feel it would be best to step out of this. If you have any more items from past posts to object to, I'll be more than glad to attempt to hold my ground, but I'm getting further out of my league and really have nothing more that I can support without being a programmer myself. (I'm but a designer who works with what tools are handed to me)

Posted: Thu Apr 08, 2010 4:37 am
by dave
Holger wrote:I also don't think that differences in behaviour you mentioned above (collecting falling gems) are a "fatal flaw", as this only makes a minority of levels a little bit easier to play (sort of "cheating", if you like). IMHO, a "fatal flaw" is an engine difference that makes a majority of levels completely unplayable/unsolvable.
im not sure what makes you an expert on this topic (cut&paste sourcecode?) but dont take my word for it:

http://www.bd-fans.com/Interviews.html
Which Boulder Dash game or clone do you prefer?

[...] There are some Boulder Dash clones which have been done very horribly, for example the Gameboy and the Amiga version. In one version the butterflies explode too high when they touch an amoeba and in another version they explode too low. Or you can collect diamonds while they are falling down. That's not what I call Boulder Dash. Furthermore I don't like it when the charsets are changed in a way that it is difficult to recognize the elements. I like to play Boulder Dash with its original charset.

Posted: Thu Apr 08, 2010 6:42 am
by RAP
Bleeeh! That partially defeats the fear factor of falling objects while playing Boulder-Dash like games.

Tis a real blow! :C