1 Like
ALIEN (Mindgames) Bugfix and Improvement.
ALIEN (Mindgames) [ZX SPECTRUM] BUGFIX & IMPROVEMENT by Ersh 2016-10-29 The following bugs are fixed: [BUG] INVENTORY BUG WHEN SWITCHING CHARACTERS DURING AN 'ATTACK'. If the player choose to 'Attack' with one character and switch to another character before the command is executed, when the attack is done and if the second character is holding only 1 item there's an inventory bug. He or she will be able to use the 'Leave Item' command, and the item that will be dropped is the first character's item. If the first character only holds 1 item then that will be dropped, if he/she holds 2 items the second item will be dropped. [BUG] INVENTORY BUG WHEN SWITCHING CHARACTERS DURING AN 'ATTACK' WHEN USING THE NET OR BREAKING A TRACKER. If attacking with the Net or a Tracker and switching characters before the attack executes and waiting until it does, then there's another inventory bug. The second character's first item will disappear. Also if you're not in a character's menu, the game will still try to remove the menu text for the item, erasing anything that's in the same location in any other menu. [BUG] 'LEAVE ITEM' COMMAND IS NOT DISABLED AFTER USING THE NET OR BREAKING A TRACKER. If a character has only got 1 item when the Net is used (or when breaking a Tracker), the game removes the item from the player's inventory but does not remove the 'Leave Item' command, so the player can use it and pick up the Net again (or a Tracker which is then no longer broken). [BUG] PLAYER CAN USE THE NET OR TRACKER TO ATTACK WITH OVER AND OVER AGAIN. If the player uses the Net or a Tracker to attack, the item will be removed from the inventory. However if selecting 'Attack' again the character will still attack with the Net or Tracker, this can be repeated over and over. Though if the player changes character, it will no longer work. [BUG] THE GAME SOMETIMES READS DATA BEYOND INTENDED MEMORY. The 'Carry out an Action' routine doesn't PUSH/POP THE IX register holding the pointer to the current character variables when calling an action to perform. Some action routines destroy the register pair, so IX will hold the wrong pointer when returning from the routine. [BUG] 100% COMPETENCE RATING. Getting a competence rating of '100%' will display as '1:0%'. Also the hundredth digit is never cleared so getting a '85%' competence rating on your second go will be displayed as '185%' [BUG] THE MESSAGE VARIABLE IS NOT RESET ON RESTART. Begin a new game and then immediately restart, if the the Alien hatch from the same character as in the first game no message will be displayed indicating so. Since the message variable is not reset on restart and the game doesn't allow the same message to be displayed twice in a row. [BUG] IF YOU HOVER ON 'REMOVE GRILL' WHEN IT TURNS TO 'ATTACK' THE GAME WON'T LET YOU ATTACK. If you have the menu marker on 'Remove Grill' and then the Alien or Android enters, the command will change to 'Attack' but if you do not move the menu marker but instead directly select 'Attack', the character will remove the grill instead of attacking. [BUG] CORRUPTED GRAPHICS IN THE ALIEN ANIMATION. There's two corrupted bytes in the Alien animation, one in the first frame and one in the second. The following improvements are also implemented: [IMPROVEMENT] ATTACK IS NOW ONLY AVAILABLE IF NOT ALREADY IN PROGRESS OF ATTACKING. Normally, when selecting 'Attack' the option to attack disappears until you have executed your attack. However if anyone goes through a door, opens a grill or if you select another character and switch back 'Attack' will be available again even though you haven't attacked yet. This gets really confusing if you're trying to attack with more than one character. I've modified the game so that 'Attack' is never available when in progress of attacking. [IMPROVEMENT] NEIGHBOURING ROOM/VENT GRILL REMOVAL. If anyone removes the grill in your room but from the airduct location (and vice versa), the game wouldn't update the menu indicating that the grill was removed. I've modified the game to refresh the menu whenever that happens. [IMPROVEMENT] KILLING THE ANDROID WITH ANOTHER CHARACTER. If two characters are attacking the Android and the one that is not your current character kills the Android, the 'Attack' command doesn't disappear from your current character even though there's no one to attack. I've modified the game to remove 'Attack', check if the grill is removed and if not, give the option to 'Remove Grill' [IMPROVEMENT] WHEN SELECTING ATTACK, THE GAME NOW SHOW 'REMOVE GRILL' IF NOT ALREADY REMOVED. Normally when you select the 'Attack' command, it will be replaced by nothing. I've modified the game to check if the grill is removed and if not, give the option to 'Remove Grill'.
This is a bugfixed and improved version of Mindgame's ALIEN. Quite a few bugs sorted, I also made a few small improvements in line with the game's design. (In other words, nothing really new, just what the game already alludes to.) Feel free to report any bugs, there really shouldn't be any but you never know. Enjoy!
Download here.
Post edited by Ersh on
Comments
While playing I often encountered a behaviour in the Alien that made it go in and out of the grill in the room that it was located in and doing nothing but that for a while. If you instruct a character to attack it when it's in that 'mode' it will always flee (when actually attacked, if not; it will attack you). If you give chase and keep attacking, it will eventually end up fleeing back and forth between two locations making it pretty easy to kill.
It turns out that the above mention behaviour is possible if the Alien AI keeps drawing a random number of 0.
At the beginning of the game a 16 bit pointer is initialised with the FRAMES variable and the RNG steps through the ROM using this to get a random number. At the end of the main loop the game draws two random numbers, if they both are zero the game will reinitialise the pointer with whatever FRAMES has become.
This is how the game initialises the 16 bit 'seed':
As you see, it masks the MSB to stay within ROM $0000-$1FFF. However it never stores that masked byte, meaning that the RNG will continue on through ROM and out into RAM. As it's a pretty small game, there's lots of zeroes in RAM and that explains the Alien's behaviour.
Now, I've played the game A LOT and when I modified the game to stay in ROM it seemed the Alien was just too aggressive. I still managed to complete the game but it just didn't feel 'right'. (Although I admit it can be a bit anti-climactic to have the Alien enter that 'mode' after a long and eventful game.)
I was wondering if John Heap just 'commented out' the saving of that masked byte allowing the game to wander through RAM to let the player get some breathing room or if it's just a bug. Does the game update the pointer if it gets two zeroes just to 'shuffle' the RNG or was it placed to 'speed through' those fields of zeroes in RAM? I didn't want to make any changes that aren't explicitly in line with the author's vision so I chose not to fix this in the release I made.
Any thoughts?
ALIEN by Mindgames for the Sinclair ZX Spectrum - BUGFIX & IMPROVEMENT Version 1.1 by Ersh 2018-04-12 The following bugs are fixed: [BUGFIX] THE RANDOM NUMBER GENERATOR USED DATA BEYOND INTENDED MEMORY. The Random Number Generator stepped through the entire memory instead of being localised to ROM $0000-$1FFF as intended. This had many side effects. [BUGFIX] A MISSING PIXEL ON THE MAP OF THE MIDDLE DECK OF THE NOSTROMO. There was a missing pixel in the northeast corner of the map of the middle deck. :) [BUGFIX] INVENTORY BUG WHEN SWITCHING CHARACTERS DURING AN 'ATTACK'. If the player chose to attack and then switched to another crew member, when the attack was executed the second crew member could use the 'Leave Item' command to drop the first character's item. If the first crew member only held 1 item then that would be dropped, if he/she held 2 items then the second item would be dropped. [BUGFIX] INVENTORY BUG WHEN SWITCHING CHARACTERS DURING AN 'ATTACK' WHEN USING THE NET OR BREAKING A TRACKER. If the player attacked with the Net or a Tracker and then switched to another crew member, when the attack was executed the second character's first item would disappear. The game would also remove the menu text for the item, even when not in a character's menu, erasing anything that was in the same location in any other menu. [BUGFIX] 'LEAVE ITEM' COMMAND WAS NOT DISABLED AFTER USING THE NET OR BREAKING A TRACKER. If a crew member only had 1 item when the Net was used or when breaking a Tracker, the game removed the item from the character's inventory but did not remove the 'Leave Item' command from the menu. Hence it was possible to use that command to drop the item and pick it up again. [BUGFIX] PLAYER COULD USE THE NET OR TRACKER TO ATTACK WITH OVER AND OVER AGAIN. If the player used the Net or a Tracker to attack, the item would be removed from the inventory, however it was still possible to use the 'Attack' command and the the crew member would then be able to attack with the Net/Tracker again. This could be repeated over and over, though if the player changed character, it would no longer work. [BUGFIX] THE GAME SOMETIMES READ DATA BEYOND INTENDED MEMORY. The 'Carry out an Action' routine didn't PUSH/POP the IX registers holding the pointer to the current character's variables when calling an Action to be performed. Some Action routines destroyed the register pair, thus IX would hold the wrong pointer when returning from those routines. [BUGFIX] 100% COMPETENCE RATING. Getting a Competence Rating of '100%' would be displayed as '1:0%. Also the hundredth digit was never cleared so getting a '85%' Competence Rating on your second go would be displayed as '185%'. [BUGFIX] THE MESSAGE VARIABLE WAS NOT RESET ON RESTART. If the player began a new game, then immediately restarted and the Alien hatched from the same crew member as in the first game, no "The Alien has hatched from..." message would be displayed. The message variable was not reset and the game doesn't allow the exact same message to be displayed twice in a row. [BUGFIX] IF YOU HOVERED ON 'REMOVE GRILL' WHEN IT TURNED TO 'ATTACK' THE GAME WOULD NOT LET YOU ATTACK. If you had the menu marker on 'Remove Grill' and then the Alien (or Android) entered your location, the command would change to 'Attack', but if you didn't move the menu marker and instead directly selected 'Attack', the crew member would remove the grill instead of attacking. [BUGFIX] CORRUPTED GRAPHICS IN THE ALIEN ANIMATION. There were two corrupted bytes in the Alien animation, one in the first frame and one in the second. The following improvements are also implemented: [IMPROVEMENT] ATTACK IS NOW ONLY AVAILABLE IF NOT ALREADY IN PROGRESS OF ATTACKING. Normally, when selecting 'Attack' the option to do so again would disappear until you had executed the attack. However if anyone went through a door, opened a grill or if you selected another crew member and then switched back, the 'Attack' command would be available again even though the attack had not yet been executed. This would get really confusing when you were trying to attack with more than one character at a time. I've modified the game so that the 'Attack' command is never available when already in progress of attacking. [IMPROVEMENT] NEIGHBOURING ROOM/VENT GRILL REMOVAL. If anyone removed the grill in your room but from the airduct location (and vice versa), the game wouldn't update the menu indicating that the grill was removed. I've modified the game to refresh the menu whenever that happens. [IMPROVEMENT] KILLING THE ANDROID WITH ANOTHER CHARACTER. If two crew members were attacking the Android and the one that was not your current character killed it, the 'Attack' command for the second character didn't disappear even though there was no one left to attack. I've modified the game to remove 'Attack', check if the grill is removed and if not, give the option to 'Remove Grill'. [IMPROVEMENT] WHEN SELECTING ATTACK, THE GAME NOW SHOW 'REMOVE GRILL' IF NOT ALREADY REMOVED. Normally when you selected the 'Attack' command, it would be replaced with nothing. I've modified the game to check if the grill is removed and if not, give the option to 'Remove Grill'. Changelog: Version 1.1 (2018-04-12) [BUGFIX] THE RANDOM NUMBER GENERATOR USED DATA BEYOND INTENDED MEMORY. [BUGFIX] A MISSING PIXEL ON THE MAP OF THE MIDDLE DECK OF THE NOSTROMO. Added 'Bugfix' text and version number to the loading screen. Rewrote the Readme. Version 1.0 (2016-10-29) Initial release.ALIEN (Mindgames) Bugfix and Improvement. Version 1.1
I've released a new version of my bugfix and improvement for the game Alien by Mindgames. I've tested it pretty thoroughly (completing the game 17 times in at least 5 hours of playing) and hopefully that's all the bugs sorted.
Grab a copy here.
Enjoy! :)
Later I felt intrigued, but couldn't find other similar 'indirect-control' games, are there for Speccy?
You could also check out ShadowFire by the same author, though it's a bit more complicated and the replay value isn't as high. Good game though.
I just watched the SHADOWFiRE, but why there seem no ALIEN replay on RZXArchive yet?
It must be very Speccy mem/cpu what makes a decent AI go deadly sluggish, rendering the whole game type rather obscured, alas..
Recorded with Spectaculator (v.8.0.0.3092). Long game. Kempston. Alien killed with weapons. Ripley delivered the final blow. All crew members survived. Snapshots/rollback were not used.
Download available here.
Bugfixing the game further, 7 new fixes in total, mainly focused on the Morale (Mental Condition) this time. I haven't had time for fieldtesting, but I setup and tried over 50 test-scenarios (everything I could think of) and it all seems to check out fine.
Here's what's new:
Grab a copy here.
Enjoy! :)
Another update, fixed an additional 2 bugs which brings us up to 24 fixes in all.
Here's what's new:
Grab a copy here.
Enjoy! :)
Here's what's new:
Another update. Three new fixes, with one being a major one when it comes to gameplay. For some reason I never questioned why the Trackers didn't work in the airducts. They would ping constantly even though they shouldn't and sometimes they were dead silent when they should give you a reading. I decided to examine how it all worked and it turned out it's simply a bug. The game correctly used the Airduct Connecting Locations Table but failed to mask the Current Location to stay within said table, which meant the game read data waaay out of intended memory.
Anyway this year is the 40th anniversary of Ridley Scott's excellent Alien movie and the 35th anniversary of this awesome game. So now would be an excellent time to load this puppy up and have a go! :)
Grab a copy here.
Enjoy! :)
Perhaps, it had to do with strict time limits, multi-projects, Amstrad/Commodore conversions, publisher's preferences, and so on.
I'm guessing it's along those lines, tight deadline or something. John Heap's code and design are both very neat and clever. Also there's a lot going on in the game under the surface, much more than it initially seems.
ALIEN (Mindgames) Bugfix and Improvement. Version 1.5
Here's what's new:
Yet another update bringing us up to a total of 30 fixes, hopefully this is the last of them.
Grab a copy here.
Enjoy! :)
@luny@mstdn.games
https://www.luny.co.uk
ALIEN (Mindgames) Bugfix and Improvement. Version 1.6
Here's what's new:
A new update and four more bugs fixed!
That "teleporting" Alien is something I've come across quite a few times while playing but had no idea what caused it, or if it indeed was bug at all, glad to have it sorted.
The first two Jones issues may sound similar, but did require different fixes. I ended up doing a rewrite of pretty much half of the Jones routine, but it all works like it should now.
Grab a copy here.
Enjoy! :)
I had this game back in the day, the big box version, and did play it a few times but the younger me wasn't well suited to strategy type games. Now, however, this is very appealing - especially with all the many bug fixes and improvements! I hope to have a proper go this weekend. No doubt the Alien will slaughter everyone on my first go!
Nice work Ersh
@luny@mstdn.games
https://www.luny.co.uk
By the way, are there any Speccy [128K+/disked] games, which would imitate AI by countering most frequent or abused players' tricks?
@luny@mstdn.games
https://www.luny.co.uk
Ersh, does the alien routine have different strategies as 'aggressive/chase', 'stalk/ambush', 'timeattack', 'guard sensitive points', and so on, based on the progress, or it's mostly random?
As for playing in a browser, there are always emulators like QAOP.