Hi guys!

I want to show you a little videogame I wrote, named Textics. It’s a textual game, played directly on the console, without any graphics.

The aim of the game is to reach the exit of each room without being captured by the enemies. Some of them will not move, and you just have to avoid walking in front of them. Instead, other ones will move following pre-determined patterns, so it will be very useful to observe where they go before to move!

The game area is divided in rows and columns, like a chessboard: every cell is univoquely identified by two coordinates, like (A;g).

Following, a screen of the game:

Textics screenshot


  • P: player’s position
  • E: enemy’s position
  • +: enemy’s view: if you walk on it, you will be caught!
  • X: exit
  • | or _: these represents an horizontal or vertical wall, which the player cannot walk on and enemies look through (of course!).


You can use the following commands:

  • goto Xy: go to the (X; y) cell. Attention: the player can only move on a straight line!
  • wait: wait one turn, so you can observe how the enemies move;
  • exit: go through the exit e continue with the next level. It can be used only if the player is on a cell adjacent to the exit.
  • menu: go back to the main menu.
  • quit: close the game.


Levels are saved in the levels.dat file. It is an XML file, that is read from the executable and used to create levels’ map. The user can freely modify it in order to create new levels or modify existing ones.

Here’s how. First of all, you need to create a <level id=”xx”>…</level> node at the end of the file (inside <levels> root), and update the counter <levels count=”xx”> at the beginning of the file.

Here’s the list of the possible elements you can add into the level. Please note: x and y coordinates of each node must be numeric value between 0 and 19.

Mandatory nodes are:

  • <player x=”xx” y=”yy” />, that represents player’s position;
  • <exit x=”xx” y=”yy” />, that represents exit’s position.

The other, optional nodes are:

  • <hwall x=”xx” y=”yy” />, that represents an horizontal wall, that is identified on the map by ‘_’ character;
  • <vwall x=”xx” y=”yy” />,  that represents an horizontal wall, that is identified on the map by ‘|’ character;
  • <enemy x=”xx” y=”yy” view=”u/r/l/d” />, that represents one enemy. The view parameter, that can be equal to u, r, l, d, tells where he is looking: in order, up, right, left, down.
    • Enemies can move along pre-determined paths. You need to add into the enemy node, a node called <movement>; in it, you need to add as many <point> nodes as the points the enemy will reach (excluding the starting point). The syntax is: <point x=”xx” y=”yy” view=”u/r/l/d” />.
  • <dialogue>, that can be inserted at the beginning of the <level> node: you can insert the text you want to be viewed to the right of the map in it, enclosed by the tag <![CDATA[ … ]]>. It must be no longer than 20 rows, and each of them must contain no more than 30 characters.


Nowadays, the game counts only 10 levels, so it will take no more than a few minutes to be completed. Any progress is saved when you complete a level, and the game can be resumed at any time.

Probably, I will add an inventory system, giving the player the ability to get different items, like keys to open level’s exit, or other gadgets.

You can find the source code in the repository, and the archive with the executable can be download here.

Stay tuned!


Expeditus: first little tech demo

Hi guys!

Finally I am here again with a new update about Expeditus.

Dialogues system is completed: it reads texts from binary files, typing machine-like animation can be used (it shows one character at a time), it can show a single or a series of dialogues, and can ask the user to answer YES or NO to eventual questions.

After a first introduction, there is a very little demo that shows the NPC patterns feature: the small red rectangle starts to move around, following the same pattern, until you catch it.

At the end of this post you can find a screenshot of the game.

Here you can find the executable game with all the needed libraries; if you want to get the source code, go to the repository.

Stay tuned!

Expeditus: dialogues’s system

Even if it’s quite slow and there are some difficulties, Expeditus project’s developing is going on. Dialogue’s system is ready, but it is not possible yet to give answer (like a simple YES/NO): this feature will be soon implemented.

At the end of this post, a gif image shows Expeditus dialogue’s system in action. It is a little tribute to Pokémon Gold Version, from which I took the introduction dialogue by Prof. Oak.

If you want more frequent and detailed information, please follow the official repository.

Update: a little animated cursor is now present at the bottom-right corner.

Stay tuned!