Coder Social home page Coder Social logo

portdive's Introduction


portdive is a CLI-based game inspired by an old classic video game called Splinter Cell: Chaos Theory. More specifically, the hacking mini-game players were able to play. In its current state, the game is playable but in active development.

The objective of the game is to find the correct IP address using the "Pwner" device to reduce the number of options that you have to choose from. More features are to come!

The game tutorials define these addresses as "port" addresses. Though I believe this is not correct (port addresses are numbers between 0-65,535), I decided to honor this mistake by including it in the name of the project. However, the minigame may be referring to attempting to exploit a service known as port fowarding.

To-Do

  • Reduce tight coupling and other major refactoring work
  • Update game UI to be more appealing
  • Add more features that were seen in the original minigame
  • Introduce a mechanism to generate IP addresses such that the game is still winnable (rather than using a static set of addresses)
  • Ponder introducing a round system where finding the correct IP address becomes progressively harder

Installation

Simply clone this repository using git clone or use Github's ZIP download feature.

Usage

To play the game, make sure you are in the root directory of the project. Afterward, execute the following command into your command-line session:

go run main.go

Assuming that you have an installation of Go on your machine, you should be able to start playing the game!

Keys

Movement within the IP address list and the Pwner device is done by holding Control and using basic Vim keybinds of movement within text:

Move UP in the IP address list: Control+J

Move DOWN in the IP address list: Control+K

Move RIGHT in the Pwner device: Control+L

Move LEFT in the Pwner device: Control+H

To make your choice with either the address list or the Pwner, you hold Control and also use the following:

Make a decision in the address list: Control+M

Make a decision in the Pwner device: Control+P

To exit the game, use Control+C

The reason behind the use of Control is due to the nature of the keybinds available with the termloop API.

portdive's People

Contributors

kemzeb avatar

Stargazers

Cory avatar Alexandre Saccol avatar  avatar  avatar

Watchers

 avatar

portdive's Issues

Buggy game visuals when entering inputs from stdin

Currently, players can interact with the game by typing (at the position of the cursor) the specific device that they want to access and providing its index. When we start the game and submit anything into stdin, the pterm.Area instance does not visualize any error messages below the Pwner when the input is incorrect. It also begins to duplicate the first line with each successive input to stdin (as shown below).

Screen Shot 2022-01-07 at 9 07 03 PM

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.