Live data from Hacker News

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

verdagon.dev

221–230 of 232 posts

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

#221

Earlier quoted context omitted.

> None of these are nearly as hard as cult-of-always-use-an-engine makes them out to be. I never said they were _hard_, but they take time. Time that can be spent on your game. > You don't have to wait for Unity to support a new platform, or fix a bug that's blocking you, or implement a feature you want, you just do that yourself. Every system has bugs. You're always going to have to make tradeoffs when building proj…

> Blow has shipped two games in 20 years You say that like it is a bad thing. By (nearly) all accounts Braid and The Witness are lovingly and expertly crafted, unconventional, and brilliant games. He's not making the annual Madden or Call of Battlefield here. > Casey Muratori, who started handmade hero almost 8 years ago, and is nowhere even close to a game Be fair to Casey, Handmade Hero is primarily an educational…

No post body was provided.

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

#222

Earlier quoted context omitted.

> None of these are nearly as hard as cult-of-always-use-an-engine makes them out to be. I never said they were _hard_, but they take time. Time that can be spent on your game. > You don't have to wait for Unity to support a new platform, or fix a bug that's blocking you, or implement a feature you want, you just do that yourself. Every system has bugs. You're always going to have to make tradeoffs when building proj…

> Blow has shipped two games in 20 years You say that like it is a bad thing. By (nearly) all accounts Braid and The Witness are lovingly and expertly crafted, unconventional, and brilliant games. He's not making the annual Madden or Call of Battlefield here. > Casey Muratori, who started handmade hero almost 8 years ago, and is nowhere even close to a game Be fair to Casey, Handmade Hero is primarily an educational…

[flagged]

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

#223
post #218

Earlier quoted context omitted.

Right which is why in the following sentence I limit it to general purpose game engines like Unreal and Unity. Making a toy browser is something you can do as well.

Yea, my point was related to why people so often write their own game engine (and so rarely write their own browser). Writing your own game engine for your own game looks fun and easy from the outset. And in fact, depending on your game, writing a game engine that lets you ship that one game doesn't even have to be complex.

Right but there are smaller scale browser-like things as well which have a more vibrant DIY scene like Gopher, Gemini and so on. We shouldn't take a narrow view on what a browser is if we're not going to do that for a game engine.

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

#224
post #10

Earlier quoted context omitted.

Sounds like it was for the compiler, not the engine itself. IMO Scala is the best general-purpose language going, but it's particularly good for data transformation, so it's a good fit for compilers.

Many years ago I was turned off at Scala for its weird ergonomics (relying heavily on implicits, also the syntax is too wild for my taste) and large build times, along with Project Valhalla still not being finished. Maybe things have gone better for Scala 3?

Scala 3 has put in some specific replacements for the main use cases of implicits, which IMO is a worse approach and a step backwards but I guess you might prefer that. The syntax has been pushed to be a bit more Python-like, but again I don't know if that'll be a plus or minus for you. But on the last point Scala has had "Opaque types" for 3+ years now, and IMO that's a better alternative to what Project Valhalla is trying to do for the cases that it covers.

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

#225

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…

Implementing and refining game tech is not easy, but it's fun, is mostly a science, and gives you rewarding feelings regularly. Game design/production is a mystical dark art (or at least can feel like one) that can be incredibly discouraging, so people avoid it, and avoid the point at which the end is in sight and the game will be judged as a game, by gamers. Modern games leave such a potent impression on our psyche that trying to design one of your own without excessive imitation or feelings of inferiority asks a lot of us. There's also the phenomenon of "devlogs," whose quantity is proportional to development time, and which are useful to show backers that you're making progress (in good faith or otherwise.) And in many cases, somehow they are always long enough to maximize ad placement!!

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

#226
post #130

Earlier quoted context omitted.

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 libr…

This is great thank you much appreciated!

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

#227

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…

It's not game development that brings out the yak shaving, it's programming language development. Game development is just a gateway drug because it provides so many opportunities for good abstractions to make things easier. The mistake everyone makes is thinking that they can create a programming language while also doing X, where X is whatever they had doing when they got the itch to do a PL. Really, if you want to…

Yeah. After wasting two years working on a programming language I realized nobody was ever going to use, I made an oath to just stick to hacking on top of language that already exist

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

#228
post #224

Earlier quoted context omitted.

Many years ago I was turned off at Scala for its weird ergonomics (relying heavily on implicits, also the syntax is too wild for my taste) and large build times, along with Project Valhalla still not being finished. Maybe things have gone better for Scala 3?

Scala 3 has put in some specific replacements for the main use cases of implicits, which IMO is a worse approach and a step backwards but I guess you might prefer that. The syntax has been pushed to be a bit more Python-like, but again I don't know if that'll be a plus or minus for you. But on the last point Scala has had "Opaque types" for 3+ years now, and IMO that's a better alternative to what Project Valhalla is…

Can you use opaque types to make “value-like” matrix/vector types like vec3, vec4, mat4, etc.? This was the biggest reason I eliminated the Java platform as an option for using it in gamedev. The alternative for Project Valhalla is to either live with the GC costs or use a hack from LWJGL (MemoryStack) which is very unergonomic to use.

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

#229

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…

I'm somewhat guilty of this when working on a desktop app. I made a state management library, though I realized I cannot possibly finish it in full so I spent only 100h on it to get it minimally working. I don't consider it a waste though. The waste was trying to come up with some kind of strict error handling ala Rust in TypeScript, I went far with this and got an idea to do it with minimal development, thankfully I pulled the plug on this after a month and went back to work.

As a solo bootstrapper founder it's really hard to do development and business / marketing in the early stages. Focusing purely on development is preferable when time limited, however, I think it's sometimes helpful to stop development and take a break to spend on business / marketing - i.e. some education, or preparing marketing content for the future. This tends to put in perspective how much time sometimes is wasted on meaningless things and gives clarity on what is really important - shipping a quality product.

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

#230
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…

> [D]on't make the mistake C, C++, and Rust did, using a prefix dereference operator. This is only a mistake when the deference is frequently followed by postfix operators, in most cases field and method accesses. Unlike C or C++, Rust does auto-dereference that essentially eliminates such situations and thus a prefix operator doesn't do much harm.

C and C++ also have a postfix field access operator. People still have to write "(*p)->m". Being obliged to write "(*p).m" is no better.
Post reply on HN