Preface
Somewhere in the drafts of this blog, I have an article, that explains all the flaws of Java 8 (and a bunch of other languages). It probably will never be released, cause it’s just a pile of boring (and sad) facts, but I will list some of them, to explain my actions, that I did.
So, Java:
- Has really old syntax, compared, to C# or any other more modern language.
- Packing an app requires or packing extra 100mb JVM, or having users to install JVM For example, Steam doesn’t ship JVM with it, and just overall packing .exe on Linux is a big pain.
- "Write once, run anywhere" is a lie Java won’t run on consoles, such as Nintendo Switch.
Might be enough already, but there is also the framework, that BurningKnight Java Edition works on – LibGDX. Overall, it’s a great library, but:
- What’s up with gamepad support? Hotplug works only with LWJGL3, but that crashes on MacOS, gamepad remappings for millions of existing gamepads? No, you gotta figure them all out yourself.
- Audio API is super limited Might seem minor, but all the juice, that comes from lowpass filter, writing notes to audio source on fly, and other, is just impossible.
So yeah. It’s all was piling on me for over a year now, and I’ve been dreaming of porting the whole game to C# for a while now. Burning Knight git repo has csharp branch, that is 7 months, but it didn’t really go far beyond rendering an animation of a mummy.
I’ve knew it was a huge project to port, and I was scared of it.