ecs-faq
papers-we-love
ecs-faq | papers-we-love | |
---|---|---|
21 | 69 | |
1,760 | 83,584 | |
- | 1.1% | |
6.0 | 3.2 | |
3 months ago | 10 days ago | |
Shell | ||
- | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ecs-faq
-
Show HN: Interactive ECS Systems/Component Explorer for Cities: Skylines 2
The Wikipedia article provides a broad overview, while this FAQ offers a more systematic exploration: https://github.com/SanderMertens/ecs-faq
-
Sparsey 0.11.0 Release - Better Performance
Sparsey is an Entity Component System focused on flexibility, conciseness and providing features exclusive to its sparse set-based implementation.
-
Beginner looking for code review : my ECS lib !
For further reading, here is a great article about these different approaches within Rust specifically: https://csherratt.github.io/blog/posts/specs-and-legion/ and here is a great general resource for commonly-used terms and techniques in ECS development: https://github.com/SanderMertens/ecs-faq
-
Ways to create game engines
Godot has a node based system (nodes can have child nodes linked to them, and there are different types of nodes for the type of functionality they represent). Another alternative could be a more OOP approach (utilising inheritance as the main means of extending functionality), not aware of any modern engines that take this approach anymore. It’s also worth noting that ECS implementations can differ wildly, this faq from the flecs creator has a good rundown on what some of different variants are.
-
Is ECS really the way to go in C++?
You might wanna take a look at https://github.com/SanderMertens/ecs-faq, it lays this all out better than I can.
-
Flecs 3.2, a high performance game development framework for C and C++ is out!
To find more about ECS, see the FAQ: https://github.com/SanderMertens/ecs-faq/blob/master/README.md
-
Functional relational programming model in Clojure(Script)
Using the relational model for app data in memory is really interesting.
Martin Fowler wrote about doing that as a way to get around the "object-relational mismatch" issue[1]. Richard Fabian describes "data-oriented design" as having a lot of overlap with the relational model[2]. ECSes becoming very popular in game engines are basically in-memory relational databases where "components" are "tables"[3].
[1]: https://martinfowler.com/bliki/OrmHate.html
[2]: https://dataorienteddesign.com/dodbook/
[3]: https://github.com/SanderMertens/ecs-faq#what-is-ecs
-
does an ECS system need unique identifier ( uuid ) ?
This is the ECS FAQ I'm currently using.
-
What are some things you have used ECS for?
While Unity's DOTS/ECS is positioned as solving performance issues for large numbers of objects, there are a number of other advantages. See https://github.com/SanderMertens/ecs-faq for a more in-depth look. IMHO the reusability and extensibility ECS encourages is as valuable as any performance increase. Compared to the GameObject style, which encourages random state mutations and side-effects, ECS enforces a more functional style, which results in code that is easier to reason about and test.
-
Dominion VS Artemis, the missing benchmarks (link in the comments)
thanks, i think a little more background on the ECS world will help you get the context, this is from the author of Flecs: https://github.com/SanderMertens/ecs-faq
papers-we-love
-
The Top 10 GitHub Repositories Making Waves 🌊📊
Papers We Love (PWL) is a community built around reading, discussing and learning more about academic computer science papers. This repository serves as a directory of some of the best papers the community can find, bringing together documents scattered across the web. You can also visit the Papers We Love site for more info.
- What led you to use Linux as your daily driver?
-
We have used too many levels of abstractions and now the future looks bleak
You might find the paper Out of the Tar Pit interesting if you haven't already read it: https://github.com/papers-we-love/papers-we-love/blob/main/d...
The ideas and approaches you talk about evoked some of the concepts from that paper for me. It talks a lot about separating accidental complexity and infrastructure so you can focus only on what is essential to define your solutions.
- Out Of The Tar Pit (2006) [pdf]
-
John McCarthy’s collection of numerical facts for use in elisp programs
Sure he was expecting a practical language and was designing one. Lisp was from day zero a project to implement a real programming language for a computer.
Earlier he experimented with IPL and also list processing programming on Fortran. The plan was to implement a Lisp compiler. At first the Lisp code McCarthy was experimenting with, was manually translated to machine code.
Then came up the idea to use EVAL as a base for an interpreter, which was implemented by manually translating the Lisp code to machine language. Around 1962 then a compiler followed.
https://github.com/papers-we-love/papers-we-love/blob/main/c...
-
Python: Just Write SQL
I'm in a 4th camp: we should be writing our applications against a relational data model and _not_ marshaling query results into and out of Objects at all.
Elaborations on this approach:
- https://github.com/papers-we-love/papers-we-love/blob/main/d...
- https://riffle.systems/essays/prelude/
- CS Journals and Magazines?
-
Ask HN: Incremental View Maintenance for SQLite?
The short ask: Anyone know of any projects that bring incremental view maintenance to SQLite?
The why:
Applications are usually read heavy. It is a sad state of affairs that, for these kinds of apps, we don't put more work on the write path to allow reads to benefit.
Would the whole No-SQL movement ever even have been a thing if relational databases had great support for materialized views that updated incrementally? I'd like to think not.
And more context:
I'm working to push the state of "functional relational programming" [1], [2] further forward. Materialized views with incremental updates are key to this. Bringing them to SQLite so they can be leveraged one the frontend would solve this whole quagmire of "state management libraries." I've been solving the data-sync problem in SQLite (https://vlcn.io/) and this piece is one of the next logical steps.
If nobody knows of an existing solution, would love to collaborate with someone on creating it.
[1] - https://github.com/papers-we-love/papers-we-love/blob/main/design/out-of-the-tar-pit.pdf
-
Good papers for high school students?
Here is a great Repo on GitHub named paers-we-love. You will surely find some great papers there and also some good other resources. Hope this helps.
-
I think Zig is hard but worth it
However, f and g are interchangeable anywhere else (this is not actually true because their addresses can be obtained and compared; showing that a C-like language retains its referential transparency despite the existence of so-called l-values was the point of what I think is the first paper to introduce the notion referential transparency to the study of programming languages: https://github.com/papers-we-love/papers-we-love/blob/main/l...)
What are some alternatives?
Node RED - Low-code programming for event-driven applications
Crafting Interpreters - Repository for the book "Crafting Interpreters"
dominion-ecs-java - Insanely fast ECS (Entity Component System) for Java
Flowgorithm-macOS - Flowgorithm for Mac OS
EntityComponentSystemSamples
elm-architecture-tutorial - How to create modular Elm code that scales nicely with your app
entt - Gaming meets modern C++ - a fast and reliable entity component system (ECS) and much more
clojure-style-guide - A community coding style guide for the Clojure programming language
Superstar-Game-Suite - A top-down 2D game creation suite for platforming, world building, and story telling.
git-internals-pdf - PDF on Git Internals
ygopro - A script engine for "yu-gi-oh!" and sample gui
salsa - A generic framework for on-demand, incrementalized computation. Inspired by adapton, glimmer, and rustc's query system.