Zinm Language

I would like to develop a new language which I would like to call Zinm.

This could stand for Zero-based Inertial Navigation Machine or perhaps Zone Inertial Navigation machine.

It would be a language used much like SQL; not a full language in itself but a language designed to deal with a certain kind of data structure. In this case 2D arrays. There are lots of ways to manage 2D arrays using terminal navigation or Random access. This seems to be a prominent feature of most languages. When it comes to game design, inertial navigation might be useful.

Zinm would be a two dimensional language essentially consisting of numbers and commands each placed in an array of boxes which show the steps (numbers) and actions at those steps (commands). in this way it would be much like Perl and Befunge.

Arrays would be written like this:

 prog 1:
 _________
 | 0 | 1 |
 |doX|doX|
 |___|___|
 | 3 | 2 |
 |doX|doX|
 |___|___|

In this simple case, the program would move go around a clockwise motion from its origin doing the command 'doX' at each stage.

I have written a Chess program in Zinm and will insert it later. I intend to write about fifty programs in Zinm using different syntax until I start to see what might be a good syntax for a general Inertial Navigation System. -- JonGrover

Chess:

 ------

Play Chess: ______________ |0+ Set Up | |Chess Board | |____________| |1 | |White Moves,| |or | |____________| |2->1 | |Black Moves,| |or | |____________|

White Moves: ____________________________ |0 | |White.Rook Moves and| |White.Knight Moves and| |White.Bishop Moves and| |White.Queen Moves and| |White King Moves and| |White Pawn Moves and| |Castle White King Side and| |Castle White Queen Side | |__________________________|

Black Moves: ____________________________ |0 | |Black.Rook Moves and| |Black.Knight Moves and| |Black.Bishop Moves and| |Black.Queen Moves and| |Black King Moves and| |Black Pawn Moves and| |Castle Black King Side and| |Castle Black Queen Side | |__________________________|

Set Up Chess Board: _________________________________________________________ |0(0,0)|1 |1 |1 |1 |1 |1 |1 | |Black.|Black.|Black.|Black.|Black.|Black.|Black.|Black.| |Rook |Knight|Bishop|Queen |King |Bishop|Knight|Rook | |______|______|______|______|______|______|______|______| |1 |1 |1 |1 |1 |1 |1 |1 | |Black.|Black.|Black.|Black.|Black.|Black.|Black.|Black.| |Pawn |Pawn |Pawn |Pawn |Pawn |Pawn |Pawn |Pawn | |______|______|______|______|______|______|______|______| |1 |1 |1 |1 |1 |1 |1 |1 | |______|______|______|______|______|______|______|______| |1 |1 |1 |1 |1 |1 |1 |1 | |______|______|______|______|______|______|______|______| |1 |1 |1 |1 |1 |1 |1 |1 | |______|______|______|______|______|______|______|______| |1 |1 |1 |1 |1 |1 |1 |1 | |______|______|______|______|______|______|______|______| |1 |1 |1 |1 |1 |1 |1 |1 | |White.|White.|White.|White.|White.|White.|White.|White.| |Pawn |Pawn |Pawn |Pawn |Pawn |Pawn |Pawn |Pawn | |______|______|______|______|______|______|______|______| |1 |1 |1 |1 |1 |1 |1 |1 | |White.|White.|White.|White.|White.|White.|White.|White.| |Rook |Knight|Bishop|Queen |King |Bishop|Knight|Rook | |______|______|______|______|______|______|______|______|

Rook Moves: Knight Moves: Queen Moves: _____________________ _____________________ _____________________ | | |E2o| | | | |E1o| |E1o| | |E2o| |E2o| |E2o| | | |rR2| | | | |rR1| |rR1| | |rR2| |rR2| |rR2| |___|___|___|___|___| |___|___|___|___|___| |___|___|___|___|___| | | |E1 | | | |E1o| | | |E1o| | |E1 |E1 |E1 | | | | |^* | | | |rR1| | | |rR1| | |^<*|^* |^>*| | |___|___|___|___|___| |___|___|___|___|___| |___|___|___|___|___| |E2o|E1 | 0W|E1 |E2o| | | | 0W| | | |E2o|E1 | 0W|E1 |E2o| |rR2|<* | |>* |rR2| | | | | | | |rR2|<* | |>* |rR2| |___|___|___|___|___| |___|___|___|___|___| |___|___|___|___|___| | | |E1 | | | |E1o| | | |E1o| | |E1 |E1 |E1 | | | | |v* | | | |rR1| | | |rR1| | |v<*|v* |v>*| | |___|___|___|___|___| |___|___|___|___|___| |___|___|___|___|___| | | |E2o| | | | |E1o| |E1o| | |E2o| |E2o| |E2o| | | |rR2| | | | |rR1| |rR1| | |rR2| |rR2| |rR2| |___|___|___|___|___| |___|___|___|___|___| |___|___|___|___|___|

Bishop Moves: _____________________ |E2o| | | |E2o| |rR2| | | |rR2| |___|___|___|___|___| | |E1 | |E1 | | | |^<*| |^>*| | |___|___|___|___|___| | | | 0W| | | | | | | | | |___|___|___|___|___| | |E1 | |E1 | | | |v<*| |v>*| | |___|___|___|___|___| |E2o| | | |E2o| |rR2| | | |rR2| |___|___|___|___|___|

Black Pawn Moves: White Pawn Moves: Black King Moves: White King Moves: ______________________ ______________________ _________________ _________________ |Srow- | 0W+ |Srow- | | | UM+ | | |no>R|Wa?no|noWa| |noBa|Ba?no|noBa| |3rows?| |3rows?| | |2rows?| | |? E1|E1 or|? E1| |? E1|E1 or|? E1| |R1-1v | |R1-1v | | | E1-0 | | |orR1|R1 |orR1| |orR1|R1 |orR1| |______|______|______| |______|______|______| |____|_____|____| |____|_____|____| | R1-0 | E1-0 | R1-0 | | R1-0 | E1-0 | R1-0 | |noWa| 0W |noWa| |noBa| 0W |noBa| | E2-0 | | E2-0 | | E2-0 | | E2-0 | |? E1| |? E1| |? E1| |? E1| | | | | | | | | |orR1| |orR1| |orR1| |orR1| |______|______|______| |______|______|______| |____|_____|____| |____|_____|____| | | UM- | | |Srow+ | 0W+ |Srow+ | |noWa|Wa?no|noWa| |noBa|Ba?no|noBa| | |2rows?| | |3rows?| |3rows?| |? E1|E1 or|? E1| |? E1|E1 or|? E1| | | E1-0 | | |R1-1^ | |R1-1^ | |orR1|R1 |orR1| |orR1|R1 |orR1| |______|______|______| |______|______|______| |____|_____|____| |____|_____|____|

Castle White King Side: Castle Black Queen Side: _________________________ ______________________________ |White|White|White|White| |Black|Black|Black| |Black| |King0|Rook1|King1|Rook0| |King0|Rook1|King1| |Rook0| | UM? | E? | E? | UM? | | UM? | E? | E? | E? | UM? | |no>R?|no>R?|no>R?| | |no>R?|no>R?|no>R?| | | |_____|_____|_____|_____| |_____|_____|_____|____|_____|

Castle Black King Side: Castle White Queen Side: _________________________ ______________________________ |Black|Black|Black|Black| |White| |White|White|White| |Rook0|King1|Rook1|King0| |Rook0| |King1|Rook1|King0| | UM? | E? | E? | UM? | | UM? | E? | E? | E? | UM? | | |no>R?|no>R?|no>R?| | | |no>R?|no>R?|no>R?| |_____|_____|_____|_____| |_____|____|_____|_____|_____|

Wa?: _____________ |0MW | 1 | |(0,0)|Watm?| | |lor | |_____|_____| | 1 |2->1 | |Watm?| | |lor | | |_____|_____|

Ba?: _____________ |0MW | 1 | |(0,0)|Batm?| | |lor | |_____|_____| | 1 |2->1 | |Batm?| | |lor | | |_____|_____|

Watm?: ________________________________________ |0 | |White.Pawn? White Pawn Moves?M? lor| |White.Rook? White.Rook Moves?M? lor| |White.Knight?White.Knight Moves?M? lor| |White.Bishop?White.Bishop Moves?M? lor| |White.Queen? White.Queen Moves?M? lor| |White.King? White King Moves?M? lor| |______________________________________|

Batm?: ________________________________________ |0 | |Black.Pawn? Black Pawn Moves?M? lor| |Black.Rook? Black.Rook Moves?M? lor| |Black.Knight?Black.Knight Moves?M? lor| |Black.Bishop?Black.Bishop Moves?M? lor| |Black.Queen? Black.Queen Moves?M? lor| |Black.King? Black King Moves?M? lor| |______________________________________|


You might want to take a look at the game definition markup used by Zillions of Games. It uses a language which specifies the legal moves available for pieces. It is quite difficult to understand at first but intuitive enough with time. Visit http://www.zillionsofgames.com.

-- PaulRuane

Because I want to make this language available for people without running into intellectual property obstacles, I think it would be prudent to do requirements analysis first and then release Zinm 1.0 before looking at Zillions of Games language. I don't know what the status of their intellectual property is on their markup language and I would like to relase Zinm under a GnuLicense? or something similar to make it easily available. Do you know what the intellectual property status of Zillions of Games markup language is? -- JonGrover

I've absolutely no idea but one could compare it to a document format or a programming language. Unless they have patented several aspects of their approach (doubtful) you should be safe to draw inspiration from it. If one compares their rules file format to a document format such as MicrosoftWord one can examine the fact that there are many other office applications that can import and export the Word format, such as OpenOffice and AbiWord, with hassle from MS. If one compares the file format, instead, to a programming language, one can see that MicroSoft implemented a language very much like Java and called it J++. Sun sued MicroSoft over the fact that MS claimed they were implementing the Java language and not because they created a similar language (which they have done now with C# and the .NET libraries).

To conclude, I think you would be better off examining Zillion's approach than not for several reasons: you may be able to draw inspiration from their approach; you may be able to see errors in their approach; it may help you finalise your approach; you will be in much the same legal position should you conciously take their approach as if you unwittingly take their approach. I, personally, would choose to draw inspiration from what they have produced but I would not produce a system that is able to run their game rules as that would drastically erode their market and it would then be in their interests to seek compensation.

Finally, this is my 'feel' for the situation: I do not have much in the way of legal knowledge!

-- PaulRuane


CategoryLanguage


EditText of this page (last edited January 15, 2005) or FindPage with title or text search