GithubHelp home page GithubHelp logo

devwarlt / pstk-core Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 3.62 MB

PSTk is a collection of features available in .NET that enhances your game server performance. This toolkit contains optimized code and utilities commonly used on game development.

Home Page: https://devwarlt.github.io/pstk-core/

License: MIT License

C# 98.11% Batchfile 1.89%
dotnet toolkit game-tools pserver

pstk-core's Introduction

PSTk - PServer Toolkit license-badge version-badge size-badge visitors-badge

PServer Toolkit, also known with acronym PSTk and former name Core Algorithms, is a collection of features available in .NET framework that enhances game server performance using .NET native implementations. Can be ported to any other .NET environment with properly adjusts and implementation. However, target is for any game server structure.

Documentation

For more details, consider to check our API documentation.

Language & Framework

language-badge net-core-framework-badge net-framework-badge net-five-framework-badge

Build status

Branch .NET CI Status GitHub Pages CI Status
๐Ÿ”ง dev dotnet-ci-dev-badge github-page-ci-dev-badge
๐Ÿš€ prod dotnet-ci-prod-badge github-page-ci-prod-badge

Distributions

Distribution NuGet Download
PSTk.Core pstk-core-badge pstk-core-downloads-badge
PSTk.Diagnostics pstk-diagnostics-badge pstk-diagnostics-downloads-badge
PSTk.Extensions pstk-extensions-badge pstk-extensions-downloads-badge
PSTk.Networking pstk-networking-badge pstk-networking-downloads-badge
PSTk.Threading pstk-threading-badge pstk-threading-downloads-badge
PSTk.Redis pstk-redis-badge pstk-redis-downloads-badge

Contributors

pstk-core's People

Contributors

dependabot-preview[bot] avatar devwarlt avatar slendergo avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

pstk-core's Issues

Core Algorithms - version 4.0

Useful references about DOD paradigm

  • [1] Data Oriented Technology Stack (DOTS)
  • [2] DOTS Package
  • [3] Unity's new multithreaded Data-Oriented Technology Stack
  • [4] What is data oriented design?
  • [5] Data-Oriented vs Object-Oriented Design
  • [6] Data-Oriented Design - Links and Thoughts
  • [7] Data Oriented
  • [8] DOD in C#?
  • [9] MemoryPool, fast efficient fixed-size memory pool
  • [10] Fast Efficient Fixed-Size Memory Pool: No Loops and No Overhead
  • [11] Entity Component Systems & Data Oriented
  • [12] awesome-ecs, A curated list of Entity-Component-System (ECS) libraries and resources
  • [13] pool, A generic C memory pool
  • [14] DataBenchmark, DOD vs OOD / OOP basic benchmark (in case of important negotiations)

Core Algorithms - version 1.0, 2.0 and 3.0

Core Algorithms

Motivation: due some several technical issues found along PServers over the years related to lag, rubberbading, network and other issues kinda related to themselves, they were still a challenge for PServer developers to solve and most of them given up along possible patches for this scenario.

Therefore, after some weeks studying about possible patch, I decided to investigate what is the relationship between each other (lag, rubberbanding, network issues occurrences) and just found an algorithm whose integrates all of them, see FLLogicTicker for more details. Summarizing, this algorithm is responsible to render and simulate the game time every 200 milliseconds whose represents 1 tick of RealmTime.

So, based on this situation Core Algorithms (CA) come to split this overwhelming task and build an organized way to manage internal methods that require intense / massive processing over ticks of time based on system environment specs.


How CA would impact in game performance for NR-Core servers?

CA is designed to manage not exclusively time and tick operations, but critical threads that require such attention by processor cores provided by system environment. CA use a powerful feature from .NET framework available since C# 4.0 which is PFX (Performance Framework) whose contains definitions for parallel programming and concurrency scenarios, see Joe Albahari's article about this topic.


Version 1.0

Replacement for time simulation to system environment tick core (not needed to simulate a time since system already does that).

Version 2.0

Multithreading based-off on Joe Albahari's article to split threads that require to not being synchronous, but asynchronous instead (currently main issue found along debug diagnoses made).

Version 3.0

Improvements along multithreading procedures on CA and replacement of Core Task to Core Thread due thread-unsafe issues, see this article for more details.


TO-DO List

  • deprecate RealmTime struct
  • brings RealmTime replacement
  • brings multithreading and processor core implementations to split inner threads
  • brings Core Thread and World Tick operations

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.