Jump to content
Aveyond Studios Community
Amaranth

Ant's Journal

Recommended Posts

@Ant,

Targets.... So single or multiple and any limit.  Target types... Self, armour, held weapon, body, enemy, ally, party only (or combination thereof).  Your other stuff works but per above I think you need to define whether ability effects self and/or others and then whether party, allies, enemies, or combination etc

Chain.... Like your idea too!  But I was thinking more of things like Chain Lightning (which can be thought of in same way) where say you cast lightning at orc A but the lightning and electric element damage range jump to orc B and orc C and chance of so far visually too.

Active/Passive.... With Abilities I'm not just thinking of attack.  Passive abilities are just there and don't need to be invoked.  An example say of a Passive attack ability though might be 'Sword Mastery 3' such that when you wield a sword weapon type you do 30% more damage.  A Passive defence Ability might be 'Hardcase 2' where you take 20% less damage from blunt weapons or something.  A non combat passive 'Night Sight' wherein you see 20% better outside at night, or 'Trap Averse' wherein you're say 15% more likely to detect and not run on to traps.  I've probably not thought of the best examples... :(

Conditions in play.... Think I understand.

Pause time between use... Yes, works.

Dependencies... Noted.  Makes sense.  Class database will be handling or referencing a lot!  Don't forget Race (with Subraces) database which, thinking about it, sounds quite similar to Class database...

Progression... Your way works well... ;). If you create True Heal 1 and True Heal 2 would be nice if system had background int variable for that ability's 'level' for purpose of both formulae in or on that ability but also other abilities...  In above example, True Heal 1 may have higher background 'level' than Lesser Heal 5.... If you see what I mean?

If we follow your model for progression that neatly handles calcs and formula per stat or meter so long as your formulas can take in to account ability 'level', stats, meters, race, class and are nice n flexible...

 

Share this post


Link to post
Share on other sites

Very nice! For animations, could we have an option for triggering an animation trigger, rather than referencing the animation itself? I think that might be a more flexible way to go for those using Mecanim. 

Also, it would be great to have both a charging/preparation timer as well as an execution timer (with animation options associated with both). I'm not sure whether you intend "time for incantation" to be one or the other of those, or maybe both put together, but I can see a need to keep them separate. For example, I may have a spell that requires two seconds of a character in a looping animation, then one second to actually "cast" the spell via a different animation. 

Share this post


Link to post
Share on other sites

@ChiaPet, I'll provide a menu where you can set up animations. Because people can have 2D, 3D, Mecanim, and the legacy system, things can get complicated, fast. After I have this set up, I'll provide a drop-down list for you to select a specific animation (if you don't want to use your default animation for using an ability).

@Duffer123, Added target requests but left out specific body part targets (this is something we should discuss after the base system is created).

Added chain attack fields. Left out chain attack I mentioned as this is something that can be set up in actions attached to an ability.

Passive abilities sound like conditions, so don't worry. You can set up a condition to increase a character's stats in this way.

Will add a race database since we could have Orc Mage, Orc Warrior, etc. Can you tell me more about subraces?

I agree that formulas must have access to all stats, classes, etc. After we've got a decent outline for this RPG system, I'll create a language that encompasses these things for formulas.

Everyone, the abilities database is quite large. I've broken it into two screenshots. If you want details about specific fields, post your thoughts and questions.

  • Target: Enemies, Friends, Caster, Enemies and Friends, All
  • Scope: All, Some, One.
    If Some selected, you can enter max number of targets and select Random (if not random, you can select in the game which objects to use ability on)
  • How ability is used: Projectile, Radius around caster,  Directly on target
  • Morph into...: This will show a list of all abilities. Because I only have one right now, I selected Ice Storm. If you morph an ability, the Current Exp resets for that ability. 

ZRtFG74.png?1

zBoiev6.png?1

 

Share this post


Link to post
Share on other sites

@Ant,

Looks spot on above.

Subraces are a staple of many RPGs.  So, an example...

Race = Elf

Subraces = High Elf

The Race might modify some stats and meters and resistances.  The SobRace might do the same and tweak things.

Also Subraces tend to add cultural things like starting items and available options for character looks, alignments, relationships, reputations, religion etc.

Share this post


Link to post
Share on other sites

I'm without a computer for a week, so I'm going to move forward without coding for a while and just focus on what might be best in the next databases.

I'm thinking about how best to set up Races, Sub Races, and Classes. All of these databases will likely have these base fields:

  • Meter (classes: max meter values, races & sub races: meter modifiers)
  • Stats (classes: starting stat values, races & sub races: stat modifiers)
  • Elements (all: weaknesses and strengths against specific elements)
  • Conditions (all: weaknesses and strengths against specific conditions)
  • Weapon Types (all: types of weapons that can be equipped) 
  • Armor Types (all: types of armor that can be equipped)
  • Ability Types (all: type of abilities that can be equipped)

Races Category Database will look like this:

  • Name of Race Type (ex: Elf)
  • Description
  • Base Fields (see above)

Races Database will look like this:

  • Category (ex: Elf)
  • Name of Race (ex: Moon Elf)
  • Description
  • Base Fields (see above)
  • Starting Weapon
  • Starting Armor
  • Classes that this race can have

Class Database will look like this:

  • Name of Class (ex: Mage)
  • Description
  • Base Fields (see above)
  • Alignments that this class can have

Alignments Database will look like this:

  • Name of Alignment (ex: Chaotic neutral)
  • Description
  • Base Fields (see above)

Somewhere there needs to be a way to determine how some meter maxes change (for example, as characters gain exp, an experience meter needs to do three things: (a) increase character's level, (b) increase meter max, (c) reset meter value to remainder left over when meter max was reset (ex: if meter value = 10 and meter max = 9, new meter value = 1).

It's also important that these meter max values are tied to specific races, sub races, or classes. I can see how all of these could effect how quickly a character levels up in exp or other certain skills. 

I also see that it's important that some meters can't be rolled over. For example, you wouldn't a mana meter to roll over if the character ingested a potion that restored 100 mana for a meter that maxes at 75 mana. 

Share this post


Link to post
Share on other sites

It's fun to see how you are breaking all of this down into the component data parts. I oftentimes find myself able to get down to that level without too much trouble; it's coding it all that makes my head spin haha. 

May I request the addition of subclasses represented in this schema? It feels somewhat similar to subraces, in that there might be stat and meter modifiers for the base values inherited from race and class. For me, I'd also use subclasses as a potential prerequisite value for learning abilities (both passive and active), and potentially to use equipment or items as well. 

Share this post


Link to post
Share on other sites

I've been working on how to allow you to select as many weapon types as you want for a class. You could potentially have a 1000+ weapon types and if you want a character to have access to all of these, you should be able to set this (instead of only getting up to 10 choices).

Because you are going to either allow or disallow a weapon type for a class, I think we have a good case for using a bitarray. This is my test plan: store bits (1 and 0s) in a string like this: "101100". Each index in the string will represent a weapon type in the database. 1 = Weapon type allowed, 0 = Weapon type not allowed.

I'll store this string in a hero object. The string could potentially contain settings for thousands of weapons... all in one simple string. With this setup, I can convert the string to a bitarray and the bitarray back into a string. When a player plays the game, this conversion to bitarray will only happen once, which should be great for performance.

If this idea works, I want to take a look at a few databases I've already finished and see if this style of data storage might work for any other list fields that can simply be on or off.

Share this post


Link to post
Share on other sites

Here is a snapshot of the Class database. Bitarrays are working properly and are in use for the Weapon Type section. I'm going to go back through the other databases to see if I can refactor with bitarrays.

This snapshot is an early WIP and lots of fields are missing. I'll add them next.

btDRFfB.png?1

 

 

Share this post


Link to post
Share on other sites

I just thought about what if we create a huge list of items, like a thousand of items and we have to scroll all the way down to look for it. So my question is if there's a better way to find things in case we have a big database like that? Like a search bar.

Share this post


Link to post
Share on other sites

I’ll test this out tonight: at top of section, I’ll add these drop-down lists + buttons

[weapon type dd] [weapon dd] [add button]

You select a weapon type. This populates the weapons list. At top of weapons list will be an “all” option. Press add button. This adds the specific weapon or all of the weapons for a given category.

Once a weapon is added, it will appear in list below with an [x button] next to it so you can delete it.

Will this work for you? Can you tell me what you would like to see when someone adds an entire category of weapons (all swords)? For example, do you want to delete items from this list after it is added?  Do you want any new weapons of this category added automatically if a new weapon is created in the weapons db?

Share this post


Link to post
Share on other sites

I've finished several parts of the class database: weapons, armor, conditions, and elements. There is a lot more to do, but these were the tough fields and I wanted to get them out of the way first.

  • Weapons - weapons that members of this class can equip
  • Armor - armor that members of this class can equip
  • Conditions - conditions that members of this class are weak or strong against (determines probability of an attack attaching this condition to a character. A character strong against poison is unlikely to be poisoned. A character weak against poison is more likely to be poisoned).
  • Elements - elements that members of this class are weak or strong against (similar to conditions. If a character who is weak against fire is attacked by a fire sword, the fire sword will do more damage than normal. If a character who is strong against fire is attacked by a fire sword, the fire sword will do less damage than normal).

sxdi1VI.png?1

Share this post


Link to post
Share on other sites

@Ant,

Congrats on breaking the back of these databases!

Got a couple of things I'm not sure on re above.

Why mention of wooden and iron ?  Are they weapon types or just specific weapons?

Also with conditions and elements, why strong and weak and why not just use percentages?  Percentages more exact?

With Classes (and SubClasses?) and Races and SubRaces do we optionally need Alignments restrictions?

Would certain Classes be limited to certain Races (but this perhaps managed from Races database)?

Hoping you're going to do experience and progression with ranks/levels with Classes?  How would that effect Class abilities etc?

Minimum attributes?

[edit] just read your bit about 'a lot more to do'.... !

Share this post


Link to post
Share on other sites

@Duffer123, items listed with check boxes beside them are the actual items that can be equipped. For example, if you wanted to add an ice sword, you would first select "swords" from the first drop-down list and then "ice sword" from the second drop-down list. To remove the item from the equipable list, you un-mark the checkbox beside the item in the list. 

I have an idea that I want to try out tonight to make it easier to mass add/remove items. I'll have a screenshot soon.

For conditions and elements, I'm using a string for an int array, so each slot in the string can be a value from 0-9. 0 and 1 are reserved, which leaves me with 8 slots to work with. Right now I'm working with six of them (2-8):

  • 1-No defense against this
  • 2-Very weak against this
  • 3-Weak against this
  • 4-Neutral
  • 5-Strong against this
  • 6-Very strong against this
  • 7-Immune to this

Alignments database sounds like a good idea. I suspect it will be best to choose which classes an alignment can have in the Alignments database. 

Dido with the Races database. I'll let designers choose which classes a race can have inside the race database.

I'm going to get started on the Meter and Stats fields next. More details to come soon.

Share this post


Link to post
Share on other sites

Here's the most recent screenshot of the Class database. I added a section for abilities and I've changed the way you set values for Weapons, Armor, and Abilities (they all use the same format). If you select a type (ex. Ability Type), it will display all items of that type. Then, you just mark the things you want and leave the things you don't want.

Getting started on Meters and Stats next. I need to sketch out these sections as I think they could possibly get complex.

ll2uuuk.png?1

Share this post


Link to post
Share on other sites

Currently building the Meter logic in the Class Database. It's taking a bit longer because this section is going to require both a BitArray and IntArray to collect values. The IntArray is going to be more powerful than what I've currently created. You will be able to store any size integers. Everything is almost working but needs testing. I'll have screenshots tomorrow, most likely.

Share this post


Link to post
Share on other sites

Everyone, take a look at the finished version of the Stats Database. Is anything missing? Does something not make sense? Any adjustments for your game? Most of these fields will also appear in the Subclass Database, Race Database, and Subrace Database. Best to get them right now.

Here are notes:

  • There will be a Class Type dropdown list but I haven't built out Class Types yet. 
  • Weapons, Armor, and Abilities sections have the same layout.
    • pick the weapon type. all weapons of that type displayed. checkmark items that this class can equip.
  • Conditions and Elements have the same layout.
    • pick a condition and press Add to add it to list.
    • if you uncheck an item, it is removed from the list. (or press remove button)
    • note: conditions and elements don't have types but I could add these to make them consistent with Weapons, Armor, and Abilities. let me know if you want this.
  • Adjust meters and Adjust stats have the same layout. 
    • pick an item and press Add to add it to the list.
    • if you uncheck an item, it is removed from list. (or press remove button)
    • if you add a value for a meter, this will adjust the max meter value (ex mana meter 0-200 might become 0-220 or 0-190)
    • if you add a value for a stat, this will adjust the character's stat (ex strength 30 might become 50 or 10)

gX493pz.png?1

 

Share this post


Link to post
Share on other sites

@Ant looks amazing! I had a question about adjusting meters and stats: do those numbers affect just the starting values for a character in that class, or would those adjustments apply every level? I'm assuming just at creation, but wasn't sure. Many RPGs skew a character's stats a certain way as they level up based on class. Not sure if you've considered that for this module or not. 

Getting back to a topic both Duffer123 and I have discussed, will abilities have their own level/rating as well (outside of character level)? I'm thinking if so, we'd want to be able to set individual ability level caps as part of building classes. 

I know, this is getting to be annoyingly complex. :P

Share this post


Link to post
Share on other sites

@Ant,

What ChiaPet said.

Also, assuming lots of weapons and weapon types, may be better to list ones excluded rather than allowed?  Similarly Armour Types but Ability Types best this way round...

I'd also suggest min Attribute(s) for Class as option as well,

Share this post


Link to post
Share on other sites

@ChiaPet & @Duffer123, I'll add a second option for each meter and stat so that you can add an amount that will be added each time the character levels up. So for meters, you would have these fields for each meter:

  • Base Value - this will be added to character when game starts
  • Level Up Value - this will be added to the character each time it levels up. i think an option to a formula here is necessary. I'll add a field for this.

Abilities can't level up, but they can morph. So, if you have Ice Level 1, you can morph it to Ice Level 2. Each ability has a meter that tracks how many times it's been used. If you choose to use this meter, the ability will morph into another ability. 

I'll also experiment with a button or drop-down that lets you see only weapons/armor/abilities that are or are not selected.

Duffer, can you tell me more about the min Attributes idea?

 

Share this post


Link to post
Share on other sites

@Ant,

Let's say your RPG has DnD-esque attributes which typically max out at 18...

You cannot them say select or choose or become a Warrior unless your STAR (Strength) attribute is at least 14.  Similarly, being a Mage requires a minimum of 14 for Intelligence etc etc.  Class requirements on attributes may require more than one attribute minimum value.

Hope that makes sense?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×