Working on some code now that partitions buildings into spaces that can be used to house the city’s various businesses.
Initial vertical partitioning wall
I need to better develop the generators created earlier to populate each space with a business, but I am more worried about implementing z-levels for buildings. I’m not sure how to deal with staircases or elevators, and, more specifically, how I can make sure each space has access to them. Spaces on upper levels obviously can’t have doors on exterior walls :).
I’ve added some variety to the building shapes. The “corner” buildings took much longer to get right than I had expected, and, to be honest, they are still very buggy. I had to run the game a few times to get that screenshot. Here’s what they look like most of the time:
🙁
Part of the weirdness is caused by the algorithm I’m using the draw the map, and part is the actual code that generates the buildings. It has already taken me several days to get here, but I’m going to keep at it until it works the way I want.
Added a map viewer to RogueBusters. I added this so that I can see what I’m doing while I make the city blocks more interesting. I’m also investigating the use of the wave function collapse to create the city blocks.
Wave Function Collapse (WFC) experiment
The output tends to be a little more complex than I had hoped for. I haven’t given up yet. Here are some more examples:
The city blocks are not an uniform as I would like. Cities don’t really end up like this.
Here’s an example from a map of Chicago from 1857:
1857 Chicago.. I’m sure this was still relevant in the 1920s.
There are only a few variations, so I’m not sure how to model that with WFC. For now, I’ll just work on creating the map from a few basic variations and see how that goes.
Field of View is working, and I now have a simple scripting engine to place prefabs:
Building interior of a restaurant
It just places them in random positions, but I’ll soon be able to specify positional hints to the generator so things end up in the right place. There is also a template engine for generating names and other types of text. Here are some examples:
Full name: Harriet Santana Full name: Lyle Berger Full name: Eloise Delarosa Full name: Phillip Combs Restaurant name: Hanson's Family Restaurant Building name: Fields Plaza
I plan on using these templates to generate basic NPC dialog, but I would much rather have GPT-3 or GPT-4 do the talking. Maybe we’ll get there, I don’t know yet, but the template-driven dialog should work fine for now.
Other than walking around, there’s not much you can do in the game, so I want to work on inventories and items now. Then I’ll work on NPC interactions and combat.
Started a new project. I renamed gpthack to strafe. It’s a first-person roguelike engine now. I may use it again in a later project. I started another project I’m calling RogueBusters:
View of the city
It’s set in the 1920s and based on a role-playing game my high-school friends and I used to play back in the day. It’s not much at the moment. The city folk just walk towards a random target and then stop. You can walk inside buildings, but I just got prefabs working, so there’s only one thing inside them:
Some tables with chairs
I’m staying with Rust for now although I’m having a rough time with it. I don’t want to stop and actually learn new concepts like ownership and lifetimes. I can focus on the gameplay features I’ve always wanted since I don’t need to worry as much as I have in the past about graphics and physics.
Hopefully, I’ll see this one through, but I’m not making any promises. I would rather be disciplined than motivated, but I’ll take what I can get :).
Working on extremely basic procedurally generated levels, and, afterward, I’ll work on generating content using GPT and Dall-E. To be honest, I will probably make some basic UI elements before that, but I’m hoping that will be straightforward. It never is, but I can dream, right?