Live data from Hacker News

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

verdagon.dev

141–150 of 232 posts

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

#141
post #137

For any comparison to C# (it being slower or having GC pauses), it probably doesn't take into account the latest advances (.NET 6). That's understandable given there isn't really incentive to gain a mastery in every language during a comparison. With regards to C#/.NET 6, it is now easy to: - Have zero-allocation code through the whole stack, making garbage collection zero/near-zero. [Span , Memory ] - Distribute pla…

I think many of these complaints tend to be focused on the aging Mono runtime experience used by Unity pre-DOTS, or classical pre-.NET Framework 4.5.

Agreed, that would be a worthwhile caveat for authors to add.

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

#142

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], wh…

>I don't know what it is about game development that really brings out the yak shaving in people. People get into game development because they want to have fun programming. Getting projects done involves a lot of things that are not fun, so it usually goes nowhere because the incentives are misaligned. I've noticed this in many hobby professions - eg. hobby woodworkers spending more time on creating workbenches/tool…

What's the point in life if you don't get to work on what you find interesting. Those Yaks ain't going to shave themselves you know.

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

#143

It's unfortunate that the majority of comments are centered around Yak Shaving rather than the amazing leaps that this small language has done.

Yak shaving is easy to understand and evaluate, whereas the value in creating a language makes no sense to anyone outside the language scene.

Most people have no way to guess of the new ideas will be influential, but we do know we aren't interested in using niche tools regardless of what they are.

It could be an amazing leap forward for computer science, or a slightly interesting toy, and either way it's above most people's heads.

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

#144
> We're adding a parallel keyword

Why is there a need for a "parallel" keyword? Can't the compiler decide for you whether to parallelize a loop for you?

If the decision to parallelize depends on the data, couldn't the compiler generate code for both implementations and select the right one at run time?

Or maybe the programmer could describe in code what they expect the data will look like, and the compiler will take a decision based on those annotations (and other signals, such as the HW the program has access to, what the programmer wants to optimize for (memory? latency?)).

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

#145

Earlier quoted context omitted.

For me, at least, I like to write my own engines to get the end-user experience I want. Every game engine comes with a million little decisions about how games should work by default, and writing my own engine lets me make those decisions for myself. In the same way, every React app eventually starts to look and act like the Reddit redesign, but many web developers consider that more of a benefit than a drawback.

> every React app eventually starts to look and act like the Reddit redesign, Not every unreal engine game starts to look and behave like gears of war. If you drop a bunch of asset packs from the store it's going to look like every other asset flip out there, but so will your game engine if you use the same assets. > , I like to write my own engines to get the end-user experience I want. My day job is working in unre…

Many Unreal games released around the time of the original GoW did look very similar though. I think it was the lighting. Two examples: Bioshock and Batman Arkham Asylum.

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

#146

Earlier quoted context omitted.

> Game development is a weird place. You want to be low level to get the most performance, but you also want to be expressive to be able to write an ambitious game. The vast majority of games don't need to be low level for performance. Practically nobody outside of massive AAA studios is writing architecture specific assembly for modern PCs or consoles (and even in those studios, there are very few people doing so).…

Depends entirely on what you want to do. Use a bog standard engine, and you get Satisfactory. If you build your own, you can have Factorio. The former will never reach the sort of simulation complexity the latter can even on modest hardware.

> The former will never reach the sort of simulation complexity the latter can even on modest hardware.

You're comparing games rather than engines here. There is no reason at all that you can't write your simulation logic in vanilla bare bones C++ as factorio has done, and still get the benefit of using an existing engine. You get all the neat (and hard) things like serialisation, multiplatform support, networking, asset management, patching, and a bunch of other things. Sure, factorio may not need a 3d renderer, but it definitely needs and uses the rest of what I listed above.

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

#147

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

As much as I think the other replies to this question hit the nail on the head, I think there’s more to it than just tool obsession. Software developers are in the fairly unique position where most of our tools are software defined. We are experts in the discipline required to improve our own day to day work lives. How many other professions have this liberty? Woodworking does to an extent, carpenters regularly make…

It's hard to tell what benefit there actually is from this kind of thing. There's definitely great new tools developed all the time, but most of them seem to be planned megaprojects.

I've never seen a custom build system or VCS or personal/project specific tooling I'd want to use.

Seems like most of it happens just cause devs enjoy it.

Making your own clamps seems very much the same.

The other reason is there's a real cult of assuming that minimal is always best, and devs resent using any tool that has more features than they absolutely need.

They also resent any more opinionated structure than they need, even if it makes things safer and easier, because they seem to really enjoy blank canvas creativity.

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

#148
post #24

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

Why are musicians so obsessed with their instruments? Just use the right tool for the right job, don't call yourself a "pianist" or a "drummer", call yourself a musician .

Playing an instrument is harder than any basic non-mathematical programming. It's almost shocking to finish a project, clock out, practice guitar a bit and realize the difficulty difference.

Buying stuff on the other hand is very easy.

Just like running is(I assume, having never seriously done any sports) way harder. Buying more crap and then not even using it is easy.

Everyone always wants their fast instant gratification hits, regardless of hobby.

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

#149
post #130

Earlier quoted context omitted.

Game development methodology has fascinated me recently. With the Battlefield 2042 debacle, its interesting to compare it to what I know (financial trading platforms). With trading platforms, they last for years, decades maybe. They're created with some ideas around how to manage performance and to support evolving requirements. Developers know this thing is going to be around for a long time, so its treated as such.…

If you don’t mind a digression for someone who needs help… What is the architecture pattern of a trading platform? I am looking to build a system that is able to: - receive 1000s incoming streams of data - save the data - make data available to live subscribers The closest analogous system I can think of is bond/stock/commodity/etc price subscriptions for traders. I feel like this many in - many out data stream archi…

I assume your live subscribers are external people over the internet?

The trading platforms I've worked on tend to order things into a single stream that you can act upon. This helps with testing, race conditions, auditability. You will want to be able to replay an exact series of events to recreate conditions.

LMAX Disruptor[1] and Aeron[2] are two open source examples of something widely used, either using the libraries themselves or as concepts.

Some things that trading systems (generally?) need which you may not, which might simplify your architecture:

- Every message must be delivered and in order. UDP is usually used over TCP, as the platform will likely want more control over handling missed messages. - It will be common to have read/write applications that need to add a message as a response. Writing is difficult as you need to be quick, otherwise a subsequent message from another application might invalidate your message.

Do subscribers need older data? How do dropped packets impact the system? Can they just be forgotten? What latency requirements do you have? Do subscribers also write to the same stream?

- [1] https://lmax-exchange.github.io/disruptor/ - [2] https://github.com/real-logic/aeron

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

#150

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], wh…

>I don't know what it is about game development that really brings out the yak shaving in people. People get into game development because they want to have fun programming. Getting projects done involves a lot of things that are not fun, so it usually goes nowhere because the incentives are misaligned. I've noticed this in many hobby professions - eg. hobby woodworkers spending more time on creating workbenches/tool…

> People get into game development because they want to have fun programming

Totally agree. I think the only real issue here is expectations. If the project mentioned was crowdfunded specifically and only with the goal to deliver a game, then I think people would be right to be a little bit irked that the developer is instead tinkering with their own programming language rather than the game, after eight full years. However if the project was funded with the understanding that the developer was just going to explore and share the process of game development and everyone is on board with them going off-piste to develop something interesting, then I guess that's fine.

That said, the amount of money in question is $67k spread over 1660 backers (~$40 each) so it's not like this person has grifted millions then done a rug-pull :)

Post reply on HN