GoRogue icon indicating copy to clipboard operation
GoRogue copied to clipboard

Incorporate new Generation Steps from the Integration Library into GoRogue

Open fcheadle opened this issue 5 years ago • 6 comments

The new Integration Library contains several fun new Generation Steps. These are purely GoRogue, and don't necessarily fit the bill for an integration lib, so some (all?) of them can be moved into GoRogue. The steps are as follows:

I think that there is a case that ALL of them should be incorporated, with changes to match consistency and style. At the very least, the composite generator should be brought in.

fcheadle avatar Jan 05 '21 16:01 fcheadle

Here's my proposal:

ParallelogramGenerationStep moves almost as-is, except that it has constructor and fields similar to existing generation steps (and uses the same tags). Test it to make sure that the pattern rotates correctly.

BackroomsGenerationStep should change so that it takes the RNG from the constructor, and add matching wallfloor/tunnel tags and such to make them "safe". I should also try and fix the bug in the primitives library documented here. Then, I should try and make the algorithm produce rooms with single-width walls.

SpiralGenerationStep is almost perfect, but should be reduced for simplicity, made safe by using appropriate tags, allow for a parameter to set the point of origin, and the numbers perhaps tweaked slightly.

BrickWorkGenerationStep is a new generation step I haven't gotten around to writing yet, but it lays out rectangles in a brick-work pattern. should accept a custom angle of rotation and implement tag components safely, but does not need an RNG

CompositeGenerationStep should be split in two:

  • CompositeGenerationStep - generalized, allowing users to set which steps they like for the composite generator, allowing users to set their own angle of rotation (with no rotation as a default), minimum dimension of the rooms, the RNG to use, so on. It then sections the map into a grid, and then performs the substep in a new generator on that region. This is how the current composite step works, except more customizable.
  • A new Default Algorithm should be added, CompositedMapSteps, that returns a CompositeGenerationStep that is properly loaded with all the steps that GoRogue has to offer, and it connects all areas and so forth.

fcheadle avatar Jan 14 '21 18:01 fcheadle

Doing this will solve this issue in the integration library by deleting those generation steps

fcheadle avatar Jan 14 '21 18:01 fcheadle

Can you get a PR up with these, even if it's just a draft PR that copies them as-is, so that we can keep track of it exclusively here and remove them from the integration library?

Chris3606 avatar Jan 24 '21 03:01 Chris3606

We've left the Pr for too long and it got stale. The branch new-generation-steps still has some things we can look at, so maybe we'll keep it around for now

fcheadle avatar Oct 02 '21 21:10 fcheadle

Recommend we keep the branch, and refactor it sometime down the line to bring it in line with newer concepts.

Chris3606 avatar Oct 02 '21 21:10 Chris3606

Looking at this, most of the changes to GoRogue since the PRs creation didn't affect the steps added directly. It would require some refactoring to line up with library standardization, but the branch is probably still roughly as valid as it was when it was created, just would need to have the changes yanked out and resubmitted as a PR.

Chris3606 avatar May 28 '22 15:05 Chris3606