<div dir="ltr"><div>A rather late reply...<br></div><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 29 Oct 2021 at 03:08, Mike Caron <<a href="mailto:caron.mike@outlook.com" target="_blank">caron.mike@outlook.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">




<div dir="ltr">
<blockquote style="border-color:rgb(200,200,200);border-left:3px solid rgb(200,200,200);padding-left:1ex;margin-left:0.8ex;color:rgb(102,102,102)">
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)"><span style="font-size:14.6667px;background-color:rgb(255,255,255);display:inline">The
 tag_updates function is the place to put hooks for when a tag changes.</span></span><span style="display:inline"><br>
</span></div>
</blockquote>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">I assumed there might be a place like that. Thanks!</span><span><span style="display:inline"><br>
</span></span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)"><br>
</span></div>
<blockquote style="border-color:rgb(200,200,200);border-left:3px solid rgb(200,200,200);padding-left:1ex;margin-left:0.8ex;color:rgb(102,102,102)">
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<span style="font-size:14.6667px;background-color:rgb(255,255,255);display:inline">If achievements are displayed
 through steam, how does this work? You</span><br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<span style="font-size:14.6667px;background-color:rgb(255,255,255);display:inline">can cause Steam to popup
 a progress notification with text of your</span><br style="font-size:14.6667px;background-color:rgb(255,255,255)">
<span style="font-size:14.6667px;background-color:rgb(255,255,255);display:inline">choice? Or does it have
 to be numerical, or predefined in Steam's</span><br style="font-size:14.6667px;background-color:rgb(255,255,255)">
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<span style="font-size:14.6667px;background-color:rgb(255,255,255);display:inline">achievement editor?</span><br>
</div>
</blockquote>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">You can just tell it to display progress whenever you want, I believe. I was thinking that we would just do this whenever "value % interval == 0".</span><span style="display:inline"><br>
</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)"><br>
</span></div>
<blockquote style="border-color:rgb(200,200,200);border-left:3px solid rgb(200,200,200);padding-left:1ex;margin-left:0.8ex;color:rgb(102,102,102)">
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)"><span style="font-size:14.6667px;background-color:rgb(255,255,255);display:inline">What
 about achievements that can be progressed towards in separate</span><br>
<span style="font-size:14.6667px;background-color:rgb(255,255,255);display:inline">saved games? The example
 you put on the wiki of finding all the ways</span><br style="font-size:14.6667px;background-color:rgb(255,255,255)">
<span style="font-size:14.6667px;background-color:rgb(255,255,255);display:inline">to die is one where progress
 needs to be shared rather than</span><br style="font-size:14.6667px;background-color:rgb(255,255,255)">
</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)"><span style="font-size:14.6667px;background-color:rgb(255,255,255);display:inline">save-specific.</span><br>
</span></div>
</blockquote>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">I was envisioning a game where these deaths were not game-over-and-reloading-your-last-save inducing, but I suppose that's not clear. I am not sure
 how we might want to handle cross-save achievements. Part of me wants to not handle it at all and let game creators do that themselves (if or when custom IO is a thing), but it also wouldn't be
<i>Too</i> hard to add it now either. On the third hand, I suspect this is a rather more niche feature, so maybe we can just punt the issue down the road a bit.</span><span><span style="display:inline"><br></span></span></div></div></blockquote><div><br></div><div>Ah. However it seems it would be easy to implement cross-save achievements, as it's just a matter of save/loading to persist.reld instead of the .rsav file, and using latching tags (so the achievement type would be a 3-way choice: normal, latching, cross-save). I think all that's needed is to save the progress when ending a game (meaning, when quitting to the titlescreen or loading a save), in other words in resetgame, and to load it after loading a game, after loading the achievement definitions. (Alternatively could load it when beginning a new game or loading a save, but that's fairly pointless since it shouldn't differ from what's already loaded into memory).<br></div><div><br></div><div>As for saving that progress in Steam user stats so that it is shared between different computers, that seems unnecessary extra work.<br></div><div><br></div><div>I mention this now because Mike just implemented saving/loading to saves in his steam branch on Github.<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><span><span style="display:inline">
</span></span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)"><br>
</span></div>
<blockquote style="border-color:rgb(200,200,200);border-left:3px solid rgb(200,200,200);padding-left:1ex;margin-left:0.8ex;color:rgb(102,102,102)">
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)"><span style="font-size:14.6667px;background-color:rgb(255,255,255);display:inline">Creating
 an editor for RELOAD-based data is not yet simple, but I'm</span><br>
<span style="font-size:14.6667px;background-color:rgb(255,255,255);display:inline">going to make a start
 on generalising the Purchases editor (most</span><br style="font-size:14.6667px;background-color:rgb(255,255,255)">
<span style="font-size:14.6667px;background-color:rgb(255,255,255);display:inline">likely) into a class
 for defining editable RELOAD trees.</span><br>
</span></div>
</blockquote>
<div>
<div id="gmail-m_-1835582962899119615gmail-m_-6442024544029500270appendonsend"></div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Neat. I haven't actually looked too hard into what editors look like these days so I'm not sure how bad "not yet simple" is, but if there's anything I can do to help, please let me know.</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<blockquote style="border-color:rgb(200,200,200);border-left:3px solid rgb(200,200,200);padding-left:1ex;margin-left:0.8ex;color:rgb(102,102,102)">
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<span style="font-size:14.6667px;background-color:rgb(255,255,255);display:inline">Pleased that documentation
 already exists on the wiki, documenting</span><br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<span style="font-size:14.6667px;background-color:rgb(255,255,255);display:inline">everything is a big task!</span><br>
</div>
</blockquote>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">If I had to pick one lesson that I've learned over the years, it's that documenting things first makes implementation easier. It's keeping that documentation
 up to date that is the challenge <span id="gmail-m_-1835582962899119615gmail-m_-6442024544029500270😄">😄</span></span><span style="display:inline"><br>
</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)"><br>
</span></div>
<hr style="display:inline-block;width:98%">
<div id="gmail-m_-1835582962899119615gmail-m_-6442024544029500270divRplyFwdMsg" dir="ltr"><font style="font-size:11pt" face="Calibri, sans-serif" color="#000000"><b>From:</b> Ohrrpgce <<a href="mailto:ohrrpgce-bounces@lists.motherhamster.org" target="_blank">ohrrpgce-bounces@lists.motherhamster.org</a>> on behalf of Ralph Versteegen <<a href="mailto:teeemcee@gmail.com" target="_blank">teeemcee@gmail.com</a>><br>
<b>Sent:</b> October 28, 2021 6:24 AM<br>
<b>To:</b> ohrrpgce <<a href="mailto:ohrrpgce@lists.motherhamster.org" target="_blank">ohrrpgce@lists.motherhamster.org</a>><br>
<b>Subject:</b> Re: [Ohrrpgce] Achievement implementations</font>
<div> </div>
</div>
<div><font size="2"><span style="font-size:11pt">
<div>This is going quick!<br>
<br>
The permanent data storage you're looking for is<br>
<a href="https://rpg.hamsterrepublic.com/ohrrpgce/Persist.reld" target="_blank">https://rpg.hamsterrepublic.com/ohrrpgce/Persist.reld</a><br>
<br>
The tag_updates function is the place to put hooks for when a tag changes.<br>
<br>
> A game may wish to expose the current progress at intervals ("defeat 100 goblins: 20/100") to motivate the player to continue progresing the achievement.<br>
<br>
If achievements are displayed through steam, how does this work? You<br>
can cause Steam to popup a progress notification with text of your<br>
choice? Or does it have to be numerical, or predefined in Steam's<br>
achievement editor?<br>
<br>
What about achievements that can be progressed towards in separate<br>
saved games? The example you put on the wiki of finding all the ways<br>
to die is one where progress needs to be shared rather than<br>
save-specific.<br>
<br>
Creating an editor for RELOAD-based data is not yet simple, but I'm<br>
going to make a start on generalising the Purchases editor (most<br>
likely) into a class for defining editable RELOAD trees.<br>
<br>
Pleased that documentation already exists on the wiki, documenting<br>
everything is a big task!<br>
<br>
On Thu, 28 Oct 2021 at 14:03, Mike Caron <<a href="mailto:caron.mike@outlook.com" target="_blank">caron.mike@outlook.com</a>> wrote:<br>
><br>
> Hello friends, sorry I’m late. Got sidetracked with a few things ðŸ˜Š<br>
><br>
><br>
><br>
> As I’ve been discussing with TMC on the Slime Salad discord, I’m working on adding achievements and Steamworks support to the OHRRPGCE. This is based on a post TMC made here just about three years ago:
<a href="http://lists.motherhamster.org/pipermail/ohrrpgce-motherhamster.org/2018-October/004308.html" target="_blank">
http://lists.motherhamster.org/pipermail/ohrrpgce-motherhamster.org/2018-October/004308.html</a><br>
><br>
><br>
><br>
> I’ve currently made progress on integrating Steamworks itself, thanks in no small part to TMC helping me get my environment set up, and now I’m thinking about how this stuff will work in the engine itself. I’ve been documenting stuff on the wiki, and I would
 encourage everyone to take a peek and give any feedback they have. Note that this page is not complete, and suggestions to fill in blanks would be appreciated.<br>
><br>
><br>
><br>
> <a href="https://rpg.hamsterrepublic.com/ohrrpgce/User:Pkmnfrk/Achievements" target="_blank">https://rpg.hamsterrepublic.com/ohrrpgce/User:Pkmnfrk/Achievements</a><br>
><br>
><br>
><br>
> I’m hopeful to get this implemented soon, so I can get back to my next 13 year hiatus.<br>
><br>
><br>
><br>
> Cheers!<br>
><br>
> --<br>
><br>
> Mike Caron<br>
><br>
><br>
><br>
> _______________________________________________<br>
> Ohrrpgce mailing list<br>
> <a href="mailto:ohrrpgce@lists.motherhamster.org" target="_blank">ohrrpgce@lists.motherhamster.org</a><br>
> <a href="http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org" target="_blank">
http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org</a><br>
_______________________________________________<br>
Ohrrpgce mailing list<br>
<a href="mailto:ohrrpgce@lists.motherhamster.org" target="_blank">ohrrpgce@lists.motherhamster.org</a><br>
<a href="http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org" target="_blank">http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org</a><br>
</div>
</span></font></div>
</div>
</div>

_______________________________________________<br>
Ohrrpgce mailing list<br>
<a href="mailto:ohrrpgce@lists.motherhamster.org" target="_blank">ohrrpgce@lists.motherhamster.org</a><br>
<a href="http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org" rel="noreferrer" target="_blank">http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org</a><br>
</blockquote></div></div>
</div>