Live data from Hacker News

Porting 58k lines of D and C++ to Jai

yet-another-blog.com

121–130 of 264 posts

Re: Porting 58k lines of D and C++ to Jai

#121

Earlier quoted context omitted.

I’ll pick Unity to talk about here, because I have the most experience with Unity. I’ve gone in more depth discussing Unity “off the beaten path” before and I think people really overestimate how much you are constrained by the way Unity works. This applies both to seasoned Unity developers and to people who only take a quick look at Unity. I claim, - You can use your own physics engine with Unity, - You can model en…

Since you seem to have much more experience in developing games, I'll take most of your word here. Though from my four years of experience in Unity (albeit at a non-professional level), I was always fighting with the engine when trying to build new things. Trying to build complex UI code using Unity's built-in system was a mess, the serialization system always had weird errors and didn't really work well with version…

Yes, I think about Manifold Garden a lot when talking about limitations in the Unity engine.

There definitely are limitations in the render pipeline, and I’ve spent time frustrated because I know how to do something in OpenGL but can’t figure out how to do it in Unity. But the rendering pipeline in Unity has become far more flexible in recent years, and you can make your own custom rendering pipeline. Look up "custom SRP" videos on YouTube if you want to see what that’s like. Here’s one such video: https://www.youtube.com/watch?v=91zUwJwkXNQ

I do remember serialization + version control problems long ago, but these days, serialization uses a text format by default and if you are sufficiently adventurous you can solve merge conflicts in your serialized data. Better to avoid merge conflicts in the first place, though.

Re: Porting 58k lines of D and C++ to Jai

#122
post #50

This person might as well said that he is not planning to finish his game. Screwing around with tooling and languages seems to be a common pitfall to not finishing a game. Why not just use the best ecosystem like Unreal/Unity and get the game out of the door fast?

Ironically, Unreal Engine was in large part born from Tim Sweeney's "screwing around with tooling and languages".

UnrealScript has long been dropped in favour of C++, but I'm pretty sure Unreal Engine wouldn't exist today, or would be a very different beast, if it hadn't been for UnrealScript and the Unreal Editor being bundled with the original Unreal and its sequels/follow-ups, and Tim's personal interest and research into how programming languages might improve game development, in much the same way that Jonathan Blow is doing now.

Can I assume your use of the phrase "this person" means you are unfamiliar with Mr Blow, and his track record in game development? You might want to look him up -- he's an interesting character and has developed some interesting and influential games.

Re: Porting 58k lines of D and C++ to Jai

#123
> All information for building a program is contained within the source code of the program. Thus there is no need for a make command or project files to build a Jai program.

Ok, now I'm curious. Will have to check it out.

Re: Porting 58k lines of D and C++ to Jai

#124
post #4

It's worth mentioning that DMD is a reference compiler and not meant as a production tool. DMD is for fast compile time during dev cycles and testing new language features early. You've got the LLVM and GCC compilers for production. The problem with lack of debug info on Windows in D is solved by using LDC with LLDB/GDB to debug You can also ask the compiler to emit CodeView debugging info if you want to stick with M…

> LDC

LDC for Windows is an awkward experience:

https://github.com/ldc-developers/ldc/issues/4047

Re: Porting 58k lines of D and C++ to Jai

#125
post #108

> a big chunk of these vulnerabilities would not exist if C and C++ [...] simply didn’t have zero-terminated string, initialized values by default, had a proper pointer+length type thus replacing 90% of pointer arithmetic with easily bounds-checkable code, and had established a culture that discouraged the prevalent ad-hoc style of memory management. This is Rust's calling-card, so I find this plea for a better lang…

Yeah, I think Bevy[1] is also a great example of something that fits in well with a lot of Rust's strengths while also showing that it's possible to lean in heavily to very gamedev centric approaches with how it approached ECS.

I think there's is some truth around try to avoid unsafe, that said the times I've dropped down into it I've found myself chasing heap corruption or use-after-free on more than one occasion :).

Some of Jai's AoS/SoA transforms look neat and certainly interested to see what it looks like once it starts opening up more.

[1] https://bevyengine.org/

Re: Porting 58k lines of D and C++ to Jai

#127
post #4

It's worth mentioning that DMD is a reference compiler and not meant as a production tool. DMD is for fast compile time during dev cycles and testing new language features early. You've got the LLVM and GCC compilers for production. The problem with lack of debug info on Windows in D is solved by using LDC with LLDB/GDB to debug You can also ask the compiler to emit CodeView debugging info if you want to stick with M…

> LDC LDC for Windows is an awkward experience: https://github.com/ldc-developers/ldc/issues/4047

I'm not seeing a major problem here, you just need to install MSVC++ alongside it.

Re: Porting 58k lines of D and C++ to Jai

#128
post #41

Earlier quoted context omitted.

Over the past decade, I watched HN's and Reddit's hype waves cycle through server-side JavaScript, Golang, Haskell, and now Rust. With plenty of secondary favorites in the mix like Julia, Nim, Zig, etc. A lot of these things do find some modest niche to survive in. But none really take over the world as originally forecast by the hype wave. Ultimately, you either enjoy tinkering with programming languages for persona…

While I agree with most of your points, I am not sure what this has to do with the parent you're replying to. The one part I disagree with is: > A lot of these things do find some modest niche to survive in. But none really take over the world as originally forecast by the hype wave. One of Blow's critique of C++ is specifically that it's trying to be the everything language. Jai's goal is to be for video game develo…

I was surprised to recently learn that embedded isn't on Jai's roadmap. I respect the decision re scope and feature-creep. It was surprising, given that usually languages with the performance, and low-level capabilities of C are also suited for embedded. Ie: The overlap with existing languages is almost 100% when you look at A: Languages that are fast/LL. B: Languages that are suitable for embedded. (The usual suspects of C, C++, Rust, Zig, and ADA)

Re: Porting 58k lines of D and C++ to Jai

#129

I'd love to see more about Jai. I don't understand why they are not working in the open, this is a tool, not a game, input for a large community is extremely valuable. But as brilliant as Jon Blow is, he is at least equally as stubborn. Fast compilation and nice, easy to read syntax with good default is exactly what I am looking for. I can understand the hype about metaprogramming, and its potential usefulness, but I…

> input for a large community is extremely valuable In the early stages, everyone has a thousand opinions and it’s not clear even to those working in jai daily what exactly the language wants to become and which patterns should be supported. From what I understand, Blow intends to gradually open things up as the project matures, which I think is 100% the right approach for something fairly experimental and with a lot…

It's 8 years old

Re: Porting 58k lines of D and C++ to Jai

#130
post #83
post #48

Earlier quoted context omitted.

It's false, he never said that it was only for games.

I mean this is a little pedantic. It's true he never said that only games are able to use his language as if it were some kind of law, but he did say that his language is being designed to address issues that video game developers face and that was his main, and almost exclusively his only concern. If other domains benefit from that, he's not going to actively bar them from using his language, but he also won't give…

It's just false, i'm in the closed beta and there are a lot of people that use it for other things than games. When they find a bug or have a suggestion he give them the same consideration as anyone.
Post reply on HN