Donkey Kong Jr

Thank you for your opinion Erwin!

Yeah… for the key, you have to jump at the right time (LEFT+A)… I’m still getting fooled myself !

I actually decided to develop Donkey Kong Jr in full resolution with RGB565 because I absolutely wanted to produce this LCD-like rendering with this light shading. Without the shadows, I could have limited myself to develop the game in indexed mode (the code would have been much simpler and lighter)… and I would have probably realized that my ScreenRecorder deserved to be extended to support indexed display mode :joy:

1 Like

Congrats. It’s well polished.
A remark : In your animated gif, the 3rd time, the player is about to reach the key, he jump / fall and get bite by the crocodile. logicaly the crocodile should have move forward. It seems that when the player falls, he is not in sync with the timer…

1 Like

Thanks @gibs.

But… the timing’s right. In fact, I made a point of not penalizing the player when he falls back after opening the cage. He has no control over the sequence of steps or when he’ll get back up. In other words, chance can put him in a situation where he has no possibility of avoiding a crocodile that is there at the same time, which would not be very fair. So I have chosen to systematically clear the crocodiles in this particular situation so that the player is not unfairly penalised. It’s neither a bug, nor a synchronization problem :wink:

1 Like

We are not talking about the same situation. 3rd play : the player is about to reach the key, he jump (up) (not left + button) fall (he is still on the floor in front of the key) and get bite by the crocodile. :slight_smile:

In this case, I don’t see what the problem is (?) … he jumped at the wrong time to avoid the crocodile: a hair too early in fact… because when he falls down, the crocodile is still there! It’s not a problem of synchronization of the game either… It’s the player who is out of sync with the pace of the game and jumped too early… :slight_smile:

That’s precisely the difficulty of this type of game: staying in perfect sync with the rhythm of the game!

For me, the fall down needs to be sync with the timer. because the crocodile was already at its feets (1 position before the collision).

Not for me! The player’s controlled movements are independent of the pace of the game. The player is free to control his avatar as and when he wants. The jump triggers a delay that starts the moment the player presses the button to jump. From there, the delay runs in 2 steps: the ascent, then the descent. The player must, by his experience of the game, master this delay and take it into account! In order to make a jump at the right moment!

look at 5:15 (or anywhere in the game).

Yeah… the player is perfectly synced with the pace of the game. He manages his jump in such a way that he can jump again immediately afterwards, without falling back down just when the crocodile is about to move forward.

As I said above, the interest and difficulty of this type of game are mainly centered on the taming of the game’s pace. If the engine takes care of this synchro for you, I don’t see much interest personally anymore…

But as the program is open source, gibs, you can make a variation of the game (as long as you keep Steph as Creator and say it’s a modification of gameplay made by you).
As that you make players choose the gameplay they like more. Better you could add a start menu and an option selectable to choose gameplay

@jicehel It’s not in my plans :slight_smile:
On top of that, I don’t understand others code even more if it’s oriented object programation. It would be easier for me to start from scratch :slight_smile:

Just saying that to help to make the game closer to the original (if it was the goal) I’m trying to explain my observation.

@steph so it is weird that this behaviour (the one in your animated gif) never happen when the game speed is high. but maybe you don’t understand what I’m trying to explain : of course the player moves are independant of the game timing but while the monkey is in the air, he should be put back in the floor after the crocodile has made its step. Let’s say the game speed is 500ms. you are free to jump when you want, but the release of the jump should me something like 250ms after the pace.
I can notice that in all those kind of games (donkey kong) etc depending on when you jump, the player can be put back on the floor quicker than expected.
this is my opinion. I don’t force anyone to buy that.

1 Like

I don’t know if what I try to explain is clear so I did a video of your game:
I never died this way in the original :

1 Like

From the moment the player presses the button to jump, the timecode of that moment is saved. And the duration of the jump is equal to precisely half the duration of one beat of the game.

Let’s take the case of a beat synchronized at 1000 ms as it is the case from the beginning of the game. The duration of the jump is thus equal to 500 ms. If the player jumps at 5450 ms (i.e. 450 ms after the last beat), he falls back to the cow floor at 5450+500 = 5950 ms. If within the next 50 ms (i.e. 1/20th of a second) he does not jump again, and a crocodile has been right in front of him since the last beat, then he gets bitten at the precise moment the crocodile advances, i.e. at the new beat: at 6000 ms.

He should have waited another 100 ms before jumping the first time, to be sure that the crocodile would have passed in the meantime.

That’s the rule I implemented. It seems to me to be in line with my idea of the precision required in this type of game. If you don’t like it, you’re free to change it in your version of the code. Personally, it suits me very well like that!

That’s the problem !
It was just a remark to improve it but if it suits you that’s the most important. I don’t plan to modify your code. I own the original G&W :wink:

It’s not a problem for me… it’s a feature!.. you understood it during this discussion :wink:

I didn’t have the Game & Watch system at my disposal to look into it closely… But according to my idea of this kind of game, where synchronicity is paramount, I implemented things according to my personal vision. And even if the original system wasn’t implemented that way, well, it will be my personal touch…

Thank you for your point anyway, it deserved to be discussed.

Of course ! you said : “*I tried to stay consistent with the original version by scrupulously examining some demonstration videos on YouTube, but this task proved to be laborious and imprecise… I think I have managed to make a fairly faithful adaptation despite everything. You’ll tell me what you think :slight_smile:

Yes, I tried… but it was necessarily imprecise without having the game on hand and the feeling of the gameplay. So I had to make implementation choices based on the impressions I had from the videos I found on YouTube.

But I feel that my choices are well thought out and that my decisions are in line with the idea I’ve been telling you about throughout this discussion…