pioneerspacesim / pioneer

A game of lonely space adventure
https://pioneerspacesim.net
1.64k stars 380 forks source link

Nethack style #conduct (also has implications for reputation) #663

Closed johnbartholomew closed 4 years ago

johnbartholomew commented 13 years ago

This is a long term design/feature request. Mentioned on IRC a couple of times (logs below).

NetHack's #conduct is a set of challenges that you can attempt while playing. These are things like "You have been a pacifist." They're not active (you don't go into a menu anywhere and pick a challenge to try), and they're not binding (just because you've been a pacifist in the game so far doesn't in any way prevent you from attacking a monster now). The game just keeps track of various events and statistics about the player's actions.

I'd like to see this idea in Pioneer. The game should keep track of lots of statistics about what the player does (stats are usually pretty cheap to keep, so we should just track whatever stats we can think of), and then we can have achievements and conduct. Some examples of possible Pioneer conduct and achievements:

Keeping stats on player actions has other possible uses as well, in particular it can be used in a reputation system. If you never (or only rarely) run away from a fight you might get a reputation as being tough or violent. If you reliably make profits on trading runs you might get a reputation as being a good trader. If you always make deliveries quickly you might get a reputation that allows you to get more lucrative delivery contracts.

Oct 13
<jpabx> re: nethack. I want Pioneer to keep a lot of stats on player actions to get a nethack style #conduct list
<jpabx> (never used autopilot; never used set-speed; won all battles; never landed on a planet; never docked in a space station; only used main thruster; never used external view; made a profit on every journey; etc)
<s20dan> "distance traveled" :)
<kko_> "never used time acceleration"
<Ae_1> lol
<matthewfarmery> would take forever to get anyway without time acceleration, 
<Ae_1> that was the joke:)
<matthewfarmery> I know
<matthewfarmery> leave your computer on for a year, and it might just get somewhere
<Ae_1> 'million virtual years'

Oct 14
<jpab> I want Pioneer #conduct though, as I've said before
<Brianetta> jpab: That's worth an issue
<Brianetta> Might be able to code that in Lua already
<jpab> well it's almost entirely stat tracking -- most of those stats will have to be exposed through the core I imagine
<Brianetta> although conduct() will by necessity never show "never used console"
<jpab> actually stat tracking of the sort I'm thinking of might be a good way of doing reputation too
<Brianetta> jpab: If we merge that with my musings on a GURPS-style character sheet, we're set up for everything like that
<Brianetta> self-quote from earlier: "Roll under your charisma to get that deal"
<_robn> This matches well with modifier-based equipment
<Brianetta> with a character sheet for each crew member (or applicant)
<Brianetta> Player can't see the actual sheet
<Brianetta> but it will influence the answers inteh BBS ad
<_robn> Yay, engine mod / crew with +10% hyperspace range
robn commented 13 years ago

The existing combat rating can be moved into this framework once we have it.

Brianetta commented 13 years ago

First stab.

https://github.com/Brianetta/pioneer/blob/characters/data/libs/Characters.lua

Intended as a general character sheet. All NPC sheets can be enumerated with regular table traversers. The player's own sheet is also kept, and might well be used differently.

johnbartholomew commented 13 years ago

While the character sheet stuff is good and worthwhile in its own right, I'd like to clarify that that is not what I meant by "stats" in my explanation above. I meant actual statistics of specific player actions. For example:

We may not need to track every one of the above. Some of them can't be (or are excessively tricky to) track perfectly, but that's probably ok.

Brianetta commented 13 years ago

Yeah, there's a killcount member in there... and there could be others, once methods to update them (or retrieve them on demand) are made available.

All other per-mission stats can be recoded in the character sheet by that mission. We can track ship usage, and dock counts, already - it's no trouble to write a module to record those.

PinBlacniP commented 13 years ago

As an example in Privateer, I always liked the ships killed of type, and accuracy with various weapons stats. ...

dasbootbee commented 12 years ago

I love the idea of Xbox style achievements in Pioneer.

One Small Step - Perform a manual landing Into The Abyss - Get to the center of the galaxy Millionaire - get a million dollars Elite - get an elite combat rating

etc.

Web-eWorks commented 4 years ago

Closing as unimplemented and inactive; feature requests and discussion should go on the forum, as we use Github for tracking actively-developed features and issues with currently-implemented functionality.

Thank you @johnbartholomew for all the lovely feature requests; we're cleaning house right now, but we'd love it if you could re-open some of these on the forum for further discussion!