• Welcome to SC4 Devotion Forum Archives.

CityMania

Started by Nique, February 03, 2009, 11:33:52 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

null45

QuoteAs i did know about the "one laptop per child" project and the open source of Simcity.. i've never managed to find the actual source code yet.

That code is located here

The file you want is "MicropolisCore.tgz", it builds with Visual C++ 2005.
Although I don't know how much help it will be to a C# project  :thumbsup:

Nique

I am a little frustrated as i weren't able to find a co-coder .. to join me. I just can not do this alone as this project needs more time than i can give in my whole life.
Thats why companies put millions in projects. I think i've shown the potential for what we can do.. this far.

But i really need some buddies with me.. 
Proudly developer of

JoeST

Quote from: Nique on July 31, 2009, 12:24:35 PM
I am a little frustrated as i weren't able to find a co-coder .. to join me. I just can not do this alone as this project needs more time than i can give in my whole life.
Thats why companies put millions in projects. I think i've shown the potential for what we can do.. this far.

But i really need some buddies with me.. 
well I can code C# now, thanks to my job :D

(yes thats an offer of help ;) )

Joe
Copperminds and Cuddleswarms

Nique

#123
Hey, that's great!

Maybe it's a good idea to start from scratch because this far i used Microsoft's XNA game Studio. XNA is only for XBox and Windows. And i guess we want to support more. What about Blender or Blender + Ogre ? Maybe we shouldnt make it full 3d but use the same technique SC4 has used. But this time, the game is our's and we can add/remove as many things as we want. You have seen my topic about the dutch textures.. i can texture objects 'pretty well'. I am not easy satisfied.

Nique

(don't you agree CitiesXL is just 'not' it...)
Proudly developer of

JoeST

#124
I dont mind what we use (though I'm not a fan of anything proprietary)

and when I said help, I didnt mean develop a whole game from scratch, just help program when I can, my job is taking up 90% of my time atm, and then I will go back to uni.

Joe

EDIT: I am with cogeo, .NET sucks...
Copperminds and Cuddleswarms

cogeo

Quote from: null45 on May 16, 2009, 09:14:47 PM
Although I don't know how much help it will be to a C# project  :thumbsup:

I would rather second this! Lousy and unpredictable memory management and an additional layer of "development environment". Don't know the performance issues exactly, but I don't like the idea of involving .NET here. Maybe the native environment would be preferable.

JoeST

Well...I did some brainstorming today. I thought that a nice way of doing 'multiplayer' mode, would be to store the cities/worlds in a distributed revision control repository. I personally know git and how it works, (including, to some extent, its plumbing mechanisms).

So what we have is world repositories stored on a server. Each one of these worlds holds all the empty-worlds terrain/climate/(other worldwide) data. The author of the world repo is the only one that can update it (unless he gives permission to others).

To start playing with this world, you clone the repo to your local store (a folder on your pc). This allows you to view and edit the world. It also allows you to start creating and building cities.

If you wish you can subdivide the world into rough country/province/region areas (henceforth called region repos), which become sub-repos to the main world. These can then contain multiple city and even sub region (for example, the multiple states in America, or different continents, or (if you LOVE micromanaging) different postal addresses).

A city (or countryside region) contains all the information related to your city. In building mode, every time you do one of these actions:
- Create neighbourhood/transport network/etc.
- Edit LOTish (an abstract, (dynamically created), in-game-editable Lot thing).
- Auto save1.
- Micromanage economy/etc..
The game saves what you have done in a commit. Which allows for both concurrent playing (two people playing the same city) and undoing actions.
Once you have reached a stage where you wish to share your city: either read-only (so people can browse it on the web/use it as a neighbour) or read-write (a colaborated city project). You publish (what is known as a tag and/or push in git) your city to the public place2.



So, an example:

Our good friend David (dedgren) feels like starting a 3RR in our game. He clones (downloads) the Earth repo from a server that has it and opens the game. He now has an empty world thats the size of Earth (relatively) and has a bland outline of the continents and seas and mountains (no point having a fully blown detailed map when you can detail it out in sub-regions). He then has to download (in the background) the North-America sub-region, which includes more detail of that specific area.

He selects New Region from a menu or something. He drags out the space that 3RR occupies in the North-America sub-region of Earth and calls it Three-Rivers-Region. This now has a folder on his pc with all the terrain data of that region in it (I guess it would be blank, or maybe a copied version of the area it covered in North-America) . He sets to terraforming it how he likes (with auto-commits behind tool-change events) and all that data is saved in his Three-Rivers-Region repo.

After that is done, he divides the land up into parts for his collaborators to work on. So he now has a load of sub-project-repos in his Three-Rivers-Region folder/repo. Each is fully editable by him, editable to a level he selects by its named collaborator, privately-viewable by other collaborators (so that they can match boundaries, check out stuff) and publicly viewable to the public (like a web-viewer or something).

The place that he is hosting has something along the lines of Trac, which allows him to set a task-list for the collaborator, and restricts the publicly-viewable repos to be selected to certain 'releases'. It also allows the public to report 'bugs' like where trees grow through buildings, and things like that.



Another Example:

One of the NHP guys releases a map of Middle Earth, and Bob (a fictional user) clones it (as part of an Arda world repo tagged 3rd age). He starts making a region in Rohan with a city called Edoras. He plays out the creation of Rohan from when Eorl is given the lands for coming to Gondors (another region/city, possibly built by someone else) aid. Each update is run on a blog, acompanied with a city-viewer for that particular published (tagged commited) version of the city.

He misses the creation of a sub-building of Meduseld in one of his updates and goes back to fix it so it can be destroyed later on (??). So he finds the update and loads it up (by branching at that published commit), and adds it in. He then needs to merge his fixes in to the main branch (the story thread), which is all possible through git 3.



NB:
1. Obviously automatic...
2. A public place can be any server that has git installed.
3. Binary saved data might make it harder, we would have to write a binary->gui converter for the merge tool and then a gui->binary back again at the end of the merge, probably a hooks script would do it :D
Copperminds and Cuddleswarms

dragonshardz

Dude...that sounds better than CitiesXL, ie, don't have to pay to play on a planet.

Nique

#128
Hi JoeST,

Today, i was thinking about the game too. For 3d it should be (in my opinion) very easy for users to create their buildings in the game using programs like 'google sketchup' etc. BUT.... maybe we should try something very simple in the begin and drop the whole 3d engine in the first stage. We can do 3d later, i think it is a better idea to create the simulation engine first and use some simple (flat) 2d graphics / stats to monitor it. When enough stuff works.. we can go 3d as we can keep the whole 3d thing in mind while developing the game. ;).

Your multi-player plan sounds great, i will study it tomorrow! (i was too curious and read it now)
That sounds very very good as it will minimize the amount of data that's being send to the server! Very cool idea!. I know what you're talking about.. it's like svn repositories i use for web projects, but then.. for large amounts of binary data ;). But being me, have you also thought about a database engine (like SQL). I don't know what is better (faster / secure) to use, but maybe the SQL idea gives you another point of view ;P

How abouts:
Manipulated data? Can we check on cheated data? (like new (false) contracts between cities (if we want to trade) that will ruin someone else's city).
Because if you trade between cities (power, water etc.) you'll also have to write a update to another cities trade data. Here it comes even more complexed as we have to decide what 'time' system we use. We have to create world economy data also.. we need to know how much money one city has.. and update it each (fictional?) amount of time as the contracts between cities exists.

(i hope i explained this in a readable piece of English language ;) )

The Name of the game:
I also thought about the name of the game as "Open Simcity" can be a pain in the ass seen from EA's office. So, what about
"CITY (or) SIM MAYOR"


People who read this and have the idea they can help (brainstorming, ideas, examples), Please share it with us! Thank you!
Proudly developer of

j-dub

Title ideas: Simulated City? Simulated Cityscape? Simulated City Limits? City of Sim? Simburbia? Sim Suburb? Sim Suburbia? Simburb? Simulated Metropolis? Sim Metropolis? (don't make me say Simtropolis) Sim Capital? Sim Citadel? Simulated City Tycoon? Urban Tycoon? Urban Planner Sim? City Designer Sim?

JoeST

Quote from: Nique on August 07, 2009, 05:59:47 PM
Hi JoeST,

Today, i was thinking about the game too. For 3d it should be (in my opinion) very easy for users to create their buildings in the game using programs like 'google sketchup' etc. BUT.... maybe we should try something very simple in the begin and drop the whole 3d engine in the first stage. We can do 3d later, i think it is a better idea to create the simulation engine first and use some simple (flat) 2d graphics / stats to monitor it. When enough stuff works.. we can go 3d as we can keep the whole 3d thing in mind while developing the game. ;).
Sounds alight to me, though you do know that, without the prospect of 3D from the start, not many people will want to join and help. This happened with UrbsUrbis, another comunnity built one. We never got anywhere because we ended up arguing between 3D and not 3D.

Quote from: Nique on August 07, 2009, 05:59:47 PM
Your multi-player plan sounds great, i will study it tomorrow! (i was too curious and read it now)
That sounds very very good as it will minimize the amount of data that's being send to the server! Very cool idea!. I know what you're talking about.. it's like svn repositories i use for web projects, but then.. for large amounts of binary data ;). But being me, have you also thought about a database engine (like SQL). I don't know what is better (faster / secure) to use, but maybe the SQL idea gives you another point of view ;P
We could use a database engine too, its just the change-tracking abilities of a DVCS like git lets you undo much easier (along the lines of `git branch [commit id]`).

It depends, what were you going to use a DB for?

Quote from: Nique on August 07, 2009, 05:59:47 PM
How abouts:
Manipulated data? Can we check on cheated data? (like new (false) contracts between cities (if we want to trade) that will ruin someone else's city).
Because if you trade between cities (power, water etc.) you'll also have to write a update to another cities trade data. Here it comes even more complexed as we have to decide what 'time' system we use. We have to create world economy data also.. we need to know how much money one city has.. and update it each (fictional?) amount of time as the contracts between cities exists.
Using git that's easy to fix..you just undo to a point before the bad stuff happens :D.
Though that would only happen if you have agreed with the player to both track their most-recent commits. As you could, for example, download an old published commit and just work as if it never changes (lol) or ...in the future, we might have an AI-ish thing that can start growing any city for you.

Joe
Copperminds and Cuddleswarms

dragonshardz

How about...OSC, AKA, Open Source City? That way, we can keep the acronym we already have.

j-dub

Hey, Open Source City, does sound like a good final name.

Nique

#133
Hey,

The WIKI pages fails..

Also, i'm 99% sure i am doing game development college for the next 4 years.. That will definitely help ;) Maybe i can make this a scholar project
Proudly developer of

WC_EEND

out of pure curiosity: where? Because I'm considering to do the same ;) I know of 2 places where you can study it in the Benelux:
HoWest (Kortrijk, West-Vlaanderen, Belgium)
and Utrecht (Holland)
RIP Adrian (adroman), you were a great friend

My LOT thread                                    

SCAG BAe146/Avro RJ Project

dragonshardz

What Wiki pages are you talking about Nique?

Nique

#136
Quote from: WC_EEND on August 11, 2009, 03:24:05 PM
out of pure curiosity: where? Because I'm considering to do the same ;) I know of 2 places where you can study it in the Benelux:
HoWest (Kortrijk, West-Vlaanderen, Belgium)
and Utrecht (Holland)

Since last year also in Groningen ;) And that's where i go.

Quote from: dragonshardz on August 11, 2009, 03:45:44 PM
What Wiki pages are you talking about Nique?
The WIKI pages, JoeST created for this project (http://wiki.arcath.net/index.php/Open_Simcity). I'm currently working from scratch.. creating a tile engine
Proudly developer of

Nique

#137
i needed the WIKI to add some development information


ZONE ID's have sublevel id's currently using VECTOR3 {zone, subtype, density}

Example:

Vector3(2,1,2);

means

Vector3(commercial, retail, medium);

Per tile properties
// Basic
bool zonable= true;
bool watered = false;
bool powered = false;
(..more to come)

Hard time on terrain picking
http://s5.photobucket.com/flash/player.swf?repeat=true&file=http://vid5.photobucket.com/albums/y199/Ne0que/Tilepick_alpha.flv
Proudly developer of

JoeST

yeah, the wiki is down because the database engine my friend uses (mysqld) is broken, like totally.

well done with that video, its looking awesome :D

Joe
Copperminds and Cuddleswarms

riiga

This project is just AWESOME!  :thumbsup:

Since I'm not a skilled programmer (yet), I won't be able to contribute to the game engine. However, I'll be more than happy to make textures or designing the GUI. ;)

- riiga