jgosar / mine-city-2000

A program that converts SimCity 2000 cities into Minecraft worlds
GNU General Public License v3.0
731 stars 11 forks source link

I would love to make some buildings #12

Closed livid closed 1 year ago

livid commented 1 year ago

SimCity 2000 was one of my sweetest childhood memories.

Now I am a dad with kids. In recent years, I built a big Minecraft world with my kids:

https://www.youtube.com/watch?v=-Zg7UjDrRqA

So when I discovered your project, the fantastic feeling is beyond what I can describe.

Could you please share how can I make buildings for this project?

I have experience with both SimCity 2000 and Minecraft, and I am a programmer too (currently my main project is https://planetable.xyz).

livid commented 1 year ago

Today I converted NYC.SC2 into a Minecraft world and recorded this video:

https://www.youtube.com/watch?v=kU-SB9OOCWQ

It seems Airport and Stadium are missing now. I would love to build those missing buildings.

jgosar commented 1 year ago

Hello @livid, It's great to hear that you like my project and want to contribute.

As a new father myself I recently don't have much free time to work on the project, so it would be great to have some collaborators, especially for the missing buildings.

I will try to take the time to write some more detailed instructions, but this is the general process:

  1. Check the building_stats.xlsx file on the project root to see which buildings still need to be added
    • They are ordered by a combination of how often they appear in actual cities and by size. The idea is to create the buildings that are more common and smaller first, to minimize the effort required to fill up the generated cities.
  2. Find the selected building in SCURK (It's much easier than finding it in a city, and also gives you an unobstructed view of it), take a screenshot and paste it into your pixel editor
  3. Prepare 2D sketches of the building from the front, right and top sides. You can see in the top left part of this picture what a sketch is supposed to look like: https://user-images.githubusercontent.com/36840705/141685136-4c96f418-0fe6-4f6a-ab04-3533fa765f0c.png
    • The most important part here is that every pixel in the sketch must correspond to every pixel of the original building as exactly as possible
    • Sometimes an exact match is not possible and you have to improvise a bit, but you have to try to stick to the original
    • This is how I create the side drawings in MS Paint:
    • To create the view from the right I copy the original image and skew it vertically by 27°
    • To create the view from the front I copy the original image and skew it vertically by -27°
    • To create the view from the top I copy the view from the front and skew it horizontally by -45°
    • I hope this doesn't sound too confusing, I'll try to make a visual step-by-step guide sometime :)
    • Create pixel-based drawings from the top, front and right using the above views
  4. Create a building in Minecraft that corresponds exactly to the sketch
    • Each pixel from the sketch MUST be exactly represented by a block in Minecraft
    • Use common sense and your imagination to construct the left and rear sides of the building, since these are not visible in SimCity 2000's 2D representation
    • The material used is not that important, but the color must match the original as exactly as possible (This is why many buildings are made of wool)
    • You should construct this building in a special template world. I can upload the template separately later today.
    • The building should have at least some kind of sensible interior with rooms, lighting and a staircase that enables access to all floors
    • In smaller buildings I have also added furniture such as beds, bookshelves, etc.
    • When the building is finished, take the file r.0.0.mca from the template world and copy it into the project's buildings directory
    • Rename the file according the building's ID that you found in building_stats.xlsx. For example if you added the building M Condo 3, the file should be renamed to 147.mca image
    • Paint the new building's row green in building_stats.xlsx, so we can see that it has been added
  5. Create a new Pull Request on GitHub with these two changed files, and add me as a reviewer
jgosar commented 1 year ago

As for the airport and stadium, I think that a great choice for your first building would be one of the missing airport buildings (It's composed out of many different buildings), because they are mostly quite small and simple.

The stadium is huge, and even I haven't constructed any of the 4x4 buildings yet, so I don't think it's a good choice for now, but you could do it later after you get used to the process with some smaller buildings

livid commented 1 year ago

Thank you so much for this fantastically detailed guideline!

I was viewing the mca files in the buildings folder, and then I got the notification of your reply. The workflow makes a lot of sense, and I will start with some smaller ones.

livid commented 1 year ago

In addition to the template world, could you please share some of your pixel blueprints created with MS Paint?

jgosar commented 1 year ago

Hi @livid Here are a couple of building designs that I found on my computer: sketches.zip

And this is the template world: template.zip

In the template, the black and white squares correspond to the squares in SimCity, so it's easier to see how much space your building is supposed to take up. And the red column is there to mark the rear corner of the building, so you can't get disoriented when you move around.

And as you can see if you open one of the existing building files, the ground level (Grass, etc) is supposed to be placed on top of the black&white template floor.

livid commented 1 year ago

Hi @jgosar

Thank you so much! I have everything I need to start.

Today I converted LAKEVIEW.SC2 with MineCity 2000, and recorded this video:

https://www.youtube.com/watch?v=Pj8uYvvPStM

It will be so exciting once we have Arcos in it.

jgosar commented 1 year ago

Hi, regarding the arcos there is a slight technical issue. The maximum height of a Minecraft world is 256 blocks, and that's also roughly the height of an arco. So whenever the arco was placed on slightly raised terrain, it would appear in the city without its top part (in order to stay within the height limit).

But still, having arcos would be awesome. Although from my experience with designing the various buildings, properly designing and building an arco would be a huge task and it's something that I never got around to trying.

livid commented 1 year ago

@jgosar Sure! I will keep those limits in mind.

I wrote a script to create 256 Minecraft saves, so now they can be easily searched and selected by id, name, or size. Now I can easily search and enter the world to learn from your buildings.

Screenshot 2023-05-28 at 8 54 38 PM

When I was flying around the city, this iconic church was very easy to spot.

Screenshot 2023-05-28 at 9 00 30 PM

jgosar commented 1 year ago

@livid I have added the instructions for designing and adding buildings here for future reference: https://github.com/jgosar/mine-city-2000/wiki/How-to-design-and-add-new-buildings-to-the-project

With this I think we can close this particular issue, but you are welcome to let me know if you need any further clarifications, or if you want to open a Pull Request with a new building