Header
Artificial Intelligence

Unreal Engine 4 Arena Bot

This is a little demo I put together from scratch to practice with the Unreal Engine 4 using assets from another project of mine, Wacky Spores: The Chase.

It's a simple bot for an "Arena FPS" style game in which the AI uses behaviour trees, navmesh and raycasting to navigate and evaluate it's surroundings.

The bot roams the arena until he finds the player. At that point he starts shooting and moving randomly to dodge the player's fire.
If during the skirmish the player flees, the bot will look for him in the last known position, while if the bot gets hurt he will try to reach a health power up (while still defending himself).

Have a look!

A* Pathfinding

Here's a quick implementation of the super used A* pathfinding algorithm using the GML language of Game Maker: Studio and exported in HTML5.

The G score is a standard 1 for every node while the H score is a variaton on the Manhattan distance based on the point_distance GML function.

Hover the mouse (or tap) to see it working!

Your browser doesn't support HTML5 canvas.

SigmaScorpii Screenshot

Natural Language Processing

In my academic years and my time working at the Computer Science department of Sapienza University of Rome I've been part of different projects involving the linguistic component of AI: Natural Language Processing.

In my master thesis, Sigma Scorpii, I have modeled a virtual world made of Locations, Agents and Objects to represent the classic Agatha Christie mystery setting of the old manor.
The game generates a house with guests, simulates the evening in which the agents talk to each other and move around the mansion, and finally generates a murderer to kill the old host.
That's when the player, the detective, comes into play trying to solve the case by examining the victim, the different places and interrogating the guests.

The idea was to not only create agents able to gather and store knowledge but also to give them the ability to express that knowledge in natural language generating a different sentence every time.

Have a look at the thesis (ita) or play a bit with Sigma Scorpii