Return to “General”

Post

Re: What about civilians?

#32
Well, I agree inflation needs to be controlled. There should be a limit on how much or fast planets create credits.

Also, if AI perma death is possible, then it's also possible credits could be lost over time and need to be recovered.
Just depends on how you handle deaths. I think Mr. Parnell probably has a handle on it already, to be honest.
Zanteogo wrote:
Talvieno wrote: Simple, if you're using the system I put down here... Just scale it so that civilian traffic raises planet/station happiness faster, and scale the ship-per-resource count accordingly.
So... how does this get around the system cap on number of ships? Sorry, I don't understand. (but want too!)
Oh, that's what you're asking. Well, there's no surefire way around it, but remember, civilian AI would be so simple that you could potentially have four to five times as many civilians as workers in a system (i.e. a system full of 2000 civilians compared to a system full of 500 workers). Tacking forty or so civilians onto a system might be just about the same as 10 or so workers (VERY arbitrary numbers here, by the way). The point I'm trying to make is, civilians don't need the higher-level AI that NPCs and workers do. If you don't mind losing 10 fighters, that's maybe 50 more civilian ships running around, which would be far more than enough to simulate everything I mentioned. If you scale it like I said, too, that'll bump it down to maybe only a dozen or so civilian ships. I don't honestly think Mr. Parnell put in a hard cap on anything, though. I think it's just him testing to see how many ships he could squeeze in.
Have a question? Send me a PM! || I have a Patreon page up for REKT now! || People talking in IRC over the past two hours: Image
Image
Image
Post

Re: What about civilians?

#33
Talvieno wrote: Oh, that's what you're asking. Well, there's no surefire way around it, but remember, civilian AI would be so simple that you could potentially have four to five times as many civilians as workers in a system (i.e. a system full of 2000 civilians compared to a system full of 500 workers). Tacking forty or so civilians onto a system might be just about the same as 10 or so workers (VERY arbitrary numbers here, by the way). The point I'm trying to make is, civilians don't need the higher-level AI that NPCs and workers do. If you don't mind losing 10 fighters, that's maybe 50 more civilian ships running around, which would be far more than enough to simulate everything I mentioned. If you scale it like I said, too, that'll bump it down to maybe only a dozen or so civilian ships. I don't honestly think Mr. Parnell put in a hard cap on anything, though. I think it's just him testing to see how many ships he could squeeze in.
He was quite clear that he was aiming for 200 ships, and it can be implied from his dev post the most ships a system can have is 256. (See Dev Saturday, May 3, 2014)

256 is a magic number in computing and it may be a set cap.

My point is civilian ships may be awesome if done right, but if we are working on a capped system, where eating away at something else. (which there has to be, even the fastest computer and more well written program has to have a limit)

edit: It's possible where up to 512 ships now? Lets hope!
My Signature
Post

Re: What about civilians?

#34
I think you missed a bit. :P Let me fetch it.

viewtopic.php?f=12&t=2876#p47111
Mr. Parnell wrote:Current Optimization Status: 256+ ships in one system running smoothly (60 fps in calm moments, 30 fps in full-out, system-wide battle).

Next Challenge: enable full rigid body collision... :shifty:

Bonus Points: 512+ running smoothly..
He's said elsewhere that he'll be okay with 512+ running in a system, too.

As to your point, yeah, civilian ships will take away from the rest of the system somewhat. It's that or no civilian ships. You can't have something without paying for it. Civilian ships simply won't take the same CPU resources that regular workers and NPCs will.
Last edited by Talvieno on Fri May 30, 2014 8:43 pm, edited 1 time in total.
Have a question? Send me a PM! || I have a Patreon page up for REKT now! || People talking in IRC over the past two hours: Image
Image
Image
Post

Re: What about civilians?

#36
I think there are two kinds of civilian assets being talked about here, or if not, they should be split into two.

First are civilian persons. It is my opinion that these should be treated as a kind of cargo in specialized cargo-holds called accommodations or passenger quarters, etc. They should pop into existence in planetary colonies (or stations if stations will have residential populations) in numbers that are some fraction of the resident population. They are not goods for sale, but are mission tokens that otherwise have no monetary value - but will piss off their origin point if you hurt them, or less so if you let them come to harm. Missions can be issued by their point of origin to do some task with the civilians on board - either deliver X civilians to Y and I will give you Z credits, or "While my civilians are on board your ship, I will give you X credits per minute, max Y hours, Z credits per minute if you are in proximity of P,Q,R,S,T, and U, max N minutes each, you will be paid upon their safe return". The first is a simple asset transfer between population centers, possibly with one colony buying population from another, and fulfilled by an intermediary; the second would depend on a happiness mechanic, and would be a way of replenishing it.

Second are civilian ships. Here, I think haulers as I have described will suffice. In the April 27th and May 3rd Devlogs, Josh pointed out that a very significant portion of the performance goes to graphics (lighting) and internal logic, As such I don't think we want very complicated ships. As I said, haulers are just materials and workers made manifest in ship form by a hauler terminal, their existence is short, slow, simple, and stupid. Perhaps they could even lack thrusters altogether and travel via handwavium or have very low priority sorted lighting. Given that civilians are generally pretty terrified of violence and existential threats, they can just run away at the first sign of violence, either darting back to their origin, or completing their delivery (whichever is in the opposite direction of the violence), and if the violence is really bad, the terminal could stop spawning haulers until the situation is resolved. I think this would add enough life to a given system, adding hundreds if not thousands of ships to a system, while clearing it up when you want to stage your epic battle there.
Image
Challenging your assumptions is good for your health, good for your business, and good for your future. Stay skeptical but never undervalue the importance of a new and unfamiliar perspective.
Imagination Fertilizer
Beauty may not save the world, but it's the only thing that can
Post

Re: What about civilians?

#37
Civilian transport that is not the typical Guns & Butter Express can definitely have an effect on ships, stations, or outposts.

Delivering the mail is important and has always had more importance in military supply then most would expect.
Luxury goods need to get delivered to stores, a group of exotic dancers needs to get to their workplace or continue their tour.
Soldiers have leave and visit their families back home. You don't send a shuttle when you can just book a cheaper civilian flight.
Reinforcements and replacements need to get around, too.
Last but not least, defending civilians from invaders or pirates is a big chunk of why a navy exists. Seeing the bustling civilian traffic means a job well done and reminds the soldiers of why they are doing this.


What could that mean in game terms?
IMO it's an issue of morale.
In detail that requires serious bookkeeping but in the abstract, it's one value per ship or station.
And civilian traffic - whether it docks or merely passes by - increases it.

How that would figure into the AI I dunno.
There is no "I" in Tea. That would be gross.
Post

Re: What about civilians?

#39
Mainly it wouldn't be as artificial as
"Build a Bar & Grill Module on a space station for +12 morale"
That's just your generic min-maxing mechanic.

Morale of "fighting" troops can be high while in action but it won't stay that way if garrisoned on some forgotten outpost and / or generally doing nothing.
Keeping the troops closer to home helps and barring that... bringing home closer to the troops.

A space station which attracts a lot of civilian traffic for whatever reason might be argued to have an interesting night-life (for value of night) so this space station - military purpose or not - acts as a conduit for the morale bonus.
Granted, that's still a +12 morale bonus but you can see it being generated so it's "real". It's all about the show you out on. =)

I don't know enough about the AI to make a guess at how it could be an influence.
There is no "I" in Tea. That would be gross.
Post

Re: What about civilians?

#40
Hyperion wrote: Second are civilian ships. Here, I think haulers as I have described will suffice. In the April 27th and May 3rd Devlogs, Josh pointed out that a very significant portion of the performance goes to graphics (lighting) and internal logic, As such I don't think we want very complicated ships. As I said, haulers are just materials and workers made manifest in ship form by a hauler terminal, their existence is short, slow, simple, and stupid. Perhaps they could even lack thrusters altogether and travel via handwavium or have very low priority sorted lighting. Given that civilians are generally pretty terrified of violence and existential threats, they can just run away at the first sign of violence, either darting back to their origin, or completing their delivery (whichever is in the opposite direction of the violence), and if the violence is really bad, the terminal could stop spawning haulers until the situation is resolved. I think this would add enough life to a given system, adding hundreds if not thousands of ships to a system, while clearing it up when you want to stage your epic battle there.
Neither lighting nor internal logic are the bottlenecks.
Lighting was solved on may 3rd and internal logic wasnt even mentioned.

Collision detection is the bottleneck.
And this bottleneck is independent from ship geometry complexity (most of the time) and also independent from the AI complexity running said ship.

More civilians mean less "slots" free for action making ships.

The slow, dumb existence of your haulers does not make any difference here.
They could as well be full worker AI's with simple tasks
Post

Re: What about civilians?

#41
Gazz wrote:[...]
That's a lot of brilliant stuff right there... Not sure if you've noticed my post on the first page or not:
viewtopic.php?f=2&t=3047#p51520
Talvieno wrote:Hmmm... I love this idea, and I think it could be implemented very simply. Very, very simply - and even better, it would hardly subtract from the frame rate. Even better than that, it would have an actual effect on the universe, and introduce some new, if minor, gameplay mechanics. It would help the universe evolve. Best of all, it wouldn't be very difficult for our already overworked Mr. Parnell to implement, when he gets to that point.


Mechanics outline
As a planet's population increases, it demands more materials, but what happens to these materials? Right now, nothing. In the currently-planned future: Also nothing. However, if a percentage of these goods are allocated towards building ferry ships, luxury ships, passenger ships, etc., then you have something very real to do with the stuff your planets receive. I suggest that this is how these civilian ships come into being. The size of these ships would be semi-randomly determined and at least partially based on planetary culture and the planet's population. With this, you can have a planet that prefers large ships, a planet that prefers small ships, etc. You also get planets producing larger ships when they have a larger population.

What the ships do:
They transport exactly what it says they do: civilians and consumer goods, from planet to planet. The most interesting thing, I think, will be the passenger ships. Larger planets may also be able to produce "escort ships" that are automatically assigned as evenly as possible, with larger ships receiving better security details. Planetary culture could factor into this as well.

As to the purpose of the ships:
For each station and planet, you also include a value, ValueX. (Name to be determined. It basically represents civilian happiness: luxury, connections to the outside world, visits from family members, etc.) ValueX slowly degrades over time, with the degradation rate increasing based on the size of the population. When ValueX falls below 67%, your station's productivity begins to decline, starting with 100% productivity at 67% and ending at 0% productivity at 0%. (All arbitrary, changeable values). When ValueX falls below 33%, your population begins to leave (at a slow rate, starting slowly at 33% and increasing the rate of disappearance as it approaches 0%).

To balance this out, you give each planet a "faction" of its own - just the planets, though, and not the stations. These factions are controlled by a very basic AI - no goals, no projects, nothing like that. These factions are given the ships that their planet automatically produces.

The civilian ships and their security escorts are automatically routed towards the nearest location that has the lowest ValueX. In other words, the destination is the lowest (-ValueX% + Distance%). When the civilian ship reaches its destination, the ValueX is raised by a pre-set amount, depending on how large the civilian ship is. Then, it repeats the process and sends it to the nearest (-ValueX% + Distance%). You could also include enemy presence in the calculation, so they don't knowingly send ships towards enemy areas. At any rate, this keeps the planets from naturally having their happiness/ValueX fall too far - only a completely isolated planet, or one with its ships under attack, would really be at risk of growing "unhappy".

NOW: ONE FINAL THING:

Not all ships are sent. A small percentage of them (specifically passenger vessels) are stockpiled, with the combined capacity about equal to the planet's population, give or take planetary culture values. The only reason the planet starts sending them is if ValueX falls below 33%, meaning the population is extremely unhappy. The reason for this is that when you start on orbital bombing, making the population unhappy (I'd suggest orbital bombing push it into a "launch all ships" red zone), you get actual civilian ships fleeing for the stars, filled to the brim with real passengers. It's a real sci-fi style planetary evacuation, and it would be amazing to see - and fun for a sadistic player to shoot down - with some slight moral/gameplay implications.



The visual effect of this (besides planetary evacuations) is that you get civilian traffic on trade lanes, with more civilian traffic around larger planets and stations: They have larger populations, and therefore more civilian ships and faster happiness degradation. Civilian traffic will centralize around larger planets, with rare forays into the dark unknown to seek out that asteroid-based space station you've hidden.

The gameplay effect of this (besides planetary evacuations) is that if you destroy a planet's civilian ships, their population drops, and their happiness (ValueX) decreases. As the value decreases, their productivity drops, and if it falls too far, people start leaving. Protecting these ships could actually be a part of an NPC faction's goals. Destroying them could be a goal, too.
I outlined the mechanics for a system that works very near to exactly the way you described it.
Gazz wrote:"Build a Bar & Grill Module on a space station for +12 morale"
This breaks my system, though. You're both decreasing happiness degradation, and increasing the amount of traffic... In my system, these values are either/or. However... I suppose a potential way to get around it is to make building civilian modules scale the Morale value differently... i.e. make it so that it drops quickly near the upper end of the scale, and more slowly towards the lower end. It feels like a cheap workaround, though. Not sure what to think about it

Also, now I really want space stations with neon signs and adverts so I can see this "night life" stuff you speak of. :( Thanks, Gazz.
Cornflakes_91 wrote: Collision detection is the bottleneck.
And this bottleneck is independent from ship geometry complexity (most of the time) and also independent from the AI complexity running said ship.

More civilians mean less "slots" free for action making ships.

The slow, dumb existence of your haulers does not make any difference here.
They could as well be full worker AI's with simple tasks
If collision handling is a bottleneck, you're doing it wrong. Collision detection, if done optimally, should have very little effect on the framerate unless you have large masses of ships in a small space. Moreover, the AI ships ought to be able to avoid collisions by themselves, especially if said collisions severely damage said ships - and this makes collision detection even simpler.

EDIT: Because this has upset some people, let me clarify. This is not directed at Mr. Parnell in any way - he's even said collision handling will be smooth when he optimizes it. It was rather directed at the assumption that collision handling bottlenecks games in general, which is what I assumed was being said, apparently mistakenly.
Last edited by Talvieno on Sat May 31, 2014 9:32 am, edited 1 time in total.
Have a question? Send me a PM! || I have a Patreon page up for REKT now! || People talking in IRC over the past two hours: Image
Image
Image
Post

Re: What about civilians?

#42
Talvieno wrote: If collision handling is a bottleneck, you're doing it wrong. Collision detection, if done optimally, should have very little effect on the framerate unless you have large masses of ships in a small space. Moreover, the AI ships ought to be able to avoid collisions by themselves, especially if said collisions severely damage said ships - and this makes collision detection even simpler.
Im pretty sure josh knows what he is doing.

Before you tell josh that he doesnt know how to program you could maybe provide some productive insights to collision detection.

For example in here
Post

Re: What about civilians?

#43
Cornflakes_91 wrote:
Talvieno wrote: If collision handling is a bottleneck, you're doing it wrong. Collision detection, if done optimally, should have very little effect on the framerate unless you have large masses of ships in a small space. Moreover, the AI ships ought to be able to avoid collisions by themselves, especially if said collisions severely damage said ships - and this makes collision detection even simpler.
Im pretty sure josh knows what he is doing.

Before you tell josh that he doesnt know how to program you could maybe provide some productive insights to collision detection.

For example in here
I wasn't meaning to imply that at all, my apologies. Rather, I was simply trying to get across that collision detection doesn't bottleneck anything when optimized correctly. Graphics are the main bottleneck, really, for most games. I also put a lot of productive insights into collision detection in... let me get the link.
viewtopic.php?f=27&t=2852#p46878 <--- that thread. I'm better with AI than with collisions, but I know it can be done quickly. The thing that really slows it down are the collisions themselves. Limit Theory won't have much of those, so we don't need to worry. Just split space into sectors, have sectors have lists of the ships within, check how close only the ships in those lists are to each other (and only for the sectors near the player), and you've taken a huge chunk out of computation time. Switching sectors could be defined as easily as SectorX = (int)(shipX / 100) - do the same for Y and Z, and any ships within that block are put in the same list. Switching sectors removes the ship from that list and places it in the next one. To be accurate, sectors need to be as large as the max ship size... and then it's all simple math from there on out.

Also, who in their right mind could tell him he doesn't know how to program? :wtf: He's coded an incredible game completely by himself. I think if a company hired him in the future, it'd probably be the best decision they ever made. :D
Have a question? Send me a PM! || I have a Patreon page up for REKT now! || People talking in IRC over the past two hours: Image
Image
Image
Post

Re: What about civilians?

#44
@ Talvieno

An arbitrary "morale" value is simply the most reliable thing that works with civilian ships.
You can have an M&L Plumbing Service but instead of having to model every little poop on a space station it would merely increase morale so even the odd jobs could do something useful without bogging down the game with frivolous mechanics.
Same with crew leave or replacements. Shuffling the actual personnel around is a huge logistical undertaking. I don't want to track that.

A relatively simple twist to that:

Make it 2 values instead of one. Scope and duration.
M&L Plumbing Service boosts morale a little but for a long time. Cooking With Gazz Catering boosts a morale a lot but is short-lived.
I see 2 ways to go about this.
  • Average things out. (Not making up formulas here)
    The longest timer currently in effect remains the longest timer, only the magnitude of the bonus is adjusted by multiple boni.
  • Every bonus is a "DoT". They all stack but the max bonus per time unit is capped.
There is no "I" in Tea. That would be gross.
Post

Re: What about civilians?

#45
What I kinda had in mind when I first posted this, is that in real life, there are people who are just civilians, families, etc who prob have jobs, but as far as the game goes, are not really involved. In other words, they are background actors, they don't take or give missions.

Now you can expand on this and make them more involved, but it isn't required I don't think. Maybe have a few very specific cases where they might be more interactive, but again not really necessary in most cases.

They could move around and migrate behind the scenes in the code for whatever reasons and you could just use a percentage of overall population to generate a given amount of traffic based on it.

So many good ideas in here though. Either way, it's prob going to have to be a tradeoff between the limits of what's possible and what adds value to the game play.
Ask, and it will be given to you; seek, and you will find; knock, and it will be opened to you.

Online Now

Users browsing this forum: No registered users and 29 guests

cron