What's new

Re: Aylia's Story - English H-Game Goodness!

Indeed, I made that suggestion with only my knowledge of Ruby and not knowing much about RPGMaker itself (for someone who makes RPGMaker Trans, there's a lot of gaps in my knowledge of actually using the thing). The point still stands - requiring an external file to do the updating is a very poor solution.
I agree. That said, I did reread Yummy's post and second quote/spoiler kinda explains why external file is being used - part of the script functionality is a possibility of automatic update of the achievements from the Internet.

I believe the point here is to have achievements persisted between saves -
if I get achievement A in save 1, achievement B in save 2,
I should see both achievements unlocked, regardless of which savefile I load, or even if I start a new game from scratch.
Hence the need to store it in a different file than the ordinary saves, so it survives overwriting those.

Still, I'm not sure I follow the argument about upgrades - the achievements should boil down to a simple list of strings,
which ought to be easy enough to match into a newer list, provided the player copies over the correct files to the updated game directory...
I'm pretty sure that discussion is about available achievements data and not unlocked achievements, but in this case it's also not as easy as you think - see below for Yummy's explanation:
Achievements are my way of making Aylia's development dynamic. Levels will improve her a bit, but most of her development occurs through her actions and earned achievements. Does she serve as a tavern wench often? Well, then she starts to earn achievements related to "wenchin'" and will develop things dexterity from dodging those groping hands, and skills where she can tease enemies, etc.
Also, code snippet Yummy posted earlier suggests that that achievement bonuses are applied only to the playthrough in which achievement was unlocked, but said snippet is only an add-on and relevant part may be buried somewhere in the main achievement script, so only Yummy can verify it.
 
Re: Aylia's Story - English H-Game Goodness!

i've been wondering about the battle system.. is it animated? or not?
if its animated,, this game literally will be the best game... ever... :D

just like sc garden games.. i really love to see aylia's boobs shaking.. LOL
 
Re: Aylia's Story - English H-Game Goodness!

i've been wondering about the battle system.. is it animated? or not?
if its animated,, this game literally will be the best game... ever... :D

just like sc garden games.. i really love to see aylia's boobs shaking.. LOL

I totally agree, that is one place yummytiger doesn't need to be original, he just has to copy something tried and loved ^^ SC battles are so nice on the heroine side :p
 
Re: Aylia's Story - English H-Game Goodness!

@ AltairPL, some game use a public(dot)(same extention as the save files) file to store things shared by all save files / multiple playthrough / etc, which basically allow to have scenes, achievements, etc from multiple games/playthrough without needing New Game +.
I'm aware of that, but statement in my previous post was based on code snippet Yummy has posted, which suggests that achievements are stored in object unique to every playthrough/save, and as I've said, I have no idea how main achievement script looks, so only Yummy can verify whether achievements are global or limited to current playthrough only.
 
Re: Aylia's Story - English H-Game Goodness!

I agree. That said, I did reread Yummy's post and second quote/spoiler kinda explains why external file is being used - part of the script functionality is a possibility of automatic update of the achievements from the Internet.

I think that's a different set of scripts, actually, for automatic patching of the game via the internet. And even if not, the ability to update the list of possible achievements without updating the code of the game (which is what the achievement update script enables) is pretty much useless. If the code isn't updated, then you'll just be adding achievements which are impossible to get.

The better way of doing this is inspecting save files when they're loaded and updating as required based on the current version of the game. If possible have a variable in the save file which just indicates the save file version number, and it'll be dead simple to do.
 
Re: Aylia's Story - English H-Game Goodness!

I think that's a different set of scripts, actually, for automatic patching of the game via the internet. And even if not, the ability to update the list of possible achievements without updating the code of the game (which is what the achievement update script enables) is pretty much useless. If the code isn't updated, then you'll just be adding achievements which are impossible to get.
Yeah, it's indeed about different script... "read with comprehension" should be my mantra lately ;).
We can only assume how achievements script works, since we haven't seen it, but looking at the badge structure in the snippet leads me to believe that new achievements may work flawlessly with existing achievement code - depends on how @cond variable is used, but I think it's pretty versatile, e.g. some game variable is changed, all badges are iterated and if one is using this variable for tracking and it has reached desired value, achievement badge is unlocked/awarded/whatever. So new achievement, which is using game variable for tracking, will work with existing code. This is just an example, but 3rd party scripts tend to be quite universal, and since Yummy will likely ship updated achievements data along with new code (when necessary), it won't be really a problem.

The better way of doing this is inspecting save files when they're loaded and updating as required based on the current version of the game. If possible have a variable in the save file which just indicates the save file version number, and it'll be dead simple to do.
That's basically my plan, but I use dedicated code, which makes my life much easier in that regard. If Yummy is using more scripts like the achievement one, he would have to update every such script to utilize save version variable, which may not be easy in some situations.
 
Re: Aylia's Story - English H-Game Goodness!

Whoa, lots of activity and lots of information! Thanks!

OK... That's um... Wow. It probably works, I guess, but it's a really badly designed solution - like if the person designing it didn't know about basic functionality in Ruby. Could you PM me your achievements script (preferably as a file attachment so I don't have to un-emoji it)? I bet I could mod that so that it does all of the save conversion stuff without any external files or setup required.

Thanks for the offer! I'll PM you the script after I finish this reply. It's a purchased script and I have Dekita's blessing to modify it, just not release it or anything.

As to the database itself... do you mean stuff like the RPGMaker Item database? Provided you don't delete items, you'll be fine (tech summary: Items etc are stored as index values into the appropriate database, so provided items etc. don't change or get deleted, there are no problems with updating the databases). Or is this an in game database of something, because if it is then I'd need to see the implementation to know if there were problems.

By my understanding, if you simply add stuff to the database, you're fine. If you modify anything that already existed in the previous save in the database, then you might have issues. I've tried to plan a lot out, and I hope that the chapter 1 items/skills/enemies won't require any balancing or modifications going forward. I can't guarantee that though. That is one challenge in releasing things as I go.

Of course, I may simply be wrong here, and maybe it does not pose any problems at all modifying items/weapons/skills. I don't see anything getting deleted, just changed.

TBH, I don't see the reason to use external file or marshal_dump/marshal_load methods. When game is loaded, DataManager#extract_save_contents method is called and you can add simple check and update/creation for necessary stuff. *Snip*

I'm not following you here. Achievements will work as follows (and this will address your comment Thswherizat, as I think you're viewing "achievements" as Steam type things, they are different here).

The "Badges" script create a Pokemon-style badge system. When you earn a badge, it modifies things in the current game (it is not something that persists between playthroughs). What I wanted, was I wanted some way to have Aylia grow dynamically. I did not want a simple RPG-style leveling where you get more hitpoints and stats each level, where you unlock skills are key levels, etc. I did not want a leveling-style progression.

Aylia will grow as she levels, but in a very minor fashion and it will have a limited impact on the game overall. The vast majority of Aylia's growth occurs based on HOW you play the game. Because I could not find an easy way to do this RPG Maker, I started looking for scripts. This Badges script, seemed a good fit.

With the script, you have a "badges" menu, where you can see the "badges" you've earned and not earned. The script allows me to do a lot of things when a "badge" is earned. Give gold, skills, stats, etc. So, completely separate from leveling, I can change Aylia and Bogwort. I can give them new skills, new stats, etc. One of the easiest examples I can give are the "slapping" achievements. You start the game with a "weak slap" skill. When you slap a number of people/enemies, you earn the "Veteran Slapper" badge. That unlocks a stronger slap skill. If you slap even more, you earn "Master Slapper," and so on. If you go through the game without slapping anyone, you'd never get those skills. They are not leveling based, they are how you play the game.

Now, in the script itself, you create the badges and you specify what they do. Therefore, if I don't create every badge up front (not possible for me at this point), then people's saves will only contain the old badge data, and new badges would not appear. If I understand Altair, perhaps I can create a variable to force the script to reload? Dekita's solution was to push the new badges data to an external file and if that file existed, saves would pull the new badge data from it. At least, that was my understanding.

P.S. This is the link to the original script by the way:
 
Re: Aylia's Story - English H-Game Goodness!

Separating this reply, so as not to confuse the two discussions.

Wait, I'm confused. When you choose to add a chapter (like 2, 3, 4, etc) are you not planning on releasing it as the full game? As in a chapter would include all previously released content (e.g. 3 would have the entire data set for 1 and 2)? Because in that scenario (what seems simplest to me) each chapter just becomes a patch to a full original game. That way you end up just rereleasing the full game but with new chapters. Assuming you don't add any scripts (though game dev doesn't work perfectly that way) then people's saves shouldn't break when a new version is released.

The entire game will be included in each release. Therefore, when chapter 5 is released, it will contain EVERYTHING. Yet, by my understanding, and as I mentioned in the prior post, I was under the impression that altering existing database data after a save has been made, causes issues. Basically, that the save treats the database item as it was when the save was created, not what it is now. I could be wrong here, and perhaps I should understand the system I'm using better. That's on me.

i've been wondering about the battle system.. is it animated? or not?
if its animated,, this game literally will be the best game... ever...

just like sc garden games.. i really love to see aylia's boobs shaking.. LOL

I totally agree, that is one place yummytiger doesn't need to be original, he just has to copy something tried and loved ^^ SC battles are so nice on the heroine side

There is always room to be original :p.

First, I love ScaleGarden's stuff. I found Sangeki of Gear to be the high point, as I thought Rhode's combat lost a bit. Still, I agree, the animation adds a ton!

If you look at the prologue, I did mess with a bit of breast bouncing, just toying with it. I am an extremely amateur artist, and animation is currently beyond my meager abilities. It is something I'd love to tackle and am learning, but I would not count on much animation at this point.

In the revamps of the artwork, I have made changes that will make animation easier down the line. I put breast artwork on a different layer, I broke out arms, etc. These are changes that could make animation much more likely, but again, it is not doable right now.

Second, while ScaleGarden's combat is awesome, it differs drastically from Aylia's Story. I'd say Malise and the Machine has more in common (although that system and the customization is way beyond what I'm doing). In Aylia's Story, you may not get breasts bouncing as she attacks or dodges, you get other things. You get the interactivity within combat of the enemy trying to strip her naked. Then, you get the enemy attacking that nudity appropriately. Whether it be attacking her breasts, ass, whatever.

In this situation, the amount of animation required would far, far exceed what you see in ScaleGarden's games. For me, I'd far prefer the latter, as the bouncing breasts in attack and defense poses are nice, I always want more variety.
 
Re: Aylia's Story - English H-Game Goodness!

Can we at least get the dedicated "jiggle" button for Aylia's standing pose that Sangeki no Gear had? :p
 
Re: Aylia's Story - English H-Game Goodness!

Now, in the script itself, you create 80the badges and you specify what they do. Therefore, if I don't create every badge up front (not possible for me at this point), then people's saves will only contain the old badge data, and new badges would not appear. If I understand Altair, perhaps I can create a variable to force the script to reload? Dekita's solution was to push the new badges data to an external file and if that file existed, saves would pull the new badge data from it. At least, that was my understanding.
as a programmer i can understand a bit. so my question is, why do anything at all?

let me explain.
the badge system have X amount of badges that can be obtained. Badge[X], where X is a number. each number correspond to a specific badge. the old save have Badge[0] ... [9] , so 10 different badges. if you obtain Badge[3] it will be saved in the savefile.

now, you update the game, and suddenly we have Badge[0] ... [18] meaning more badges. we load the "old file" and you get Badge[3] as its the only one you obtained.

why do you need to do anything at all with the badge system? the old save only contain 10 badges, and those will be loaded, when you save again, the save file will be "updated" with 19 badges.

im not sure if rpgmaker have "undefined" variables or badges are automatically set to "0". thats the only problem i can see, that you need to reset the badges. if so, you could do that "before" you load, set all badges to "0" and then load the savefile.

or, is rpgmaker saving all scripts in the savefile? that would be very odd mechanism. usually savefile only contain variables. but i have never worked with rpgmaker so im not sure. when i do games, i never save scripts, only variables.
 
Last edited:
Re: Aylia's Story - English H-Game Goodness!

The entire game will be included in each release. Therefore, when chapter 5 is released, it will contain EVERYTHING. Yet, by my understanding, and as I mentioned in the prior post, I was under the impression that altering existing database data after a save has been made, causes issues. Basically, that the save treats the database item as it was when the save was created, not what it is now. I could be wrong here, and perhaps I should understand the system I'm using better. That's on me.
Since you sent me a PM with script stuff, I responded in kind and will only address this.
In VX Ace, database access is pretty dynamic, and most things are calculated on the fly, so not counting few exceptions, changing parameters of DB elements should not be a problem, and in worst case it will cause only minor inconvenience.
However, if you did rearrange DB lists, e.g. Item#3 is now Item#5, it may cause serious problems, including crashes - depends on whether or not something was already used/accessed by the game.
Also, all of the above is based on vanilla RM database - I cannot know what stuff some script authors can do to make things worse.

EDIT: @1baka
Main achievement/badge data is created at runtime and is not saved with the game, but it is used to create additional objects which are - those contain not only achievement/badge state, but also its visibility, date of unlock, and few other things, majority of which should be fetched from main achievement/badge data IMHO.
 
Last edited:
Re: Aylia's Story - English H-Game Goodness!

Ahh, badges not being global achievements clarifies things a bit.

I think the load-from-file done in that script addon is a misunderstanding.
What it currently does (I think) is:

- Keep badges from an existing save as they were, including name/icon and such.
- Add additional badges from whichever game produced the system achievement file

Which is good if you really don't want to touch existing saves, but I'd argue it's overzealous. Instead, what I expect you want:

- Badge definitions always match the current game code.
- If loading an old save, and the player already had an achievement, it should remain unlocked (even if the definition isn't quite identical) but not re-trigger side effects (e.g. gaining gold)
- Newly added badges are initially locked, though if they are tied to a game variable they may get immediately unlocked (triggering side effects)


Programming talk. Wall of text time:
Word of caution: The last time I did anything in ruby was probably 8 years ago or so, so I may be a bit rusty, and may be misinterpreting things.
Still, I'm used to switching programming languages all day, so I figure I got it at least mostly right.
For others following along: I'm referring to the snippet earlier in this thread,
and the base script in linked via via

First thing: I'm not convinced by the load-from-file thing.
You can already get the list of achievements-as-current-game from Achievement::Badge, so it should just use that instead.

Second: There seems to be a subtle bug where the updating code fails to modify the @unlocked array of the Achiiz class.
This would manifest in crashes or at least confusing behavior related to unlocking the new badges, I think - at least, it will make new badges occasionally fail to auto-unlock from game variable thresholds.
There is an odd duplication between Achiiz.unlocked and Achiiz.badges.locked that I don't understand.
It might just be the result of changing the code over time and not cleaning up properly.


Fundamentally, the problem here: As I understand it, rpgmaker creates a save by marshalling the player object:
Telling ruby to convert all fields in an object tree into a binary format,
and later telling it to re-create the object tree from this binary (picking up class definitions from current code, but artificially injecting fields as they were).
The problem with the achievement script is that it mixes what would normally be program code into fields, for convenience:
The class fields don't just say which badges are unlocked, but also what they do, and which badges exist.
So because this mechanism stores all fields, it also stores badge definitions, which you don't really want.

I think I agree with others on this thread that the correct thing to do here is implement ruby marshal/unmarshal correctly.
There should be marshal_dump function on the Achiiz class,
which would return a simplified structure containing everything we want the saves to keep:
- Which badges are unlocked
- The unlock date/time
- The last / second-to-last badge unlocked
The last two seem sort of unimportant, but the code currently has them, so we might as well keep them.
(The way it stores the date currently doesn't let us reconstitute badge unlock order from unlock times easily, unfortunately)
And then to match it, a marshal_load function, which will first call initialize() to get the badge definitions loaded from the current code,
and then it would go through the saved structure and do_unlock the appropriate badges, and set their unlock times.

This ought to have mostly the intended effects: Badges would always match the code, as you'd expect, but would stick around across older saves.
It's not perfect: Since badges are stored by int ID, and the code seems to assume IDs are densely populated, you can't remove a badge:
Whatever new badge gets the same ID would pick up unlocked-ness of the old badge, which you don't want.
We could fix this by giving badges a string ID for the purpose of the marshalled save, so that restoring unlocked-ness happens by that instead.
Then again, rpgmaker tends to do this in other places as well (items and abilities come to mind)
Hrm. To work around this, there should probably be a way to define a badge as "hidden", so it doesn't show up in the UI and doesn't count in the "X / Y unlocked" display.
Doesn't exist currently, sadly, and will take some changes to add.

There might also be problems with side effects: If you later change a badge to grant an item (say, the slapping glove of doom),
then loading a save where this is unlocked but the player didn't get the item,
the player would have no way to get that item now.
Fixable (anything is possible...) but would require more code to add "side effect even when unlocked by loading a save"...
 
Re: Aylia's Story - English H-Game Goodness!

This is why I dislike doing RPG maker projects - you spend a lot of time trying to adapt around the limitations of engine, and worse, you have to do it in Ruby.
 
Re: Aylia's Story - English H-Game Goodness!

This is why I dislike doing RPG maker projects - you spend a lot of time trying to adapt around the limitations of engine, and worse, you have to do it in Ruby.

some people like it, some people dislike it

welcome to earth

Edit : the turtle moving to day 5, the "Itty-Bitty" .. one step closer to the promised land.. :D
and btw, YT says the game will be out on december..!! whoaaa...
 
Last edited:
Re: Aylia's Story - English H-Game Goodness!

@CrazyPerson
Yup, that's basically everyone's sentiment.

@PeanutGallery
I agree that engine is severely limited and it's a pain to work with it, especially if you want to do something unique. That said, RM is still probably the best choice if you want to make RPG game - relatively easy to grasp for beginners, and if you want to do something differently, RGSS/Ruby scripts allows you to do it. Played with WolfRPGE some time ago, and I was really impressed by its database - looked very powerful and versatile, but IMHO, it was still not even close to be able to do things exactly as you see fit, which scripts in RM allows you to. I for one love Ruby - has its quirks, but same can be said about any other language.

@AngleBoi7
MV uses JavaScript.
 
Re: Aylia's Story - English H-Game Goodness!

So I suppose, sleeping on this, I figure there's three ways to go at the script:

- Implement marshal_load / marshal_unload on the Achiiz class, so that instead of storing all the code-turned-config in the save, it stores only the bits we want.
A little tricky to come up with a good format, but doable.

- Add an Achiiz::upgrade method that gets called from DataManager::extract_save_contents, and which will compare freshly-unpacked state in the object against configured badges and merge.
This is closest to the addon posted earlier, though as I said before, I really don't think it needs an extra file.

- Change the code so that instead of building objects that copy fields from the badges config, it looks up config variables each time (including "how many badges are there"!)
This is arguably the cleanest approach, since it causes the default marshal save of Achiiz to contain exactly what you want, and likely requires little-to-no special upgrade code.
Unfortunately, it also requires a fair amount of rework on the existing code, since it would require us to throw away the Achii_BADGE class entirely.


I think all three options are viable, and all have their pros and cons.
Personally I'm leaning towards the first since it's more likely futureproof against larger changes, but I could see any of them work pretty well.
 
Re: Aylia's Story - English H-Game Goodness!

@CrazyPerson
I agree, but the problem is Yummy would need someone to overhaul this whole script.
I did sent Yummy fixed (4 errors in 2 lines, lol) and cleaned up (that reminds me that it can be improved a bit more) version of the snippet, which removes the need for external file, and I would love to help him further, but my hands are full with MATM, and that's my priority.
 
Re: Aylia's Story - English H-Game Goodness!

@CrazyPerson
I agree, but the problem is Yummy would need someone to overhaul this whole script.
I did sent Yummy fixed (4 errors in 2 lines, lol) and cleaned up (that reminds me that it can be improved a bit more) version of the snippet, which removes the need for external file, and I would love to help him further, but my hands are full with MATM, and that's my priority.

No doubt, I am exceedingly grateful for you taking the time to look this over at all. For me, getting rid of the external file idea is perfectly fine. I'll be digging through all your replies and testing it out tomorrow. I'm very curious to see if it works. If it does, I'm sure Balduindrake (the guys helping me) won't mind not having more work to do. The lucky schmuck is traveling around Japan currently anyways.

@CrazyPerson: Not sure if I've thanked you for your input, but if I didn't thanks! I'll give you all some +reps when I log in tomorrow. Now, time to sleep.
 
Re: Aylia's Story - English H-Game Goodness!

No worries, happy to be helpful.
I may not be good for much else in this world, but I can read through program code and understand problems.

That said: I do have a day job doing precisely that, so I can't exactly spend all my free time doing the same.
So I'm happy to advise and maybe fix things here and there, but I certainly can't do programmer-for-hire at this point.

The way I see it: I like creative adult games that break the usual mold of "run this repetitive treadmill, get porn pictures as reward".
So if I can help more of them exist in the world, everybody wins!
 
Re: Aylia's Story - English H-Game Goodness!

As another positive note, I finally got my cheap ass to spend some money to help support this epicness. I can survive off ramen for all of college right? XD
 
Back
Top