Brian Lovin
/
Hacker News
Daily Digest email

Get the top HN stories in your inbox every day.

pelagicAustral

Jonathan Blow has been working for ages on a new programming language that seemed pretty cool last time I checked. Joi, i think it was called.

Overall just looked like a more comfy C++ designed specifically for game development.

Correction: the language is called Jai https://inductive.no/jai/ Joi is Ana de Armas AI version.

doodpants

Just to be pedantic: the command is jai.exe, and the source file extension is .jai, so everyone calls the language Jai. Except Jonathan Blow, who only ever refers to it as "the language" in his videos. I vaguely recall him saying in an interview that he doesn't want to commit to a name just yet.

pelagicAustral

Ah! thats pretty cool. I wasn't aware of that.

Tozen

Jai has not been released to the public. If people are looking for a language that has been very heavily influenced by it and is in a near category, then that would arguably be Odin (https://youtu.be/M763xHjsPk4). Odin is open to the public, where nobody knows for sure when Jai will.

If looking for a more general purpose feature rich newer language then people might want to also check out Vlang (https://github.com/vlang/v/blob/master/doc/docs.md).

generichuman

The community library wiki will probably be more useful to people who don't want to watch a bunch of videos: https://github.com/Jai-Community/Jai-Community-Library/wiki

undefined

[deleted]

agluszak

I'm looking forward to Rust's adoption in popular game development engines. There's https://bevyengine.org/ in the meanwhile

Thaxll

Rust will be nowhere in the next 10years for gamedev, not even sure it will be used at any point. The only one I know using it to some extend is Embark but they have a very good engineering culture ( ex DICE / SEED ).

For people not working there, it's kind of a blackbox in term of tooling / pipeline etc ... when you work in webservices you have a ton of opensource knowledge / tools available, videogame are kind of different they re-invent a lot of the stuff in-house.

steveklabnik

One interesting development in this space: "Treyarch has been gradually integrating Rust into our tools and pipeline since 2018."

https://research.activision.com/publications/2021/09/the-rus...

Not in the actual games themselves yet that we know of, but still very cool!

mustache_kimono

I think this is sadly true. If you follow Game Devs with Large, Fragile Egos Twitter (I'm not naming names!), you'll hear a lot of "I hate (but secretly also love) C++ (because I know it intimately)" and "Rust isn't the answer" because they can't iterate fast enough.

My guess is that's probably a function of them thinking they can learn Rust in a weekend, because they are 10x-ers, instead of any inherent problem with the language. There is also a machismo aspect to C/C++, especially in game dev ("I eff with raw pointers all the time!").

But, if you read the article, Tim Sweeney seems to be saying "I want a fast functional language" which Rust is. One thing I am less clear on is whether Rust is better re: modularity and extensibility.

generichuman

> Tim Sweeney seems to be saying "I want a fast functional language" which Rust is.

He also wants a garbage collector (pg. 57) and Pascal / ML family syntax (pg. 58). He clearly wants https://nim-lang.org/.

munk-a

A lot of game development happens under the pressure of constant crunch and low budgets. I'm not just talking about EA and their constant penny pinching but small studio releases are a huge gamble with a steep upfront cost (Sean Murray, the face of Hello Games that released No Man's Sky, famously took out a large personal mortgage against his house to keep the studio afloat) and no guarantees of success after release - games can fail for the most absurd reasons.

I think a lot of game programmers will keep an iron grip on using C/C++ for a while simply because they don't have the luxury of exploring other options. That said, I think Rust is exceedingly well designed to supplant C/C++ - game development really wants to minimize runtime failure cases and push more errors onto the compiler and static analysis due to the size and complexity of the project and Rust manages to deliver that without compromising on the performance needs - Go was a similar hopeful for a while but the lack of exception throws even under controlled situations is very difficult to deal with (I know you can panic and catch panics but it is a very rudimentary system).

adamrezich

why would a preference for the use of raw pointers indicate "machismo"?

do you think there's any possible other reason why game developers would choose to not use rust aside from some hypothetical jerkbag strawman that exists in your mind? is it possible that there's any practical reasons you haven't considered?

eska

Your first paragraph sounds so unprofessionally dismissive that I doubt anyone reads the second.

speed_spread

I love Rust, but it's "righteous" nature might go against the grain in many game shops where quick and dirty is not only accepted practice but where anything more rigid than C is deemed necessarily inferior. Something like Zig might have a better chance in that space.

littlestymaar

Are there game studios out there still using C? From what I've heard the majority is using C++, so switching Rust just makes your life easier without changing too much (C++ devs already uses templates, smart pointers, RAII, etc. which Rust has too, but with a better design (a stronger type system, and also hindsight from 30 years of C++)).

From what I've seen on HN, Zig seams to appeal people who like the “simplicity” of C and find Rust too complex, but I don't think anyone coming from C++ could find Rust “too complex” (a bit different, with a learning curve indeed, but not “too complex”).

z3phyr

> C++ devs already uses templates, smart pointers, RAII, etc.

These are frowned upon in the game industry circles. Most of the game code is C style C++ with occasional function overloading and classes.

ska

I don't know much at all about game development circles, but have a fair appreciation of others areas using c or c++ for combinations of high performance, low level, bare metal, etc. I've found some shops that very specifically use c, but other that use "c++" but that means "pretty c-like, with a few c++ features but don't you dare do x,y,z". Some of these variants are pretty simple, but it's enforced by code/design review (and sometimes tooling) not the language.

generichuman

Zig also tries to block quick-and-dirty stuff, unused variables are errors for example. There are formatting related things too.

This is obviously not as "righteous" as Rust as you put it, but when you look at the source of some shipped games, you'll see that some programming best practices are ignored.

None of this will block Zig from being used in games, of course, but I wish they had a "let me work in peace until I get this working and then we can worry about that small stuff" mode in the compiler.

zaphar

I think the reasons languages like Zig choose not to make this configurable is because other than the odd exception occasionally very few shops bother to turn on the stricter mode or are actively hostile to the stricter mode.

And when you rely on other libraries that sort of less strict mode tends to start leaking out everywhere since that one critical library you really don't want to rewrite won't compile when you use strict and you don't want to carry a bunch of patches for it either.

The net result is if you don't start out enforcing cleanliness your community of users will unintentionally devolve into unclean over time.

naikrovek

> when you look at the source of some shipped games, you'll see that some programming best practices are ignored.

yeah. players demand performance because it relates directly to a better playing experience. they demand it with their purchases and their critiques. game developers understand this inherently or they will not be a game developer for long.

honestly, i think a lot of “best practices” are nothing more than an influential person demanding compliance to their preferences, because a LOT of those “best practices” actively reduce developer productivity and runtime performance both; there’s no tradeoff, its just pure loss.

non-game developers could learn a lot from seasoned and experienced game developers, i think, but we imagine ourselves wholly superior when we absolutely aren’t.

runevault

There are at least some studios using Rust. Chucklefish did for a while though they ended up stopping. Ready at Dawn was using Rust at one point but not sure if they still are. Embark still is so far as I can tell.

It certainly isn't a language for every gamedev shop but some seem to be taking it seriously.

msmenardi

You can always use "unsafe" code in Rust. At that point you're basically writing a block of code in C++ with the guarantee that it'll interface correctly with all your other "safe" code.

Jensson

Have you ever tried writing significant amounts of unsafe rust? It isn't like C++ at all, you get the worst of both worlds.

ksec

>I love Rust, but it's "righteous" nature

Finally. Someone gets it. It has nothing to do with the language itself. But the culture and philosophy of the tools / language / framework or library.

junon

I'm writing a kernel in Rust, having a great time. I'm not sure what all the arguments here about it not being suitable for game dev are but I would imagine it works perfectly for game dev.

throwawaymaths

Suppose you wrote a kernel in rust. Now there has been a CPU regression and you have to implement a retpoline. Obviously you don't want to implement it in places where you don't have to. Would this be easy? Or hard?

kriro

I find it interesting that one of the go to "let's learn Rust" books (Hand on Rust) is cantered around building a rogue like game. I feel like this will have a subtle but noticable (long tail) impact because many people who start learning Rust will do so on gamedev examples. The next logical step for a couple of them will be "all right now I'll build my own cool game". Maybe it'll be a tiny fraction but I feel there will be more good people moving into the Rust-Gamedev area than if that book was about building a web server.

maxbond

Also worth noting that you can write Godot native plugins (I don't think that's the correct terminology - forgive me, I'm not a Godot developer) with Rust, and wire them up with GDScript. This seems super promising to me as far as Rust in game dev.

https://godot-rust.github.io/

summerlight

Not so sure about this, it may take quite a time. It's not because of language's strength or weakness but simply because the upfront cost of building a modern game engine from scratch is getting more expensive and expensive. It's going to take a decade to build a competitive ecosystem against Unity or Unreal, assuming the best scenario.

dxuh

I am sure it will happen, but (in my opinion) there is no way that it will gain significant popularity. It's just too high friction and in game development being low friction is imho one of the most important attributes of a programming language.

cardanome

Rust itself is high friction but the Bevy Engine is offering a ECS System with delightful ergonomics.

So while I share the general sentiment, who knows, it might actually work out. Maybe Rust can be tamed.

dang

Related:

The Next Mainstream Programming Language: A Game Developer’s Perspective (2005) [pdf] - https://news.ycombinator.com/item?id=30139794 - Jan 2022 (1 comment)

The Next Mainstream Programming Language: A Game Developer's Perspective - https://news.ycombinator.com/item?id=2802897 - July 2011 (1 comment)

The Next Mainstream Programming Language: A Game Developer's Perspective (2006) - https://news.ycombinator.com/item?id=2044261 - Dec 2010 (18 comments)

The Next Mainstream Programming Language: a game developer's perspective - https://news.ycombinator.com/item?id=1296608 - April 2010 (22 comments)

The Next Mainstream Programming Language: A Game Developer’s Perspective - https://news.ycombinator.com/item?id=1029820 - Jan 2010 (14 comments)

silvestrov

> All dereference and array accesses must be statically verifyable, rather than causing sequenced exceptions

This is such a pipe dream. In so many cases you will not be able to verify array index statically except by having the programmer write assert statements which the compiler could do automatically when it can't prove correctness (like the java JIT which can lift out bounds checking from loops).

SleepyMyroslav

Its funny how nothing of that actually got implemented.

Instead we have visual scripting to allow people that cannot program at all to contribute.

There are no near future improvements that fit game development people. All people who could have been creating and using new languages are not even going to go to job interviews. Because ads, fin-tech and web are paying a lot more.

naikrovek

Blueprints in Unreal are a very good prototyping tool for non-developers.

SleepyMyroslav

But how did they improved life of those of us who are programmers and work on games?

The article was about programmers being able to express their intent in code better. Life went completely different way. And most of comments even in 2022 here are still following that old dead end path and arguing benefits of different programming languages that maybe will change game industry.

naikrovek

have you had a back-and-forth with someone who sat with you so you could type while they designed a system, because they can’t code and you’re not a game designer? Blueprint eliminates the developer time needed for that design work, and lets the designer design at their own pace. when they are happy, you (the developer) can turn that into code quite quickly, without the days required pairing with the gameplay designer to get the behavior where they want it.

More generally, there are benefits to every programming language ever made, if you count learning what not to do.

rnk

That slide deck is pretty interesting just to see the 10k foot vision of a game. I'm working at that level in infrastructure software and the vision of what comes together for the game development and design is fun to see.

bluedino

    Resources:
    - ~10 programmers
    – ~20 artists
    – ~24 month development cycle
    – ~$10M budget
$166,666 per person a year? Does that include office space, computers, tools, software? Seems very low.

justinlloyd

In 2022, in a HCOL, $150K base for an exceptionally senior/lead developer with 10 to 15+ years of experience, writing hard-core C++ and multiple shipped AAA titles, in the games industry, working on console or PC or mobile, with a BSc, that isn't connected to blockchain/web3/nfts/crypto, is actually on the high side. If the developer is pure Unity (even if they are writing C++/HLSL every day), you can cut another $20K off of the price. Senior developers sit around $100K to $120K. Mid-levels below that. I am specifically talking HCOL US wages. I got a "generous" offer last year where the company struggled to get to $160K base for the Los Angeles area. There's a reason that Roblox, Amazon, Microsoft, Google can slurp up pretty much any software developer in the games industry.

Artists and designers will rarely break $100k. There will also be project management (director & producer), and QA. Though depending on how the studio is set up, QA might be a shared resource and only get line items towards the end of development.

Tool & software budgets in the games industry are miniscule. Training and continuing education are non-existent. Bonuses hardly exist. You might get a $40 "special sale" office chair that at least four other people have had before you. Unless you buy your own or get really lucky, that keyboard and mouse you're given has been there since the company was founded and are now considered religious artifacts.

A fully loaded team of 10 developers is going to be one lead, two or three senior SMEs, 50% mid-levels (if you're lucky), and the rest are juniors or developers who are (non-visual) scripters building visual (UI, effects, game play) in Lua or some other scripting language.

We can argue the numbers back and forth in endless pedantry, but my salary numbers are going to be pretty close to reality, with $5k to $10k here and there based on current industry trends. I keep my finger on the pulse of the industry pretty closely. In 22+ years, high-end salary of $100K in 2001 has slowly crept up to $130K-ish in 2022. Over my 40 year career I've spent a good two decades doing AAA development, have been senior/lead/tech director and CTO, and run my own studio, built multiple teams and managed large projects and have hired a lot of game developers over the years.

PainfullyNormal

I remember from my (very!) brief stint in the games industry that there are certain specialists who make considerably more than that, such as game engine, cutting-edge rendering and 3d audio specialists. But, it sounds like it still pays to be the one selling shovels. The company I worked for paid mid 5 figures a month to Unity for one dedicated engineer to help us with our issues.

justinlloyd

Of course there are outliers, without a doubt, but for the most part, wages in the games industry lag far behind "market rate" of the overall software development industry.

meheleventyone

Like all budgets it’s wildly optimistic. I’m pretty sure precisely zero games Epic have made fit.

gervwyk

What would a reasonable rate be in today's terms?

wizofaus

For 2005 though?

aliqot

Even in 2022, this is a Noble's wage where I live.

loudthing

Not when you factor in equipment, travel, keeping the lights on, etc.

debacle

I wonder what the author would think of C# now. Seems he's very much a fan of C++ over C#/Java, which may have changed in the intervening 15+ years.

Personally, I think continuing to use C++ for game dev (it is still the lingua franca) is more about momentum than it being the best choice (in most instances).

His predictions on what computing power will look like "in the future" (e.g. now) are interesting as well. Some have played out, others haven't.

smallstepforman

The author is Tim Sweeney, creator of the Unreal Engine.

wly_cdgr

Cool. So, C++ it is, then, for our next real game

undefined

[deleted]

danschuller

I'd be interested to see some non-text super-IDE integrated programming languages. Maybe even hosted in the webbroswer. I think that's interesting territory that can unlock a lot of value. Simple instant variable renaming, far better commenting and interactive debugging that can all be stripped from a compiled final version etc.

runevault

Have you looked at visual scripting which is popular in games? It may or may not be what you want but it is non-textual way of creating logic. UE has Blueprints, Unity has Bolt (as well as 3rd party ones available on their asset store, but Bolt is the one Unity purchased). Godot had one though it is being taken out of the core engine in 4.0

makapuf

Wow unreal engine in 100kloc of c++ ! Should be a dozen millions now.

Daily Digest email

Get the top HN stories in your inbox every day.

The Next Mainstream Programming Language: A Game Developer’s Perspective (2005) [pdf] - Hacker News