I Wanna Be the Esolang
Paradigm(s) | 2D, AI |
---|---|
Designed by | User:Otesunki, User:Razetime |
Appeared in | 2022 |
Computational class | Unknown |
Major implementations | Currently Unimplemented |
File extension(s) | .iwb , any |
I Wanna Be The Esolang (abbreviated IWBTE) is a two-dimensional programming language based on the ideas of 2D platformers akin to I Wanna Be the Guy. This page is currently unfinished.
In progress are the methods of storage, conditionals, input, output and AI Agent specification.
Syntax
Every IWBTE program describes a platformer level in 2D space using unicode art. An example program may look like the following:
█████████████ █ ▼▼▼ █ █ ○ █ █ ■ ▲▲▲ █ █████████████
each character is a tile that indicates a game element. The possible tiles, as of now are:
Tile(s) | Name | Details |
---|---|---|
█ |
Wall | Blocks any movement from the player. |
▲▼◀▶ |
Spikes | Kill the player, terminating the program with an error. |
^ |
Jump Refresher | Will refresh a single jump for the player, and get removed from the playfield. |
═║ , box drawing characters |
Level trigger | ║ is on and ═ is off. Must be linked to one or more togglable objects using box drawing characters. Does not collide with the player.
|
░▓ |
Switch walls | Togglable. ▓ when the level trigger is on, ░ when the level trigger is off.
|
■ |
Start location | Start location of the player. |
○ |
Goal | Ends the level. |
The AI
An IBWBTE program is run by making an AI play the level. The AI will perform any and all tasks necessary to get to the goal, avoiding death if possible. If it cannot reach the goal, it will get as close to the goal as possible before dying or stopping.
A more complete AI spec is pending.
Implementation
Any implementations of IWBTE must provide a way to visualize program flow i.e. There must be a graphical output of the given program, and an animation that shows the AI behaviour.
Ideally this will be done under a Clickteam game engine in order to emulate the physics of IWBTG.