Helpful Information
 
 
Category: Game Development
DevJournal: SimArch

Hi, i have posted a thread about people making DevJournals of their game development. Here is mine, don't hesitate to provide comments on the game.

This journal is long and detailed, if you wish to only help or read important questions i may have to ask, seek out the quote boxes like this one throught all the text...

SimArch is some kind of remake of an old SIM game called SimTower. Althought largely different in several aspects, SimArch will feature somewhat similar features to SIMTower.

SimArch (SA from now on) will be an isometric tilebased game where you are the architect and owner of the building you are trying to build. SA will not feature any electrical, plumbing or physics aspects as i am not familliar with this. Maybe one day i will implement building physics and utilities, but not for now.

Each tile in SA is called a zone. Zones can be connected together to make a room. Rooms connected together can be defined as an office, service or residence. Globally speaking, offices, services and residence could be regrouped under one simple term but i don't know how i could name this yet so i will simply refer to all of these as groups of rooms or GOR. Note that GORs can only be on one level at a time. I will implment multi-level GORs eventually.

Each GOR is considered a private area since its a place that is rented by an organisation, a person or a company. All other places are automatically considered public.

Reasons for having public and private places is to partly define where traffic flows. Private areas usually mean that only people that are supposed to go there will do while public spaces invite people to come in and look.

The traffic will be ruled first by interrest. If the building you have created has nothing in it, the interest it generates will be poor and little traffic will occur into it.

Lets take the example of a mall. If you build a mall and create lots of small zones for commerce to setup, you will have lots of small companies that want to come in. This in return will generate interest and bring people in your mall and make them walk past some zones. If the installed service, commerce or office generates interest for the people passing by, they will go in and learn about the company which in return will get an interest rating and decide if they stay in your mall or not. If they leave because they get little interest, they reduce your mall's interest rating and thus you may get less people coming in your mall.

More posts to come

Interest ratings on a GOR or the building itself will be the key to calculating the traffic in your building. Traffic will be the first cause to reduce the interrest in a certain building or at least a certain region or corridor. If there are too many people walking through a corridor and the traffic is dense, people will tend to dislike this place and interest of this corridor will drop and businesses will be affected by the drop in customers.

Obviously, there will always be a balance kept since the corridor's interest will drop, less people will go through bringing less people to the commerces around it and thus eventually balancing everything.

The reason why something may go haywire eventually is that ig you build a small corridor for lets say 30 passerby / min and you place 20 shops in a row allong this corridor, you will eventually either get monstruous traffic and discontent people or the companies will leave your mall due to the lack of customer

Augmenting the size of the corridor to two zones instead of one will allow much more people into it and let your mall flow with clients.

So right off the bat, you can see this game is based off the interest generated by different factors. Another factor that will influence traffic and interest of a corridor is the path and distance. If for some reason people have 6 different paths to take they will obviously try the shorter path which will increase their hapiness and interest of taking this path. If they have the option of going through another path that is less frequented they will probably use it instead of the one that is extremely crowded. Now i need to setup the correlation of everything and the setup the mathematical factors that will influence all this.

You can skip this part if you don't feel mathematical or technical, i'm going to think out loud how this could be done. Feel free to give me ideas about this...

We have to think of a throughput variable for a zone and a factor for larger combined zones. For example, 1 corridor with a throughput of 30 ppl / min will not be 90 ppl / min in a 3 width corridor, it will be much bigger since you have to take into account the normal unidirectionnal flow of people that tend to walk on the right side of the corridor (this is usual) (Or left hand side if your british). Having larger corridors eliminates the problem of face to face traffic since people tend to follow others and limit the face to face traffic which slows down everything behind... Therefore, my guess would be that a 1.3 factor of increase on each corridor size will be good.

Taking that into account it should provide us with the following stats: PplThput = (Csize * 30) * (1.3 ^ (Csize - 1))
Corridor size / PPl per min throughput
1 / (30 * 1) * (1.3 ^ 0) / 30
2 / (30 * 2) * (1.3 ^ 1) / 78
3 / (30 * 3) * (1.3 ^ 2) / 152
4 / (30 * 4) * (1.3 ^ 3) / 197
5 / (30 * 5) * (1.3 ^ 4) / 428

This looks like acceptable numbers, the 4 size corridors would be often used for large malls and 5 size corridors would be nice for amusement parks, recreationnal zones like stadiums and such...

Now, to calculate the interest of selecting such a path, i think that it will have to depend on the current traffic at the path. If the path is free (0 to 25% occupation) people will definitely try this path if they want to go this way... If the path is busy (25 to 75%) they will tend to go this way unless they find another path which is less crowded but similar distance. If the path is crowded (75 to 110%), the person will definitely try to find another path to his destination unless the detour is very long (up to 2x the normal distance). Finally if the path is congested (more than 110% traffic), he will either abandon his quest or try to find an acceptable route to his quest (Up to 3x the lenght)


This will lead us to an interresting problem... Path detection... I have never done that before and i'll have to think a bit about it before laying my ideas in here. If you have ever done that before, i'd like your input on that, thanks

Sounds intresting keeps us posted, if you have specific questions in regards to ideas or whatever perhaps lay them out clearly so people can see them at a glance without having to read everything.

Nice idea Viper, i will put this also at the top for all to see... Questions i will post will be in QUOTE, therefore, you can only search for Quote boxes and see if you can help me out.

After carefully thinking about my pathing problem, i realize there will be little solution until i actually implement the structure in memory of how the game will work.

So i think i will focus a bit on the pathing / corridor system structure... It will help me create the pathing algo. Corridors will come in two flavors, private and public corridors and come in 5 sizes (1 to 5 tiles wide). Laying a corridor will create a corridor object in memory with "exits" that point toward the related GORs or other corridors attached. This way the pathing system will be able to follow a path from anything leading into corridors and eventually to something else.

Using a simple recursive function i can explore all paths from a GOR to find each building exits and determine the length of the path to this exit and the different traffic found on these paths. The traffic on that path influences the possibility the path will be an effective one for that GOR. All paths that are considered a good solution will be adapted in terms of traffic and interest, the GOR will receive more clients and generate more interest in return.

This process of path finding will be done each second for one GOR then going to the next GOR in the linked list the next second therefore updating all GORs eventually.

Contracts

As you expand your building creating more and more GORs for location, businesses will be interrested in renting the space you have for them. A list of offers will always be available for your GORs that are inactive. When expanding the offers panel you can see the company / organisation that wants to rent a GOR in your building will be shown there, a price they are ready to pay for it monthly or annually. At any point you can click on the accept or refuse or more info button.

The accept / refuse are pretty straightforward, they allow the contract to begin and the rental process starts immediately or simply refuse it. The more info button will provide more information about the contract such as requests for renovation beforehand, placement of additionnal utilities like toilets or upgrade of stairs or elevators, etc. The panel will also include initial rental cost, begin date, end date, payment method (monthly, yearly)

As of right now i will start building a list of a possible GORs that may want to setup in my building and also detail different names for each. If you want to help me define the different types and provide fictual company names in the genre of simcity 4000 you are more than welcome to. (Please do not give real popular names like starbucks or wallmart but you can alter them...)

Offices
- Accounting
--- WeCountFor-U
--- Lewis' Wallet management services

Services
- Large surfaces
--- Ticky trinkets
--- Walkmart
--- Smears
- Clothing
--- Zap jeans
--- Clara's trappings
--- Freezia's tees
--- Maria's robes
--- Kicker coats
- Shoes
--- i-run
--- The shoeshack
--- Georges' shoe-making
--- Boot-e
- Restauration
--- Baron rouge
--- Little italy
--- McPizza
--- Sandwish king
--- Bonuts

Etc










privacy (GDPR)