iLemming
3 days ago
I just can't wait to see how Jank gets production-ready and absolutely blows the indie gaming community. Hopefully, very soon.
msk-lywenn
3 days ago
Programming is a tiny part of game development. No programming language would blow anything in the indie game community. It would be nice and welcome, but it wouldn’t revolutionize anything.
diggan
3 days ago
> It would be nice and welcome, but it wouldn’t revolutionize anything.
I dunno, it'll certainly revolutionize my world once it's ready. A editor connected REPL, changes to running games on the fly while keeping existing state, using a well-designed language like Clojure but getting the performance (or similar) of C++ and native binaries.
It's pretty much a win-win-win for me, especially if I can replicate the speed of development I get with normal Clojure but for game dev.
dapperdrake
3 days ago
If it is built in Lisp it will end up very customized. Just look at how far people take their emacs setups. It will be like a bespoke glove.
diggan
3 days ago
Yes, you don't have to keep on selling it to me, you've hit oil already! I'm eager to reach the future :)
iainctduncan
3 days ago
my understanding from game dev friends is that's precisely what they do, no?
iLemming
2 days ago
> my understanding from game dev friends is that's precisely what they do, no?
Do what? Program games in a Lisp engine? That's quite atypical, which is unfortunate. It's almost impossible to convey the sensation of "living" within a Lisp machine. Those who haven't experienced Lisp programming and haven't become accustomed to the process cannot grasp the dopamine effect of writing instructions virtually anywhere, at any time, changing the things on the fly. It's enormously empowering, and it's incredibly liberating.
That's why those who at least once unleashed the true power of Emacs simply can't feel the same joy in anything else. Other editor and IDEs talk about features like "keyboard macros" and how powerful they are, yet they fail to grasp that Emacs operates on an entirely different plane - its keyboard macros are programmable constructs that can be created, modified at the Lisp expression level, and converted into full-fledged functions from any recorded sequence.
Using Emacs is like playing a video game where you level up by writing s-expressions. The profound satisfaction of shaping the system to match your exact needs is immense, and sadly remains vastly underappreciated. Even when curios newbies come to explore this "immense power of Emacs", they don't even realize that it all is possible only because of Lisp.
It just feels weird to me that the gamedev community outright rejects the idea of programming in Lisp. To me (a Lisper) writing games that way makes absolute sense - games should be written as if you're playing one, right?
dustingetz
2 days ago
the Arcadia team spent several years on this hypothesis, I am not sure the idea of a Clojure REPL for gamedev is free of impedance mismatches
ijk
2 days ago
Arcadia's biggest drawback was that it was dependent on Unity, which meant that it had all of the issues that Unity had plus some new ones. Without source code access it's difficult to exceed the features/performance of the base engine.
Maybe they've fixed some stuff (or ported it it Godot) since I last checked it, but the general lack of editor support, the clash between how Unity wanted to operate and how Clojure wanted to work, and usual Unity problems kept me from building anything significant in it.
Karrot_Kream
2 days ago
I'm curious how this would go with something like Janet that is much simpler to interface with C++.
iLemming
2 days ago
AFAIK Janet is not "much simpler to interface with C++". Janet has good FFI for C, but not for C++ directly. Janet's native FFI system is designed specifically for C libraries. C++ has name mangling, classes, exceptions, and other features that Janet's FFI cannot directly handle. The process would be similar to using C++ libraries from any C-based language, which is far from straightforward.
Jank, if my understanding is correct, in comparison has direct C++ interop. Jank treats C++ as a first-class compilation target rather than a foreign interface.
Karrot_Kream
a day ago
It shouldn't be that much work to wrap a C interface into C++ but yeah Jank is probably the way to go if it natively supports C++.
iLemming
2 days ago
Yeah, well, I don't think it's that simple. You can't just say "eh, gamedevs apparently just don't want 'interactive workflows'", which of course, not true - look at Unreal's Blueprint live editing, Unity's play mode value tweaking, Godot's live scene editing, Jonathan Blow live-coding an entire game, etc.
I don't know why Arcadia wasn't very successful -I have never used it; I can only speculate on the causes, but I have good reasons to believe that Jank may actually succeed where Arcadia struggled - it is designed ground-up for game engine integration, no GC pauses, better FFI for engine bindings, etc.
dustingetz
2 days ago
the request/response command/query nature of the REPL is what I am referring to. Great fit for RPC-oriented web backends backed by OLTP databases that start fresh each time and run to completion. Live scene editing seems closer in nature to a hot module reloading workflow, where we try to take care not to disturb long-lived objects and processes. PS, Jank is very cool. No idea what his plans are here and I’m not claiming a gamedev repl is impossible in any way.
MangoToupe
2 days ago
> Programming is a tiny part of game development.
This is a weird take. It's a tiny part of game development until you can't program. Then you realize it's actually a huge part. Particularly for "indie" game development.
Ultimately code is just a tool, but it's still a tool that can translate into rapid iteration or into friction.
iLemming
2 days ago
> Programming is a tiny part of game development.
Yeah, jut like writing is a tiny part of book publishing. What the heck are you even talking about? Programming is absolutely fundamental to game development - it's literally what makes games exist and function.
I'm not talking about "revolutionizing" anything, but maybe you haven't noticed how Unity democratized gamedev and how GDScript made game logic accessible. There is absolutely a sizable chunk of the market for the Lisp-based gamedev - look at Lua/Fennel gaming community - LÖVE2D, Pico-8, Defold engine, etc.
Having performant Clojure option (which Fennel ain't - it's only "like" Clojure) would be absolutely wonderful news.
suby
3 days ago
I think Jank will find its people, but I don't know how many of those people will be indie game developers. I'm sure some will be, but on the whole I don't think most indie game devs are clamoring for using clojure, if only if it wasn't for the JVM or the performance. I doubt many indie game developers are even aware of what clojure or jank are, or even much about functional programming to be frank.
For indie game devs you're competing against engine ecosystems like Unity, Unreal, Godot. If someone is inclined for more of a DIY route, you're competing against Lua (love2D), C# (monogame), Javascript (...), or for the people who care about performance, C++, Rust, Odin, Zig, and soon even Jai. It's a very crowded competition space and again, I think overwhelmingly the people in this space aren't dreaming of programming in a functional style.
iLemming
2 days ago
> you're competing against Lua
There's not exactly tiny community (but it's not huge either) that programs against Lua-based engines using Fennel - a Clojure-like Lisp. Jank, aimed to have one-to-one Clojure-parity, I think would be great news.
> the people in this space aren't dreaming of programming in a functional style.
IMO because they are extremely pragmatic and there still, doesn't exist a good, practical way to program games in a functional style. Jank may open that possibility.
pjmlp
3 days ago
Then there are folks like Notch, that by not following such advices got gold, as they managed a great additive game, regardless of the technology stack being used.
There is also 80% of the mobile phone market available, in the context of JVM like ecosystem to target, and avoiding NDK tooling is gold if one really doesn't need it, as its experience still sucks after all these years.
suby
3 days ago
I was not meaning to say that anyone was wrong for their technology choices. Personally I think Java is great and some of my favorite games are made in it. I'm just saying that I don't see jank or clojure for that matter catching on because it isn't where the head space of the indie gamedev scene is at, and I don't see this changing, especially given the number of competing stacks.
dapperdrake
3 days ago
Come to think of it, where is the headspace of the Indie gaming community at?
pjmlp
3 days ago
I imagine the point being the same as game development in general, hence my agreement on a sibling comment.
Many people, especially those coming from FOSS background, don't understand the game development culture is all about IP.
The culture is to create great experiences, with interesting gameplay, the actual programming languages tend to be whatever everyone uses in the industry, and in general proprietary APIs aren't the drama like in sites as this.
So if an indie is going beyond desktop, trying to maximise sales, they will pick an engine and language that covers them.
pjmlp
3 days ago
Ah, that is a good point.