RuffledBricks Posted February 25, 2021 Report Share Posted February 25, 2021 Here's an idea I had for a mod, though I do not have the programming know-how to create this myself. I'd be interested to play a version of JSW that was exactly the same as the original (with the pokes, natch), except all the enemy cycles are randomised, so that each enemy starts from a random position in their cycle when you enter a room. The pros of this idea are that it would create an extra challenge in the game, as compared to the vanilla game you'd never know where the enemies were going to start from in each room and would have to adjust your timings and strats on the fly as a result. A possible downside of this idea is that this could potentially lead to more instant death loops if the randomiser places an enemy right at the entrance of a room - for example, you could die immediately in Top Landing if the Swiss army knife enemy started their cycle right at the Bathroom door. Although this could also be seen as an upside, as it would require the player to be extra vigilant about the route they take around the mansion to avoid as many instant death 'hot spots' as possible. Anyhow, what do you all think? Has it been done before? And if it hasn't, how feasible would it be to create? Spider and MtM 2 Quote Link to comment Share on other sites More sharing options...
Spider Posted February 25, 2021 Report Share Posted February 25, 2021 I like that idea in principle. In theory the 'start position' could be likely placed to avoid M.W initial contact, perhaps say a choice of starting the guardian at any number of fixed blocks along its path, avoiding starting at the screen edges and/or near another entry point if MW can safely drop into / climb up into the screen too. The alternative 'fix' would be to give him a few seconds immunity after a life loss, to allow him to get himself out of the situation but that still means its cost a life to get this reward. Modded JSW2 offers this and makes a reasonable attempt at preventing an instant death situation by restarting the last position but this can actually cause an IDS to happen sometimes! (there are two 'base modded' versions of this 'few seconds immunity' version) one that fits in to the 48K machine with just that extra and one with cheats and a teleport that needs a 128K machine, merely because there was no sane space to fit it into the 48K, but this is off topic really as the JSW2 'engine' is not quite the same as the JSW one, the latter being much easier to 'play with' Back on topic, I do like the idea provided the starting positions are set within block limits. Some screens care would have to be taken to avoid guardian contact with each other, Forgotten Abbey would be a prime candidate for this as they do overlap each other quite a bit. It does not sound that difficult to code in theory however it would not really be for me to decide upon that, I have a vague idea on how to set / alter the positions at random but it would likely be a mess! RuffledBricks 1 Quote Link to comment Share on other sites More sharing options...
IRF Posted February 25, 2021 Report Share Posted February 25, 2021 (For the unfamiliar, IDS = Infinite Death Scenario.) RB's idea wouldn't necessarily set up an IDS if Willy entered a room at a point where a guardian started its path, because after losing a life and the room being refreshed, the random start position of that guardian would most likely be somewhere else (whilst Willy's start position in the room would remain the same). One possible scenario you might get in, say, Forgotten Abbey, could be two monks in sync directly above/below each other, and remaining that way (assuming their horizontal trajectories are of the same width), making it impossible to jump over the lower one without Willy's head hitting the upper one's legs! But if you walked out of the room and back again, they would reset to different start positions so the problem would be resolved. RuffledBricks 1 Quote Link to comment Share on other sites More sharing options...
RuffledBricks Posted February 25, 2021 Author Report Share Posted February 25, 2021 Just now, IRF said: (For the unfamiliar, IDS = Infinite Death Scenario.) RB's idea wouldn't necessarily set up an IDS if Willy entered a room at a point where a guardian started its path, because after losing a life and the room being refreshed, the random start position of that guardian would most likely be somewhere else (whilst Willy's start position in the room would remain the same). One possible scenario you might get in, say, Forgotten Abbey, could be two monks in sync directly above/below each other, and remaining that way (assuming their horizontal trajectories are of the same width), making it impossible to jump over the lower one without Willy's head hitting the upper one's legs! But if you walked out of the room and back again, they would reset to different start positions so the problem would be resolved. This is a good point. In my head I hadn't really settled on whether the randomiser would apply once per game (i.e. the positions are randomly set before the game starts and are then fixed once you start) or whether the randomiser would apply every time you enter a room. I hadn't considered that the latter would help to avoid the IDS. IRF 1 Quote Link to comment Share on other sites More sharing options...
MtM Posted February 25, 2021 Report Share Posted February 25, 2021 (edited) I like this idea definitely in principle, but IRF has said what I was thinking, it strikes me it would make some rooms impossible with baddie movement. Perhaps walking out and then in again into a room would be a fix. Hmm. Is it possible that you could become trapped in a room and not be able to get out again maybe, thus forcing a loss of life? The temporary immunity is perhaps another solution, hmm. I would like to see it, something that could as you say build on the JSW we all know and love but offer a new challenge perhaps. It seems more consistent to me if every game and every screen entry had the random elements. Could we have the in game tune similarly changed too, I definitely like the idea of that, some of the most creative mods I think are the ones where the music is responsive, I think JSDanny did a good one, Madame B was it? where the music changed a lot. I expect Norman Sword will have an opinion on this randomising idea too. Edited February 25, 2021 by MtM Spider and IRF 2 Quote Link to comment Share on other sites More sharing options...
Norman Sword Posted February 25, 2021 Report Share Posted February 25, 2021 (edited) Easy to randomise the sprite start positions within their paths. JSW128VM runs a similar set up. (just not obvious it does so) The major problem beside IDS and sprites starting in the entry position of a room. (which causes one death) is the paths of sprites that do overlap with each other. The monks in the forgotten Abbey will collide with each other.--- (are there other rooms?) What you have suggested is to me, very easy to do. Even adding a period of immunity is very easy to do (for me). Having said the above I have no plans to write such a game. Starting in a random place - ignoring the other aspects of the game. When the room has been generated and it normally returns to the main part of the game. Instead for each sprite call the movement routine for that sprite a random number of times. Edited February 25, 2021 by Norman Sword Adding information. IRF and Spider 1 1 Quote Link to comment Share on other sites More sharing options...
Norman Sword Posted February 25, 2021 Report Share Posted February 25, 2021 Further elaboration on starting in a random place. When the room has been drawn and all the room data has been drawn. In jsw128VM, VK and VL a routine is called that moves the start position of designated sprites. For a working example. I will describe the sprites in the attic. In jsw128Vm they are all the same sprite. The program only stores one sprite and not the sprites that the standard JSW stores, which is one sprite entity per part of the body. For each part of the body the horizontal position is changed (as normal for a sprite) The vertical part of each sprite position is fixed. The program calls the movement routine a specific number of times for each part of the body. This repeated calling allows the start position of each part of the body to be moved a set distance from the original start position. The sprites are finally drawn when the room is drawn with all the parts having been moved from the single entities start position. This might sound like it will be slow to execute. Yet I have never witnessed a delay jumping from room to room in JSW128vm and no one has even hinted that a problem occurs in the time taken to move from room to room. These type of convoluted and extended routines are not part of the main game playing loop, The amount of processing that can be undertaken when jumping from room to room is massive. In JSW128VM the amount of room generation code is massive, but as stated it is not a problem. IRF and jetsetdanny 2 Quote Link to comment Share on other sites More sharing options...
IRF Posted February 26, 2021 Report Share Posted February 26, 2021 23 minutes ago, Norman Sword said: For each part of the body the horizontal position is changed (as normal for a sprite) The vertical part of each sprite position is fixed. Question: shouldn't that be the other way round for the Attic Centipede? i.e. the horizontal position of each segment is fixed, whilst the vertical position varies? jetsetdanny 1 Quote Link to comment Share on other sites More sharing options...
Norman Sword Posted February 26, 2021 Report Share Posted February 26, 2021 (edited) In jsw there are less than 128 entities. The entities are jiggled around and form all the sprites in JSW. When an entity is defined it defines certain parameters. The parameters it defines for a sprite that moves vertically is the upper and lower points and its vertical start position. The entity can then be moved horizontally to its start position. The centipede in the attic has an entity defined for each and every part of the centipede because it can not move the vertical start position. The routine I wrote uses the move start position (as written above) to move the fixed start position of one entity to duplicate the original multiple entities defined. So yes the statement I made was correct. I will check ---- If the above is correct. Edited February 26, 2021 by Norman Sword Caterpillar / centipede / millipede consistency of notation. jetsetdanny and IRF 2 Quote Link to comment Share on other sites More sharing options...
andrewbroad Posted February 26, 2021 Report Share Posted February 26, 2021 7 hours ago, Spider said: Some screens care would have to be taken to avoid guardian contact with each other, Forgotten Abbey would be a prime candidate for this as they do overlap each other quite a bit. I would keep the guardians in phase, by advancing each guardian’s position the same random number of times before the start of play in a room. Spider, IRF and jetsetdanny 3 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.