It's time to start looking at what I've been working at the past few weeks, I mentioned 'The Slaanhatten Project' briefly in my last blog and it was also brought up in conversation in this video. Unfortunately the project itself is still in its budding infancy and is not ready to be fully disclosed at this stage, what I do want to look at however, are the stages I went through and the small works I've produced so far in building a working concept map.
Hub layouts, laid out...
A custom hub layout consists of a prefab lot/s which is coded to spawn at a fixed position within a cell. Each cell has a defined size within the mixer, to add my own prefab lot somewhere I would draw an imaginary square, add some axis, put zero at the center and you basically have a primitive cell map. From the center of the map block coordinates can be calculated counting positive as you move north/east and negative as you head west or south. Roads of any material and size can be set in the same way, calculating the start and end points, adding a radius and material.
There is an example set in the vanilla mixer right at the bottom for the customHubTest but the layout itself is not referenced, this is not meant to be the worlds smallest hub layout guide, just enough info so people who have not tinkered with it can maybe get a better grasp.
The traditional method of setting things into the map as hubs took a rather interesting twist a little while ago, at the time, the focus of all the fuss was how to get Laz mans' walking dead prison into random gen. I had used a different method, which is also posted on the thread, as I was really struggling to understand why I couldn't get the code to work and I was basically apart from prefab names doing a copy/paste job into my mixer. Now using an alternative method at the time did not seem like a big deal, I was aware it would only work upto a certain prefab size but the prison was in our map and functional and that was really what mattered the most. So leaving the discussion behind till the forum guru's 'sorted their shit out', life went on, cityblocks came and went and the custom hub layout code was undeservedly swept beneath the carpet.
Fast forward to compo pack 10, hub layout code was working (almost!) as intended and the pack itself had grown a handful of new custom hubs sporting some of the larger community prefabs previously locked out of random gen due to size limitations and the ability to spawn them. Now all of these prefabs are works of art, some are borderline crazy and some are unbelievably detailed, I don't think there's a single one I would not like to include in my world in some shape or form but herein lies a problem all this creativity has produced.
One hub to rule them all!
As all of these custom cells (each cell contains one hub) are adding something unique in the form of a kick ass prefab we naturally don't want to miss out and I want to be able to say "our map has that(or better!)". Now in my eyes, things like the hospital, shopping mall, shopping center, Asia town are all things which would be inside a city, to keep ours so big we have cells that are 2000m x 2000m so now what we have is almost 1000-1500m between the city itself and the respective buildings due to the nature of them being spawned. Its still way better than what we had before, but the focus on just getting something into the map instead of making something a part of the map needs addressing. It's a shame to turn someones work aside because even though the prefab is awesome, a small hospital taking up two square kilometers of landscape, almost another kilometer from anything else is just not good use of the space in the map, it's not even realistic, heaven forbid someone should need emergency medical treatment.... oh yeah almost everyone died.. I wonder why.
A new hope...
A long long time ago.... Ok maybe not so long, actually, a month, if even that, I was having these discussions with BigC and our other local buddies. I didn't know what I wanted, all I really knew is the map on the test server, with the exception of adding more custom cells seemed like it was a good as it was going to get. Now alpha 13 aside, options for a world that looks truly unique are very limited, Seed generates terrain, cells plop hubs based on offset, roads connect it all together forever and I'm staring at the test server wondering how can I actually make the city I want, not that A13 won't be a blast on our current map, but I didn't see the idea being stretched all the way to launch and actually evolving much more than custom cityblocks and newer prefabs inside, there's only so much you can do with the cityblocks and as I mentioned in my last blog when random gets its hands on stuff within the city its comparable to rolling dice where things actually end up.
So we come back to the custom hub layouts, my initial idea was to use our test mixer to build a handful of cities on different seeds and extracting the cityblocks with prefabs on them. The idea would be to create a custom road grid the same size and style, and insert 64 prefabs that are actually pre-built sections. It would in theory allow my to choose exactly what went where, and the dream of central park popping up in the center of the city was possible (among other things).
So i set about my scrap book with a pen and start scribbling and plotting roads to transfer to the mixer, then start jotting down ideas about the combinations of buildings I would collect on each block, possibly with the longer term goal of orginising proper districts within the city, I was almost (and I mean very close) convinced this would be a good way to approach city building, I had concerns over there being no random (i know it will bother some) but the main issue at this point was still using a square grid road.
Now I don't mind committing a lot of time to something, in fact, I think I thrive on it, but there was no way I was gonna work out all of these co-ords for some vanilla square grid road bullshit, so I create another 'clean' grid and start penning something different, then my mind starts to wander and I find after an hour of frantic scribbles im reduced to a tacky map with a grid on, coffee stains and half of the ciggy I'd just rolled.... magic, there and then the idea was born.
I had a road map and for the first time in weeks I was on fire, I had to know if this would work, I needed something to show others because there was no way I was going to be able to explain what was going on inside my head.
First things first, the city had to be at least as big as our test server city, it also had to have the ability to expand and by expand, I mean grow as big as I need it to. I picture all the earlier mentioned city amenities be scattered around the city as you would typically expect, A13 brings new water... lets have a river too and while we're at it, we want a fully incorporated sewer system (we want more than we currently have after all not less).
I make an outer road the same size as our test server city, add the cross-sections and make em wider, these will be motorway I think, or the high density travel roads at least. I add some simple roads to three quarters of the city and set down the road layout for what will become 'downtown'. I scatter down a load of prefabs (thanks to Lazman for his very theme appropriate housing) over a small area to create a few 'streets' as I imagine them. I will cover in very specific detail the steps I've taken to extract and edit the map in a a special blog when the time is right for the project proper.
Now all told, downtown was maybe three days work, 10-15 hours from loading the map up, adding the prefabs and extract. Once the layout is final and the base cityblocks have been built the map can be populated reasonably quickly in a level of detail not possible by the mixer alone (not exactly true but for time vs effort vs reward it kinda is).
The next job was to 'cut in' the river across its set of city tiles, and start working on whats being called the Indy sector for now. By this stage downtown is spawning each game fine so I don't see a need to populate the rest of the map at this stage, better to wait for A13 and the updated compo pack but I figure I can still further define areas of the map without giving myself too much of a headache at a later date. So with two quarters of the city now sporting roam maps and one of them having a decent amount of eye candy to show off the idea I decided things like bridges and the way players would travel the map should be considered. So while setting the road layout for the third part I decide I want a decent length bridge and start toying with the idea of shipwreck's and other things that could be built with the new water system in mind. Damn, the river is barely 100 blocks wide, not really big enough...
Now this is where 'my' system comes into its own, I just added a 100 x 800 (ish) area to the center of my city and it took a whole 20 mins and now the river will be wide enough to cater to a vast array of prefabs and bridges. Because of my tacky map and the way the roads are designed, it was a very simple affair to add a 'city tiles' worth of block space to the roads at the bottom, and slide all my other roads an equivalent space south to make way for the new row.
The concept sewer takes a different twist, I'd like to see an open air section, similar to the american style we see in the movies (the motorbike chase in T2:judgement day!). I picture in my head a tunnel system that could loosely follow the road map with access points (aka drainage tunnels) that would feed into the open sewer, it would be tiny compared to the scale of my custom cityblocks sewer, but I think a less tiled set piece and more specfic tunnel network would become a much more immersive system.
Left to right, you can see each sewer tile being added in stages, the last picture shows It being cut into the river tile, which will become a bridge for the motorway.
With the sewer now connecting to the river, I start to build some kind of idea on where the water level would be, I would like to see the small river for the sewer system feed into the main city river, so the next stage was to cut in the tiles on the river side of the east west motorway, leaving a placeholder walkway, to further illustrate how no area of the city if safe from beautification, I will see every last block where I want it!
The end result while still not being anything resembling finished still has the ability to help paint a picture for what I hope this will achieve one day.
A bridge too far..
By this stage, I had spoken to some of the forum guru's about the approach this new idea has taken and was yet to find any bugs or flaws with the system in general, but I was worried, being somewhat a bit of a noob, that perhaps there were flaws or problems I had not thought of and as the time contribution from this scale of project has potential to be extremely vast I wanted to make sure I wouldn't be pissing into the wind on this one. Thanks to Lazman, StompyNZ and Magoli for taking some time out to take a peek at my work for me.
Naturally I don't expect even them to fully understand the vision at this stage, but the proof of concept seemed solid enough to warrant some further exploration and theres been no red flags as such....
So I went ahead and starting planning one of the major road junctions-to-be. Don't mind the 400m long dual highway, that will be covered soon as well as the other implications of the system I'm working on.
Its all very bare, rough and dirty, but over the comming weeks you will see a lot more of how the concept shall progress as The Slaanhatten Project starts to take shape and the plans we have for it and more importantly, how YOU can get involved.
Now is the time people not to build but to set the imagination rolling, let the ideas flow and start thinking with city in mind. There are no limits except those we impose on ourselves...