Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

What does "data-driven" mean in this context?

And why are companies like DigitalOcean and Sentry sponsoring a game engine?



In the context of game engines, "data-driven" usually means that its behaviour (sometimes an entire game) can be built mostly by feeding it with data created by artists, level- and game-designers as opposed to a mostly "programmer-centric workflow".

A very simplified example is building surface materials with a "noodle graph" (creating a "data processing graph" visually by connecting node outputs to node inputs) instead of writing shader code. Of course building a noodle graph is also just different type of programming ;)

The term "data-oriented-design" looks similar at first glance, but means something entirely different (DOD is mostly about focusing on an efficient data layout in memory to make better use of CPU caches).


At first I thought that it's data-driven in the same sense that Lisp is. The concept describing Lisp's phenomenon is called Homoiconicity [0], or "code as data", but Homoiconicity means that "all code can be accessed and transformed as data, using the same representation". Emphasis mine. A lisp program could transform its own representation, because it's just a list of lists; but, a "noodle graph" programming system doesn't necessarily have the ability to parse its own structure; but I guess it could, all that is really needed is for the program to be treated as data, as in something the program itself could manipulate. I guess that's the meaning of data, something a program in question could potentially manipulate; and that's the difference between "data-driven" (or homoiconic) and code-as-code programming: the code-as-code program can't manipulate its structure as a first-class citizen.

I started out saying that a data-driven program isn't necessarily homoiconic, but I'm finishing with the realization that it is, they're synonyms. Also, I'll add that data-driven doesn't contrast with programmer-centric workflow, because it's still programming, that hasn't changed. The question is what you're programming with.

[0] https://en.wikipedia.org/wiki/Homoiconicity


> And why are companies like DigitalOcean and Sentry sponsoring a game engine?

We are a 501(c)(3) non-profit. Many companies like DO and Sentry have programs for open-source and/or non-profit companies where they provide free or discounted services in exchange for some exposure.


So it is no active support but rather 'Amethyst uses resources freely provided by XYZ'? Support implies endorsement to me.


I'm not sure what you mean, I'm afraid. They actively support us by discussing our needs and figuring out how they can best support us. They've each specifically asked to have their names and logos associated with our project.

Perhaps if you can reframe your question I can better answer?


I think they were asking: Are they sponsoring you via "hard cash" or "merely" via services provided (e.g. DO probably via server resources)?


No, I wondered about the passive taking and calling if support or actual involvement of humans who decided to support the project.


Thanks, the answer my confusion. Very cool!

I saw other projects say they were 'supported' by some things when in reality they simple used free stuff.


Sure, no problem. To be fair, we take all the free stuff we can get, as we are almost entirely community funded and volunteer driven.

In terms of straight cash support, Mozilla recently gave us a grant to work on WASM-related things.


I think they should be using the phrase "data-oriented" as in: http://www.dataorienteddesign.com/dodmain/

But maybe they have reasons for using data driven. Its heavily based around entity component systems.


Was just about to comment that. They should fix the text to data oriented, not data driven.


More information on what we mean by that term can be found here: https://book.amethyst.rs/stable/glossary.html

If viewed as goals, we aren't quite there yet, but we're working on it. =)


Generally the mentioned tools, particularly an editor of some sort in the style of the Unity or Unreal editors, are an important component of a data driven game engine. I didn't see anything skimming over the site about an editor. Is that part of the plan?


Yup. You can find the current editor work here: https://github.com/amethyst/atelier-editor

It is in very early stages. We are developing it as a WASM app that runs in a system webview, or can be accessed via a regular web browser for a more cloud-y experience. I'll take this opportunity to promote the awesome Yew project (https://github.com/DenisKolodin/yew) which is what we use for the frontend.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: