Show achievements after a full gameplay?

Happy New Year!

I was thinking, is it possible to change the “visible” part of the *achievement code during the game? Or at all? Like, maybe not just after you finish an ending (since while I do want people to be able to see what they can get for an ending I also think it would be a nice incentive to replay to see all of the brand-new achievements) but there’s also achievements given for… well, let’s say, successfully romancing someone. Could I show there’s an achievement for that just after introducing the character to the story? Or better yet, after the character begins a romance-y path with them? I understand it wouldn’t show with the “You gained an achievement” little interface at the bottom but it may be a nice touch, no?

No to my knowledge unless someone knows a hack to change a hidden achievement to an unhidden one part way through the game.

The only otherwise I could think of would be pretty clunky and would be something like making the romance achievement permanently hidden until activated, then having a different achievement on meeting a character that flags they’re a RO.

e.g.;
Unactivated achievement description: Meet Suzie.
Activated achievement: Met Suzie a romanceable character. or Met Suzie, do you want to ask her out on a date?

Hidden achievement description: Went on a date with Suzie.

Personally I wouldn’t bother as you can usually flag RO’s in the text fairly obviously if you want to without achievements, but unless anyone has any other bright ideas, that’s the only way I could think of to do it if you really wanted to.

3 Likes

Just put the text, “this char is romancable, duh,” somewhere, and then make all your achievements’ descriptor vague enough.

I believe this mechanic would backfire on you.

Part of today’s reality in Choice Script game development is that the audience is demanding to know possible relationships upfront and center.

The number of people asking who is and isn’t a RO has increased to the point that the official CoG stance is to list them in the game’s advert blurb.

Trying to hide information of this nature ends up hurting more than it helps – consumers are valuing certainty and informed gameplay to the point that it impacts sales and satisfaction.

1 Like

It all depends on the platform.

On steam, you can’t. Steam is very upfront about showing everything front and center.

For the other platforms you can hide achievements to the end. I did it in Fallen Hero: Rebirth, since I hated the way an achievement pops up, it just pulled me right out of the story.

What I did in Fallen Hero: Rebirth was to have a choice at the start that would allow you to either have achievements as they come, or turn them off to show them all at the end.

*create a_on false
*create a_off false
*fake_choice
  #I want my achievements to activate when I earn them, so I can keep track of them in the achievement panel.
      *set a_on true
  #I want to keep a sense of mystery and keep my achievements hidden until the end of the game.
      *set a_off true

Then for each achievement I created a variable to go with it. For example, here is an achievement:

*achievement plot2 visible 10 Ripples on the Water
  Drop a pebble in a pond.
  You changed a man's career with your meddling.

I then created a variable for that with the same name:

*create plot2 false

Then once you got to the point where you would get that variable I had the code:

  *if a_on
    *achieve plot2
  *if a_off
    *set plot2 true

So if you choose to save your achievements to the end, you had no sign that you had just got an achievement, but if you did, you would see it pop up.

And then at the end, after the epilogues I had:

*if plot2
  *achieve plot2

So then, after the epilogue, that achievement would pop for the people who choose delayed gratification.

But, as I said, it doesn’t work on Steam, since Steam has it’s own achievement system too. On the other hand, that means that you can go on steam and see what achievements your players have got, and how many got them, and use it to track all neat kinds of stuff.

8 Likes

I never considered the platform may not allow me to do it. That’s a whole another problem! And well, knowing there’s a work-around as to showing achievements is good enough at the moment. I would’ve kept asking just for the heck of it, probably (since there has to be a way to do that) so thank you lots. I’m sorry you had issues with your game, tho.

(And thank you too, everyone who answered!)

Can I ask why you created both the a_on and a_off variables? It seems from the code that you’ve excerpted that a check against (a_on = false) would have worked just as well. Is there a third option I’m not seeing?

It was just easier for me at the time in my head. Could jus as easily done not(a_on) but that’s more letters to type for something that comes up often.

2 Likes

Could also do *else

3 Likes

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.