top of page

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.

video DEMO
bottom of page