Netwhack 0.7.2 Work in Progress

Well well well, time has passed, and I’ve decided once again to push on the Netwhack project. It looks like I have a little time. This time I think it has a finalization date as well. It’s going to get a release date. A few things need to happen before that which I will outline in a moment, but first some terrible news. I’ve lost the 0.7.1 source code. I can’t find it anywhere. It’s especially weird because I have a Synology and I knew I backed it up. But no, it’s gone. I have remaining the 0.6.4 source code, which is the 2015 version before I converted it to work woith LibGDX, and I have the 0.7.1 class files which I’ve decompiled into source. So I have the code but I don’t, and one of the most frustrating things about this is that there was a significant (300+ hours) of inspired work which went into¬† 0.7.1, so going with 0.6.4 is almost unimaginable, but if I go with the class files I lose 15 years of comments and I lose a few other things as well. The 0.7.1 code is a LibGDX program too, so I need to rewrite the terminal module to work with Java again.

I think what needs to be done is to bring everything up from the 0.7.1 class files and then manually check all files to see what comments need be made. The source code was written very verbosely (which I consider a feature of Java for a project like this) and so re-commenting the new areas won’t be so hard, and in fact they will stick out because they will be missing from the 0.6.2 sources. Anyways enough of that.

I’m going to have to rewrite the code to work in Java, away from LibGDX. But in case you are wondering, why the revival, there are three important reasons.

One, I’m teaching my son to code. I’ve put his stuff up at helloneo.ca. The drive to rewrite the interface back to Java again is fueled in large part by wanting to teach him how it’s done.

Second, Web Assembly. Web Aseembly is the next big thing, and Java can compile to Web Assembly. It’s not perfect, but it works.

Third, Kotlin. Kotlin is really the next big thing in the Java world and it is 100% interoperable with Java. Second it compiles to Native and can easily interop with C/C++. Third it supports Web Assembly better than Java does. I can’t lie, the IntelliJ IDEA ide showed up at the right time too, allowing me to disassemble those .class files.

I think in a week or three I will have a refactored 0.7.1 which will be dubbed 0.7.2. I’m not sure if I will release it, I probably will because a number of things are already on the table to be changed, but we will see. June 24th is the magic day!

I will begin by separating out the Display class from Terminal, once again…

Comments are closed.