This forum is closed to new posts due to low activity and a deluge of spam. It is kept online as a static historical record. If you want to read about or discuss esoteric programming languages, the Esolang wiki is the place to go. An archive of the forum is available.

new esoteric language (5)

1 Name: mechaniquesoft : 2006-05-27 15:57 ID:2C49tgvu

Hi, I am quite interested in esoteric programming languages, I think they are a wonderful way to 'explore' non-conventional programming techniques. As a matter of fact they inspired me so much, I created one (quite useful actually) esoteric language in Java. This programming language I called MechaniQue, because it behaves in my opinion in a very 'mechanical way': without explicit calculation. This is why I think it's esoteric: it has no variables, and yet this language offers randomness, time calculation, OR and NOT operations as well as a notion of sequence and order. MechaniQue has a certain purpose as well: it's an excellent way to rapidly create interactive fiction (which connects MechaniQue to my other passion). Maybe you are interested now, if you are, feel free to take a look at my website (www.mechanique.nl), o and it's free of course. If for some reason this post does not comply to your guidelines, I am very sorry please hand me some indications how to communicate on this forum, I found no obvious guidelines.

Cheers,

MechaniQueSoft (c)

2 Name: mechaniquesoft : 2006-05-27 15:57 ID:2C49tgvu

Shit! I saw I posted this topic twice, sorry, my webbrowser did not respond well

3 Name: Rune : 2006-05-28 10:28 ID:o1HdiVPl

Welcome :)

I don't think there are any explicit guidelines here. But telling us about new esoteric languages is definately a good thing, so don't worry!

4 Name: Keymaker : 2006-05-29 13:41 ID:0R36/vFw

Yap. Welcome! :)
It seems like an interesting esolang, hopefully you can write some examples soon!

5 Name: mechaniquesoft : 2006-05-29 21:43 ID:2C49tgvu

There is a hello world example on the website, some examples are written in the manual and a demo is included in the package.
This is how you say 'hello world' in mechaniQue:

@^:Hello World
@^?
@end

And this is a little game:

(listing A)

@^#Little demo
@[forest]^:You are in a forest, to the west is a cave.
@{DICE4}^:A bird is chirping.
@^?
@{_w}^->cave
@{!lantern}{_l}^:Next to the tree is an old brass lantern.|^->forest
@{_tbrasslantern}{_tlantern}{or}{!lantern}^:Okay, taken|^+lantern|^->forest
@^->1
@[cave]^:In the cave.
@{!light}^:It's dark here! you cannot see a thing.
@{light}^:Some rocks. On a little oak table, there is a antique black telephone.
@{light}{ROT2}^:It rings...
@^?
@{lantern}{!light}{_ulantern}^+light|^:Okay, there is light now..|^->cave
@{_utelephone}{_uphone}{or}{ROT3}^->phone
@{_e}^->forest
@^->1
@[phone]^:Well done!, you survived your first adventure in MechaniQue!|^:press ENTER to quit.|^?
@end

In order to play this game you need a parser. MechaniQue uses parser-files to interpret answers, for english you could use a file like this:

(listing B)

@go
@walk
@the
@of
@in
@over
@under
@a
@direction
@by
@to
@on
@turn=u
@light=u
@switchon=u
@talk=u
@use=u
@play=u
@apply=u
@take=t
@get=t
@fetch=t
@grab=t
@give=u
@offer=u
@put=d
@drop=d
@attach=u
@with=wt
@north=n
@south=s
@west=w
@east=e
@look=l
@around
@watch=l
@inspect=l
@search=l
@see=l
@answer=u

Copy listing A and paste it in textfile thephone.book and save it. Now copy and paste listing B in a file en.txt.
You should now be able to run the game like this:

java -jar mechanique.jar -file:thephone.book -interface:cl -filter:en.txt

or if you prefer a nice GUI while playing the game:

java -jar mechanique.jar -file:thephone.book -interface:gui -filter:en.txt

or if you want your computer to read the game to you (OS X only):

java -jar mechanique.jar -file:thephone.book -interface:spk -filter:en.txt

There are several things that make MechaniQue a bit odd in my opinion: in the first place it uses symbols instead of words, this is a feature of many esoteric programming languages I noticed, also it does not rely on variables (why should it?). Furthermore it uses parserfiles to interpret answers from players, which makes it possible to answer in your own language which does not have to be English ;-)

The language has the following syntax:

@X {Y1}{Y2}{Yn} ^Z1|^Z2|^Zn

There are three sections :

X is the label (used for jumps)
Ys are locks that must be unlocked in order to execute the Zs
Zs are basic actions, seperated by pipes |.

Possible actions are : # (comment), : (print), -> (goto/jump), <- (jump back), +X (add key X), -X (drop key X), ? (input)... that's all!

There are a few special keys generated by the system itself:

ROTX where X is 1,2,3,4,5,6,1,2,3,4,5,6 etc.. X changes after each ?
_X where X is answer from player
DICEX where X is a random number between 1 and 6
TIMEX where X is the number of interactions that have been registered
PATHX where X is a,b,c,d,e,d,c,b,a,b...
OCCX where X is the current date
TWISTX where X is 1 or 2, does not change

Im not sure whether this language is really esoteric, my goal is to make a language to create snack-sized adventure games, but I also want the language itself to be somewhat of a challenge.
If you have any suggestions please tell me.
You can also mail me via the website: www.mechanique.nl
or : ragtimenerds@gmail.com

Cheerz
Gabor

This thread has been closed. You can not post in this thread any longer.