Nethack (ascii Version)


mwolson

Still Fresh
Joined
Feb 10, 2006
Messages
27
Website
mwolson.org
I am releasing the 2nd beta of my Nethack port for the GP2X.

This port focuses on keeping the classic ASCII look of Nethack, with emphasis on using an on-screen keyboard. If you want a menu-driven graphical interface, check out Dzz's port of Nethack.

URL: http://www.mwolson.org/static/dist/gp2x/ne...ascii-beta2.zip

Source URL: http://www.mwolson.org/static/dist/gp2x/ne...scii-source.zip

At this point, the game should be playable without crashes or major inconveniences. That said, there are still a few items on my TODO list that need to be taken care of before I'm willing to drop the "beta" designation. See README.gp2x for details.

Feedback is welcome!
 
Last edited by a moderator:
Ok,

I\'m in my lunchbreak now and checked your version. ;)

The interface is somewhat confusing, I\'m used to using a qwerty keyboard and those keys are selected while typing blind. When selecting the keys from the key interface it is difficult to remember which means which.

There is a shift modifier for capital letters and CMD/CTRL letters but this is not shown by how the letters look. (at least it looks like that when pressing a, b, y if I remember correctly)

The ascii in your version does not show IBM graphics. It would be nice to have a way to choose between ascii and ibm graphics characters. (No graphical interface just different characters)

Using the joystick to move around and pressing for example a, selecting the correct letter and then releasing the button after which the command is executed could be a time saver. (And no extra key to press constantly if you want to walk)

Testing it feels more like fighting with the interface at the moment then playing the game.

so...

I\'m not sure if the keyboard interface is the right way to go due to so many things which need to be learned.

Pressing the key does this
Pressing the key with shift does this
Pressing the key with CMD does this

That means more then 75 alphabetical keys and combinations plus all the extra characters being used.

It would be a different story if a seperate keyboard could be connected. ;-)

So thanks for your work, at the moment I\'m spoiled by the work of Dzz but I will look forward to see how your version progresses!

Marco
 
Thanks for trying it out!

The interface is somewhat confusing, I\'m used to using a qwerty keyboard and those keys are selected while typing blind. When selecting the keys from the key interface it is difficult to remember which means which.

I couldn't think of a good way to represent a QWERTY layout in only two lines. I suppose I could add a 3rd line to the on-screen keyboard, but then there would be even more dead space on the sides.

There is a shift modifier for capital letters and CMD/CTRL letters but this is not shown by how the letters look. (at least it looks like that when pressing a, b, y if I remember correctly)

Hmm, I guess I could uppercase the keyboard when Volume Up (Shift) is pressed so that you have a visual indicator. Perhaps putting a "^" in the dead space could indicate that Volume Down (Ctrl) is pressed.

The ascii in your version does not show IBM graphics. It would be nice to have a way to choose between ascii and ibm graphics characters. (No graphical interface just different characters)

I'll look into that. I seem to remember seeing a compile-time option that allows this. That way, you could edit the "options" file to specify which character set to use. That'd be a good item for the README.gp2x file.

Using the joystick to move around and pressing for example a, selecting the correct letter and then releasing the button after which the command is executed could be a time saver. (And no extra key to press constantly if you want to walk)

I'm not sure exactly what you mean. Can you elaborate?
 
Last edited by a moderator:
Wow, this is pretty impressive for such an early release. It seems like pretty much everything works, with the only major problem being the somewhat cumbersome keyboard interface...

I couldn't think of a good way to represent a QWERTY layout in only two lines. I suppose I could add a 3rd line to the on-screen keyboard, but then there would be even more dead space on the sides.
Instead of resorting to 3-lines, perhaps rearrange things so that all the letters are in the middle, split into two rows, with all the numbers on the left side, and all the punctuation symbols are on the right side. It would mean less travel time when moving between different letters, and migrate some of the less useful keys to the edges . As for showing modifier keys, just showing "SHIFT", or "CTRL" in the dead space should be sufficient.

mwolson said:
Kannibaal said:
Using the joystick to move around and pressing for example a, selecting the correct letter and then releasing the button after which the command is executed could be a time saver. (And no extra key to press constantly if you want to walk)
I'm not sure exactly what you mean. Can you elaborate?
I think what he's suggesting is that the joystick should (by default) move your character... when you press and hold A, the joystick would then control the keyboard cursor... releasing A would input whatever key the cursor was on. I personally don't like having to hold Select while moving around, but I think a better solution might be to use one button as a toggle to switch between the keyboard and movement. Either solution could also have the keyboard hidden when not in use.

Another thought I had is that in vanilla Nethack, there's a "numpad" option that lets you use the number pad for movement rather than hjkl. This wouldn't seem useful for the GP2X, but setting this option also remaps some useful commands to hjkl since they aren't used for movement any more. This allows you to kick and loot with a single key. I haven't tried adding this to the options file, but it might be a useful default to enable.

I tried playing twice, but was unable to save. I got a message saying "Unable to open save file", but with no further explanation, so I'm not sure what happened.

--Zero
 
Last edited by a moderator:
Instead of resorting to 3-lines, perhaps rearrange things so that all the letters are in the middle, split into two rows, with all the numbers on the left side, and all the punctuation symbols are on the right side. It would mean less travel time when moving between different letters, and migrate some of the less useful keys to the edges .
That's a good idea.

I think what he's suggesting is that the joystick should (by default) move your character... when you press and hold A, the joystick would then control the keyboard cursor... releasing A would input whatever key the cursor was on. I personally don't like having to hold Select while moving around, but I think a better solution might be to use one button as a toggle to switch between the keyboard and movement. Either solution could also have the keyboard hidden when not in use.
I'll think on it some more. I'm not a huge fan of toggling though -- I like the muscle memory benefit of being able to consistently hit a sequence of keys/buttons.

I'm not sure about hiding the keyboard either: I would require it to be implemented in such a way that it never hides screen content (due to some grievances with the way the on-screen keyboard in atari800 is handled), and that's hard to do.

Another thought I had is that in vanilla Nethack, there's a "numpad" option that lets you use the number pad for movement rather than hjkl. This wouldn't seem useful for the GP2X, but setting this option also remaps some useful commands to hjkl since they aren't used for movement any more. This allows you to kick and loot with a single key. I haven't tried adding this to the options file, but it might be a useful default to enable.
Hmm. The reason I didn't do that initially is to make it easier on those who want to be able to "fall back" on the hjkl keys if they're not used to moving the joystick to answer prompts. I might add a commented section in the options file that explains how to get this behavior though -- adding the "numpad" option should work already.

I tried playing twice, but was unable to save. I got a message saying "Unable to open save file", but with no further explanation, so I'm not sure what happened.
That's not good. Were you out of space on your SD card? Or using a firmware version other than 2.0.0? Do you see a "data" directory with a "save" subdirectory? It doesn't happen for me, so I'm not sure what is wrong.
 
Last edited by a moderator:
That's not good. Were you out of space on your SD card? Or using a firmware version other than 2.0.0? Do you see a "data" directory with a "save" subdirectory? It doesn't happen for me, so I'm not sure what is wrong.
It turned out that the save directory was missing. I made the directory, and it seems to save properly now. This directory is also missing from the zip file you posted, so I'm probably not the only one with this problem.

After playing for a little while, I've noticed a few other things:
  • There is no way to choose a name for yourself, you are always named "root". I always thought it was a failing in Nethack that it forced you to choose a character name via the command line, but in this case it's much more inconvenient.
  • There were a number of situations where I was asked to make a yes/no choice (In this case, whether or not to attack a shopkeeper). I had expected entering Y or N would have worked, but it let me continue typing things until I hit B, which exited the dialog (without attacking). I'm not sure if this was a bug in the program, or just a mistake on my part.
  • Although diagonal joystick movement works for moving the player, it doesn't work for moving the keyboard cursor. Not a big deal, but if the keyboard is extended to three lines, it might be more important.
--Zero
 
Last edited by a moderator:
It turned out that the save directory was missing. I made the directory, and it seems to save properly now. This directory is also missing from the zip file you posted, so I'm probably not the only one with this problem.
I guess some zip implementations don't like empty directories. The next release will put a small file in that directory so that this does not happen again.

There is no way to choose a name for yourself, you are always named "root". I always thought it was a failing in Nethack that it forced you to choose a character name via the command line, but in this case it's much more inconvenient.
Added to my TODO list for the next release.

There were a number of situations where I was asked to make a yes/no choice (In this case, whether or not to attack a shopkeeper). I had expected entering Y or N would have worked, but it let me continue typing things until I hit B, which exited the dialog (without attacking). I'm not sure if this was a bug in the program, or just a mistake on my part.
That's the standard behavior of nethack. It tries to be especially cautious about user input in situations that might mess up the game for you.

Although diagonal joystick movement works for moving the player, it doesn't work for moving the keyboard cursor. Not a big deal, but if the keyboard is extended to three lines, it might be more important.
True. I have not implemented diagonal movement in the on-screen keyboard yet. Added to my TODO list.


Here's my current TODO list for the next beta/release. Order is from highest to lowest priority.
  • Set CPU speed to 100MHz for extended battery life.
  • Make LEFT button insert a '#' character, so that it's easier to enter extended commands.
  • Make Select + clicking the joystick do the Search command.
  • Make clicking the joystick repeat the last command ("^A").
  • Put a Shft indicator on screen when Volume Up is pressed.
  • Put a Ctrl indicator on screen when Volume Down is pressed.
  • Allow the optional use of IBM graphics if the font can handle this ("IBMgraphics" option).
  • Experiment with a sectionalized on-screen keyboard layout.
  • Don't set the user name in the environment passed to the game.
  • Make diagonal movement for on-screen keyboard do the right thing.
  • Test the Escape to Shell command ("!").
  • [low priority] Provide a game recovery script.
 
Last edited by a moderator:
Back
Top