Indigo: A game engine for functional programmers, in Scala
indigoengine.io
indigoengine.io
As a side note, it's quite exhausting to enter into a random HN post and see that most of the discussion revolves around some negative comment that required zero effort. Not only the JVM aspect is completely irrelevant for this project, but this is an engine geared towards making 2D pixel art games for fun, not AAA games.
HN may not be a great place for makers to get feedback.
I think HN has probably always been quite dismissive and contrarian (like that infamous comment about Dropbox), but to me it feels like that type of comments are becoming more frequent and lower effort.
Maybe I am just becoming older and tired of arguing online ^^
It's not all sunshine and roses, but I think its heading in the right track.
The live coding experience is something where I think a lot more work could be done. This paper by Ravi Chugh et al, and a lot of his other work, points to interesting directions to take: https://arxiv.org/pdf/2301.13302.pdf
(A JVM is required to compile the code, but what you run and deploy has no dependency on any JVM stuff.)
Source: I am the lead author/maintainer of Scala.js and I wrote a personal game project in Indigo.
But if you want to make a good game, and have the desire and skills to do so, the language doesn’t matter. My favorite game of all time, a quite successful game that has critical acclaim from people all over the spectrum, was written in Java.
It’s Slay the Spire, to answer the next obvious question.
The real reason we don't see many Java games is that most games are written using either Unity or Unreal Engine, and neither of those support Java as a first class language.
Btw, for games even a very low 1ms pause is more than 10% of frame budget, and can make the frame miss the deadline. I guess for indie games the quality bar is simply lower and occasionally missing a frame is ok.
Minecraft was written in a very suboptimal way, its creator was a very novice developer — there are mods that easily increase performance many-many times.
Even Unreal ships a GC.
Edit: apparently unity has been off mono for about 3 years now. Tangential but interesting
iOW, as long as a large enough userbase and codebase exists, popularity doesn't matter for getting answers.
Might matter for shaking out bugs, enhancements, etc, but not for learning resources.
It's the exact opposite. I really don't know how you got this conclusion.
The quality of the answers from ChatGPT/Copilot/whatever highly depends on how many learning materials in the training set. In other words, popuplarity matters more than any time ever.
If you don't believe me, ask ChatGPT to write a Blender addon, then ask it to do something similar but for Houdini. The difference is day and night. By the way, Houdini is basically used for every single VFX studio. Even that doesn't reach the "large enough userbase" needed for ChatGPT to generate quality answers.
I don't know if you are aware, a few months ago, Scala.js turned 10 years old: https://www.scala-lang.org/blog-detail/2023/02/05/ten-years-...
Most gamedev still consider Godot new. Godot is 9 years old.
Wat. No.
Scala is a language. It has compilers for Java bytecode, JavaScript, and native.
Scala.js has built-in interoperability with JavaScript instead.
And Scala Native has built-in interoperability with C.
Given Java's goal is "write once, run everywhere"...that's not a bad thing.