[LINUX] Let's play with JNetHack 3.6.2 which is easier to compile!

Introduction

Following the flow of "Rogue", one of the earliest computer RPGs, the general term for games whose dungeon changes each time you play is called "Roguelike" [^ 1]. NetHack is a straightforward, character-based, simple-looking game, but it's still very popular. [^ 2] You can also prepare one tmux tab for this and play between tasks lol

The English version of NetHack itself is included in the packages of various Linux distributions, so it is easy to install, but there is no Japanese version. JNetHack Project has created and distributed a patch for Japanese localization, so let's build it yourself using this.

Previously, because Japanese was output in EUC-JP, it was necessary to take measures such as using cocot in the terminal of UTF-8 locale or temporarily changing the character code setting. However, in the latest version (2020/03/14) of JNetHack 3.6.2-0.1, the input / output character code is completely UTF-8, and it is now possible to build and play almost as it is. It was. There is no need to edit MakeFile with an editor in advance, and it can be compiled with only simple steps, and the threshold is low, so let's play with it.

About compilation & execution environment

I tried it on Ubuntu 18.10 and WSL1 (Ubuntu 18.04.1 LTS) on Windows10. Please refer to here for the maintenance of WSL & terminal environment of Windwos10. Of course, it can be compiled on Mac.

You can also download it from the JNetHack project page, but here on the terminal

~% wget https://ja.osdn.net/dl/jnethack/jnethack-3.6.2-0.1.diff.gz
~% wget https://www.nethack.org/download/3.6.2/nethack-362-src.tgz

Let's drop it by saying.

Compilation procedure

~% sudo apt-get install build-essential bison flex libncurses5-dev gzip nkf
~% tar zxvf nethack-362-src.tgz
~% cd nethack-3.6.2/
~% zcat ../jnethack-3.6.2-0.1.diff.gz | patch -p1
~% find ./ -type f | xargs -i nkf -e -Lu --overwrite {};
~% cd sys/unix
~% sh setup.sh hints/linux

Along the way, you may get a message that the patch application to the file for Windows failed, but you can ignore it (please let me know if it's wrong).

~% cd ../../
~% make all
~% make install

The procedure is terrifyingly easier than it used to be lol

Let's play

Since a directory called nh is created in your home directory

~% nh/install/games/jnethack

Start with. The screen during play looks like this.

Welcome to the world of rattcv and NetHack! You are a gnome pharmacist!


        ---------------
        |.............|            ------
        |.............-#           |$...|
        |..........>..|#           |.....#########`##
        -.-----|-------##          |..@.|     # ####
         #     #        #        ##.....|    ------|-----
        ## #####        #        # |....d### |..........|
        #  #            #        # |...[|  # |.......$..|
        #  #            #------ ## ------  # |.........$|
       -.--.-----       #|.%..|##          ##-..........|
       |........|       #....$|#             |..........|
       |.........######  |....|#             ------------
       |..$..<..|     ###.....|#
       ----------        |.....#
                         |....|
                         ------



Rattcv Apprentice Strong:10 early:9 resistance:14 wisdom:9 wise:17 Fascination:16 Neutral
underground:1  $:1517 body:12(12)Demon:5(5)armor:8 experience:1

Meaning of symbols on the screen

I extracted it from the help and made it a table.

symbol Description
-When| The wall of the room. Sometimes it's an open door or a grave
. Floor or doorway
# Corridor horizontal bar or wood. sink(If any)And sometimes drawbridges.
> Stairs to the next floor, etc.
< Stairs to the previous floor, etc.
@ (normally)A player or another person.
) Various types of weapons.
[ Clothes or armor.
% Food.(Not necessarily rotten)
/ Magic wand.
= ring.
? Scroll.
! liquid medicine.
( tool.(Pickaxe,key,lamp. .. ..)
$ A lump of gold.
* Jewels or rocks.(It can be useful or worthless)
+ A closed door or a book of spells.
^ (After finding)trap.
" Amulet or spider web.
0 Iron ball.
_ Altar or iron chain.
{ Izumi.
} Puddle and dust pool
\ Gorgeous throne.
` Cobblestone or statue.
A to Z,a to z,Other: monster
I Where the last transparent or invisible monster was

About commands

My character is @ and the basic move command is the same as Vim H`` J K`` L. Other keyboard commands are mentioned in the help, but I can't remember them so I created a cheat sheet. cheat_sheet.png I'm thinking of updating because there are leaks and it is difficult to understand.

Detailed settings and how to play

I haven't played with a firm seat yet, so I can't explain much lol The following reference sites are quite old and have some differences from the current JNetHack, but I think they will be helpful in various ways.

Invitation to the Labyrinth of Terror (NetHack Guidebook) JNetHack that even monkeys can do

The following is an article that talks about the appeal of JNetHack and how to play it.

Why you get into the game JNetHack-how a life licker succeeds Man obsessed with NetHack [Roguelike] NetHack's first way to walk [Roguelike]

Then, let's challenge yourself to capture the "Labyrinth of Terror"!

[^ 1]: "Mystery Dungeon Series" such as "Torneko" and "Shiren" are also classified as roguelikes. [^ 2]: There are occasional questionnaires on Twitter such as "What game changed your life?", But it seems that there are quite a lot of people who raise this game.

Recommended Posts

Let's play with JNetHack 3.6.2 which is easier to compile!
[Introduction to WordCloud] Let's play with scraping ♬
Let's play with 4D 4th
Let's play with Amedas data-Part 1
Let's play with Amedas data-Part 3
Let's play with Amedas data-Part 2
[Let's play with Python] Image processing to monochrome and dots
Let's play with Excel with Python [Beginner]
Emacs perspective.el workspace is easier to use
[Complement] [PySide] Let's play with Qt Designer
Fractal to make and play with Python
[Introduction to Python] Let's use foreach with Python
I want to play with aws with python
How to replace with Pandas DataFrame, which is useful for data analysis (easy)
Python hand play (let's get started with AtCoder?)
[REAPER] How to play with Reascript in Python
[Piyopiyokai # 1] Let's play with Lambda: Creating a Lambda function
#Unresolved I want to compile gobject-introspection with Python3