Brainstorm Creature Mechanic - Work prioritations, big change
So, I played Settlers 7 the other day. I noticed one big different between this Settlers game and the previous Settlers games.

In the previous Settlers game the workers were assigned to one building each, and the carriers to one road each. All the workers did was perform their work and then put the item produced outside the building waiting for the carrier to pick it up.

In Settlers 7 they organised it a little bit differently, instead of having carriers assigned to one road each they put all the carriers in the storage building and let them work from there. Their task was to transport materials to building sites and to other buildings that needs it. The workers assignments on the other hand was to do the job they are assigned to do in that specific building, like cutting wood for example, and when they are done they transport the materials directly to the storage room before resuming with the woodcutting.

So this gave me an idea that I think will make the imps a lot more focused on what they are doing and at the same time decrease the weight on the CPU when calculating what a certain imp will do next.

What if we had three types of imps:
  • One imp type that do all the works that the buildings require of them, like baking bread or fetching water and after that is done they will transport the material made to the closest storage room.
  • One imp type that do all the carrying to the construction sites and the different buildings that needs items, like carrying coal and iron to the iron-smelter.
  • One imp type that do all the building, all the digging and path/wall claiming.

So if the player builds a storage room, he will automatically get one carrier assigned to that room, but he will have to possibility to add more carriers if he wants to. And if the player builds a farm room he will get a worker automatically assigned to that room, with the possibility to add more workers.

The rooms itself will be assigned to the closest storage room, so that the workers and the carriers will only focus on delivering and getting items from that storage room. The player will of course have the possibility to assign different storage rooms to the rooms as well.

So when looking at the whole picture the workers will only focus on tasks given to them in the room they are assigned to and the storageroom the room is assigned to. So one imp would only need to prioritise between the different tasks in one room, which makes him a lot more focused!

The thing is also that the rooms itself will get a bigger purpose. If the player builds a farmroom for example, he will get one worker connected to it automatically. And if the farm room is small and only have one farm land he would have waisted that worker, because one worker could easily handle 6+ farmlands..

This is the idea I have, it is a big change to the game but I definitely think it will be worth it, because right now a too large dungeon are making the imps a little confused. And it would get rid of the lags connected to a too big dungeon. It will not be implemented with the next release, but it will probably be it before the Steam release. As I see it, it would require a weeks work for me to get this working, but in the long run I would get that time back many times. Because otherwise I would need to keep optimising the work prioritization system, and even if I get it very optimised I would need to continue optimising it with future updates because with each new update there will also be a lot more works that can make the computer start lagging.

So what do you think? It is a big change to the game and I would like to hear your input on it Smile
I think splitting up the tasks was inevitable, there's just too much for the Imps to do. Are you sure though that having different types of Imps won't get confusing?

Perhaps instead you could keep the typical Imp form as a miner/builder/claimer/jailor & perhaps carrier, but otherwise for instance the farm could be run by a impish pig creature maybe in overalls which could go from lowly farmer and as its skill in farming increased could move on to miller, then baker, and eventually brewer. This was the progression in another game I play called Cultures.

Likewise, creating an impish character that relates to the task they are performing I think would be cooler than just having a whole bunch of imps running around because it would be hard to know what they were tasked to just by looking at them, unless you have an idea to distinguish them from each other.

Having a check box in the creature card for tasks like in Rollercoaster Tycoon would help us dedicate an Imp to a particular task by checking the boxes. So You could have an Imp doing all tasks available or have one set to only dig walls, or dig walls and claim territory; any combination of things. Also being able to select the tiles as an area of workspace may also be helpful. I wish I had time this morning to put some graphics together about what I mean. An alternative to selecting tiles as workspace is maybe have a built in limit of work area from the center of the workplace.
Hmm, the idea is to just cloth them in a way that shows what they are doing for a type of work, having different cloths on the imps depending on if they work in the farm or in the iron smelter is a great idea. But I still think that it would be better if imps were assigned to certain rooms, because even if the imp are just doing the jobs in the farm which includes fetching water, harvesting, grinding and so on there will still be some confusion I think. If the player plays the game long enough he will have a lot of different farm rooms and some of them would need less attention than others, and there is always the possibility that if a harvesting job opens up somewhere in the other end of the dungeon this imp will run all the way over there just because the imps that are nearby are focused on doing other farm jobs.

I could work more on the AI and get it to work, but I feel like it would be better if the player had more control over the imps and by this controlling the production chain more efficiently.

So the main issue right now would be how to assign the imps to the rooms, having different creature types would maybe be a little redundant as they will have different task as soon as they are assigned to the room. So instead of setting the specific creature type it would work just as well to just assign them to a room. Hmm, well what if as you said the creature card has some check-boxes or radio buttons, explaining if the imps are either:
- Workers
- Diggers / path claimers / Builders
- Idle

So when right clicking the room the player would get the option in the radial menu if he wants to assign more imps to the room or remove workers. The player wouldn't be able to assign workers unless there are some imps that are idle, and he wouldn't be able to remove workers if there are no workers that are working in that room.

The player could also be able to make workers idle by switching the radiobuttons in the creature card. Or maybe control it more generally from a creature production menu where he can see how many imps are working at specific buildings and much more.

How does this sound?
Yeah, I think having different clothing based on the type of work would make life much easier and keep you from having redundant creatures like you were saying. So maybe a farmer would have overalls where a miner would just have the basic look of the Imps as they are now. Perhaps giving them different hats too based on their tasks. So going back to the previous example a farmer would have a straw hat, but a miner would keep the traditional candle hat.

I'll try to put something together this weekend on what I was thinking graphically for the tasking, although I don't know if it will be as good as some of Sebt's stuff.
Oh yes I like this idea! This will create some order and overview on the imps. Now I'm like, what the hell are all the imps doingTongue

What exactly do you mean with 3 different kinds of imps: Do you have to spawn different types, or do you have to assign different roles to the 'general imp'? I prefer the latter.

I agree with Mellon that it would be nice if their roles (as workers) are specialized into different rooms, or even better, different jobs (you still need a room option to add them, see last paragraph).
Obviously this depends on memory etc but nonetheless I would be cool if each of them would have their own looks.
Maybe in a later stage of development you could even add skill-trees or leveling systems per job. For example, each level increases speed or production with 25% or something.

As you (Rasmus) said before it's probably the best to have a separate creature production menu. Or rather a -Rooms menu- where you have an overview of all the rooms (maybe even have the option to name rooms?) and add/reduce workers. Especially in a larger dungeon you will lose track of all rooms.

Which, by writing the previousTongue, brings me to the following: will you be able to add workers per area-rooms or kind-of-rooms.
I mean the following, what if you build 2 separate farmhouses. Will you be able to add imps separately to each room, or only to "Farms" in general after which the system will divide it?
Sorry for all the questions and suggestions! And thanks for reading it anyway hahaTongue

Mello, I have some experience in 3D modeling and could make (if you want) some examples of clothed imps if Rasmus could send me an impmodel Smile ?
(05-12-2013, 07:47 PM)Mastergoose Wrote: Mello, I have some experience in 3D modeling and could make (if you want) some examples of clothed imps if Rasmus could send me an impmodel Smile ?

That would be awesome! I do pretty well on paper, but when it comes to computer graphics I'm nowhere near pro. I believe that Rasmus has someone doing the 3D modeling, but I don't think they would mind if we threw some stuff together.

Your skill tree is something I think was mentioned briefly before, and I still think that it would be a great way to modify the Imps for particular tasks. If you could build a model for a farmer Imp for example, that would go great on the card I was wanting to put together to visually describe my thought process.

As far as assignments, it would be cool if we could just select the Imp we want to assign and get a menu with an assign icon and an unassign icon. We could then manually assign them to a workplace. once assigned to a workplace, a marker would popup in the work area showing it was assigned, and scrolling over the marker would show who was assigned to it. This is very similar to a mechanic in Cultures.
I would love to get some help with modelling the different clothes Smile But I can't send you the model atm, because the imps are waiting for some modelling polishing, and if we change the imp model all his clothes made previously would be worthless. But as soon as I get the new model I will send it to you Smile

PS. Don't be afraid about us redoing the imps totally, we just want to make him look even prettier and cuter, we are keeping the same appearance Wink
I love this idea, it should dramatically reduce the CPU demands from the imps and also make imp management much easier. I like mellow's idea of a Roller Coaster Tycoon style set of check boxes and being able to assign an imp a particular work area, so they would only consider tasks withing their assigned work area. This should streamline imp task selection greatly, as will Rasmus' idea of assigning imps to a particular room, where they do any tasks pertaining to that particular room. Also, having the ability to turn production on/off for each room and also for each room type would be very helpful, so if for example, farm #1 were turned of, any imps assigned to that room would automatically go into idle status until the room was turned back on again, or they could search for any transport tasks, such as moving any finished products that were in the room at the time it was shut down first, then once all such transport tasks were done go idle.

I also like the idea of having an imp change its clothes based on what type of tasks it's assigned to.

If tasks are going to be managed by room, then adding a rooms list would be very helpful in managing the rooms,iis especially in a large dungeon.

Another issue to do with resource management which also seems to contribute to the lagging issue is stockpiling excessive quantities of items, which can plug up store rooms and also cause the game to lag. In addition to being able to turn production off for certain rooms or items, being able to dispose of overstocked items would also be helpful.

@Rasmus: you also mentioned having each production/consumption room being assigned a specific store room to get its supplies from and to send its outputs to. One question I have about that though is did you have something mind to deal with issues like a room's assigned store room being too full to accept any new items, or being out of stock of a needed resource?

I'd suggest having each room have a preferred store room assigned to it, and at least 1 alternate store room that it would use if it can't use its preferred store room. One default system for prioritizing which stores a particular room uses would be the closest store, then the next closest and so on, with the lowest priority on the farthest store. There could also be an option to set this manually too of course.

You would also need to have some imps assigned to redistributing items to the store rooms that need them otherwise you could end up, for example, with a store room that supplies a foundry overstocked with iron bar stock, but has no coal or iron ore in it, while another store room that supplies an armory has no iron bar stock but loads of coal and iron ore, as it is being fed by nearby mining operations. So if each room draws its supplies from 1 specific store and sends its finished products to that same store, you would need to have imps transporting the ore and coal to the store that serves the foundry and the iron bar stock to the store that serves the armory.

The simplest way to handle this would to have a minimum and maximum storage level set for each store, so if one store is getting overstocked with an item, but others are understocked, imps would automatically start transporting that item from the overstocked store to the understocked ones, such as would be the case with the above example of the foundry, mining area and armory. This way you could keep items distributed to wherever they're needed and if all stores are at or above capacity with a particular item, the excess could be dumped. So this way, if you're getting too much wood, for example, you could have the excess disposed of so you're stores don't all get clogged up with an unneeded item.
(17-12-2013, 11:36 AM)Seriously Unserious Wrote: You would also need to have some imps assigned to redistributing items to the store rooms that need them otherwise you could end up, for example, with a store room that supplies a foundry overstocked...

The simplest way to handle this would to have a minimum and maximum storage level set for each store, so if one store is getting overstocked with an item, but others are understocked, imps would automatically start transporting that item from the overstocked store to the understocked ones...

This is a great idea for store room management. It's very similar to a mechanic in Cultures where you can assign 'Merchants' to two warehouses, and on the warehouse window, you can specify a minimum and maximum quantity per resource. If a resource is needed and available from the other warehouse, they will go get it and stock the item where it is needed.
MT, I've noticed that you've referenced Cultures several times, and it sounds like a game I'd be interested in. I love resource management type games, management sims and such.

Anyhow, I'm looking forward to seeing how the game plays with the upgrades Rasmus mentioned earlier in this thread.
Yeah, it's a pretty fun game that I stumbled across back in college. I still break it out and play from time to time. It's one of those games you can play while doing chores around the house.
Sounds great, I'll have to check it out

Forum Jump:

Users browsing this thread: 1 Guest(s)