MININIM 0.9.2

A free software implementation of Prince of Persia 1.

Moderator: English Moderator Team

User avatar
doppelganger
Vizier
Vizier
Posts: 115
Joined: April 24th, 2015, 9:04 am
Location: India

Re: MININIM 0.9.2

Post by doppelganger » February 26th, 2016, 3:16 pm

It's harder to perform 3-tile running jumps in MININIM just because of lack of/improper platform edge detection.
Is it intentional? I'm not accustomed to pressing SHIFT after 3-tile running jumps.

EDIT: Ran into the flicker guard bug again!

Image

When I restarted the game and tried it, the bug appeared.
But when I restarted MININIM (ie. closed and oppened it again) and tried it under the same circumstances, the bug disappeared.

Bug 2: Overlapping guards cause this:

Image

Although not a problem, it is rather ugly.

AND, I recommend you test battles between two guards. I can't swap places sometimes.
Doppelgänger
Hmm.. These mortals know about me.. :evil:

Download 'Hell of A Palace' now from Popot!

User avatar
oitofelix
Wise Scribe
Wise Scribe
Posts: 202
Joined: February 17th, 2016, 1:59 pm
Contact:

Re: MININIM 0.9.2

Post by oitofelix » February 26th, 2016, 7:26 pm

doppelganger wrote:It's harder to perform 3-tile running jumps in MININIM just because of lack of/improper platform edge detection.
Is it intentional? I'm not accustomed to pressing SHIFT after 3-tile running jumps.
I've implement platform edge detection for delayed running jumps in commit 9496e0a.

MININIM didn't have any kind of detection. MININIM makes it harder to miss an edge in every other situation, where the original game would let you fall flat, so I thought this increased difficult would add to the challenge of mastering the game. However, it seems people do expect such feature, so I decided to implement it.

As soon as I sort out the remaining problems, I'll keep you updated.

Ps: I also have a personal bug list I'm working on. The VCS version has many bugs of the 0.9.2 version fixed already, and a handful of new features. See the file latest-news.texi for everything that is implemented already in the development version and will soon be available in the upcoming release.

Code: Select all

 88888  FFFFF Bruno Félix Rezende Ribeiro (oitofelix) [0x28D618AF]
 8   8  F     http://oitofelix.freeshell.org/mininim/
 88888  FFFF  mailto:oitofelix@gnu.org
 8   8  F     irc://chat.freenode.org/oitofelix
 88888  F     Please, support my work: http://oitofelix.freeshell.org/funding.html

User avatar
oitofelix
Wise Scribe
Wise Scribe
Posts: 202
Joined: February 17th, 2016, 1:59 pm
Contact:

Re: MININIM 0.9.2

Post by oitofelix » February 26th, 2016, 11:59 pm

doppelganger wrote:EDIT: Ran into the flicker guard bug again!
When I restarted the game and tried it, the bug appeared.
But when I restarted MININIM (ie. closed and oppened it again) and tried it under the same circumstances, the bug disappeared.
I'm sorry, but I can't reproduce the bug no matter how many times I try, under both GNU/Linux and Windows. Perhaps the VCS version, which I use for my tests, is working properly. However I can't remember of any change I've made to the code that would fix this bug.

Please, try finding a way to systematically reproduce the bug.

Ps: As a related note, in commit 09ebf67 I fixed a palette-related bug where guard mode changing doesn't work for guards that died falling, spiked or chopped.

Code: Select all

 88888  FFFFF Bruno Félix Rezende Ribeiro (oitofelix) [0x28D618AF]
 8   8  F     http://oitofelix.freeshell.org/mininim/
 88888  FFFF  mailto:oitofelix@gnu.org
 8   8  F     irc://chat.freenode.org/oitofelix
 88888  F     Please, support my work: http://oitofelix.freeshell.org/funding.html

User avatar
oitofelix
Wise Scribe
Wise Scribe
Posts: 202
Joined: February 17th, 2016, 1:59 pm
Contact:

Re: MININIM 0.9.2

Post by oitofelix » February 27th, 2016, 3:54 am

doppelganger wrote:I recommend you test battles between two guards. I can't swap places sometimes.
In commit ff65dc1, battle against multiple guards at once is properly implemented.

Even if the guards are in opposite sides, surrounding the kid between them, the battle system works consistently. It has some peculiar beauty (and lots of fun) to see the kid being able to do that. I think that's a longstanding desired feature of modders, players and coders.

Now, we'll have to wait for MININIM's native level format to be implemented, so people can create levels with multiple guards per room. Right now the feature can only be exploited by placing guards in adjacent rooms in a way that they can follow the kid and meet somewhere. Anyways, it's quite a progress when compared to the original game.

Code: Select all

 88888  FFFFF Bruno Félix Rezende Ribeiro (oitofelix) [0x28D618AF]
 8   8  F     http://oitofelix.freeshell.org/mininim/
 88888  FFFF  mailto:oitofelix@gnu.org
 8   8  F     irc://chat.freenode.org/oitofelix
 88888  F     Please, support my work: http://oitofelix.freeshell.org/funding.html

User avatar
doppelganger
Vizier
Vizier
Posts: 115
Joined: April 24th, 2015, 9:04 am
Location: India

Re: MININIM 0.9.2

Post by doppelganger » February 27th, 2016, 1:17 pm

In Prince of Persia 2, you could turn while in battle mode using SHIFT + Arrow Key. I think such an ability should be implemented in MININIM.
Doppelgänger
Hmm.. These mortals know about me.. :evil:

Download 'Hell of A Palace' now from Popot!

User avatar
oitofelix
Wise Scribe
Wise Scribe
Posts: 202
Joined: February 17th, 2016, 1:59 pm
Contact:

Re: MININIM 0.9.2

Post by oitofelix » February 27th, 2016, 1:33 pm

doppelganger wrote:In Prince of Persia 2, you could turn while in battle mode using SHIFT + Arrow Key. I think such an ability should be implemented in MININIM.
That combination of keys cannot be bound to anything else because MININIM uses it to walk forward and backward while in counter defense and counter attack mode. Furthermore, the battle targeting system is dynamic, that is, the kid turns automatically to whichever guard he's fighting. If you are surrounded by guards and you want to fight one on your back, just approach him (coincidentally with SHIFT + BACK) and the kid will turn as soon as he's near enough.

So, in some sense, the feature you are requesting is implemented already. You have to try MININIM's development version to get a feel of how the multiple guards battle system works like.

Code: Select all

 88888  FFFFF Bruno Félix Rezende Ribeiro (oitofelix) [0x28D618AF]
 8   8  F     http://oitofelix.freeshell.org/mininim/
 88888  FFFF  mailto:oitofelix@gnu.org
 8   8  F     irc://chat.freenode.org/oitofelix
 88888  F     Please, support my work: http://oitofelix.freeshell.org/funding.html

User avatar
oitofelix
Wise Scribe
Wise Scribe
Posts: 202
Joined: February 17th, 2016, 1:59 pm
Contact:

Re: MININIM 0.9.2

Post by oitofelix » February 27th, 2016, 10:16 pm

doppelganger wrote:Bug 2: Overlapping guards cause this:
[...]
Although not a problem, it is rather ugly.
Commit a0e862f, fixes this and all known graphics glitches.

Code: Select all

 88888  FFFFF Bruno Félix Rezende Ribeiro (oitofelix) [0x28D618AF]
 8   8  F     http://oitofelix.freeshell.org/mininim/
 88888  FFFF  mailto:oitofelix@gnu.org
 8   8  F     irc://chat.freenode.org/oitofelix
 88888  F     Please, support my work: http://oitofelix.freeshell.org/funding.html

User avatar
oitofelix
Wise Scribe
Wise Scribe
Posts: 202
Joined: February 17th, 2016, 1:59 pm
Contact:

Re: MININIM 0.9.2

Post by oitofelix » February 27th, 2016, 11:19 pm

The feature set for the next MININIM release is complete and I'm working out the last few bugs I'm aware of. Please, if you know about a MININIM bug this is the time to tell me, so I can fix it for the next release. Don't hesitate to do so, or to ask questions or request features.

Thank you. :)

Code: Select all

 88888  FFFFF Bruno Félix Rezende Ribeiro (oitofelix) [0x28D618AF]
 8   8  F     http://oitofelix.freeshell.org/mininim/
 88888  FFFF  mailto:oitofelix@gnu.org
 8   8  F     irc://chat.freenode.org/oitofelix
 88888  F     Please, support my work: http://oitofelix.freeshell.org/funding.html

User avatar
oitofelix
Wise Scribe
Wise Scribe
Posts: 202
Joined: February 17th, 2016, 1:59 pm
Contact:

Re: MININIM 0.9.2

Post by oitofelix » March 1st, 2016, 2:01 am

In the VCS HEAD, all bugs I'm aware of have been fixed (27 in total). If you knew about a MININIM bug, or unexpected (or otherwise annoying) behavior, it probably has been fixed. ;) I'm considering the implementation of one more feature for the next release. After deciding about this (and possibly implementing it), I'll make a new release. In this meantime, please, test the development version of MININIM as much as you can.

Thank you. :D

Code: Select all

 88888  FFFFF Bruno Félix Rezende Ribeiro (oitofelix) [0x28D618AF]
 8   8  F     http://oitofelix.freeshell.org/mininim/
 88888  FFFF  mailto:oitofelix@gnu.org
 8   8  F     irc://chat.freenode.org/oitofelix
 88888  F     Please, support my work: http://oitofelix.freeshell.org/funding.html

Andrew
Wise Scribe
Wise Scribe
Posts: 313
Joined: July 16th, 2009, 4:39 pm

Re: MININIM 0.9.2

Post by Andrew » March 1st, 2016, 5:03 pm

Didn't play through completely, just casually stepped through a few levels... Seems to work very well although I can't say I liked the move to make sword drawing manual. I can understand the thought process behind the change, but would it be possible to make it optional?

One thing I noticed though - once you're stabbed to death by a guard and use R to revive, you're basically stuck because the guard's right there on top of you and stabs you to death again immediately. Compare this with the original, where the guard seems to miss a few times once you're revived (actually he stabs through you but doesn't connect). I don't know if this is a bug in the original game's hit detection code, but it certainly is beneficial and necessary if you want to continue playing after revival.

Aside from that minor issue, my overall initial impression is extremely positive, especially since this is a full recreation of the engine from scratch and doesn't (AFAIK) depend upon David's decompilation effort in any way. Kudos too on the excellent documentation! :)

User avatar
oitofelix
Wise Scribe
Wise Scribe
Posts: 202
Joined: February 17th, 2016, 1:59 pm
Contact:

Re: MININIM 0.9.2

Post by oitofelix » March 1st, 2016, 5:58 pm

Andrew wrote:Seems to work very well although I can't say I liked the move to make sword drawing manual. I can understand the thought process behind the change, but would it be possible to make it optional?
You are the third person to ask me for this. I think you, and the others, haven't played enough to realize the real benefit of the current battle system the way it is. As you said, you just played it a little bit. I kindly ask you (and the others wanting for this legacy unfit behavior), to abandon their original game preconceptions and play MININIM for dozen hours as if its game mechanics were designed to be that way in the first place (because it really was, by myself). After this, if you (and the others wanting for that change) don't have changed your minds, I think we can discuss the situation in a better position, and then if there are enough requests I'll implement it. However, I won't make it the default, because I think it's unsuitable for the battle system I've designed. It's simply not a sane default. Those who disagree with me, as they are entitled to, could use the option --auto-draw-sword to use the legacy (insane? ;)) behavior then.
Andrew wrote:One thing I noticed though - once you're stabbed to death by a guard and use R to revive, you're basically stuck because the guard's right there on top of you and stabs you to death again immediately.
In this case you should use "I" (Immortal mode) before using "R".
Andrew wrote:Aside from that minor issue, my overall initial impression is extremely positive, especially since this is a full recreation of the engine from scratch and doesn't (AFAIK) depend upon David's decompilation effort in any way. Kudos too on the excellent documentation! :)
Thank you! :D

Code: Select all

 88888  FFFFF Bruno Félix Rezende Ribeiro (oitofelix) [0x28D618AF]
 8   8  F     http://oitofelix.freeshell.org/mininim/
 88888  FFFF  mailto:oitofelix@gnu.org
 8   8  F     irc://chat.freenode.org/oitofelix
 88888  F     Please, support my work: http://oitofelix.freeshell.org/funding.html

David
The Prince of Persia
The Prince of Persia
Posts: 1493
Joined: December 11th, 2008, 9:48 pm
Location: Hungary

Re: MININIM 0.9.2

Post by David » March 3rd, 2016, 8:23 pm

Andrew wrote:Compare this with the original, where the guard seems to miss a few times once you're revived (actually he stabs through you but doesn't connect). I don't know if this is a bug in the original game's hit detection code, but it certainly is beneficial and necessary if you want to continue playing after revival.
That is an intentionally added period of invincibility. (duration = 20 frames)
Search for "resurrect_time" in the SDLPoP source.

Andrew
Wise Scribe
Wise Scribe
Posts: 313
Joined: July 16th, 2009, 4:39 pm

Re: MININIM 0.9.2

Post by Andrew » March 4th, 2016, 3:21 pm

oitofelix wrote:I kindly ask you (and the others wanting for this legacy unfit behavior), to abandon their original game preconceptions and play MININIM for dozen hours as if its game mechanics were designed to be that way in the first place (because it really was, by myself). After this, if you (and the others wanting for that change) don't have changed your minds, I think we can discuss the situation in a better position, and then if there are enough requests I'll implement it. However, I won't make it the default, because I think it's unsuitable for the battle system I've designed. It's simply not a sane default. Those who disagree with me, as they are entitled to, could use the option --auto-draw-sword to use the legacy (insane? ;)) behavior then.
I suppose one might get used to the changed mechanics eventually. The point is, how do people approach Mininim? Given how it looks and (mostly) plays, I think it's but natural that they treat it as a way to play PoP1 on modern systems and thus expect it to behave in the way they're familiar with, having played the original for possibly hundreds of hours back in the day. It's damn difficult to let go of muscle memory after all and re-train yourself to play differently what essentially seems to be the same old game.

Given the fact that there are other changes however (such as the far more aggressive AI that modifies the game's dynamics, sometimes significantly), I personally am no longer requesting a legacy mode option (others might still want it of course). I think it's best to force oneself to treat Mininim as a new game that may diverge even further from PoP1's gameplay in future, and simply stick to SDLPoP if all one's looking for is a more 'authentic' PoP1 experience (that can optionally be tweaked to one's liking using the INI).

One last point. With all due respect to you, I do think it's egotistical to term the original behavior Mechner developed as "unfit" and "insane". You can simply term it "legacy" behavior with no negative connotations and without denigrating it in any way just because you do not like it, because for sure there are millions of fans worldwide who love the original gameplay and mechanics. Keep in mind always the quote about "standing on the shoulders of giants", especially given that Mininim is not a stand-alone original game. Again, no offence intended and I look forward to future versions of Mininim with interest. :)
David wrote:That is an intentionally added period of invincibility. (duration = 20 frames)
Search for "resurrect_time" in the SDLPoP source.
Nice, and very cool that Mechner thought of this. I do think this is a far better solution than remembering to switch to God Mode every time before resurrecting oneself.

User avatar
oitofelix
Wise Scribe
Wise Scribe
Posts: 202
Joined: February 17th, 2016, 1:59 pm
Contact:

Re: MININIM 0.9.2

Post by oitofelix » March 4th, 2016, 5:20 pm

Andrew wrote:Given the fact that there are other changes however (such as the far more aggressive AI that modifies the game's dynamics, sometimes significantly), I personally am no longer requesting a legacy mode option (others might still want it of course).
That's what I've been saying.
Andrew wrote:I think it's best to force oneself to treat Mininim as a new game that may diverge even further from PoP1's gameplay in future,
MININIM's gameplay dynamics are set down; there is not much to change. People should know, though, that new and nice features will be added over time.

MININIM's philosophy is to not imitate the original game when we can do better. People in the modding community often seem to view the original game as a deity of sorts. I don't share that view.
Andrew wrote:One last point. With all due respect to you, I do think it's egotistical to term the original behavior Mechner developed as "unfit" and "insane".
It's fit and sane for the original game. That's not the case for MININIM.
Andrew wrote:You can simply term it "legacy" behavior with no negative connotations and without denigrating it in any way just because you do not like it, because for sure there are millions of fans worldwide who love the original gameplay and mechanics. Keep in mind always the quote about "standing on the shoulders of giants", especially given that Mininim is not a stand-alone original game.
Are you trying to give me a moral lesson? Are you trying to say how should I feel and behave about the game I developed? How arrogant of you.
Do you actually contribute to this community, or just demand from and insult those who do?
Andrew wrote:Again, no offence intended and I look forward to future versions of Mininim with interest. :)
Consider making a donation. ;)
Andrew wrote:
David wrote:That is an intentionally added period of invincibility. (duration = 20 frames)
Search for "resurrect_time" in the SDLPoP source.
Nice, and very cool that Mechner thought of this. I do think this is a far better solution than remembering to switch to God Mode every time before resurrecting oneself.
You seem to be trying to provoke me. How childish (not in the same good sense of a "childhood dream" ;)).

Code: Select all

 88888  FFFFF Bruno Félix Rezende Ribeiro (oitofelix) [0x28D618AF]
 8   8  F     http://oitofelix.freeshell.org/mininim/
 88888  FFFF  mailto:oitofelix@gnu.org
 8   8  F     irc://chat.freenode.org/oitofelix
 88888  F     Please, support my work: http://oitofelix.freeshell.org/funding.html

User avatar
Norbert
The Prince of Persia
The Prince of Persia
Posts: 3139
Joined: April 9th, 2009, 10:58 pm
Contact:

Re: MININIM 0.9.2

Post by Norbert » March 4th, 2016, 8:42 pm

oitofelix wrote:[Does Andrew] actually contribute to this community, [...]
Approximately 8.5 years ago, Andrew put some PoP files - manuals and releases - in a package that he calls "The Ultimate Collection", see the link(s) in his signature.
oitofelix wrote:[...] or just demand from and insult those who do?
I think Andrew's 'ultimate truths' about certain things are what make reading some of his contributions exhausting, and they will give you the feeling he's telling you how to feel and behave. I've also seen this in other threads (SDLPoP must never get certain easy modes, picking version 1.0 of PoP1 for modding usually stems from laziness/ignorance/etc., things like that). In my opinion there's a clear difference between characterizing a game's behavior as "unfit"/"insane?", and referring to that characterizing as "egotistical". Also, there are good reasons not to auto-(un)sheathe, including giving the player more control and (thus), for instance, more time to choose different actions such as escaping confrontation by climbing tiles without having to sheathe first. The "standing on the shoulders of giants" metaphor; yes, I do think at times Andrew fancies himself some kind of teacher.

Anyway, let's face it, Andrew is not the only person here with very outspoken opinions. Occasionally I am one of those people. I think it's safe to say that the same goes for oitofelix. Also, while MININIM is impressive and interesting, I don't see myself using it (often). I like the physics and behavior of the original, and I don't want to invest time into learning a new engine. Perhaps "we can do better", but in the end whether things are better or worse is mostly subjective. This is why choice is a good thing. I think it's easy to avoid terminology such as "insane?" and especially things like "egotistical".

Post Reply