Releases: openrpg/OpenRpg
Release list
Dotnet 10 Migration + Editor + Project Changes
Hello, this is a fairly big release and breaks some backwards compatibility.
The first thing to mention is now we only support dotnet 10+, the way we did extension methods made it a perfect match with the new C# 14 extension properties, so that was a big motivator to move over, as well as some other bits we couldnt historically use such as records etc.
So with that out of the way a lot of work has gone into trying to streamline things a bit more while keeping them open, so the way Effects are handled has changed, they are now on Variables and are optional, as well as the same sort of thing for requirements.
We have also improved the editor to be more generic and support optional plugin metadata, its still not perfect but is more useful than it was before, and to tack onto this we also have a new Project... project.
What is a Project?
It is basically a pre-made structure for managing openrpg templates/data that can be loaded anywhere, currently out the box we provide JSON reading/writing support for projects, but the main use case is you use the Editor to build/manage your project, and then the OpenRpg.Projects.Json to load your project at runtime.
As with everything you don't need to use this approach and/or if you want to use Binary/XML or some other format you are free to do so, or skip this entirely if you have your own pipeline in place for managing your data.
This came around because the editor needs to output config not code, and there wasnt really any built in mechanism for handling this well, so the hope is that you can create the project files inside your real world game/app, and then at runtime its there to be loaded in, and for changing the data version control works happily as its just JSON diffs which makes life easier.
Whats changed with the Editor?
It is very similar to what it originally was but is more extensible, before hand it was tied to the Fantasy genre and had a lot of hard coded stuff, now it is a bit more pluggable and lets you expose a manifest within your genre dlls exposing type information, as well as in your project adding what plugins it makes use of, so the idea is you are not tied to a specific genre and it just auto magically picks up the fields to edit via conventions.
Its not perfect but its usable and there is a new example demo which uses projects to manage its abilities/classes/enemies etc.
Release 0.43.x006
Merge pull request #23 from openrpg/spike/rx-split-for-advice-engine Separated out the Rx specific portion from AdviceEngine
Release 0.43.x005
Release 0.43.x004
Merge pull request #21 from 001hao/master Fix: Correct ClassRequirement logic in DefaultCharacterRequirementChecker
Release 0.43.x003
Merge pull request #20 from openrpg/bug/attempt-equip-failing Added fix for equipment extension bug
Updating Abilities and AttackGenerators
This change mainly improves use cases for abilities and also makes the IAttackGenerator able to generate attacks for character based on all attack stats as per previous version, a new overload for passing in an ability to use, and one where you are given an existing damage type and need to augment that.
As part of this we have also brought in critical attacks to be a key part of the process as well as basic attack variance to add some randomness to the ouputs, although you can make your own versions if you want a more complex/simpler system.
Minor refresh of Stats and Effects at Genre level
While this is mainly a minor refresh in terms of functionality and changes, it has a wider impact due to part of the work expanding the default keys/indexes used for Effect/Stat types at the Genres level.
Historically we left a gap of 10 or so between types to allow for growth but now we need more space, so we have added new fields in and made a gap of about 20 between logical groups to allow for future extensions in the lower level libraries.
Due to this a lot of the values have changed, for code first approaches this wont matter but for any serialized data against previous versions it would need remapping to new indexes.
It is recommended you start your own
Effectsfrom around1000+now rather than about500+historically.
There have also been some new additions and a couple of changes at the Genres level.
*Magicbased types and effects are not*Mana, historically Magic make sense but as we got more use cases Mana felt a better fit for representing the currency for using abilities/spells etcStaminarelated effects/stats have been added for scenarios where you potentially want to represent stamina separately toManaMovementSpeedrelated effects/stats have been added as in most cases you will want to be able to augment movement speedCriticalRateandCriticalDamageMultiplierstats and effects have been added to allow us to provide a mechanism for supporting critical hits going forward
There will possibly be some more changes added soon around Ability changes, as you may want Race, Class, Item etc to provide inherent abilities to your entity, or maybe you just want to build your own ability list in which case it may be just against the Entity as its own thing, a bit like Effects.
It all needs a bit more thought but is on the horizon.
Release 0.42.x004
Adding abilitytemplate extension to ITemplateAccessor
Release 0.42.x003
Making the AssetCode and Tags more open so anything can use it
Release 0.42.x002
Minor fixes for types and adding tags as global extension