edited February 2021 in ORK Support
I made a 2D game in Python and would like to transfer it into Unity to make it 3D and further improve. After finishing the RPG Editor demo, I have some doubts if I will be able to easily code what I need. Below is a list of features I need:

1. Camera that moves with WSAD keys and mouse at screen edge

2. Player controls group of characters in following way:

2.1 Issue orders by selecting character and right clicking on the ground to move

2.2 If clicking on enemy, pathfind towards it and start autoattacking when in range. Real time combat such as Pillars of Eternity

2.3 Can select multiple characters at once

2.4 Display circles under selected characters

3. Abilities:

3.1 Ability bar visible in UI with hotkeys

3.2 Click on ability and then select target. Depending on ability it may be enemy, ally or ground with varying shape

3.3 Are abilities such as summoning entities and shapeshift possible to easily add?

3.4 Have skilltree that alters abilities depending on which path has been selected

3.5 Some abilities have casting time and can be interrupted based on how much damage caster takes

4. Threat management:

4.1 Each enemy has an dictionary made of player characters IDs and threat value

4.2 Threat value is increased by taking damage from given player character. Decreases overtime

4.3 Enemy chooses target in a formula with parameters such as distance from self, how dangerous given character is, how vulnerable given character is to enemy attacks, if enemy is currently engaging given char etc. Each such parameters increases threat amount by certain percentage.

4.4 Enemy final target will be choosen as a roll with weights of threat level of all characters so char with highest threat has the highest chance of being attacked. This roll happens every time enemy can act (depends on his action speed)

5. Game database from .csv files:

5.1 Is it possible to use csv files as input for base stats, ability parameters, weapon stats etc?

Please let me know which of these features can be easily added using RPG Editor and which ones need extra work. Any tips on how to add them would be very appreciated.

(for some reason this forum editor doesn't allow formating of text. Sorry about that)

Post edited by Ts1nd on
  • 1) Yes, via the built-in Top Down Border camera control. Otherwise you can use any custom player/camera control with ORK.

    2.1) Hm, depends on the details - generally that's possible, e.g. by switching the player (and player controls) to the combatant.

    2.2) Pathfinding depends on how you move your game objects, e.g. using Unity's NavMesh for that. The rest should be possible, but as many things, depends on the details :)

    2.3) No, that's not possible out of the box - though you can probably do it with some custom scripts.

    2.4) That's up to selecting/highlight cursors.

    2) Generally, you might want to create your own custom control to manage these things to your liking and call ORK functionality from there.

    3.1) That's possible via control maps for hotkeys and Combatant HUDs with Shortcut elements for the UI. Check out this gameplay tutorial for an example.

    3.2) That's possible and pretty much the standard :)

    3.3) I'd say yes, though 'easily' depends on how well you know your way around in ORK. Generally, most of these custom things are done in the battle events that are used to animate your actions.

    3.4) Can be set up that way.

    3.5) Yes, that's possible.

    4) Combining these points: Should be possible via the battle AI and using combatant battle statistics (see Battle System > Battle Settings at the bottom).

    5.1) No, these things are set up via the ORK editor window, though you can write a custom script to do that in case you have a lot of data in that form.
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
  • edited February 2021
    Thank you for your answer. It's a shame ORK doesn't allow the most standard controls for modern RPGs which is point and click.
    What's the easiest way to connect .csv database to ORK? I have 300+ files with enemies, stats, equipment, abilities etc. it would be pain to copy all of that by line by line times 300+.
    Is there a way to get rid of "turn" or "turn based" references? Like the default "add combatant" is set to turn based combat even after I set my game to real time.
    Is there a way to remove unused functionalities like block?
    Post edited by Ts1nd on
  • edited February 2021
    Point and click is easily set up using navmesh and a raycast-to-vector3 event upon clicking navmesh surface.


    Your combatants use whatever combat system you have set up. If you haven't set anything up nothing will happen. So block does nothing by default.
    Post edited by Wrofir on
    Miuratale : coming 2024
    Miuratale
  • edited February 2021
    So I am continuing testing ORK Framework and now trying to replicate formula I used for hitchance in my python game.

    I have 4 attributes pairs that are matched against each other to determine hit chance like acc vs eva etc.

    The formula I use in python is:


    hitchance(attacker.A, defender.B) =

    if A>B
    1 - B/2A
    else
    A/2B


    Where A is attacking attribute B defending attribute. I then compare it to roll Normal(50,25) to determine hit.

    So its rather simple, just 1 function to handle all. In ORK it seems I would have to add atleast 16 formulas if I am not mistaken?
    And how do I add Normal dist instead of Uniform?

    In my game I also have log that will print for example:

    "char1 attacked char2 but missed, (to hit 0.42, roll 0.38)"

    how do I add it to ORK?
    Post edited by Ts1nd on
  • edited February 2021
    Ts1nd said: most standard controls for modern RPGs
    That's debatable :D
    Generally, ORK is an RPG framework, not a player control framework - and it can do point and click (and is also used by many in that fashion).

    As for your formula, naturally this is a lot faster and easier to do when writing it in code, but since ORK is a tool for people who can't (or don't want to) write code, it's a bit more complex to be able to allow them customized calculations.
    Yeah, you'll have to split up such a calculation into some parts, not 16, though :)

    As for random number generation - ORK uses Unity's built-in system, but you can replaced it via ORK's Unity Wrapper feature, check out Game > Game Settings (at the bottom), where you can set up custom class/functions to call for number generation.

    Generally, you can extend ORK's formula system with custom nodes, so if there's a functionality you need or want to do easier, just write your own node (e.g. copy an existing one's code from the source code and modify it). Your custom node script just has to be in the Unity project for it to be available.
    You can also add custom battle AI and event system nodes that way.

    ORK has an in-game console if that's what you mean, but it'll probably not be able to add all the information you want to display as it seems.
    Post edited by gamingislove on
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
  • Small update on formulas - the next ORK version will add a new formula node to call custom functions for calculations, i.e. you can also easily do calculations via scripting, e.g. through static functions that take the user/target combatants as parameters.
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
  • edited February 2021
    That update would be nice. It would be very useful if we could create functions with input parameters. When can we expect such update?

    Currently if I were to implement the function with 4 stat pairs, it would require minimum of 16 formulas.

    We need the hit chance formula for each pair so thats 4 (after update it would be 1)

    We need A - B for all pairs to do the if (A>B) so thats another 4 (after update it would be 1)

    We need B/2A and A/2B for each pair so thats another 8 (after update it would be 2)

    So its 16 currently vs 4 after update vs 1 using standard coding.

    Also the fact we cant do in-game console log is kind of dealbreaker to me. Is there really no way to print the hit chance and roll into player's in-game log? Can we even print anything like which ability was used, who attacked who, if it was crit etc?

    Another dealbreaker is that we cant input our data from files. What should one do if for example wants to nerf a stat in all enemies of given type or nerf mana costs of all spells? In my game I simply open excel generator where each enemy/spell is one row and easily change all at once then generate the required .csv files without messing with code or even opening engine.
    Post edited by Ts1nd on
  • Check out Game > Console Settings, there's a ton of automatic console texts available, e.g. who attacked who and the status value changes that occured - my comment was directly related to the hit chance example you gave, which is currently not available in those console texts.
    You can also print whatever you want to the console, either via the event system or scripting.

    As said earlier, you can only use your csv data via custom scripting, reading your stuff and put the data in the appropriate places in ORK's data (while having the ORK editor opened, so that you can save the changes).
    E.g. use Unity's MenuItem attribute to call static functions via the Unity menu.
    Please consider rating/reviewing my products on the Asset Store (hopefully positively), as that helps tremendously with getting found.
    If you're enjoying my products, updates and support, please consider supporting me on patreon.com!
Sign In or Register to comment.