Replies: 1 comment 1 reply
|
Hi, welcome to the community! As long as you have a single thread, I think Hylo and value semantics will be great for this use case. In fact, Hylo's compiler is written in a somewhat similar fashion in Swift, where we store all AST nodes and types in a big list in // pseudo code:
var m = Module("a.hylo")
let node1Id: NodeID = ...
// access the node
func doSomethingWithNode(module: inout Module, n: NodeID) {
module[n].prop1 += " visited"
} I would recommend exploring Swift, it likely covers your needs already (except Hylo will get rid of the copy-on-write types in favor of explicit copies and better control over performance). The concurrent execution is more tricky, because as the previous example showed, we need exclusive access to You can achieve a similar memory-management experience in Rust, but you may indeed face some complexities with explicit lifetimes, which Hylo can avoid thanks to subscripts (projections). In a game, e.g. if you stored each list of components separately and the operations on separate types of components were completely independent, we could parallelize easily by firing a new task for each type of component. The story becomes more complicated when you just have one big memory pool with shuffled data and you want to access that safely from multiple threads. Could you share some more details about your ECS use case and how you wanted to parallelize things? I'd be happy to study the problem a bit more. |
Uh oh!
There was an error while loading. Please reload this page.
I've been looking for a language that can handle both engine internals and gameplay in one stack. The current options all have trade-offs:
I've been looking into Hylo lately, and I see potential for it to unify both engine internals and gameplay in a single language: default value semantics, automatic lifetime management, and compile-time guaranteed concurrency safety — parallel systems run without manual locks. It feels like a natural fit for ECS's "pure data components + parallel systems" model. I'm curious:
1. Does Hylo's language design actually play well with ECS architecture? Any fundamental conflicts or gotchas I'm missing?
2. Have the core devs thought about game development as a use case?
All reactions