Terasology / DynamicCities

Cities that get fancy!
18 stars 14 forks source link

Create roads between cities #25

Closed CptCrispyCrunchy closed 2 years ago

CptCrispyCrunchy commented 8 years ago

This involves adding dynamic road creation with generators found within the static cities module. The main task is to transform the facet based road creation, which creates roads at world generation, into one which places roads during playtime. A similar technique used for the transformation of facet based building creation can be applied here. Suggested steps are as followed:

  1. Create rules for what cities should be connected. A good approach can also be found in the StaticCities module here
  2. Create a road object containing all the road segments akin to the StaticCities road creation.
  3. Create a rasterizer which does the same stuff as the original but uses the BufferRasterTarget for actual block placement

It probably makes the most sense to save the road object to the corresponding city entity to which it connects. This will allow to check for overlap when placing new buildings/stuff.

ahv15 commented 4 years ago

I was wondering if this issue is still up for grabs as it seems interesting to work, would need some help on this tho, ready to pick it up as long as somebody is willing to help me out :blush:

Cervator commented 4 years ago

So @ahv15 it kinda is, but being that this is a very old issue I'm not sure how straight forward it is right now. I do think Metal Renegades to a point attempts to place rail lines between cities in some cases, I've seen it once at least. Might be worth asking in #metal-renegades sometime :-)

ahv15 commented 4 years ago

Ok,sure

ahv15 commented 4 years ago

If it has been implemented to some extent wouldnt mind trying out some other issue. Was interested in learning a bit about world gen, that's why I was interested in this issue

Cervator commented 4 years ago

Gotcha :-)

Have you gone through https://github.com/Terasology/TutorialWorldGeneration yet? That's the usual intro to the basics but I'm not sure how accurate it is. Just going through it and looking for bugs / improvements to the wiki would be a great help.

Beyond that asking in #world-generation might be another way to find some far more current todos :-)

ahv15 commented 4 years ago

yup, just tried it out a bit, but I seem to learn more while experimenting, and that works out best when trying to fix issues. So I will take a look at world-generation otherwise, thanks

Cervator commented 4 years ago

That makes sense 👍

Another option: Each time we participated in Google Code-In (which has sadly now met its end) we had a task chain for world generation meant to result in a working product in the end we could add to the game. It essentially relies on the world gen tutorial but creates something new. Difficulty would be somewhere between the tutorial and picking up a brand new feature request rather than just a new world. Check them out if interested (intended to be done in order with step 4 being the most complex):

ahv15 commented 4 years ago

Nice, some sort of code in like that is especially useful for learning how the codebase works, sadly it is gone

jdrueckert commented 4 years ago

@Cervator This issue seems to be about roads (not rails) between cities which IIRC we do have, do we? I believe at least we did have them (recall seeing them in a video @skaldarnar showed me). So maybe we should close this and open new issues for rail lines between cities and broken aspects of roads between cities (if any)?

Cervator commented 4 years ago

Roads exist in StaticCities, yep - since there they can generate at world-gen time between city locations based on noise/facets. There are no roads in something like MedievalCities based on DynamicCities, I just double checked, since there the cities only start generating when the player gets close to one - at which point there aren't any other cities yet to build roads to.

MetalRenegades seems to have at least broken'ish looking rail lines in some cases, I guess that gets added dynamically later in the process. That could probably be used for roads as well, that's a little easier since they don't have to line up as exactly as rails.

skaldarnar commented 2 years ago

Closing as duplicate in favor of #53.