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…
Accidentally making a language, for an engine, for a game
221–230 of 232 posts
Re: Accidentally making a language, for an engine, for a game
#222Earlier 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…
Re: Accidentally making a language, for an engine, for a game
#223Earlier 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.
Re: Accidentally making a language, for an engine, for a game
#224Earlier 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?
Re: Accidentally making a language, for an engine, for a game
#225I 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…
Re: Accidentally making a language, for an engine, for a game
#226Earlier 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…
Re: Accidentally making a language, for an engine, for a game
#227I 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…
Re: Accidentally making a language, for an engine, for a game
#228Earlier 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…
Re: Accidentally making a language, for an engine, for a game
#229I 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…
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
#230That 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.