Category Archives: inethack

New UI (with all its bugs) or iNetHack-like shortcuts?

So you’ve played the Slash’EM iPhone port. Some have noticed that it contains bugs 🙂 Many of them are very hard to get rid of. It’s certainly not impossible but maybe a little impractical for a port. The reason is that the UI builds and sends keyboard macros to the core, like ‘Tc’ to take off ‘c’. Can lead to weird behavior if you’re not wearing anything else and ‘c’ is uncursed. Or if you die just after the core has processed ‘T’ you just skipped the DYWYPI prompt (I can’t thoroughly explain it but I’ve experienced similar situations).

The alternative is to get back to a shortcut system. Maybe refine the way to build your own on-the-fly (which would then be subject to the bugs just mentioned though). Maybe even leave that out to avoid those bugs. Some Slash’EM features can remain (e.g. the context menu seems quite stable if you omit direct item interaction).

What would you prefer? Please leave your vote in the poll to-left!

Performance issues in iOS 4, especially for iNetHack

Just wanted to say that I’m aware of iNetHack’s performance issues on iOS 4. This forces me to change plans and port it to iHack as soon as possible. Before that I will release some Slash’EM bugfixes, which will hopefully add iOS 4 fast app switching (at this stage there are still major problems with it, but I don’t want to give it up yet), since Slash’EM and iNetHack will (hopefully) soon share the same exact iHack UI code.

(Universal) iPad support will have to wait a little bit longer :(. My original plan was to address this first with Slash’EM (since this is what I currently play, vampiric necromancers ftw!)

Current state of iNetHack, Slash’EM, NetHack HD, NetHack Cocoa

Update: To clarify things:
Eventually there will be both a Slash’EM and iNetHack in the app store, both universal, with a very similar UI. iNetHack will remain vanilla NetHack, Slash’EM is based on the latest stable release (Vampire) with the force-patch. Once that is done NetHack HD will be removed.

I just realized that the current situation of the NetHack and Slash’EM ports might be a little confusing 🙂 So here’s some detailed information:

Slash’EM (iPhone/iPad | Source)
Has been in development on and off for about five months (eternal beta?) and is nearing a release. The UI is different from iNetHack, there are no shortcuts, and the consensus from the beta forum seems to be that it’s a more efficient UI. A public release for iPhone is in sight. After that I have plans to modify it into a universal app (with basic UI changes) so it will make use of the iPad’s screen estate and special controllers.

iNetHack (iPhone/iPad | Source)
I consider its current codebase obsolete and it will get replaced by the Slash’EM UI. I don’t fix iNetHack bugs because most of them are already fixed in Slash’EM or a non-issue there due to the different UI. I accept them though for the time being and will address them one by one as soon as it gets its new codebase.

NetHack HD (iPad)
Developed completely in the dark without device or beta testers, it has quite some issues, including UI and performance (I only ran it shortly last week on an actual iPad and I wasn’t thrilled). It will be pulled from the store as soon as Slash’EM and iNetHack go universal. It currently has no public source distribution and there won’t ever be one since it’s already obsolete.

NetHack Cocoa (Mac OS X 10.5 and 10.6)
Has (minor) issues of its own which will get addressed but has low priority for me since I’m focusing on iDevices.

I hope this clarifies some things. The google code repositories will very likely be moved to github. Well-done patches are always welcome.

(i)NetHack ready for iPad launch

I haven’t really made an official announcement about this, so here it is:

I have ported NetHack to the iPad, it’s fully playable and it is ready for the iPad launch. I don’t have any details about when and how 3rd party native iPad apps can be released, so I can’t give assurance for a launch day release :(, but it will be queued for review as soon as there is a queue available for me. I will use the remaining time until then to add more polish and gimmicks, then polish again.

The one thing I couldn’t really do for 1.0 is play it on a real device. I may have gauged processing power wrong (which might lead to performance problems), touch controls might be too small or too unwieldy (I remember I had to rewrite touch behavior in iNetHack a couple of times until it felt right). I was also the only one playtesting it, so I might have overlooked a couple of things.

I for one can’t wait to play it with my fingers instead of mouse and keyboard, while sitting or lying on the couch 🙂

If you want any tileset to be included now is the time to tell me about it. It must be 32×32 though. So far I have included Absurd, Chozo/ChozoB, default windows tiles32 and nh3d (which is apparently based on Aoki-2k5 and vanilla terrain tiles).

iNetHack protection fee

After seeing that 1.3 was ready for download, I checked the iTunes page to see if everything was correct and I could indeed download it. That’s when I noted that there are an awful lot of 1-star ratings (about one third of all ratings). What’s worse, this number seems to have grown over time, even after 1.1 remedied a lot of the shortcomings of iNetHack’s 1.0 debut.

This made me think that since it’s free, users who don’t even know NetHack will give it a try, and of course they are utterly repelled by it. iNetHack in its current form never was intended for beginners. Which led me to something many devs have experienced too (and I have seen very clear examples of that behavior): Making your app free just invites 1-star reviews. It hurts to see that in other free apps, and it certainly hurts to see it for iNetHack. I know that my next publication for the iPhone will certainly have a fee (clarification: publications that are not an open source port). This is certainly no excuse for the current UI. Making it much more beginner-friendly is on my todo list. But I won’t change the core gameplay or add save games.

So what do you think? Do you see a future for an iNetHack protection fee or not? Please vote in the poll to the left and leave a comment!

Update: Thanks for all your feedback and votes! The poll leans very clearly to keeping iNetHack free of charge, and so it will be.

iNetHack 1.3 is gold for iPhone

Today the app store saw the release for review of iNetHack 1.3, which leads to a likely possible release date of Q1 2010.

The major theme for 1.3 was hearse integration. Some accidental bugfixes and UI improvements might also have slipped in.

iNetHack 1.3 has a different file format (both save and bones files) from previous versions, so it’s highly recommended to remove the old version before installing the new one.

Merry XMas!

NetHack 64 bit vs iNetHack 32 bit

As we all know, NetHack needs a 64 bit environment to run properly 😉 I just spent two days trying to bootstrap some files for iNetHack on my only recently upgraded snow leopard machine (a process which was working fine with leopard) when in my desperation I started to compare struct sizes:

struct version_info {
unsigned long incarnation; /* actual version number */
unsigned long feature_set; /* bitmask of config settings */
unsigned long entity_count; /* # of monsters and objects */
unsigned long struct_sizes; /* size of key structs */

iPhone Sim: 16 bytes
iPod Touch: 16 bytes
Snow Leopard: 32 bytes

Yeah, told you so 🙂

This very probably still leaves some structure alignment differences between sim and device, since they don’t share bones very well, though they both operate on the same byte alignment (little endian).