johnkeale

[WIP] Kerbal Stories and Shouts (KerbalSNS) - Giving more personality to your Kerbals through random events

Recommended Posts

Check out the UrlDir class and it's associated classes in the API. There's a couple methods there that might be helpful ;)

Share this post


Link to post
Share on other sites

Just a quick update before I sleep! :)

So I've been having so much fun building the shoutouts feed. When I make this situational and based on your reputation, it's gonna be 1000x more awesome! @ensou04's idea was really cool!
Here's a couple of screenshots:

Spoiler

SjtLOA0.png

S2GbkUN.png

And here's how I envision the stories to look like:

Spoiler

ekIWPHe.png

As you can see, it's supposed to mimic a browser. I'm still working on that.

I've actually finished creating a github repo. It can be found here. I have not chosen any license yet though, I'd like to have more time to decide on that.

Lastly is the first post on this thread. I'll be honest, I had too much fun coding so I haven't gotten around to doing it properly yet. I would like to consolidate information properly on the first post, as well as compile a TODO list or roadmap. But I promise I'll do it soon.

Cheers~

Share this post


Link to post
Share on other sites

Having something like this tie in to the reputation mechanic is such a good idea! And nice job on all your progress!

Share this post


Link to post
Share on other sites

@johnkeale Maybe it can force you to change crew on space stations. Let's say you have a space station called station A with Jeb, Bill, and Bob.

Jebediah Kerman, Station A, 3:33, Y1,D300
"Get me out of here!"
Jebediah Kerman, Station A, 3:33, Y1,D301
"Please, get me out of here! I want to go home!"

Then, if you don't take him back home and change the crew, they will do thins, such as turn off the communications, blow things up, etc.

Share this post


Link to post
Share on other sites

That would probably require integration with other mods dedicated to that sort of thing, I think @johnkeale is going for more of a storytelling effect rather than trying to force players to do things. 

Share this post


Link to post
Share on other sites

@Krakatoa Thanks. That wasn't solely my idea though. We also have ensou04 to thank for that :)

@Bottle Rocketeer 500 I'm actually planning on having interconnected stories. For example:

Quote

Story
Mission control reports that it is starting to notice subtle drops in the productivity of Bill and Bob above the station.

Shoutout
Bill Kerman @B122 12 minutes ago
Ugh so much work to do, so little time. I'm falling behind my game queue on Smoke and FFLXV will be coming out soon! #KerbonautsAreNotWorkhorses #sotiredtogame

Bob Kerman @bob_kerman002 15 minutes ago
It feels so lonely up here. And can you really call algae snacks? Bleh. 

Then the messages/shoutouts gradually get more demanding. Something like:

Quote

Shoutout
Bill Kerman @B122 7 minutes ago
Found out I can turn the comms off by pressing the big red button. Aren't buttons supposed to be pressed? :P #feelingnaughty

Quote

Shoutout
Bill Kerman @B122 3 minutes ago
Lolz turned the comms off but we still have wifi #mysteriesOfTheUniverse

Quote

Story
Mission control reports that it Bill and Bob turned the comms dish of the station and refuses to work. After giving them more day offs, they got back to work and their productivity increased. 

But that's it. The issue will be resolved in the background. As @Benjamin Kerman says, my vision is to just have some storytelling effect. 

Though I do admit it is a good idea. For example, IIRC, USI-LS has the same sort of feature, if the hab time/space (i'm not sure what's the correct term) is not enough for the crew, they'll turn into tourists and you, the player will not be able to control the ship. I thought that I could create some sort of interface that USI-LS can call, so that it can post some stories/shoutouts before the crew can turn into tourists. 

But yeah, that'll be further down the road. I added it in my TODO list just in case.

So yeah, I finally had the time to update the first post, but I felt that the write-up is still lacking, particularly the part about Shoutouts. I will probably be updating it again. I will also update the screenshots with the latest version when I get home.

Share this post


Link to post
Share on other sites
7 hours ago, johnkeale said:

I do admit it is a good idea. For example, IIRC, USI-LS has the same sort of feature, if the hab time/space (i'm not sure what's the correct term) is not enough for the crew, they'll turn into tourists and you, the player will not be able to control the ship. I thought that I could create some sort of interface that USI-LS can call, so that it can post some stories/shoutouts before the crew can turn into tourists. 

 But yeah, that'll be further down the road. I added it in my TODO list just in case.

Snacks! can also do this.

Share this post


Link to post
Share on other sites
On 12/6/2018 at 10:36 PM, theonegalen said:

Snacks! can also do this.

:O Really? I probably have it turned off since I use Snacks!, but I play in super easy mode so I might have turned it off.

Share this post


Link to post
Share on other sites

Oh. I wasn't able to catch that haha. Hmm maybe I should increase the priority of this todo? I always love it when the mods are compatible and sync well with each other, and making this mod compatible will really be awesome. I'll think about it.

Anyway, here's a quick update. Some of the shouts are now based on your reputation level. I made it so that 60% of the shouts on the feed pertain to your rep level, while the remaining 40% are just random shouts. The 60-40 ratio is chosen arbitrarily, and I'm thinking of making this a setting, though making it one would make it seem that there might be too many configurable settings. I'm also thinking of having outlier rep level shouts that don't correspond to your current level. For example, if you have a very high reputation, there will still be 1 or 2 shouts that are as if you have low reputation, or vice versa. Something like:

Quote

Midgar Kerman @Midgar_Kerman2296 2 minutes ago (very high rep)
It's always amazes me what KSC can do with the funds it receives. Makes you wonder what they can do if they have more right?

... more very high rep shouts ...

Kernard Kerman @K3rnardK3rman 36 minutes ago (low rep)
So, when will KSC's next fireworks event take place? LOL :P

Aside from adding more shouts and stories, this is I'm planning on making stories and shouts situational, as well as adding a 'required milestone' to them. 

If the player has already achieved some milestone in the past, some shouts will be about that milestone, and the Kerbals will be talking about it in shouts postively/negatively depending on your reputation. For example, if the player has already landed on Gilly before, some of the shouts will be:

Quote

(negative/low rep)
What was the point of landing of landing on Gilly in the first place? What a waste of funds.

Maybe we could step it up and have a milestone achieved, and another not yet achieved. For example, if the player has landed on Gilly but not yet on Eve,

Quote

(positive/high rep)
That landing on Gilly was phenomenal! Landing on Eve is now just a matter of time!

Situational shouts will work just like Chatterer. IIRC in Chatterrer, chatters get activated once you cross an SOI, or achieved an orbit and the like. I'm thinking of adding shouts that work like that as well. For example, you have a probe that has just entered Eeloo SOI, depending on your reputation, Kerbals will talk about it positively or negatively. And I'm thinking of having this happen instantly. i.e. just before crossing the SOI, the feed will be normal, but after crossing, there will be a lot of shouts talking about the crossing. What do you guys think?

Man, @ensou04's idea is just too awesome, I really like it. If you have any opinions about the things I'm thinking of going forward, please do let me know. I'm also thinking of developing the stories alongside shouts. If some aspects are also applicable to stories, I'm planning on adding them as well.

Oh yeah, I'm still asking for suggestions for shouts and stories. This is the part that I'm not really confident because I don't use social media that much and I'm not really a creative writer. I'll be sure to add you in the credits if you suggest one, and as the author of that certain story/shout. 

Thanks and cheers!

Share this post


Link to post
Share on other sites

It all just keeps getting better and better! I can't wait to integrate this into my next go around in the game!

As for Snacks!, it can make your kerbals into tourists or even kill them, depending on the settings. I don't know if you've played with Kerbal Health at all, but it has great integration of things like loneliness and radiation that might be good triggers for stories and shouts.

https://forum.kerbalspaceprogram.com/index.php?/topic/155313-15x-kerbal-health-133-2018-11-29/

Share this post


Link to post
Share on other sites
59 minutes ago, johnkeale said:

The 60-40 ratio is chosen arbitrarily, and I'm thinking of making this a setting, though making it one would make it seem that there might be too many configurable settings

It's impossible to be too configurable. The worst that can happen is everyone leaves at default. Just look at Angel-125's stuff, especially BARIS.

Edited by DeltaDizzy

Share this post


Link to post
Share on other sites

@theonegalen Thanks! I hope I can release before your next playthrough :) 

I haven't played with Kerbal Health, but yeah, maybe the Kerbals can post shouts when they don't feel well. Once I finalize(or simplify) the properties of shouts and stories, I'll work on mod-compatibility next.

On 12/10/2018 at 2:26 PM, DeltaDizzy said:

It's impossible to be too configurable. The worst that can happen is everyone leaves at default. Just look at Angel-125's stuff, especially BARIS.

Oh yeah, I guess you're right. I'll make it configurable then. It's also useful when debugging :) 

Share this post


Link to post
Share on other sites

This looks like a nice way to add flavor text into the game! I could see kerbals developing personalities that are expressed through the shouts and stories. Just imagine if two kerbals don’t get along and have a flame war... “I’m a better pilot!” “I crash better than you” and so on.

Snacks does have a poorly documented event  system that you can tap into that might be of use. It will tell you, for instance, when snacks are consumed. You could easily tap into that and have kerbals comment on the cuisine. Maybe they hate the latest meal, and your reputation drops..

All of these are beyond the scope of BARIS’ event card system, which mostly focus on part failures, changes to science, reputation, and funds, as well as changes to the astronaut corps... basically events at the space center level, not the personal level.

Anyway, love the concept! :)

Edited by Angel-125

Share this post


Link to post
Share on other sites

Thanks @Kosmonaut! :)

Hey @Angel-125! Thanks for dropping by. 

Yes, they are flavor text! That's the word I'm looking for that best describes what I'm aiming for. I aim for the Kerbals to develop personalities via the shouts and stories as the player progresses through the game. That's why I'm thinking of making the stories interconnected. I'm constantly contemplating on how I can make some stories interconnected, as well as maybe have some shouts interconnected too, and have the shouts and stories interconnected to be able to build a narrative. But this one sounds a little too complex, so I'm just putting it as a todo for now.

16 hours ago, Angel-125 said:

Snacks does have a poorly documented event  system that you can tap into that might be of use. It will tell you, for instance, when snacks are consumed. You could easily tap into that and have kerbals comment on the cuisine. Maybe they hate the latest meal, and your reputation drops..

I'll look into this once I reach that part during the development. It'll be really fun to see the crew's reaction to their Snacks/Supplies/Food, especially since I made it so that your current crew can also shout random nonsense on the shout feed.

16 hours ago, Angel-125 said:

Anyway, love the concept! :)

Thanks! Really appreciate it!

Just some some quick update: 

I made the rep-related shout percentage configurable on the settings. So the user can actually zero it out which means that there will never be rep-related shout on the feed. I also added outlier rep level shouts, since you know, you can't please everyone. Just 1 or 2 shouts that don't correspond to your current reputation level will appear on the feed. Another thing I added to the shouts is a 'progress requirement'. (Will be implemented on stories next)

One of the things I find hard when making shouts is making them generic, i.e. applicable to any situation. IRL, stories happen around something, people tweet about something, not just something generic. So I thought about adding a progress requirement to the shout/story so that it can talk about such progress. For example, if there is a baseShout like:

Quote

progressReqt = MunReturnFromSurface, MinmusLanded, !MinmusReturnFromSurface
text = We were able to return from the surface of the Mun. We have accomplished Minmus landing. All that's left is to return from Minmus back to Kerbin. We're counting on you #KSC!

In the example above, the progress requirement specifies that the player should have returned a vessel from the Mun surface, landed on Minmus, but have not yet returned a vessel from the Minmus surface. With this requirements in the place, the shout won't feel out of place when it shows up on the feed.

On the technical side, the progress requirement keywords will come from the ProgressTracking.Instance.GenerateSummary part of the API. I plan to create a wiki about creating shouts and stories once their properties start to become more solid. Anyway, this recent development to the shouts still need more testing. 

After this, I plan on making the shouts and stories situational next. What I mean is that, I will check the current situation of the vessel and the crew/netizens will shout about it or stories will be based around it. e.g. A base on Minmus will also have Minmus related stories, etc. Then there is also that other feature where stories/shouts will happen once an event happens to the player. e.g. A probe arrives at Eeloo. It is perfectly normal for the KerbShout feed to be filled with shouts, that maybe congratulate you for a job well done or ridicule you for something so pointless. It depends on your reputation! :)

 

Share this post


Link to post
Share on other sites

Just some quick update:

I've been updating the todos on the first post when I've finished implementing something. First, I was able to add a progress requirement to the stories and shouts as I have described in my previous post. I also changed the way the base stories and shouts are loaded. Previously, they were loaded from a fixed file, but now they are loaded from anywhere under the GameData folder, as long as they have the right root node name. Thanks to @Benjamin Kerman for putting me into the right direction :)

Lastly, I was able to add vessel type and vessel situation requirement to the Stories. At first, I limited the stories to space stations and bases, but I thought stories could happen to other vessel types too. For example, if you have a ship heading for Jool, a random story could happen there and it would be really fun to get notified about it. So I removed the fixed vessel type limitation, but I added it as a property of the story so that the story can specify it. Now stories can specify if, for example they are about a Station orbiting Vall, or a Ship splashed on Laythe or landed on Dres.

Next up would be implementing the same to shouts, and implementing that Chatterer-like behavior to shouts. I also thought that it would be really cool if shouts could talk about your vessel, or your crew, so I'm thinking of making that too.

That's all for now. Cheers!

Edit:

Quick question:

Do you think it makes sense for Kerbals to randomly post shouts while they are doing something? I've been browsing the GameEvents class, and it turns out that there are many callbacks for different kinds of events. For example, there is a callback to planting a flag, to going on an eva, even to just repairing a wheel. I thought it would be fun if the Kerbal that did the act would shout about it (randomly, i.e. sometimes they wont shout, or based on how stupid/courageous they are)

What do you think?

Edited by johnkeale
added quick question

Share this post


Link to post
Share on other sites

Yeah I think that'd be cool, but you might want to check if the Kerbals are in radio range… (unless they have phones with quantum tunneling now :o)

Glad you figured out the loading!

Share this post


Link to post
Share on other sites
20 hours ago, johnkeale said:

Do you think it makes sense for Kerbals to randomly post shouts while they are doing something? I've been browsing the GameEvents class, and it turns out that there are many callbacks for different kinds of events. For example, there is a callback to planting a flag, to going on an eva, even to just repairing a wheel. I thought it would be fun if the Kerbal that did the act would shout about it (randomly, i.e. sometimes they wont shout, or based on how stupid/courageous they are)

Maybe once they get back in the ship, or at least not immediately.

Share this post


Link to post
Share on other sites
8 hours ago, Benjamin Kerman said:

Yeah I think that'd be cool, but you might want to check if the Kerbals are in radio range… (unless they have phones with quantum tunneling now :o)

8 hours ago, DeltaDizzy said:

Maybe once they get back in the ship, or at least not immediately.

Hmm maybe I could make it so that they'll post a shout the moment they go on an EVA, so that it would seem like they posted it inside the vessel, right before leaving the airlock. I'm thinking that maybe I could 'remember' anything they do on EVA, then post a shout once they board a vessel (whether the same vessel or not) as @DeltaDizzy suggests. Seems kind of difficult but I'll see what's possible and what's not.

I found the quantum tunneling phone kind of funny, I'll probably create a shout along the same lines :)

8 hours ago, Benjamin Kerman said:

 Glad you figured out the loading!

Thanks! It seemed difficult at first but it turned out to be relatively easy after I discovered the AllConfigs method.

 

Share this post


Link to post
Share on other sites

This is a fun idea. I have a somewhat similar feature (random events) in Kerbal Health, but they are all naturally based around health-related stuff. Still, it can be easily expanded with MM patches and utilized for almost anything.

Share this post


Link to post
Share on other sites

Hey guys! Sorry for the inactivity, I took some break from coding during the holidays, but I'm now back! :)

I'm currently focusing on implementing the mechanism for situation-triggered shouts. This might take some time though.

On 1/5/2019 at 3:45 PM, garwel said:

This is a fun idea. I have a somewhat similar feature (random events) in Kerbal Health, but they are all naturally based around health-related stuff. Still, it can be easily expanded with MM patches and utilized for almost anything.

Thanks! I really hope I can cross this mod with all the other mods out there. It would be really fun if, for example in Kerbal Health, if a Kerbonaut has fully recuperated in KSC, they'll shout something that relates to this, or if a Kerbal becomes sick, they'll shout about it too. 

Btw, if anyone have a story or shout they want to suggest, don't hesitate to tell me here. :)

Cheers~ :D

Share this post


Link to post
Share on other sites

Hi guys! Just to let you know, I'm still working on this mod. :)

As I mentioned in my previous posts, I'm currently working on implementing situation-triggered shouts. Unfortunately, it's taking longer than I thought. Anyway, I'm actually planning on treating this feature as the final feature for something like a 0.0.1 version, a baseline. When finished, I'm thinking of releasing it as an alpha version. 

With this alpha version, I'm thinking of asking for help with testing. I'm pretty sure there are a number of bugs, as I've come across a few while testing myself. What is the policy of the community regarding this? Are there things I need to do before I start asking for some help?

jQTeec8.jpg

Is it also possible to ask for help regarding the 'logo' of KerbShouts? It's currently just a placeholder image from the "Flags" directory of Squad, but I think it would be better if it were a unique logo. 

I would also like to ask for opinions regarding the 'profile pictures' in the shouts. I'm thinking that it would be cool if it is different per Kerbal, just like in a real twitter feed, but generating many 'profile pictures' seems to be difficult.

Share this post


Link to post
Share on other sites

@johnkeale As far as I've seen, the best way to go about it is to ask people to make full bug reports as depicted in the "How to get support" thread. You can use the forum or github's built-in issue tracker. (many popular mods, such as Near Future and Wild Blue Industries use github)

Share this post


Link to post
Share on other sites
This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.