Live data from Hacker News

Core: an experimental new way to write videogames

github.com

221–224 of 224 posts

Re: Core: an experimental new way to write videogames

#221
post #125

Earlier quoted context omitted.

This seems like the wrong site for you, then? Hacker news generally has stories about interesting new ideas. It's not really the place to discuss incremental improvements to C++ and Unity. I can think of a couple games that sprang from odd academic navel gazing like this. A sibling comment mentioned Jonathan Blow; when I read about this project, it immediately reminded me of Braid. I remember when procedural generati…

> I don't understand the hostility. Saying this while telling me this is the wrong site for me. Nice. My comment isn't hostile. My opinion on this github has value and I am not alone. I could have worded it 'nicely' but if you find every brutally honest comment to be hostile, then maybe this site isnt for you.

I think it would've been better received if you elaborated a bit more on why you find it bad. And a bit more on where did it come from (how a gamedev world is compared to it). I mean i can guess what you meant, but it's a bit ambiguous in what way you meant that exactly.

Re: Core: an experimental new way to write videogames

#222

Earlier quoted context omitted.

> 2. Bevy also does not leverage Rust's type system in other ways. E.g. you can use resources that you forget to create and it will only crash at runtime instead of giving a compile time error. Would something else even be possible in Rust? My understanding is that you cannot really add type safety in the way of "This should be a i64 and between 32 and 128, otherwise fail to compile", so not sure how it could be addr…

Let me explain a bit more about "you can use resources that you forget to create and it will only crash at runtime instead of giving a compile time error". Plugins are the main abstraction in Bevy. A plugin has two parts: build and run. Build creates stuff, and run uses stuff created by build and created by the build of other plugins running at the same time. Build is pure side-effects, so the result type of build te…

> You second example (must call a method) is relatively easy with linear types, as they express "must do something with this value".

Interesting, could you possibly share an example on how that would look like in Rust? Haven't come across it yet, and would certainly help with some things.

Lets say we want to make sure if "MyStruct" is ever defined + created, we want to make sure the program somewhere calls "register_struct" with an instance of that struct.

Re: Core: an experimental new way to write videogames

#223

Earlier quoted context omitted.

Let me explain a bit more about "you can use resources that you forget to create and it will only crash at runtime instead of giving a compile time error". Plugins are the main abstraction in Bevy. A plugin has two parts: build and run. Build creates stuff, and run uses stuff created by build and created by the build of other plugins running at the same time. Build is pure side-effects, so the result type of build te…

> You second example (must call a method) is relatively easy with linear types, as they express "must do something with this value". Interesting, could you possibly share an example on how that would look like in Rust? Haven't come across it yet, and would certainly help with some things. Lets say we want to make sure if "MyStruct" is ever defined + created, we want to make sure the program somewhere calls "register_…

Rust does not implement true linear types, only affine, so I believe your parent is mistaken.

You can do a dynamic check to encode this, but that's not super popular. You can also issue a warning, and in theory turn that warning into an error, but it may also trigger on code unrelated to the specific struct you want it to, so I don't think that's a full solution either, and others may use your code without the warning, getting less guarantees.

Re: Core: an experimental new way to write videogames

#224

Oooh, this is cool. I always like to see different approaches to game dev (despite never having published a game!). So far I've tried - Bevy (Rust ECS engine), which is nice at first but has a lot of problems with its implementation and can become rather messy. I think it's heavily dependent on the game. Part of it will be my own incompetence. - Unity. IMO the system of gameobjects with composed modular components is…

> Godot. I hated it. All of the awful heirarchy of OOP, a really poor builtin language, and "signals", which are meant to decrease spaghetti but only increased it for me. Maybe I was using it wrong? I very rarely use inheritance to the point of being bad at using it. Not game dev either but I do have to say that I find Godot's design to be one of the best oop desings I worked with. I tend to not use oop much today (C…

[deleted]
Post reply on HN