• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.

Archived

This topic is now archived and is closed to further replies.

Novalis

City growth AI

3 posts in this topic

OK, here''s the setup... I''m trying to model the growth of a fantasy city. Essentially it starts off with a castle in the middle of nowhere, and over time peasants move to the city and build houses outside the castle. Some peasants are skilled workers who also build shops/farms/mines so on and so forth. Also, as peasants travel back and forth between buildings (generally where they work and where they live) roads "appear" along those routes. Here''s the question... I need some thoughts on how to decide where newcomers build. I know what I want to use as criteria, but the programing/data structures seem to be eluding me. For instance, I would like to take into account factors like "Have a lot of people been building nearby lately?", "Are there a wide variety of interesting businesses nearby?", "Is the income/standard of living high in this area?". Currently I have a set of functions that will evaluate a specific location based on these factors, and I just sample random locations on the map until one of them gets a high enough score. There must be a more "directed" approach though... Any ideas?
0

Share this post


Link to post
Share on other sites
You could always just keep track of what/how each person is doing in the city through structures or classes. You could keep a bool to keep track of their working. After a certain amount of time of not working, the bool becomes FALSE. This way, you could create a function that searches through everyone''s BOOL. This, however, may be slow because every person in the city would need a timer. But computers these days are pretty good at handling things like this. Good luck on your game.

"Remember, I'm the monkey, and you're the cheese grater. So no fooling around."
-Grand Theft Auto, London
0

Share this post


Link to post
Share on other sites
You could divide your map into a grid. Each of the squares holds a value for how much a farmer wants to build there. Whenever a new building is built it affects the surrounding squares. For example if a school is built more people would want to settle down around it, but whenever a farm is built it decreases the surrounding area, effectively preventing over crowding.

When the farmer wants to build a home it searches the grid for the best place and then starts to build there.

If different people have different needs you could divide have more than one value at each position. The values are then summed together with weights to tailor the need for the person looking for a place to build.

(Am I making any sense?)
0

Share this post


Link to post
Share on other sites
Reminds me off a few game engines I was writing a while ago.
My ones used real locations (if I ever use an array it is only for ease of making terrain, but preferably no array based map at all).  What this means is that all of the locations are in either long or floating points.
This makes the game look better, play better (use more processing unfortunately) and a hell of alot easier to program certain aspects.
If you ever need to calculate the distance in the real location, just use Pythagoreus'' theorum (don''t bother to sqare root numbers unless necessary in comparisions, just leave them as square as it is a bit faster). If you are using an array, just use the x offset of the two points of the array (how many blocks between them) and multiply it my lets say 50 (if each block in the array is too represent 50 meters., then do the same for the y and again use Pythagerous.

Now that the techinical bit is over with, this is my method (simplified as I also had many other biological, mental physical and environmental effects.

This is the basic theory behind the method.

Firstly, you have your castle. You would also have your resources such as rivers, flat areas, forests, big smegging cliffs, and oceans.
You may also designate where certain things go (like maybe armouries, prefaetures and guard houses.

Now lets say you have fishermen in your supply.
Since they are civilians, they would probably want to be rather close to the castle, but on the other hand, they also need to be near the sea or rivers. So you would use a range on them to the targets. Most likely the location of water is best, so just a simple distance of probably <100 meters is sufficient, and in a buildable place.

Now your farmers will require a certain amount of flat land, and a supply of water.
So they will need a large space, and proximity to rivers (not salt water).
They can be placed close to forests, although the phsycology of a farmer is to build in the flat areas first, and near a forest only when necessary (as they can just chop down the trees). The river should preferably be passing through the farm.
The buthcher the baker the candlestick maker would want to be located within a close proximity to the castle, and preferably the praefactures or guard houses, but not too close to them as it migth be a bit of a turn down to the people. They would probably also develope near existing houses and shoppes.
The shoppes (the butcher the baker the candlestick maker) would then inturn develope around the houses if new ones cropped up and so on.

Woodcutters/tree fellers would develop near forests.
Armourers would appear in towns, in more densely populated areas (count how many houses in an area of lets say <250m) and so on.

Houses should also be allowed to change into shoppes.

(gee, I haven''t spelt shops as shoppes for a long time)
0

Share this post


Link to post
Share on other sites