Jump to content


Photo

Comprehensive rewrite of Willy's movement code


  • Please log in to reply
20 replies to this topic

#11 jetsetdanny

jetsetdanny

    Advanced Member

  • Contributor
  • 1,951 posts

Posted 18 March 2018 - 01:14 PM

Although it could be argued that, if the Up exit from Rescue Esmeralda to Ballroom East is a valid route, then so is using WRITETYPER to access any room! Perhaps that is even more valid, as Matthew obviously intentionally implemented WRITETYPER, whereas the Esmaralda/Ballroom shortcut may have been an unintentional mistake.

 

I would agree that an argument could be made for the validity of a game being completed using WRITETYPER. After all, it's something that is there, so one may argue there is no reason why it shouldn't be used. I agree with this.

 

However:

 

On JSW Central, I mention the highest documented scores in MM games / best completion times in JSW games (where pertinent). The condition is that they should be achieved without cheating (by which I mean using the WRITETYPER or POKing / modifying the game) and (in case of JSW games) without unnecesary loss of life (if an item can be collected without loss of life, it *must* be collected without loss of life; kamikazing some items could yield a significant time gain).

 

I could envisage (but it's hypothetical at the moment, because I have no time for this, JSW Central needs other kind of development first) having four categories for best completion times in JSW:

 

- No unnecessary loss of life, no use of WRITETYPER;

 

- No unnecessary loss of life, but the use of WRITETYPER permitted;

 

- Lose as many lives as you want, but no use of WRITETYPER;

 

- Lose as many lives as you want plus the use of WRITETYPER permitted.

 

The last category should produce the best completion times.

 

However, I would NEVER even consider telling the players they should not perform some manoeuvres which are possible to do in an unmodified game file. As explained above, for me it's a kind of designer-versus-player game. If the designer made some mistake and left some unintentional loopholes, it is perfectly OK for the player to exploit them, because they are there.

 

Although being a little bit of a designer myself, I have a strictly player-centred perspective on these matters. The player loads a game and plays it. He doesn't have to know - and in many, many cases doesn't know - *anything* about the designer, who he/she was, what his/her intentions were, nothing. They may not even know the designer's name. All they get is a product, a game, which they face and need to solve. Whatever can be done in an unmodified game is perfectly valid.

 

Now, how does WRITETYPER fit in here? It is something that can be done in an unmodified game, so yes, I would agree that in a sense it is perfectly valid.

 

However, it introduces a new quality into the way the game is played, one that can affect the completion time significantly. It is for that reason that best completion times achieved using WRITETYPER (where possible) and not using it cannot be classified together - because we are talking about two different ways of playing the game.

 

It's a bit like if the designer places a cheat menu up front in the game (which does happen in some hacked versions of the original JSW) and provides, e.g. invulnerability to guardians. It is an option which the designer has provided in an unmodified product (from the point of view of the player, let's say I'm taking about an original game, not a hacked version), so in that sense it's perfectly valid to use. However, *obviously* playing the same game with invulnerability to guardians and without it are two very different modes of playing the game. Therefore, if the best completion times were to be discussed, there would *have to* be two separate categories for these two modes of playing the game. It's exactly the same with WRITETYPER.

 

Please note that an additional thing is that cheats such as WRITETYPER are perfectly definable in whether they have been used or not. However, if one started speculating about the author's intentions, you would get into a grey area of uncertainty. Did the author really intend it this way or not? And even if he did, and failed, as mentioned before - I believe it's his problem, not the player's, because it's not about the author's intentions, but about what can - or cannot - be done in the finished product, which is the game the player loads into his emulator / Vega / real hardware / GBA / whatever.

 

One more point: it's interesting that MM has a built-in cheat which allows the player to explore the game / practise playing each room easily, but the use of which prevents the appearance of the swordfish sign at the game's completion. In a sense it's a shame that Matthew Smith didn't implement something similar in JSW (which would be really easy to do with a simple check, I think) which would be: if WRITETYPER has been used, Maria doesn't disappear even if all items have been collected (or she does disappear, but the toilet run doesn't start upon reaching the bed - no "true" ending).



#12 jetsetdanny

jetsetdanny

    Advanced Member

  • Contributor
  • 1,951 posts

Posted 18 March 2018 - 01:19 PM

Thank you for the recordings Danny, I've watched them now - good stuff!

However, you didn't quite comply with the mission that I set - to use different collection methods for each of the 16 pairs of items. If you would care to do so, please try and find alternative solutions in the 'Before' game for:

- The lowest three items in 'On top of the House';
- The rightmost item in 'Emergency Generator'; and
- The item which is located above the first 'e' of 'Generator' (it lies at the left of an Earth platform which is three blocks in length).

 

Ian, attached below is an RZX recording with the items you've mentioned collected in a different way than in my first recording. Please let me know if this is what you wanted to see :).

 

TBH, I'm not quite sure what you mean about the rightmost item in "Emergency Generator". It just sits on the floor, so there's no quirky manoeuvre involved in collecting it, it's just necessary to outmanoeuvre Esmerelda. In the attached recording I got to the vicinity of the item in a different way than in the previous one, but I'm not sure if this is the way you wanted the item to be collected.

 

EDIT: File name changed

 

Attached File  Before Rewrite alternative item collection.rzx   22.7KB   44 downloads


Edited by jetsetdanny, 18 March 2018 - 01:32 PM.


#13 IRF

IRF

    Advanced Member

  • Contributor
  • 3,939 posts

Posted 18 March 2018 - 01:21 PM

Preventing Maria from disappearing would make the game uncompletable (in terms of the stated 'mission statement' of cleaning up the house and then going to bed).  But making the toilet run conditional on not having used WRITETYPER would be a useful (and easily implemented) way of highlighting if someone has cheated.  :thumbsup:



#14 jetsetdanny

jetsetdanny

    Advanced Member

  • Contributor
  • 1,951 posts

Posted 18 March 2018 - 01:31 PM

Sorry, I misnamed the file. I called it 'After Rewrite alternative item collection.rzx', while it should have been called 'Before Rewrite alternative item collection.rzx'. I've corrected it now and re-uploaded the (same) file (with a changed name).


Edited by jetsetdanny, 18 March 2018 - 01:32 PM.


#15 IRF

IRF

    Advanced Member

  • Contributor
  • 3,939 posts

Posted 18 March 2018 - 01:49 PM

Ian, attached below is an RZX recording with the items you've mentioned collected in a different way than in my first recording. Please let me know if this is what you wanted to see :).

 

TBH, I'm not quite sure what you mean about the rightmost item in "Emergency Generator". It just sits on the floor, so there's no quirky manoeuvre involved in collecting it, it's just necessary to outmanoeuvre Esmerelda. In the attached recording I got to the vicinity of the item in a different way than in the previous one, but I'm not sure if this is the way you wanted the item to be collected.

 

EDIT: File name changed

 

attachicon.gifBefore Rewrite alternative item collection.rzx

 

Thanks Danny, and well done on finding most of the solutions.  However, there is a much quirkier method of sneaking past Esmerelda.

Spoiler

 

EDIT: I've made a slight rewording in the Spoiler box, for clarity.  (Technically, you can walk into Emergency Generator and then just walk straight back out again in both files!)

 

I'll make and upload my own recordings for both Before and After files later.


Edited by IRF, 18 March 2018 - 01:51 PM.


#16 IRF

IRF

    Advanced Member

  • Contributor
  • 3,939 posts

Posted 18 March 2018 - 02:47 PM

Please find attached my recordings for the 'Before' and 'After' files. **SPOILER ALERT!**

Note that I've made several deliberate mistakes (sometimes fatally), in order to demonstrate what is and what isn't possible within the two variants of the game engine.

Enjoy!

P.S. My collection method for the bottom-left item of The Attic in the 'Before' file is different to Danny's (note aslao that my method would work if the layout was laterally inverted, whereas Danny's wouldn't).

Attached Files


Edited by IRF, 18 March 2018 - 02:58 PM.


#17 jetsetdanny

jetsetdanny

    Advanced Member

  • Contributor
  • 1,951 posts

Posted 18 March 2018 - 03:10 PM

Thanks for the recordings, Ian! :)



#18 IRF

IRF

    Advanced Member

  • Contributor
  • 3,939 posts

Posted 30 March 2018 - 11:22 PM

Danny, did you observe in my 'Before' recording, the alternative collection method for the item behind Esmerelda in 'Emergency Generator'? i.e. Jumping through a head-height Earth block and falling through it. (It's possible that you may have attempted that manoeuvre but been unlucky with the timing, and clipped Esmerelda's arm as it swung out whilst Willy fell down past her?) Note also that when Willy attempts the same method in my 'After' recording, he is caught by the (Earth cell) ledge, instead of falling through it (thus demonstrating my symmetrical fix for the 'Wine Cellar' quandary).

Also, you can see that I took a different approach for the bottom-left item in 'The Attic' - jumping leftward through an 'Innocent-Looking Block' from above, whereas in Danny's earlier recording, Willy jumped upwards through the same block, treating it as as an 'overhead ILB'. But neither of those moves are possible (or at least don't have quite the same outcome) in the 'After' file.

****

Some other commentary on my recordings:

In the modified game engine, Willy can no longer walk leftward up a ramp and pass through an overhead Earth block (though if his head hits such a block whilst you are pressing Jump+Left keys simultaneously, he can be made to pass sideways through the ramp, underneath the Earth block - see the ramp in 'Emergency Gwnerator'). Also, Willy can no longer walk down a ramp and pass through an Earth block located at its base (as he can do in the original game engine - see the ramp in 'On Top of the House').

**

With regards to the 'standard' quirky behaviour whereby Willy can jump through standonable blocks (at foot height) that are situated adjacent to Fire cells, the changes to the game engine have an interesting effect on that particular manoeuvre:

In the 'After' recording, note the difference between 'On Top of the House' (where he can perform the manoeuvre), versus 'Dr Jones...' (where he can't). The difference between the two scenarios is caused by the presence of an Earth cell in the latter (though the Earth block is not actually adjacent to the Fire cell; there is a Water cell in between).

Note also that I have exploited these two contradictory behaviours in the 'After' file. In the case of 'On Top of the House', the fact that this quirky manoeuvre is possible means that Willy is able to reach the lowest three items. Whereas in the case of 'Dr Jones...', the item on the elephant's back is only collectable because Willy doesn't fall through the standonable surface adjacent to a Fire cell (the nearby Earth block prevents him from doing so).

And furthermore, I proved this point in the 'Before' recording by making a futile attempt to collect the item via the same method (before then going back to collect it by walking leftward through a head-height Earth block inside the elephant's head).

**

There are two identical gaps in 'The Attic' (with five clear columns of Air in between, and with the platform on the far side of the jump situated one row above the platform from which Willy starts the jump). Such a jump is normally impossible for Willy to clear, as demonstrated in the 'Before' recording based on the unmodified game engine.

However, in the modified 'After' variant, one of those apparently identical jumps can be safely cleared by Willy, yet the other jump remains impossible (I sacrificed one of Willy's lives in the recording to demonstrate this point). The difference can be explained by the fact that for one of the jumps, the end of the platform onto which Willy must jump is comprised of an Earth block.

**

Another thing which I attempted to demonstrate by sacrificing a life in the 'After' recording (while jumping from the left-hand stack in 'Emergency Gwnerator'), is that when Willy hits the side of an overhead Earth block whilst descending from a leftwards jump, his 'Airborne' counter is no longer reset to zero (by a CALL to the 'ILB' subroutine at #9EBC when his head enters the Earth block). This has consequences for how far Willy can safely fall at the end of such a jump.

On the other hand, the same 'ILB' subroutine at #9EBC also resets Willy's 'Sideways Movement' flag, so the fact that this isn't triggered in the modified engine, means that Willy can jump onto a conveyor, banging his head on the side of an Earth block on the descent, but then he can still proceed upstream along the conveyor. (Compare and contrast the jump leftwards from a position adjacent to Maria in 'The Attic', in the 'Before' vs 'After' recordings.)

However, if Willy stands a bit further back before making such a jump (as seen at the end of the 'Before' recording, once Maria has cleared out of the way to make this possible), he can land on the conveyor in such a position that his head doesn't enter the overhead Earth block for long enough to reset his Movement flag (so he can eventually proceed up the conveyor, although he must have already collected the item that was located there, in order to have moved Maria out of the way in the first place - Catch 22!)

Edited by IRF, 12 April 2018 - 11:42 PM.


#19 IRF

IRF

    Advanced Member

  • Contributor
  • 3,939 posts

Posted 31 March 2018 - 09:24 AM

Having said that, a perfect solution in any kind of game is that the design of the game should enforce the way things need to be done. If the author wants the player to do things in a certain way, he should enforce it by design, so the player cannot do things otherwise.


I could have made all the manoeuvres in each file compulsory. e.g. placed an item to the right of Esmeralda underneath the Earth ledge in the 'Before' file. However, the problem that would have presented is that an item located in the same place would have been uncollectable.

The challenge I faced as a designer of this particular project was to have two parallel files with identical layouts but different 'Willy mechanisms'. That meant that in some cases, Move 1 has to be used to collect Item A in one file, and whilst Move 2 is available for Item A in the other file, Move 1 also works in that case (if you see what I mean?). Though there are some items for which different moves HAVE to be employed for the two files (which is ideal).

So in order to 'enforce' the manoeuvres I had in mind, I had to change the 'rules of the game' by asking for two different collection methods for each item.

#20 IRF

IRF

    Advanced Member

  • Contributor
  • 3,939 posts

Posted 31 March 2018 - 09:40 AM

I could have made all the manoeuvres in each file compulsory. e.g. placed an item to the right of Esmeralda underneath the Earth ledge in the 'Before' file. However, the problem that would have presented is that an item located in the same place would have been uncollectable.

 

Actually, having checked the above, the item would still have been collectable in that location in both files, and whilst it is still collectable from below in both, the slightly altered positioning might actually encourage the player to make the quirky jump-through-the-wall in the 'Before' file - see attached JSWED screenshot (the relocated item is in the square cursor).

Attached Thumbnails

  • Alt EG item position.png

Edited by IRF, 31 March 2018 - 09:43 AM.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users