ID:154216
 
I was wondering if it was possible to generate city-scraper filled maps? It would be cool to do something like that. But I don't know if it would work effieciently. Mazes would do good, but I dont think big objects like this would :/ just thought I would post it
Maybe but what if the occasional 60 story building ends up in the middle of the road?
Sure! Plot the scraper bases (spaced out enough), then plant roads, street lamps, cool stuff like that, and then add the bodys and tops of the skyscrapers. I've done lots of experimentation with map generation (though I've never really looked at articles on it or anything) and I've come up with some pretty interisting stuff.
In response to JordanUl
Do a turf check, if(istype(T,road)) continue
place something like that T being defined as the turfs in the world, in your loop for random map generation. Then if there is something there you don't wish to overlay, then it just gets return. If your dealing with sizes greater than 1 tile then you just need to extend the x,y checks to cover that area.

LJR
Sariat wrote:
I was wondering if it was possible to generate city-scraper filled maps? It would be cool to do something like that. But I don't know if it would work effieciently. Mazes would do good, but I dont think big objects like this would :/ just thought I would post it

The skyscrapers in L&D are auto-generated, for the most part. We do specify their initial location, but they create themselves.

Anyway, no reason it couldn't be done.
In response to Deadron
Deadron! You should create some libraries and demos on these topics such as.

Automatic building creation
Creating maps on the fly
Isometric Viewpoints
Something that solves problem like the one I have in Docking
(I believe you saide you dealt with using block() before)

These would be very helpful to the Byond Community.
In response to Exadv1
Exadv1 wrote:
Deadron! You should create some libraries and demos on these topics such as.

Automatic building creation
Creating maps on the fly
Isometric Viewpoints
Something that solves problem like the one I have in Docking
(I believe you saide you dealt with using block() before)

These would be very helpful to the Byond Community.

I'm a bit burned out on libraries and tutorials and am currently putting my minimal free time into getting L&D finished.

But I imagine I'll get inspiration for some of this again. Certainly once the first part of L&D is out, Guy and I probably should write up some of what was involved in making it.
In response to LordJR
Or just tinker with the order you make different parts of the map. Perhaps make the skyscrapers first then the roads and simply build the roads arround the skyscrapers. Lots of way to do it :).
In response to Exadv1
Exadv1 wrote:
Deadron! You should create some libraries and demos on these topics such as.

Creating maps on the fly

There are a few libraries for this on the hub now: my MapMaker, Dan's maze, and Nadrew's map maker/ random gen.
How do you want skyscrapers represented in your game? Will you just outline the base and block it off, or will they extend upwards, obscuring the area behind them? If the extend up, will they block things from moving behind them? Will you be able to see things behind them? (You saw how much trouble I had with that tower. :P)

Will the interior of the skyscrapers be accessible? Will you want them randomly generated as well? Will players be able to go to each floor of the skyscraper? (It would be cool if when a player moves in front of a window, players outside on the ground will be able to see their image in the window. ;) That's an idea I was toying with for a present day/near future RPG)

darke_MapMaker is well suited to making building interiors. You would have to place a door on an outer wall, and populate it with typical interior items, but that's not too tough. ;)
In response to Shadowdarke
Shadowdarke wrote:
How do you want skyscrapers represented in your game? Will you just outline the base and block it off, or will they extend upwards, obscuring the area behind them?

I liked the way your tower looked ;) But it would cuase some type of problems for having wall crawlers. (I think)


If the extend up, will they block things from moving behind them? Will you be able to see things behind them? (You saw how much trouble I had with that tower. :P)

same as above
Will the interior of the skyscrapers be accessible?

would add to the many,many things that would make the game more explorable

Will you want them randomly generated as well? Will players be able to go to each floor of the skyscraper? (It would be cool if when a player moves in front of a window, players outside on the ground will be able to see their image in the window. ;) That's an idea I was toying with for a present day/near future RPG)
Sounds good.

darke_MapMaker is well suited to making building interiors. You would have to place a door on an outer wall, and populate it with typical interior items, but that's not too tough. ;)

Yeah, but that would mean no variety in sky scrapers :/
At least not in the outside. This way, each server would have different maps. Leading for different teams, head quaters, rivers, land marks, and basically all that good stuff. I think the lag alone would crash the game...

What I'm saying is, random citys? I just couldn't picture it. Mazes/arenas yes, but not cities.

-Sariat
In response to Sariat
Sariat wrote:
Shadowdarke wrote:
How do you want skyscrapers represented in your game? Will you just outline the base and block it off, or will they extend upwards, obscuring the area behind them?

I liked the way your tower looked ;) But it would cuase some type of problems for having wall crawlers. (I think)

A problem yes, but not one that can't be solved. ;) You'd have to keep track of whether items are behind the skyscraper or in front of it when they are wallcrawling, and display them appropriately. The real complexity comes when they are wallcrawling on one tower, but behind another, and each has a display in the same map space.


If the extend up, will they block things from moving behind them? Will you be able to see things behind them? (You saw how much trouble I had with that tower. :P)

same as above

ditto ;)

Will the interior of the skyscrapers be accessible?

would add to the many,many things that would make the game more explorable

Will you want them randomly generated as well? Will players be able to go to each floor of the skyscraper? (It would be cool if when a player moves in front of a window, players outside on the ground will be able to see their image in the window. ;) That's an idea I was toying with for a present day/near future RPG)
Sounds good.

darke_MapMaker is well suited to making building interiors. You would have to place a door on an outer wall, and populate it with typical interior items, but that's not too tough. ;)

Yeah, but that would mean no variety in sky scrapers :/
At least not in the outside.

Hmm, I don't think you realize how flexible darke_MapMaker is. It is currently limited to rectangular shapes, but you can decide the size of the rectangles at runtime. You can even move the rectangles so they overlap and either cut holes in the appropriate places (similar to placing an external door) or choose not to make the border solid and draw the external walls yourself. To make your city, basically you would just randomly decide the base of the building and how many stories it is, then use the MapMaker to draw each level. The biggest problem I forsee is wasted map space on the Z levels where few skyscrapers reach that high.

This way, each server would have different maps. Leading for different teams, head quaters, rivers, land marks, and basically all that good stuff. I think the lag alone would crash the game...

darke_MapMaker is rather CPU intensive if you use it for large maps. It can do small maps (size measured in number of nodes, not in number of turfs) very quickly. You may want to make it so that players (other than the host) can not connect until all the maps are drawn. Make sure to inform the host what is going on, and it would probably be a good idea to give him or her a status indicator.

What I'm saying is, random citys? I just couldn't picture it. Mazes/arenas yes, but not cities.

I can. ;)
In response to Shadowdarke
I can too. However it would take some manipulation of your library. (Currently I am still trying to understand it.[Edit:] Nevermind. The entire thing looks very confusing.). Then configure it to make logical roads and buildings. If I get it to work on cities I will send it right over to you.
In response to Exadv1
i have an idea.. Have all your skyscraper turfs and stuff under turf/skyscrapers. then have it randomly pick a spot on the map and have it call a proc called 'generate_building' there. it will make a building in that spot. then, have it take a random place, and check to see if there is any skyscraper within, lets say 4 squares (how big the scrapers are). if there is one, then have it do it again.


Just a thought.

-Rcet
In response to Exadv1
I could personally write most of those libs myself (since Deadron is bogged down, and rightly so!) after some experimentation. Most of those concepts are things that I have already explored. What one would you say is most needed?

-Lord of Water
In response to Lord of Water
Lord of Water wrote:
I could personally write most of those libs myself (since Deadron is bogged down, and rightly so!) after some experimentation. Most of those concepts are things that I have already explored. What one would you say is most needed?
You would?(rhetorical) Thank you!
-Lord of Water
Automatic building creation
Creating maps on the fly
Isometric Viewpoints
Something that solves problem like the one I have in Docking
(I believe you saide you dealt with using block() before)

Automatic Building Creation would basically it would be a modified map generator. So it would be pretty boring to write.

Well obviously Isometric Viewpoints would revolutionize BYOND but take you days of no sleep to write because Deadron(DDT) has the only working copy and you would have to write it from scratch.

The Docking Problem would be most helpful to me and also deal with map creation. It is detailed in a post called Docking. Same board

Overall:
Best for me: Docking Problem
Best for community: Automatic Building Creation (unless you have Isometric Viewpoints code then that is the best. The main reason is because it would be worthless to code from scratch if someone else already is planning to release finished code.)
In response to Exadv1
Well obviously Isometric Viewpoints would revolutionize BYOND but take you days of no sleep to write because Deadron(DDT) has the only working copy and you would have to write it from scratch.

He does not have the only working copy. Haven has had a fully-functional runtime-built isometric system for several months now. Furthermore, it had a mostly-functional compiletime-built system for well over 2 years...

...Just because someone releases something first doesn't mean they own the only copy. ;-)


The Haven Seed does not, however, employ multi-tile player characters. It messes with my game scale -- I want the world to be intimidating in comparison to the players, and I want the world to look like there is a lot to be found. I haven't given much thought to non-humans, because my overall slant in games is to make a world that has humans and only humans, but it's a possibility if there's a demand for it -- and if there are non-humans, there will definitely be multi-tile monsters.