Skip to content

Releases: openrpg/OpenRpg

Dotnet 10 Migration + Editor + Project Changes

Choose a tag to compare

@github-actions github-actions released this 08 Jul 15:04

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

Choose a tag to compare

@github-actions github-actions released this 07 Jun 09:54
cd4cd68
Merge pull request #23 from openrpg/spike/rx-split-for-advice-engine

Separated out the Rx specific portion from AdviceEngine

Release 0.43.x005

Choose a tag to compare

@github-actions github-actions released this 28 Apr 10:29
a9a7b63
Update README.md

Release 0.43.x004

Choose a tag to compare

@github-actions github-actions released this 28 Apr 07:53
c459d06
Merge pull request #21 from 001hao/master

Fix: Correct ClassRequirement logic in DefaultCharacterRequirementChecker

Release 0.43.x003

Choose a tag to compare

@github-actions github-actions released this 27 Apr 13:57
255161f
Merge pull request #20 from openrpg/bug/attempt-equip-failing

Added fix for equipment extension bug

Updating Abilities and AttackGenerators

Choose a tag to compare

@github-actions github-actions released this 23 Apr 19:01
71a7b79

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

Choose a tag to compare

@github-actions github-actions released this 23 Apr 11:57
79857f5

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 Effects from around 1000+ now rather than about 500+ historically.

There have also been some new additions and a couple of changes at the Genres level.

  • *Magic based 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 etc
  • Stamina related effects/stats have been added for scenarios where you potentially want to represent stamina separately to Mana
  • MovementSpeed related effects/stats have been added as in most cases you will want to be able to augment movement speed
  • CriticalRate and CriticalDamageMultiplier stats 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

Choose a tag to compare

@github-actions github-actions released this 18 Apr 09:12
Adding abilitytemplate extension to ITemplateAccessor

Release 0.42.x003

Choose a tag to compare

@github-actions github-actions released this 18 Apr 09:05
Making the AssetCode and Tags more open so anything can use it

Release 0.42.x002

Choose a tag to compare

@github-actions github-actions released this 18 Apr 08:48
Minor fixes for types and adding tags as global extension