Live data from Hacker News

Accidentally making a language, for an engine, for a game

verdagon.dev

41–50 of 232 posts

Re: Accidentally making a language, for an engine, for a game

#41
post #19

It's interesting that this phenomenon is much more prevalent in game development, as opposed to (for example) web development: some people build their own web development frameworks, but it seems like every game dev tries to make an engine at some point. My theory why: good web frameworks consider developer experience to be of paramount importance, and invest heavily into examples, documentation, and API improvements…

I would hazard that game engines are an order of magnitude more complex than web frameworks. A better analogy may be game engine vs db engine or web framework+runtime(ex: Erlang/Elixir+Phoenix). If you have performance issues with a web framework you can scale it horizontally to a degree(depending on downstream dependencies like your DB). Games are built to run against resource constrained hardware and so they optimize for specific usage patterns.

There's also the issue that most engines are built to be good at a specific game type and may make trade-offs in terms of how assets are managed and scene complexity. An open-world has much more different requirements than an on-rails shooter. For instance I had to do some pretty heavy retrofitting of one of those engines to handle LoD/geometry streaming and a bunch of other optimizations to make them work well with a large sight-distance game.

Re: Accidentally making a language, for an engine, for a game

#42
post #16

There should be a competition of yak shaving. I've writing a Rust based canvas engine, with content via my own IDE, the runtime is fed data via WebSocket using my own API protocol, web proxy routing through a streaming and distributed load balancer using a new protocol, landing on my back-end platform running my own language, writing deltas to my own data store. https://www.adama-platform.com/ Why? For board game glo…

It's not quite yak shaving, but it certainly is... something: > I mean, we are running Access in Wine in X11 on Linux in an isolated user account on our server slice that revision controls your Access database in git, and we're displaying it using VNC in your web browser in flash. People can't possibly want that. But they need it. https://apenwarr.ca/log/20120326 (Not mine, but seems relevant)

I find it somewhat disturbing that this felt like a reasonable approach to me...

Re: Accidentally making a language, for an engine, for a game

#43
post #3

That just seems like poor discipline. But not like creating a typesetting system to use to write your book. It seems like it is shaping up to a pretty nice language. But writing the compiler in itself is very 20th-century. Just add a parser to LLVM or Gcc and call it good. But don't make the mistake C, C++, and Rust did, using a prefix dereference operator. Pascal got that one right. BTW: "get" in a pure function nam…

Based on the "Compiler Overview" page, they do use LLVM for codegen: https://github.com/ValeLang/Vale/blob/master/compiler-overvi...

Re: Accidentally making a language, for an engine, for a game

#44

There should be a competition of yak shaving. I've writing a Rust based canvas engine, with content via my own IDE, the runtime is fed data via WebSocket using my own API protocol, web proxy routing through a streaming and distributed load balancer using a new protocol, landing on my back-end platform running my own language, writing deltas to my own data store. https://www.adama-platform.com/ Why? For board game glo…

Last year I set out to work some machine learning train+eval loops for my team, but ended up writing a config language. Oops.

Re: Accidentally making a language, for an engine, for a game

#45
post #26

I don’t get why are programmers so obsessed with the tools they use for the job? More than any profession

Obsession with the tools is part of every interest/job/hobby! There's always someone who thinks: "I could make this better". Some of them even try to. Emphasis on try :)

Rich amateur photographers are a lot more concerned with their tools than professionals are, and about different parts of the toolset too.

Re: Accidentally making a language, for an engine, for a game

#46
I don't know what it is about game development that really brings out the yak shaving in people.

One time, about 8 years ago, I backed a game called Nowhere[1] by a very talented programmer. The original premise was an alien life simulator.

Well, it's been eight years, and development is still going strong!

The developer is currently working on the String implementation for the programming language he invented[2], which he's using to write the other programming language he invented[3], which is eventually going to be used to write the game.

[1] https://duangle.com/nowhere

[2] https://hg.sr.ht/~duangle/scopes

[3] https://hg.sr.ht/~duangle/tukan

Re: Accidentally making a language, for an engine, for a game

#48
post #19

It's interesting that this phenomenon is much more prevalent in game development, as opposed to (for example) web development: some people build their own web development frameworks, but it seems like every game dev tries to make an engine at some point. My theory why: good web frameworks consider developer experience to be of paramount importance, and invest heavily into examples, documentation, and API improvements…

I think part of it might be learning how to ask good questions. I wrote a terrible terrible C compiler for a class. But I learned so much about the choices between doing things the slow but probably correct way, vs the cool but hard way, or even the jaunt into esoteric decisions. This more than anything else in my career taught me how to evaluate random software. As a professional, or even serious hobbyist, I think it's a good idea to dive deep, build one yourself. Really get a feel for the tradeoffs and hassles of different choices.

Even if nothing goes anywhere, it'll improve your craft.

Re: Accidentally making a language, for an engine, for a game

#49
post #30

The way structured concurrency is implemented in Vale is exactly what I've been missing in every language I've been working, including Rust which gets pretty close. Amazing job!

Thank you! We're pretty excited about it too.

Though, I do want to be clear for readers, Seamless Concurrency [0] isn't fully implemented yet, we've only just started to play with its first building block, the region borrow checker. It's promising, but I don't want to get anyone's hopes up too early.

[0] https://verdagon.dev/blog/seamless-fearless-structured-concu...

Re: Accidentally making a language, for an engine, for a game

#50
post #3

That just seems like poor discipline. But not like creating a typesetting system to use to write your book. It seems like it is shaping up to a pretty nice language. But writing the compiler in itself is very 20th-century. Just add a parser to LLVM or Gcc and call it good. But don't make the mistake C, C++, and Rust did, using a prefix dereference operator. Pascal got that one right. BTW: "get" in a pure function nam…

The difference is the original goal of writing a game was frivolous anyway, so it doesn't matter if it gets done. Whereas if you have a book contract, writing LaTeX instead is a bit irresponsible.
Post reply on HN