hyperworld v2.21.0
HyperWorld OOP Language
Virtual World of Objects.
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
- User
GUI Screenshots - The Universal Interface
The user interface is abstracted via Screen Object no extra steps are required to craft terminal or web interface.
Development Screenshots
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"
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
- Project name is: HyperWorld (One word, both Hyper and World are capitalized)
- NPM Package
- GitHub Repository
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
28 days ago
2 months ago
6 months ago
6 months ago
9 months ago
10 months ago
1 year ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
7 years ago