OHRRPGCE feature requests/suggestions

Make games! Discuss those games here.

Moderators: Bob the Hamster, marionline, SDHawk

User avatar
kylekrack
Liquid Metal Slime
Posts: 1243
Joined: Mon Jun 16, 2014 8:58 am
Location: USA
Contact:

Post by kylekrack »

Adding some new game preferences could help give a good first impression and first-step usability with the engine. For example, when creating a new game, instead of just generating a .rpg file in some specified folder, creating a new folder with a .rpg file, a saves folder, a .hss shell file, etc. all packaged together.

I know that file management is a very personal thing, and that users should create and follow their own conventions, but 1. not everyone has file management skills or cares to put in the time, and 2. as a new user, I didn't know what files were even involved in creating a new game. When folders like the saves, autobackups, etc. get generated automatically as custom runs, it's not immediately clear where or when they showed up. Creating a new game folder holding all the necessary stuff, rather than just an rpg file, could help organize everything.

Nathan's comment over in the RGC thread about not needing to include plotscr.hsd anymore got me thinking that generating a .hss file at creation could help plotscripting be a less daunting activity. The file could have a comment with the game name and author at the top, and an empty plotscript. That would help those unfamiliar with plotscripting get a headstart, and make creating a new game less tedious for everyone else.

Plus, all of this could be optional, as preferences when selecting the Create New Game option when opening custom. Like a checkbox for "generate plotscript file."
Attachments
shell hss file example
shell hss file example
Screen Shot 2019-03-30 at 12.05.37 PM.png (13.46 KiB) Viewed 2240 times
file structure example
file structure example
Screen Shot 2019-03-30 at 12.08.04 PM.png (14.29 KiB) Viewed 2241 times
Last edited by kylekrack on Sat Mar 30, 2019 7:17 pm, edited 1 time in total.
My pronouns are they/them
Ps. I love my wife
TMC
Metal King Slime
Posts: 4308
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

Anything to make it easier to get up to speed is a good thing. I'm very glad that we now have a few default walkabouts.

Creating a folder for a game is quite reasonable. Although there would initially only be two files in it: the .rpg and .hss, you're right to point out that a lot of other files will end up there as well, so having a folder would be tidier.

A nearly-blank .hss like that helps, but I wonder whether there are any example scripts that could be put in it as a demo, like a run script. Particularly for someone who has never written a script before. Maybe a "show textbox" in the newgame script.

Relatedly, in future I want to support storing graphics in external files, which will be very useful to people using external graphics editors or collaborating on a game.
User avatar
kylekrack
Liquid Metal Slime
Posts: 1243
Joined: Mon Jun 16, 2014 8:58 am
Location: USA
Contact:

Post by kylekrack »

I'm glad you like the idea! There are all kinds of options with a blank hss file to start the user out with. I think that comes down to user-testing and what people actually find useful.

I will say, collaborating is already loads easier. Gaplan drew the sprites for PvPRPG, that we just made for the RGC. Importing those into Custom was pretty darn easy, and updating them when Gaplan made some adjustments was pretty painless.
My pronouns are they/them
Ps. I love my wife
User avatar
Nathan Karr
Liquid Metal Slime
Posts: 1215
Joined: Fri Jan 25, 2008 3:51 am
Contact:

Post by Nathan Karr »

We have indications for when a given hero can wield a piece of equipment on the shop screen, but no such indication if it's a spell-teaching item that specific characters can learn from. How about an option to display this on the shop menu with the characters who can learn doing their stepping and then casting animations, the way those who can equip them use their attacking animations? And for items that both teach spells and can be equipped, either having these two sets of hero graphics stacked up or having it alternate between the two.

I say option in part because some game designers might want players to be a little bit in the dark about this, expect them to experiment a bit and not be entirely sure who can use what.
Remeber: God made you special and he loves you very much. Bye!
User avatar
TailBit
Slime
Posts: 7
Joined: Wed Apr 03, 2019 4:09 am
Location: Norway

Post by TailBit »

- Target Setting: Front Row
Can switch target between all enemies that don't have another enemy in front of them.

This could be expanded so that you can attack the one behind the front row if the front unit have been hit with a status effect that makes him unable to act.

Or damage the whole row / or wide attack, also hitting nearby enemies in front.

Block effectiveness options:
Should a unaligned enemy that slightly covers 2 count as a block, or does that make all of them targets?
Big sprite protected 1 small, or must the small ones fully block the big one for him to not be a target?

- Do not make effects of usable battle buff items stack
.. unless the effect got a duration to them? But I don't think they do?

For example a potion that increase defense or dodge for a battle, if you take another one then it should only keep the effect that was strongest of the two, instead of taking the stats through the roof.

So drinking a potion that gives
[+1 def, +10 dodge] and then another one which got
[+2 def, +5 dodge], should result in the character having
[+2 def, +10 dodge] in the end
Last edited by TailBit on Thu Apr 04, 2019 12:02 am, edited 1 time in total.
TMC
Metal King Slime
Posts: 4308
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

Hmm! A 'front row' target class would be a lot of fun! That's a cool suggestion.
However there are a lot of questions about how it should determine the front row. Potentially which slots are in front of which other slots even be defined in the formation editor... but that's too much complexity.
Hmm, maybe just one adjustable parameter per formation, an enemy size multiplier. Combining it with a way to preview which enemies are in front, you can adjust it or their positions until you get the desired result.
The front row should also depend on which direction the heroes are attacking from... but what if the heroes are in the middle and the enemies on the left and right? Ugh! I want to add a setting to the hero formation editor to define on which side the heroes are, which would affect the flee direction and also this. (I'm not sure how to flee from a heroes-in-the-middle ambush!)

As for stacking of buffs, whether buffs stack is determined by what damage settings you use. For example if you set an attack to reset the target stat to max before the attack then it won't stack. However a damage option to only modify the stat if the new value is more (or less) than it was before would be a nice feature to have in general.

As for shops: learnable items is I think not the only information missing? The cast animations is a clever way to display that though! I think the heroes should alternatve between attacking and casting if both are applicable.
Unfortunately the graphical indication of which heroes can equip an item is very inflexible. What if the hero sprites are too large or the resolution too small? What if there are more tan 4 heroes in the active pary (we want to allow that). What about reserve heroes? What if an item can be equipped in multiple slots, varying by hero (we want to allow that too). I think we need an alternative way to present this information... most basically just letting you define all the text in the shop, not just the item description.
I do need to do some work on shop descriptions, as part of a HotOHR request.
User avatar
TailBit
Slime
Posts: 7
Joined: Wed Apr 03, 2019 4:09 am
Location: Norway

Post by TailBit »

I do find it interesting that you want to set the front already in the formation editor instead of doing it after an attack is selected, looping through the enemies and checking if their boundary box is cast over each other ..

But yeah, with different sizes and rotation, then the front get harder to define ^^;; good luck.

Maybe even custom target classes could be a thing, if you want to take it that far.
TMC
Metal King Slime
Posts: 4308
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

But how much of an overlap should be allowed? There will be a lot of ambiguous situations, and I need to make sure I don't over-engineer a solution; giving the user a single crude knob and a preview of the results is a good compromise.

Actually I do want to allow custom target classes defined by either enemy or formation slot properties like "high ground", "under water", "fish", "near", "metal armor", "weak", "stunned". Creating battles could be so much more fun..
User avatar
TailBit
Slime
Posts: 7
Joined: Wed Apr 03, 2019 4:09 am
Location: Norway

Post by TailBit »

I could make a test in JavaScript for the "front row" code, if you would want that..

This is how I see it for me:

Code: Select all

- sort enemies after closest to player
loop{
  - cast a shadow over the the targets further away (going in the grid direction, not directly from player)
  loop{
    - if casting shadow on smaller size, then it counts if he covers 30% of the one below (giving max cover value)
    - on bigger ones then 30% of its total shadow needs to hit, then tell the below one that its cover += size * shadowCover%, and tell this one that it is guarding
  }
  - if cover < requiredCover and guarding = true, add to target list
&#125;
required cover would be the previous size and >0 for the smallest ..

in my logic one size should be guarded if he got the 1 size smaller fully in front of him, if another stage smaller then he would need 2-3

(I did consider casting a shadow that splits into parts which then gets checked individually, but I think I will have to make the test for that first .. it made little sense if there is a stack of small guards in front on one big ^^;;)
User avatar
Bob the Hamster
Lord of the Slimes
Posts: 7660
Joined: Tue Oct 16, 2007 2:34 pm
Location: Hamster Republic (Ontario Enclave)
Contact:

Post by Bob the Hamster »

I like this idea of cover, and it makes me wonder about how other RPGs handle it.

The one that comes first to my mind is Romancing Saga 1. For all the gameplay and balance problems that game had, I think that rows and cover in battle is something they really got right

Image

I don't think they used any type of cast shadow-- instead, I think they probably divided the battlefield into vertical stripes, and then checked whether or not a stripe was occupied to determine if it gave cover to the stripes behind it.

They would also animate the heroes and enemies moving closer to each other each time a front row stripe was emptied, but that is another thing.
TMC
Metal King Slime
Posts: 4308
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

I was imagining that if there was a tiny enemy right in front of a large one, the large one would not be considered as the "front row" -- that's what those words suggest to me! (Basically that larger enemies maybe provide more cover, but don't require more.) With different wording you get different intuitions. Having cover (protection from ranged attacks) is completely different from being the in 'front row'. Potentially "front row" and "not covered" could be separate target classes.
Thanks for the concrete suggestion.

So how would people actually want to use these?
Last edited by TMC on Mon Apr 08, 2019 1:14 pm, edited 2 times in total.
User avatar
TailBit
Slime
Posts: 7
Joined: Wed Apr 03, 2019 4:09 am
Location: Norway

Post by TailBit »

Yeah, what I mean is that the front one blocks you from targeting the one behinds it, but if you stun/sleep/kill all the blockers, then it is added to the target pool until their stat changes or or new enemies are spawned ..

It is pretty much so meele fighters get an attack choice that doesn't make them seem like a ranged unit.
Bob the Hamster wrote:...
I don't think they used any type of cast shadow-- instead, I think they probably divided the battlefield into vertical stripes, and then checked whether or not a stripe was occupied to determine if it gave cover to the stripes behind it.

They would also animate the heroes and enemies moving closer to each other each time a front row stripe was emptied, but that is another thing.
If the battlefield is split up in horizontal and vertical lanes/stripes then the editor can easily display this chess grid positions at the edges or even display what tiles that are used, and it will make sense when the whole thing is rotated.

So loop through the same facing enemies sorted by distance to player, ready an array for the lanes, filled with empty arrays, and populate the empty arrays for every lane they occupy, if on is added to an already populated array, then it is guarded..

I would like to see the bigger enemies needing most of their lanes guarded to not be a target, but I have seen Lost Odyssey use every character in front as a full guard, even by a small minion guarding a boss sized enemy, so everything works.

If everyone would count as a guard, then a checking if there are any enemy behind is enough and the editor would just have to highlight every enemy that would overlap selected enemy's position horizontally and vertically.

(I do want to make some tests of these, but are in no condition to code today)
TMC
Metal King Slime
Posts: 4308
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

Hmm, strips does have the advantage that it's simple and easy to indicate in the formation editor.

It's also worth considering how arranging the heroes into first and second rows would work. Often back-row hereoes aren't portrayed strictly behind the front heroes, but just moved back a bit, so that the party doesn't take up too much of the screen. Strips could accomplish that.
User avatar
SwordPlay
Chemical Slime
Posts: 966
Joined: Sun Jan 22, 2017 9:32 am
Location: London, England
Contact:

Post by SwordPlay »

Is there a way to pause GAME for e.g, debugging purposes?
TMC
Metal King Slime
Posts: 4308
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

Yes! The Pause key (also available in the F8 debug menu if your keyboard lacks it). That was only recently added in Etheldreme, crazy we didn't do it earlier.

That just pauses movement/NPCs/enemies/etc. If you want a complete pause you can run the program under gdb and press Ctrl-C in terminal.
Post Reply