-
Notifications
You must be signed in to change notification settings - Fork 722
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DOOM 1993: implement new game #1759
Conversation
94a398d
to
5492af0
Compare
I see a lot of things are based on Set's now, the problem with python sets is thier order isnt deterninistic so i ran a test generations it seem your progression logic is correctly kept the same across seeds, the order the locations are logged are not. i am not sure what to make of it, it seems to work but i think its best if the locations had a set order |
I also tested generating a 2player game, but it seems to hang indenfently at the Creating Items.. step
yaml used:
command used: |
This is fixed. |
I am using Sets for |
you also use a set for Events.events after my previus comment. dont want to be an issue |
Thanks! Missed that one. Fixed |
Note to reviewer: This is now final, I did all the features I wanted to do for a 1.0.0 release of APDOOM. |
Could it be the way I am iterating locations to add them to regions? Locations are in a dictionnary # Add locations to regions
for loc_id in Locations.location_table: So I am thinking their order is not predictable. I could just loop IDs in order instead. Other games seem to store their location_table the same way. But maybe not looping through them the same way. |
Dicts should preserve order in python so not really sure what the cause here |
I google a bit more, while Dict do preserver order |
I was googling also, in Subnautica I was doing the
It seems like .items() is what I want here. It should keep them ordered |
Oke iv been trying by adding sorted() around a few methods but that seemed to have no effect |
Just tried another game, the Locations: in the spoiler is also different. So I don't think DOOM broke that. |
Can confirm, generates perfectly now |
a8affbc
to
d7f9af0
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks good to me, no real issues. I put in some review comments on things that could use a little cleaning up, but none are particularly necessary.
Did many many test generations last night, both alone and with an assortment of other games, and with every setting combination for Doom that I could think to do (it's fairly limited, thankfully). All successfully generated. Also played it a bit last night solo and it seemed to work perfectly fine. Also really liked what was done with the ap item appearance, I think it looks excellent. |
Thanks! Glad you like it. And glad it doesnt fail tests :D |
548f362
to
07470a5
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mostly just some nitpicking. Logic wise it seems fine to me.
Logic seems fine, there are quite a few PEP8 issues in Pending my review for anyone else reviewing. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Logic looks solid and even though there's technically some PEP8 (and 120 char per line) issues in the generated files, I'm able to look past them.
The __init__.py
file though has a lot that can be refactored to utilize AP functions or python functions, and to remove redundant code. A couple conditionals can also be moved to help optimize the flow. I wrote a refactored version of it (you can take the whole thing or use the info to restructure it yourself) in Daivuk#1
Quick link to file: https://github.com/Daivuk/Archipelago/blob/0d021fd8f5750ba91fec06a35c892cd112015988/worlds/doom_1993/__init__.py
At the very least if the PEP8 and 120 char issues can be resolved should be good to merge, but would recommend going through the refactor for anything you can use. Feel free to request review from me again once you've had a chance to go through it.
* DOOM 1993: implement new game * DOOM 1993 - Phar's cleanup to __init__.py
* DOOM 1993: implement new game * DOOM 1993 - Phar's cleanup to __init__.py
New implementation.
Been well testing by the community.
The APDOOM source port is found here:
https://github.com/Daivuk/apdoom
Graphical changes to the original game.
They are packaged into a new APDOOM.WAD file.