Netwhack, a java roguelike
TL;DR being rewritten for modern hardware, playable demo coming soon.
Hello! Most of you will not remember Netwhack, a java roguelike that I started off writing in C++ about 20 years ago. Netwhack was always a labor of love for me. I loved playing Nethack and other large, complex roguelikes. I just loved the whole feel of it. I did experiment with playing other roguelikes such as ADOM and Slash/Slash'em, but nothing ever quite captured the magic, the beauty, and the adventure of Nethack on the old MS-DOS (or Linux) terminal screen.
As the years went by I decided to be that guy who writes a better Nethack in C++. I got a very long way before learning Java and deciding to jump ship. Yes, I love C++ and am probably going to write some 3d games (minecraft clone, yeah, I know) later on in C++. But I was always just attracted to Java as a language as it seemed softer and easier to think through than C++. I fell in love with the object model in Java, even as I struggled to make the objects work with each other and talk to each other.
The death knell of Netwhack came in 2011 when I tried to turn it into an applet for free webpage play. It worked! and my dream of a portable nethack clone that anyone could play had come true. There were still a few nasty bugs -- that much spit and glue could only hold together for so long. But before I could really fix things I had a serious motorcycle accident and couldn't use my hands for about a month. I don't know why I didn't get back into it, but after that other things just seemed to take a higher priority.
Over the years I finally managed to complete some other programming projects I had my heart set on and now I am ready to return to my first love of hobbyist programming -- Netwhack.
I'm sorry there are no screenshots or anything much to share. I have a copy of the old Netwhack 0.6.3 lying around somewhere, but there's no point in releasing it now. You see one of the reasons I had started doing this was to bring a 'better nethack' to a wide number of devices. One of the greatest accomplishments I am so proud of, was a portable "virtual 80x25 VGA terminal" that would run anywhere Java ran. But over the years lots of things changed.
iPhone.
Android.
Steam.
The death of portable 2d graphics (everything requires shaders, cameras, and batches now, what a mind job...)
When I came back to programming Netwhack for it's 20th anniversary I was faced with the fact that the old Java code basically didn't work anymore, and that the graphics system was in fact not portable at all. I wrote a virtual ansi terminal for this thing. I was crushed. Further the apparent difficulty in learning modern OpenGL programming -- especially for what I wanted to do -- was almost insurmountable.
But I didn't stop trying, for weeks, flip flopping between gaming libraries, re-installing linux, re-installing windows, playing with xcode, netbeans, eclipse, code::blocks, and whatever. I finally have everything set up and I am rewriting the interface using a modern game engine.
BTW I believe I have solved the "phone input problem" i.e. needs a keyboard to play. I have some ideas. We will see.
But anyways -- I remember now. The sick joy of making unique ideas become a reality. I can't believe it but using this gaming library I have picked out, rewriting the virtual terminal code was even easier. I also found an even better VTS font (than vts.ttf) in the oldschool fonts list -- The extended 9x16 VGA font.
This time around coding seems a lot easier. Problems I had getting things done earlier I now chalk up to inexperience. The ideas are flowing like a river. The code is just pouring out. Right now I have a portable, touch-based VGA/ASCII interface. And the best part is that at any time I can basically just drop in the old codebase on top of the new UI.
Netwhack is a pure ASCII (extended VGA charset) roguelike similar in scope to Nethack. Actually it's going to be much larger. One of the original design goals was to have dozens of major quests, randomly selected each time. Kind of like, one time you start up you're looking for the amulet, the next time a more ADOM-style quest, the next maybe a U4/5/6 style quest, the possibilities are endless.
And the best thing is that according to my game library it will run on anything; android, ios, linux, mac, pc, even in a browser. This is going to be my dream. If I can finally finish this roguelike and publish it and people all over the world play it my life will finally be complete. This is what I have always wanted.
I'm pretty sure I can get a playable demo up within a month from now. The game works and has quests and stuff already; I'm just rewriting the graphics and input right now. Then I need to test it on my phone and stuff. I'm so excited!
Anyways I know this has been a long and rambly post but I just had to get this off my chest, if you have any questions about roguelike programming or about my game I would be pleased to share with you. Thanks and good luck to everyone.
Posted Sep 18, 2017, 8:57 PM UTC · edited