Our great sponsors
-
Orchard Core
Orchard Core is an open-source modular and multi-tenant application framework built with ASP.NET Core, and a content management system (CMS) built on top of that framework.
While I've been peripherally present in the game industry through my activity here and on GitHub as a Godot contributor, the vast majority of my time as a developer for the past 5 and a half years has been in web development (largely server/database with some frontend) so take that as you will. In that time, I've seen, worked in, and outgrown several project architectures. At this point, I think I've gotten to know the one that works the best, in part because while it has worked for me, it's also the same one that Microsoft employs to maintain its high-profile open-source projects (which are orders of magnitude more complex than anything I've come up with). A good example is the Orchard Core CMS.
-
You can see a similar architecture implemented within Godot Engine's source code what-with how /core holds everything that is fundamentally crucial to the engine's operations (math, data structures, IO, variant, object/script, ClassDB, network, etc.). Then /server defines all of the low-level abstractions that detail the nature of all of the engine's most complex multi-threaded or OS-specific operations. Then you have /scene on the next layer up with the "core" game framework API (MainLoop, SceneTree, Node, etc.). Most importantly though, even though the /server abstractions and their implementations reside within the same "layer", so-to-speak, the data types of the abstractions' method parameters all consist of things which are already exposed in /core. None of the /server-specific stuff is used in the abstraction. This means that when /scene needs to consume the APIs in /server, all it needs is /core and the one imported abstract class, i.e. interface. The implementation details are completely hidden from the upper layers. In a similar manner, /editor builds on top of the preceding three and exposes various ways for other things to add functionality to the editor which is where you then get /modules that provides domain-specific additions to the engine via integrations for /scene and /editor broken down by subfolder.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
Related posts
-
Orchard Core VS Elanat - a user suggested alternative
2 projects | 17 Aug 2023
- I love my 2020 mbp intel i5! I received a ne dell i7-12k for work and my mbp still kills it in terms of compile-time.
- Deploy Database per User
- The Orchard Core threequel. Rechecking the project with PVS-Studio
- No Abstractions in Vertical Slice Architecture?