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.
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)
Shit! I saw I posted this topic twice, sorry, my webbrowser did not respond well
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!
Yap. Welcome! :)
It seems like an interesting esolang, hopefully you can write some examples soon!
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