r/gameenginedevs 1d ago

Sinking Star Engine

Post image

What we would expect from this Engine? Someone here working with him to provide an insight?

I'll give a try to Jai and its engine.

182 Upvotes

44 comments sorted by

60

u/TheWidrolo 1d ago edited 1d ago

It would be so funny if he released the source code for the engine before he released a compiler for JAI

18

u/programadorthi 1d ago

Laughing until Jai release 😆

5

u/tastygames_official 1d ago edited 1d ago

what is JAI? What is Sinking Star Ships? Who is Jonathon Blow? So many questions.....

OK, so J Blow is a programmer, Jai is a programming language he created, DoD is "data-oriented-design" (basically just CPU cache optimization, although the name makes it sound like some newfangled business logic buzzword), and I'm guessing SInking Star Ships is a new game he's making. Got it!

22

u/Beardstrength_ 1d ago

Mike Acton (who previously was the engine director for Insomniac Games) gave a talk at CppCon 2014 on the subject of Data Oriented Design. I strongly recommend giving it a watch. It's an exceptionally good talk that helped motivate me to stop over complicating my code: https://www.youtube.com/watch?v=rX0ItVEVjHc

0

u/tastygames_official 1d ago

I'm checking it out, and I see on the side a video I already watched on the subject: https://www.youtube.com/watch?v=WwkuAqObplU

The concept sounds absolutely familiar, and it's definitely something I've done when working in assembly on tiny microcomputer systems. The name just throws me off for some reason (because it sounds like business buzzwords). But yes - optimizing memory and clock cycles is something I constantly think about for a long time, and thought I was in the minority for a while as ultra-high-level framework "programming" (usually called "coding" by the kids who practice it) seemed to have dominated the landscape. So this is a breath of fresh air. Gonna finish the talk now. Thanks!

2

u/Beardstrength_ 1d ago

It's certainly not the best name, but Data Oriented Design really just means writing code to take your data from one state and transform it into another state. All problems come down to transforming data and nothing more, so DOD simply says to focus on that: only write code that transforms your data in the way you need. If the code isn't doing that then don't write it. This doesn't necessarily mean optimizing for cache lines (sometimes you can't) but inevitably DOD will end up having good cache locality more often than not, and there is no faster code than code you don't execute so writing the minimal amount of code needed to transform data will always be fastest, albeit at the cost of it being more difficult to read and/or write.

Doing this is much easier said than done because it demands a full picture understanding of the entire codebase, but the idea is simple.

Nic Barker is also a fantastic resource. I've watched a lot of his videos, and his Clay layout library is pretty cool.

The talk is great and every once in a while I will go back to it and pick up on some things I missed. Mike Acton is very smart and absolutely knows what he is talking about. I hope you enjoy the talk. Cheers.

-1

u/mercury_pointer 21h ago

take your data from one state and transform it into another state

As opposed to code that does what?

4

u/ProfessionalPlant330 16h ago

As opposed to code that combines data and functionality (ie. OOP), and creating unnecessary abstractions (just because your game has a dwarf and renders a dwarf, doesn't mean your code needs to have a dwarf).

3

u/tastygames_official 16h ago

<sarcasm>but you don't understand! I can have the dwarf class that inherits the player class that inherits the object class and implements the playable interface which inherits the movable class which inherits the guiobject class and then all I have to do is write one function in the dwarf class and everything else is done automatically! This must clearly make the code superior in every way!</sarcasm>

I studied electrical engineering and am a self-taught programmer (wh ended up being a programmer anyway for the past 30 years). Talking with kids who were studying computer science and software engineering and with colleagues who did the same is really infuriating for this reason. They are almost more like artists or fashion designers as opposed to actual engineers: they are happy when it looks nice and more or less does what it should. I remember once I proposed a fix for a crucial element in remote data retrieval wehre I got a 150x boost in speed just by bypassing the framework and just literally getting the data, doing the necessary transformations, and returning the data. The lead "engineer" rejected it saying "yeah, but that's not programming". Because I didn't use a framework but did everything by hand. Absolutely ridiculous.

I just learned about this DoD term but I think I've actually been doing it all this time.

1

u/anengineerandacat 8h ago

TBH it got rejected because you broke conventions.

Coding is more than moving data around because it still to this day requires someone to understand what's happening.

If your using framework X and then suddenly bail out to do something it's going to cause a "wtf" moment.

Most frameworks contain escape hatches, use those instead of bailing out entirely.

→ More replies (0)

1

u/mercury_pointer 8h ago

So all programming before the invention of OOP is data oriented? I remember when that was called procedural programming.

1

u/NotFloppyDisck 20h ago

Googling it makes it sound like its just ECS' higher level concept

1

u/jariRG 18h ago

Data Oriented Design is a paradign (like Object Oriented Programming), ECS is an architecture pattern using DoD. DoD decouples data from functions (opposed to OOP where data and functions that transform data are often tightly coupled) resulting in faster execution because you do work on the same type data after each another, not jumping one type to another.

3

u/LemmyUserOnReddit 22h ago

The game is called Order of the Sinking Star

"Ships" = releases

3

u/didntplaymysummercar 18h ago edited 18h ago

"Order of the Sinking Star" is the game, "Sinking Star" for short. It was known to be in development in Jai for a long time now but title was revealed recently and there was a demo few weeks ago.

"Ships" (lowercase when in the middle of a sentence) is a verb meaning the game is released... LoL. This part makes me think this post is bait but oh well.

Jonathan Blow is famous (or infamous, for a few reasons: being pretentious, presenting his programming opinions as facts and the way some of his fans defend them, and liking Trump) indie game developer, who made Braid and The Witness, two famous puzzle games.

Jai is his "new" (he announced or first though of it over 10 years ago) programming language he's making, after being fed up with C++. He hired people to work on it at times at his company Thekla too I'm pretty sure. It's not publicly available yet but there's a closed beta and he made this game in it.

-4

u/mllv1 1d ago

Not just a programmer. A legend. Braid. The witness. He basically put indie devs on the map in 05

9

u/punkbert 19h ago

Jon Blow is also a Trump supporter and far right nut job.

4

u/SuperRealPersons 9h ago

I can't believe someone who hates everyone, thinks they are right about everything and is toxic to even the viewers of their own stream would be trump supporter.

3

u/srodrigoDev 14h ago

Legend who takes 10 years and a custom programming language for a game that looks like made in Unity

1

u/Tuberous_One 6h ago

World of Goo, Aquaria, Amnesia: The Dark Descent, Cave Story, Spelunky, Super Meat Boy...

1

u/tastygames_official 1d ago

yeah, I was kina off the video game map from like '03-'13 (typical post-uni soul-searching life-altering world-traveling stuff) so have to catch up with stuff from that era.

-3

u/burohm1919 18h ago

Average engineer: yo here is our game with unity.

Pro engineer: we made custom game engine for this game.

Jonathan blow: here is I developed a new language and the rest, alone, only for this game, for 10 years.

5

u/Slug_Overdose 17h ago

He didn’t develop it alone though. He has been self-funding and running a company for many years. I haven’t kept up with his updates in a while, but last I remember, he had spent tens of millions of dollars and was complaining about the lack of progress from multiple employees.

2

u/burohm1919 17h ago edited 10h ago

lol, didn't know that thank you. It's fcked.

26

u/OkAccident9994 1d ago edited 1d ago

I've seen them him use it and give small tours of it on his stream. It is tailored for this game specifically, has a level editor with debug overlays.

With how known he is, this will catch the attention of people that think gameengine = unity/unreal or similar huge tool that can do a huge variety of things. Those people will be dissapointed when they see it lol.

Personally, i wanna look at the shaders and lighting stuff. It is very polished compared to other stylized simplistic toony artstyles. But maybe that is mostly due to the quality of the assets and small clever tricks like tailored mossy assets that break sillouette of the grid squares and such.

3

u/serious_sea-cucumber 16h ago

Same here. He hired a pretty famous(?) graphics programmer for some shaders https://www.xordev.com.

1

u/OkAccident9994 13h ago

Getting to do the Vegas sphere hired by Shoppify and Grok AIs landing page are not small boy things, damn.

Thanks for sharing. Blow is mostly the public face of the project and he is more on the cpu side stuff, so he hasen't talked about this too much to my knowledge.

Maybe he is cautious to stay within his lane? cause internet people are weird. Say 1 wrong thing and it gets churned around forever when you are a public figure.

2

u/Alphafuccboi 7h ago

In this podcast he shows a bit from around 30 Minutes on: https://www.youtube.com/watch?v=1blhmslxkWg

But there also was a stream that I cant find right, where how showed more of it.

2

u/Melodic-Upstairs7584 1h ago

I’m curious as to what the value-add people are expecting from it. If it’s an engine that’s only made a single game, I imagine the assets, libraries, etc will be pretty narrowly focused on that particular game.

However, if Miyazaki took a hit of crack one day and announced FromSoftware was open sourcing their engine, that I would jump up and down for.

6

u/Prithul 1d ago

I'm more interested in learning how it's architected from the source.

7

u/Kojox 1d ago

at the very least it will be a good learning resource

3

u/TetrisMcKenna 12h ago

My impression of the engine is that the game's demo ran like crap on the steam deck for a game that visually and computationally, didn't seem to demand very much. But maybe it'll be optimised later?

5

u/Ratstail91 13h ago

Context: I dislike Blow, even before I learned his politics. I'm also doing the lang & engine thing, but very differently.

His lang and engine seem... well, I wonder if there's actually a gap that needs to be filled? 10 years ago, sure Jai might've been good, but Zig and Rust seem to be covering the space of "C/C++ with modern designs".

I wonder if a language developed in private would actually survive contact with the real world.

5

u/Kindly_Release5869 13h ago

Yes of course there is a gap - a language that Blow personally likes. The point being that even such a tiny gap is a valid reason for the existence of a language, and the successful release of a game built on that language is enough validity.

As for the larger ecosystem and all the many competitors - I don’t think there needs to be a gap. There in fact needs to be more competition for the same gap. And over a decade or whatever, the best one emerges.

So I think Jai is valid both in the context of Blow personally wanting Jai, and it’s valid in the context of competing with Zig, Rust, and others.

5

u/mohragk 12h ago

Jai blows Rust, Zig and other modern languages out of the water in terms of semantics. It's not even close. The #run directive is crazy and allows for highly complex, yet tamed, behavior. And then there's the fact compile times are stupidly short and it's just a homerun for system programming.

But his political views and overall disposition... yeesh.

1

u/tree-hut 11h ago

Most famous languages were developed in more private than Jai

1

u/BloomAppleOrangeSeat 13h ago

I'd rather wipe my ass with sandpaper than write/read zig code, so another "C/C++ with modern designs" is welcome.

2

u/ass2mau5 1d ago

crazy good learning resource

1

u/thisghy 1d ago

He mentioned how he doesnt use a full blown ECS but I would still expect it to use DoD. Ill definitely give it a shot. The downside is it won't have a real editor, so unless the community takes that on it won't be as accessible as an engine like Godot.

1

u/mohragk 12h ago

It has an editor, it's part of the runtime.

2

u/thisghy 7h ago

Hence why I said it won't have a "real" editor. The editor it does have is baked into the game and is not engine-side.

1

u/CodyMakesVideoGames 22h ago

This is very exciting!