# SPDX-FileCopyrightText: 2006-2021 Istituto Italiano di Tecnologia (IIT) # SPDX-FileCopyrightText: 2006-2010 RobotCub Consortium # SPDX-License-Identifier: BSD-3-Clause === NOVA ============================================================ Nova is a maze game. It is accessible via telnet or YARP. Here we describe how to use the game via telnet. First, you need to know where the game is running and how to reach it. You need the name/IP of the server the game is on, and the socket number it listens to. Either ask someone or, if you have YARP, run: yarp name query /game This will give a response like this: registration name /game ip 160.151.14.122 port 8080 type tcp *** end of message You can then reach the game by typing: telnet 160.151.14.122 8080 === login =========================================================== The very first thing the client must do is send: CONNECT name Server responds with: Welcome name Note that there is no password, authentication, or sanity checking. This is a toy game :-). Please don't use names with any unusual characters, or whitespace. === logout ========================================================== Client sends: q Server responds by removing player from game and dropping connection. === gameplay ======================================================== To actually do anything in the game, the client sends: d The server then waits for a game command. Game commands include: look go left/right/up/down fire left/right/up/down say message... ---------- -- look -- ---------- To see a local view of the game map, the client sends: d look The server responds with something like: look (look (map ":::::::::::::::::::::::" ":# O :" ":##### # ##### :" ":# # # :" ":# ###### # #### :" ":# # :" ":##########Q ##### :" ":# # :" ":# # # ######## :" ":# # # :" ":# ## :" ":# :" ":::::::::::::::::::::::") (players (bozo (location 10 16) (life 6)) (madmoody (location 11 11) (life 6)) )) There are two parts to this response. The first is the map, which give a summary of what is around the player, using a set of characters with the following meanings: : -- edge of map # -- immovable obstacle Q -- the player, when alive 0 -- other players when alive % -- the player, when dead * -- other players, when dead = -- traces the path where someone fired; visible for a short time The second part is a list of the visible players. The first player listed is always the player who issued the look command. Locations are given in global coordinates. ---------- -- go -- ---------- To move around map, the client sends: d go left (or: go right / go up / go down) The server responds with ack [move] "move requested" and will implement the move on the next game simulation step. The change in location will be visible in the map returned by "look". ---------- -- fire -- ---------- To fire at another player, the client sends d fire left (or: go right / go up / go down) The server responds with ack [fire] "fire requested" and will implement the firing operation on the next game simulation step. If another player is close and in the line of fire, their "life" count will be reduced by one. ---------- -- say -- ---------- The game has a broadcast channel. To send to this channel, the client sends: d say the-message-text The server responds with broadcast username the-message-text The same response will be placed on the broadcast channel.