Strange amoeba behaviour

Everything about the old and new Boulder Dash games for C64, Atari, ...

Moderator: Admin

Post Reply
subotai
Member
Posts: 251
Joined: Sun Jan 25, 2009 4:19 pm

Strange amoeba behaviour

Post 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
User avatar
LogicDeLuxe
Member
Posts: 638
Joined: Sun Jul 15, 2007 12:52 pm
Contact:

Post 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.
subotai
Member
Posts: 251
Joined: Sun Jan 25, 2009 4:19 pm

Post 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.
User avatar
LogicDeLuxe
Member
Posts: 638
Joined: Sun Jul 15, 2007 12:52 pm
Contact:

Post 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.
subotai
Member
Posts: 251
Joined: Sun Jan 25, 2009 4:19 pm

Post 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.
subotai
Member
Posts: 251
Joined: Sun Jan 25, 2009 4:19 pm

Post 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.
Post Reply