Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CorgEng 2.0.0 - Render Cores & Simplification #180

Open
wants to merge 12 commits into
base: main
Choose a base branch
from

Conversation

PowerfulBacon
Copy link
Owner

@PowerfulBacon PowerfulBacon commented Sep 16, 2023

Closes #176

Integrates render cores and renderers and uses an explicit plane system. Instead of having to set a primary render core and getting confused about how that works, instead each plane has a different render (implicitly the sprite renderer) and sprites draw to their plane by an integer identifier.

For handling stuff like the lighting plane, we will need planes which don't draw to the world and instead draw to a render surface so they can be relayed to other planes (Lighting plane will just multiplicatively draw on anything below it).

This moves us towards the goals of a more simplistic engine that has a lot less boilerplate and is easy to use. Ideally the engine should be like a modern version of the byond engine which is super simple to use. Next up will be simplifying the ECS system to make the systems optional, since in most cases the components can just register signals themselves unless we specifically need to operate across all components of a specific type.

TODO:

  • Add in relay rendered planes.
  • Update documentation

@PowerfulBacon PowerfulBacon changed the title Removes render cores, replaces with plane rendering [2.0.0] Removes render cores, replaces with plane rendering Sep 16, 2023
@PowerfulBacon PowerfulBacon changed the title [2.0.0] Removes render cores, replaces with plane rendering [Core 2.0.0] Removes render cores, replaces with plane rendering Sep 16, 2023
* Implements CVar

* Fixes a few things that didnt work

* Adds NetVar

* NetVar framework

* Some messy netvars

* Adds the ability to queue arbitrary actions to run on a system thread

This allows arbitrary actions to be called on a system without the requirement of a signal. This means that we can set the value of a variable on the thread which has ownership of that value.
Note that these will not be networked and cannot be networked unlike signals.
Hopefully this can be abstracted away when we introduce proper CVars and thread ownership management.

* Contents no longer uses this module which doesn't exist

* Cvars

* Implements world to act as a container for static instances

* Implements entity system setup

* Implements processing systems

* Implements world specific events, down to 8 failing tests

* Fixes a failing test case

* Optimises signal call from 30000 => 7000000 (Still only 1% of just calling methods though)

* Fixes network initialisation order issues

* Fixes processing systems constantly firing if control was relinquished

* Fixes entity systems becoming deadlocked

* Processing systems

* Fixes entity system processing

* Disables processing system debug

* Adds in a rendering scaling mode, fixes button test

* Update ExampleRenderCore.cs

* Update NetCVar.cs

* Fixes CVAR network communications. Deletes automap

* Render Core Depth Output

* Adds the ability to fetch the depth texture and render texture from render cores

* Implements proper depth drawing across render core layers

* Removes the depth program

* Fixes the tests not compiling

* Update RenderCore.cs

* Update NetworkingTest.cs

* Update DmiIconConversionUtility.csproj

* Squashed commit of the following:

commit 20586d0
Author: PowerfulBacon <[email protected]>
Date:   Sat Sep 16 22:15:29 2023 +0100

    Optimisations

commit 3c287ec
Author: PowerfulBacon <[email protected]>
Date:   Sat Sep 16 21:33:53 2023 +0100

    Fixes rendering

commit f9f3a1d
Author: PowerfulBacon <[email protected]>
Date:   Fri Sep 15 15:53:17 2023 +0100

    Some more stuff to get compilation working

commit 2b889fd
Author: PowerfulBacon <[email protected]>
Date:   Fri Sep 15 14:57:03 2023 +0100

    Update PlaneRenderer.cs

commit 861e9ba
Merge: 5e5ad70 5eb6aa4
Author: PowerfulBacon <[email protected]>
Date:   Fri Sep 15 14:56:57 2023 +0100

    Merge branch 'main' into Render-Core-Rework

commit 5e5ad70
Author: PowerfulBacon <[email protected]>
Date:   Fri Sep 15 14:37:27 2023 +0100

    Render core reworks

commit 924bde2
Author: PowerfulBacon <[email protected]>
Date:   Thu Sep 14 22:16:16 2023 +0100

    Updates the project manifest, merges render cores and renderers

commit 5eb6aa4
Author: PowerfulBacon <[email protected]>
Date:   Thu Sep 14 21:30:24 2023 +0100

    Update EULA (#179)

commit 58010e2
Author: PowerfulBacon <[email protected]>
Date:   Thu Sep 14 21:27:51 2023 +0100

    Adds the EULA (#178)

commit e8efb77
Author: PowerfulBacon <[email protected]>
Date:   Wed Sep 13 19:15:10 2023 +0100

    ECS & Networking Refactoring (#170)

    * Implements CVar

    * Fixes a few things that didnt work

    * Adds NetVar

    * NetVar framework

    * Some messy netvars

    * Adds the ability to queue arbitrary actions to run on a system thread

    This allows arbitrary actions to be called on a system without the requirement of a signal. This means that we can set the value of a variable on the thread which has ownership of that value.
    Note that these will not be networked and cannot be networked unlike signals.
    Hopefully this can be abstracted away when we introduce proper CVars and thread ownership management.

    * Contents no longer uses this module which doesn't exist

    * Cvars

    * Implements world to act as a container for static instances

    * Implements entity system setup

    * Implements processing systems

    * Implements world specific events, down to 8 failing tests

    * Fixes a failing test case

    * Optimises signal call from 30000 => 7000000 (Still only 1% of just calling methods though)

    * Fixes network initialisation order issues

    * Fixes processing systems constantly firing if control was relinquished

    * Fixes entity systems becoming deadlocked

    * Processing systems

    * Fixes entity system processing

    * Disables processing system debug

    * Adds in a rendering scaling mode, fixes button test

    * Update ExampleRenderCore.cs

    * Update NetCVar.cs

    * Fixes CVAR network communications. Deletes automap

    * Render Core Depth Output

    * Adds the ability to fetch the depth texture and render texture from render cores

    * Implements proper depth drawing across render core layers

    * Removes the depth program

    * Fixes the tests not compiling

    * Update RenderCore.cs

    * Update NetworkingTest.cs

commit eb22330
Author: PowerfulBacon <[email protected]>
Date:   Thu Apr 6 22:53:06 2023 +0100

    Adds my discord link to the readme (#174)

commit 52d56d5
Author: PowerfulBacon <[email protected]>
Date:   Thu Apr 6 22:47:39 2023 +0100

    Create FUNDING.yml (#172)

* Squashed commit of the following:

commit 20586d0
Author: PowerfulBacon <[email protected]>
Date:   Sat Sep 16 22:15:29 2023 +0100

    Optimisations

commit 3c287ec
Author: PowerfulBacon <[email protected]>
Date:   Sat Sep 16 21:33:53 2023 +0100

    Fixes rendering

commit f9f3a1d
Author: PowerfulBacon <[email protected]>
Date:   Fri Sep 15 15:53:17 2023 +0100

    Some more stuff to get compilation working

commit 2b889fd
Author: PowerfulBacon <[email protected]>
Date:   Fri Sep 15 14:57:03 2023 +0100

    Update PlaneRenderer.cs

commit 861e9ba
Merge: 5e5ad70 5eb6aa4
Author: PowerfulBacon <[email protected]>
Date:   Fri Sep 15 14:56:57 2023 +0100

    Merge branch 'main' into Render-Core-Rework

commit 5e5ad70
Author: PowerfulBacon <[email protected]>
Date:   Fri Sep 15 14:37:27 2023 +0100

    Render core reworks

commit 924bde2
Author: PowerfulBacon <[email protected]>
Date:   Thu Sep 14 22:16:16 2023 +0100

    Updates the project manifest, merges render cores and renderers

commit 5eb6aa4
Author: PowerfulBacon <[email protected]>
Date:   Thu Sep 14 21:30:24 2023 +0100

    Update EULA (#179)

commit 58010e2
Author: PowerfulBacon <[email protected]>
Date:   Thu Sep 14 21:27:51 2023 +0100

    Adds the EULA (#178)

commit e8efb77
Author: PowerfulBacon <[email protected]>
Date:   Wed Sep 13 19:15:10 2023 +0100

    ECS & Networking Refactoring (#170)

    * Implements CVar

    * Fixes a few things that didnt work

    * Adds NetVar

    * NetVar framework

    * Some messy netvars

    * Adds the ability to queue arbitrary actions to run on a system thread

    This allows arbitrary actions to be called on a system without the requirement of a signal. This means that we can set the value of a variable on the thread which has ownership of that value.
    Note that these will not be networked and cannot be networked unlike signals.
    Hopefully this can be abstracted away when we introduce proper CVars and thread ownership management.

    * Contents no longer uses this module which doesn't exist

    * Cvars

    * Implements world to act as a container for static instances

    * Implements entity system setup

    * Implements processing systems

    * Implements world specific events, down to 8 failing tests

    * Fixes a failing test case

    * Optimises signal call from 30000 => 7000000 (Still only 1% of just calling methods though)

    * Fixes network initialisation order issues

    * Fixes processing systems constantly firing if control was relinquished

    * Fixes entity systems becoming deadlocked

    * Processing systems

    * Fixes entity system processing

    * Disables processing system debug

    * Adds in a rendering scaling mode, fixes button test

    * Update ExampleRenderCore.cs

    * Update NetCVar.cs

    * Fixes CVAR network communications. Deletes automap

    * Render Core Depth Output

    * Adds the ability to fetch the depth texture and render texture from render cores

    * Implements proper depth drawing across render core layers

    * Removes the depth program

    * Fixes the tests not compiling

    * Update RenderCore.cs

    * Update NetworkingTest.cs

commit eb22330
Author: PowerfulBacon <[email protected]>
Date:   Thu Apr 6 22:53:06 2023 +0100

    Adds my discord link to the readme (#174)

commit 52d56d5
Author: PowerfulBacon <[email protected]>
Date:   Thu Apr 6 22:47:39 2023 +0100

    Create FUNDING.yml (#172)
@PowerfulBacon PowerfulBacon changed the title [Core 2.0.0] Removes render cores, replaces with plane rendering CorgEng 2.0.0 May 12, 2024
@PowerfulBacon PowerfulBacon changed the title CorgEng 2.0.0 CorgEng 2.0.0 - Render Cores & Simplification May 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

#180 - Simplication of render core system
1 participant