MASIHINI
WHAT IS IT?
Masihini is a 3D game, where the player is controlling a Mars Rover using the "Masihini" Scripting Language.
​
The player has the ability to make the Rover:
-
Move
-
Rotate
-
Jump
-
Speak
-
Stop
​
The Masihini Scripting Language has the ability to handle: While loops, 2 dimensional Arrays, assignment, arithmetic and boolean expressions, to mention a few.
​
Check out the Quickstart Guide here
​​
Platform: PC
Programming Language: C++
Tools Used: Unreal Engine 4, Flex & Bison
Duration: 4 months
Team Size: 2
Role: Gameplay and Compiler Programmer
Responsibilities: Gameplay and Compiler Design and Development
How does it work?
Masihini Scripting Language
It's a language that the player can write on a terminal console in-game then Run it which will compile it and generate the code necessary to make the Rover perform the actions we tell it to.
​
GRAMMAR
​
SEMANTICS
-
Cast variables is only permitted between:
-
Int to Float values.
-
Float to Int values.
-
Any type of value to String.
-
-
Performing operations such as Addition (+), Subtraction (-), Multiplication (*) or Division (/) between:
-
Int + Int = Int
-
Int + Float = Float
-
Int - Int = Int
-
Int - Float = Float
-
Int * Int = Int
-
Int * Float = Float
-
Int / Int = Float
-
Int / Float OR Float / Int = Float
-
-
Boolean values cannot be used in operations such as Addition, Subtraction, Multiplication and Division with any type of data (Boolean, Int, Float, String).
-
Arrays can only be of any and one type of data.
-
The Boolean Operators (>,<,==,!=) cannot be combined with Arithmetic Operators (+,-,*,/).
-
String values can be added as concatenation but not subtracted, multiplied or divided.
-
Boolean values are interpreted as true =1 and false = 0.
-
The size of an array can only be determined by a type int value.
-
If it is determined by a variable, this variable must be of type int.
-
-
Operations between arrays are not permitted.
-
Boolean and Relational expressions have left associativity.
-
The maximum size of an array is the size of an Integer, which is 32 bits.