Page 1 of 1
Strange amoeba behaviour
Posted: Thu Oct 20, 2011 7:59 pm
by subotai
Hello,
I have a question about a strange amoeba behaviour in Marek's
Deluxe Caves 01 in the 4. intermission. The engine is bd1.
Code: Select all
XXXXXXXXXXXXXXXXXXXX
X2AAAAAAAAAAAAAAAAAX
XAAAAAAAAAAAAAAAAAAX
XAAAAAAAAAAAAAAAAAAX
XAAAAAAAAAAAAAAAAAAX
XAAAAAAAAAAAAAAAAAAX
XAAAAAAAAAAAAAAAAAAX
XAAAAAAAAAAAAAAAAAAX
XAAAAAAAAAAAAAAAAAAX
XAAAAAAAAAAAAAAAAAAX
XAAAAAAAAAAAAAAAAAAX
XXXXXXXXXXXXXXXXXXXX
X= Outbox open
2 = Player birth stage 2
A = amoeba
As the amoeba is not able to grow, it should not convert, even if it is enclosed. However, the amoeba converts into diamonds without growing before. Can anybody explain why?
subotai
Posted: Thu Oct 20, 2011 9:44 pm
by LogicDeLuxe
It is a bug. Dormant amoebas sometimes fail to work correctly in BD1 engine caves. This was fixed in BD2, even though none of the original caves used this feature.
Btw., I once did exactly this question in the quiz thread.
Posted: Thu Oct 20, 2011 11:28 pm
by subotai
Thanks for your reply. I already implemented this bug for bd1-engine games in my remake. If I understand right, it works as follows:
After the start signal (after hatching), it is randomly checked for each amoeba if it will try to expand or not. If the amoeba tries to grow, but it can't expand to any direction because it is enclosed, the amoeba will turn into diamonds. So, as long as the amoeba does not try to grow, the enclosed amoba will not turn into diamonds (in bd1-engine).
If there are many amoebas in the cave, the probability that the enclosed amoeba converts immediately after the start signal is high. If there is only one amoeba in the cave, you should have enough time to free the enclosed amoeba, before it can convert.
I'm thinking of cave F in CrazyDream 03 where you have to free the enclosed amoeba to get enough diamonds. If you wait a little bit in this cave, the enclosed amoeba will also turn into a diamond.
Posted: Fri Oct 21, 2011 7:52 pm
by LogicDeLuxe
subotai wrote:I already implemented this bug for bd1-engine games in my remake.
Why? Do you know any cave relying on it? I think, this bug is just annoying. In contrast to the magic wall bug, which actually requires skills to avoid lost diamonds, this bug depends on luck only.
Posted: Fri Oct 21, 2011 8:40 pm
by subotai
LogicDeLuxe wrote:I think, this bug is just annoying
So do I.
LogicDeLuxe wrote:Why? Do you know any cave relying on it?
Not really, as the number of required diamonds in the 4. intermission of
Deluxe Caves 01 is "0" and the exits are already opened.
But, the amoeba always turns into diamonds in this intermission, and it doesn't without this implementation. It's just to improve the compatibility to the c64-games and to avoid the need of a manual fix. But I will make it optional in the editor. For the moment, it isn't optional but forced, and this can really be annoying in Crazy Dream 3, cave F, even if it's accurate.
I also thought about the following solution for bd1-games:
If a filled rectangle with amoebas inside is drawn in a cave, the enclosed amoebas will turn into diamonds. Otherwise, the enclosed amoeba will not turn into diamonds. Maybe this is better.
Finally this probably will not affect any other game, but the implementation is very simple, just one or two lines of code.
Posted: Sun Nov 06, 2011 11:35 am
by subotai
Well, this is my solution:
When converting the caves from the C64 memory dump, the converter checks if the amoeba in the cave is able to grow or not. If it's not able to grow and there are at least 10 amoebas in the cave, the conversion bug is set. Finally this can also be adjusted manually.