Updates GOALS and RUNUO_MIGRATIONS.md files
This commit is contained in:
parent
b34bb90cdf
commit
57bec96827
2 changed files with 48 additions and 36 deletions
36
GOALS.md
36
GOALS.md
|
|
@ -1,23 +1,26 @@
|
|||
# GOALS
|
||||
|
||||
### Architecture
|
||||
- [x] Upgrade Server/Scripts compiler to use Roslyn/C# 7
|
||||
- [ ] Upgrade the code to use C# 7 standards
|
||||
- [x] Upgrade Server/Scripts to target .NET Core 3
|
||||
- [X] Upgrade the code to use C# 8 standards
|
||||
- [X] Remove compilation of scripts at startup in favor of loading DLLs.
|
||||
|
||||
### Networking
|
||||
- [ ] Replace Packet classes with functions
|
||||
- [ ] Improve asynchronous socket handling using Pipes
|
||||
- [ ] Improve socket handling (2-5x) and event loop using libuv
|
||||
|
||||
### Administration
|
||||
- [ ] Move IP logging and account data to SQL
|
||||
- [ ] Move account management to web
|
||||
|
||||
### Serialization & World Saves
|
||||
- [ ] Remove Serialization/Deserialization entirely
|
||||
- [ ] Create a flag to indicate when objects will be serialized.
|
||||
* Players, all items held by players, houses, etc.
|
||||
- [ ] Create transactions which handle changes to objects including:
|
||||
* Transitioning from not serialized to serialized (created)
|
||||
* Transitioning from serialized to not serialized (deleted)
|
||||
* Property value changes
|
||||
- [ ] Asynchronously offload the transaction to another service for permanent serialization
|
||||
* Support basic KVP databases such as MongoDB, RocksDB, and Redis
|
||||
- [ ] Create asynchronous request from cold storage
|
||||
* External system must provide objects and their nested objects (e.g. containers)
|
||||
|
||||
|
|
@ -32,20 +35,27 @@
|
|||
* Pools should be elastic and adjust according to nominal usage. For example, if thousands of gold objects are created and destroyed in a small period of time, the pool should be expanded and replenished properly so it is never empty, or full.
|
||||
- [ ] Replace timer system with a [wheel](https://github.com/runuo/runuo/pull/42) implementation
|
||||
- [X] Create `DefaultName` for mobiles
|
||||
- [ ] Improve asynchronous socket handling
|
||||
|
||||
### Code Architecture Fixes
|
||||
- [ ] Create a LayeredItem child and move related code to that class. All layered items should inherit that.
|
||||
* Items that are placed on the paperdoll will need to inherit this.
|
||||
- [ ] Create a StackedItem child and move related code to that class.
|
||||
* Items that have an amount will need to inherit this.
|
||||
### Plugins (Separate Repos & Optional)
|
||||
- [ ] RunUO 2.0 Migration Utility
|
||||
* Template code for updating serializations
|
||||
* Convert World file and dump to new serialization technique if there is one
|
||||
- [ ] Login/Auth Gateway (Like OSI!)
|
||||
* Use central AuthID via redis or similar
|
||||
* Support 2FA Auths via at login gump
|
||||
- [ ] 2FA Auth at Login to prevent password theft
|
||||
* Support Authy via universal interface
|
||||
* Support external app/device, magic number email, SMS, and FCM
|
||||
* Support user identity via web browser to curb flooding
|
||||
- [ ] Serialization via Database (no world saves)
|
||||
* Asynchronously offload the transaction to another service for permanent serialization
|
||||
* Support basic KVP databases such as MongoDB, RocksDB, and Redis, etc.
|
||||
|
||||
### Bugs & Misc
|
||||
- [ ] Naked corpses (container display issue)
|
||||
- [X] Rounding errors with new bank system
|
||||
- [ ] Replace `double` with `int` for skills to fix rounding errors and optimize code
|
||||
- [X] Replace specific checks for `Item`/`Mobile` by extended `IEntity` and mainstreaming the `NEWPARENT` code
|
||||
- [ ] TryDropItem dropping items until it fails when it should be all-or-nothing
|
||||
- [ ] Consuming items are deleted directly in several places instead of using `Item.Consume()`
|
||||
- [ ] Consumable items are deleted directly in several places instead of using `Item.Consume()`
|
||||
- [ ] Content displaying for newer clients is not working properly in several situations
|
||||
- [ ] Stack/Hold checks are broken in certain situations
|
||||
|
|
|
|||
|
|
@ -3,11 +3,14 @@ There are several considerations before migration from RunUO 2.0 to ModernUO.
|
|||
Many of these issues can be fixed by writing scripts that do world file fixes.
|
||||
Others will require careful code review to fix compile/runtime issues.
|
||||
|
||||
#### Deserialization Issues
|
||||
We will introduce templates to create migration scripts in a future iteration.
|
||||
|
||||
#### Deserialization Issues (Startup Issues)
|
||||
* All BODs will fail to deserialize due to the introduction of BaseBOD
|
||||
* Recommend a migration script to fix this.
|
||||
* Serial is now a `uint` which could break certain scripts expecting negative numbers or fixed encoding.
|
||||
|
||||
#### Constructor Inheritence Issues
|
||||
#### Constructor Inheritance (Runtime Errors, Corruption, or Crashes)
|
||||
* Items that inherit `Food` will pass the wrong arguments to their parent constructor.
|
||||
* Items that inherit spells or scrolls will pass the wrong arguments to their parent constructors.
|
||||
|
||||
|
|
@ -20,17 +23,28 @@ Others will require careful code review to fix compile/runtime issues.
|
|||
* Various functions such as `OnAdded` which previously took `object parent` now take `IEntity`
|
||||
* Functions that utilized non-generic structures (ArrayList, etc) have been changed to use generics.
|
||||
|
||||
### Profiling
|
||||
* Disabled
|
||||
|
||||
#### Reports
|
||||
* Removed
|
||||
|
||||
#### RemoteAdmin
|
||||
* Removed
|
||||
|
||||
#### MyRunUO
|
||||
* Removed
|
||||
|
||||
#### EventLog
|
||||
* Removed
|
||||
|
||||
### Future Migration Concerns
|
||||
|
||||
#### Account System
|
||||
* Accounts from the XML format will need to be migrated to the new database.
|
||||
* Accounts from the XML format will need to be migrated the new interface/format.
|
||||
* IP Logs from the Accounts XML will need to be offloaded to a new database.
|
||||
|
||||
#### Deserialization
|
||||
* All layered/stackable items will need to be migrated/fixed since the new hierarchy will look like this:
|
||||
* Item -> LayeredItem -> Armor/Weapon/etc
|
||||
* Item -> StackableItem -> Food/etc
|
||||
* All resources including but not limited to the following will need to be migrated:
|
||||
* Gold, Silver, Platinum
|
||||
* Arrow, Bolt, Feature, Shaft
|
||||
|
|
@ -49,23 +63,11 @@ Others will require careful code review to fix compile/runtime issues.
|
|||
#### Timers
|
||||
* Scripts that rely on Timers, TimerPriority, etc will need to be fixed to work with the format.
|
||||
|
||||
#### Skills
|
||||
* Scripts that use or do math against `double` type Skill values will need to be fixed.
|
||||
|
||||
#### Fastwalk
|
||||
* Other fastwalk/speedhack detection systems will need to be deleted or fixed.
|
||||
|
||||
#### Reports
|
||||
* These will be removed.
|
||||
|
||||
#### RemoteAdmin
|
||||
* This will also be removed. Discussion about a replacement as a plug-in is encouraged.
|
||||
|
||||
#### MyRunUO
|
||||
* This will be removed. Discussion about a replacement using an external database is encouraged.
|
||||
|
||||
#### EventLog
|
||||
* This will be changed to be cross platform compatible. What form it will take is still up for discussion.
|
||||
|
||||
#### Packets (Maybe)
|
||||
* Packets will be changed to be stateless functions that do not require instantiation.
|
||||
#### Packets
|
||||
* Packet, ByteQueue, PacketWriter, and PacketReader have been removed.
|
||||
* `ns.Send(packet)` has been changed to `Packets.Send(ns, PacketFunc, arg1, arg2...)`
|
||||
* Packets that are not used in the core have been moved to content distribution
|
||||
* God client packets have been removed
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue