smcameron / space-nerds-in-space

Multi-player spaceship bridge simulator game. Captain your starship through adventures with your friends. See https://smcameron.github.io/space-nerds-in-space
GNU General Public License v2.0
729 stars 73 forks source link

Money (and police?) system #264

Open MCMic opened 4 years ago

MCMic commented 4 years ago

Hello,

Regarding money in Space Nerds In Space, the game currently lets you go into the negative without any downside, unless I missed it? Reading the code it seems at least buying parts will not be possible if you do not have sufficient funds, so being in the negative will block some things.

One of the thought I had was that we could be targeted by police if we have too much debt, with a wanted system a bit like in GTA. One downside of this is that earning money while being chased is even harder. Maybe we should be able to sell system parts, reducing their total power available by a third?

Trading is not that fun, but bounty hunting could be, sadly the game currently makes bounty hunting quite difficult. If I remember correctly you need to ask each station for current bounties, then find ships and scan them, and search for matching warrants, something like that? So most likely player are using this the other way around, destroying ships, collecting chips and then see if any of them is worth something. It could be fun if there was bounties with some tracking system allowing us to go hunting (It does not make a lot of sense to be able to track people across the galaxy but they do it all the time in the mandalorian so it may be ok?)

Thinking of it, this game is more alike GTA than you would beleive, bounty hunting, taxi missions, scripted missions, rival gangs, the whole thing :-P

Not sure if in SNIS it makes more sense to be chased by some kind of intersideral police or use rival factions and hostility system instead (If you owe money to Schaazbaut, they hate you). On that subject, hostile faction starbase system is weird currently, they let you dock and then tell you you are not welcome, would it make more sense that they refuse docking authorization? (or at least protest before docking)

Sorry this ticket is confused like this, it was supposed to be more focused. I started to look into this because I wanted to fix the non implemented fuel buying menu, then got started on money system…

smcameron commented 4 years ago

Trading is not that fun, but bounty hunting could be, sadly the game currently makes bounty hunting quite difficult. If I remember correctly you need to ask each station for current bounties, then find ships and scan them, and search for matching warrants, something like that? So most likely player are using this the other way around, destroying ships, collecting chips and then see if any of them is worth something.

Yeah, I only imagined it being used in the latter way. I suppose I imagined scanning ships and seeing if there's a bounty on anything nearby, rather than finding a bounty and trying to hunt down the ship. As things stand today, you can ask the computer to point you at any ship -- even one that you can't find on the science station, iirc. Which is a bug. The problem is that science visibility is kind of determined on the client (the client has all the info, just hides some of it, iirc. and it will "forget" things it hasn't scanned recently, etc.). The "computer" is entirely on the server, so it doesn't really have a duplicated set of code to know what each bridge has forgotten/doesn't know. So it can find any ship by name. Kind of a minor bug. So hunting that way is possible, but maybe it's too easy to find the ships. I have not played with the bounty system in a long time, and as you say, it's kind of cumbersome and non-obvious, it is probably easy for users to fail to realize it even exists.

One of the thought I had was that we could be targeted by police if we have too much debt, with a wanted system a bit like in GTA

I think the reason I allowed money to go negative without consequence was that I wanted people to be able to completely ignore the trading aspect of the game if they wanted to because, as you say, "Trading is not that fun...". Or, if they were into it, they could try to build up a bank account for the sake of it. Or maybe the reason was that Star Trek was kind of a post-money society. Or the real reason might or might not have been laziness.

Maybe another tweakable... MONEY_HAS_CONSEQUENCES, or something.

Thinking of it, this game is more alike GTA than you would beleive, bounty hunting, taxi missions, scripted missions, rival gangs, the whole thing :-P

I'll take that as a compliment. :)

Not sure if in SNIS it makes more sense to be chased by some kind of intersideral police or use rival factions and hostility system instead (If you owe money to Schaazbaut, they hate you). On that subject, hostile faction starbase system is weird currently, they let you dock and then tell you you are not welcome, would it make more sense that they refuse docking authorization? (or at least protest before docking)

There is a "docking_by_faction" tweakable variable that will make hostile starbases refuse to permit docking if it is set to 1. Default is 0. The players can currently set their own factions when creating a ship, but I think not at other times. Probably most players have no idea what their own faction is.

That reminds me, the variables have documentation built in, but there's no way to see it (I think) and also now there are so many tweakable variables that the vars command's output is too cumbersome to search with bare eyeballs. Maybe I need to sort the list and/or put in some type of searching ability.

The hostility system is very thin, it is hard for players to even realize it is there. The color of a ship's exhaust indicates the faction. But a player would have to be extremely observant to figure out anything other than that maybe zarkons are assholes. And I don't think I could tell you anything more than that without looking at the code.

MCMic commented 4 years ago

As things stand today, you can ask the computer to point you at any ship -- even one that you can't find on the science station, iirc. Which is a bug. The problem is that science visibility is kind of determined on the client (the client has all the info, just hides some of it, iirc. and it will "forget" things it hasn't scanned recently, etc.). The "computer" is entirely on the server, so it doesn't really have a duplicated set of code to know what each bridge has forgotten/doesn't know. So it can find any ship by name. Kind of a minor bug. So hunting that way is possible, but maybe it's too easy to find the ships. I have not played with the bounty system in a long time, and as you say, it's kind of cumbersome and non-obvious, it is probably easy for users to fail to realize it even exists.

Indeed bounty hunting would work with the cpmputer I guess.

I think the reason I allowed money to go negative without consequence was that I wanted people to be able to completely ignore the trading aspect of the game if they wanted to because, as you say, "Trading is not that fun...". Or, if they were into it, they could try to build up a bank account for the sake of it. Or maybe the reason was that Star Trek was kind of a post-money society. Or the real reason might or might not have been laziness.

Ok, makes sense.

There is a "docking_by_faction" tweakable variable that will make hostile starbases refuse to permit docking if it is set to 1. Default is 0. The players can currently set their own factions when creating a ship, but I think not at other times. Probably most players have no idea what their own faction is.

Interesting.

The hostility system is very thin, it is hard for players to even realize it is there. The color of a ship's exhaust indicates the faction. But a player would have to be extremely observant to figure out anything other than that maybe zarkons are assholes. And I don't think I could tell you anything more than that without looking at the code.

It would help if factions had different ship&starbase models (is that the case? I did not check actually. I did not know about exhaust color.)

Regarding hostility system, instead of the player ship having a faction, I would see something more complex storing hostility of each faction. Technically this could be done easily by giving the player ship its own faction actually, since there is a hostility level for each faction tuple iirc. So, like in GTA you could annoy a faction by shooting a ship/starbase and increase its hostility towards you, and you could lower it by trade, bounty hunting, missions maybe, shooting enemy, protecting starbases.

smcameron commented 4 years ago

I did not know about exhaust color

That was inspired by Star Wars (the original 3). In those three, or at least the first one, the Empire always shot green laser bolts, and the Rebels always shot red laser bolts. If it was good enough for Star Wars, it's good enough for me.

It would help if factions had different ship&starbase models (is that the case?)

It is not the case, and it would help. Esp. if each faction had a "style" for ships, so if you saw a ship type you had never seen before, you could know which faction it was just by looking at it. OTOH, you rarely get close enough to other ships to see them except as dots or very small models, except on science, and science already tells you the faction. So maybe it wouldn't help as much as I think. But it would be neat. Unfortunately almost all the ships are the same style (that I call "OpenSCAD Ugly"). I'm reluctant to put too much work into models myself (because I'm not great at it), and reluctant to include a mishmash of models found on the internet (but not above doing so now and then as you know.) I also don't exactly know where I am in terms of texture budget, how many models can I cram in before thing thing falls over? I don't have any kind of streaming of texture data, it has to load them all at the same time at start-up or at warp-gate crossing. So I'm a bit choosy about adding new models now.

It would also be nice if the ships were a little more different from each other in behavior and what it's like to encounter them. They do have some differences (different top speed, some can warp, some can't, some have missiles, some don't, some have no weapons at all, iirc.) but the differences are swamped by the similarities.

I haven't put much work into factions vs. player hostility because the games tend to be short (playing 2 or 3 scenarios over the course of a couple hours) and transient (there is no real continuity or persistence between scenarios or play sessions, you generally start fresh when you drop your ship into a snis_server) so I am not sure it makes sense to build a complicated system like this that builds up hostility or goodwill with factions over time only to throw it all away at the end of the session. And the ways that the factions can express this hostility or goodwill are limited (attacking, or not). And within a faction (and maybe rather than factions, I think of them as different alien species)... within a faction you're always going to have outliers, maybe pirates that don't adhere to their faction's peaceful norms (I would like to implement NPC pirates that can demand money or cargo from players at some point). Is it the factions that have personalities, or the individuals? It's probably a bit of both, but this muddies things and makes the faction information less useful. At one time I was thinking of procedurally generating captains with various attributes and histories that would be associated with ships that you could look up in the computer (I think artemis has something like this that is used with comms... some captains are easily angered by taunts or some such.)