2.21.0 • Published 28 days ago

hyperworld v2.21.0

Weekly downloads
3
License
ISC
Repository
github
Last release
28 days ago

HyperWorld OOP Language

Virtual World of Objects.

screenshot

I write this program in hopes of creating a general purpose orchestration language for my friends, and you. Programming is hard, but you don't need to learn programming to be a programmer. You just need to learn writing things in such a way that a programmer can come in and fill in the code you need.

Before we begin please visit MUD on Wikipedia to get a better idea where we are headed and how we are going to get there. Here, are some of the more notable YouTube videos on the subject.

Program Architecture

Program Interfaces / Clients

Web Client

Class Structure

  • Root - central access point
    • .login(username, password)
    • .session(?) - user session
    • Universe
      • .location(name) - finds a location by name (interface to map)
      • .show() - displays a map of the universe (interface to map)
      • Map - loads and holds the universe map (xml)
    • Commands
      • .input(text)
      • .completions()
    • Session
      • User
        • Avatar
        • .location - set get avatar location
        • command() - parse user input text
        • completions() - return a list of potential commands
        • Screen
          • .data(data) - You can send data
          • .info(text) - Info
          • .warning(text) - Warning
          • .danger(text) - Danger
          • .error(text) - Error
          • .input(data) - Ask for text input
          • .select(data) - Ask to select something
          • .prompt(data) - print a prompt, especially in a terminal
          • JSON (Web) - Interface via Web
          • Enquirer (Terminal) - Interface via Terminal

GUI Screenshots - The Universal Interface

The user interface is abstracted via Screen Object no extra steps are required to craft terminal or web interface.

web-and-terminal-ui-side-by-side.png

Development Screenshots

screenshot screenshot-borders screenshot-robots screenshot-command screenshot-login screenshot-browser screenshot-conversation

World Structure

  • Universe is made up of Locations
  • Location contain interactive Agents/Robots

Processing Humans - a simple approach to AI

When a robot asks a question, the question is paired with pre-set anwsers: For example: "How are you?: Great!/Awful", or "Do you want to schedule an appointment?: Yes/No" processing-humans.png

Interactive Components and the USE command

A world needs to engage the user, a robot may ask "How are you?: Great!/Awful", or "Do you want to schedule an appointment?: Yes/No" (note that questions are coupled with pre-set answers to sidestep parsing)

A music player may print "Which song do you want to play? Hey There/The Hork Song" these are the fundamental OBJECTS in HyperWorld small stateful finite XML node driven state machines. Beyond that it is just Locations and Locations within Locations ad Infinitum.

Primary mode of interacting with State Machines is the use command. For example to log into the system the user will state:

use login machine

To tweet from within the system the user can:

use twitter send 'I hate this.'

Press

Developer Notes

(developer note: use Atom's markdown preview plus plugin to navigate links below)

Todo

  • Authentication
  • do not use shorthand <tag/> use the full markup.
  • research z-circle-ui
  • robotiq state machine components
  • Web Components feel fickle, need a debug tool.

State Machine Components (was known as Robot)

  • Here is the state machine front-end: Commands/Machine
  • State machine UI is driven by JSON Screen Printer
  • Decide what to do when a component Promise expires in JSON Screen Printer's Input and Select. Note: the try/catch is located in the Commands/Machine
  • FINISH: Select Component
  • Initialize Robots - Robots are the Primary way of Interacting with System
    • while the system is operational it should really be run by a subsystem that employs XML to create the State Machine Tree Structure.
  • upgrade the USE command
  • REVIEW: Input Component
2.21.0

28 days ago

2.20.0

2 months ago

2.19.0

6 months ago

2.18.0

6 months ago

2.17.0

9 months ago

2.16.0

10 months ago

2.15.0

1 year ago

2.13.0

2 years ago

2.14.0

1 year ago

2.11.0

2 years ago

2.12.0

2 years ago

2.10.0

2 years ago

2.9.0

2 years ago

2.8.0

2 years ago

2.5.0

2 years ago

2.7.0

2 years ago

2.6.0

2 years ago

2.4.0

3 years ago

2.3.0

5 years ago

2.2.0

5 years ago

2.1.0

5 years ago

1.19.0

5 years ago

1.18.0

5 years ago

1.17.0

5 years ago

1.16.0

5 years ago

1.15.0

5 years ago

1.14.0

5 years ago

1.13.0

5 years ago

1.12.0

5 years ago

1.11.0

5 years ago

1.10.0

5 years ago

1.9.0

5 years ago

1.8.0

5 years ago

1.7.0

5 years ago

1.6.0

5 years ago

1.4.0

5 years ago

1.3.0

5 years ago

1.2.0

5 years ago

1.1.0

5 years ago

0.0.0

7 years ago