santiontanon / SHRDLU

An adventure game based around natural language parsing (inspired by Winograd's SHRDLU)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Play on your browser (v3.9)

https://braingames.santiontanon.dev/games/shrdlu/v39/shrdlu.html

SHRDLU

title

ingame

SHRDLU is an adventure game based around natural language parsing (inspired by Winograd's SHRDLU). It is an experiment, so, I am not expecting the resulting game to be an amazing game, but just an exploration of the posibilities of this type of AI system in a game.

You can play the game here (still work in progress, but it can already be played beginning to end!): https://braingames.santiontanon.dev/games/shrdlu/v39/shrdlu.html

Alternatively, you can view demo videos here:

Other NLP-based games:

SHRDLU is by no means the first game to use NLP techniques. Besides the classic parser-based interactive fiction games like Zork, or The Hobbit, or those that have keyword based conversations (like many (MANY) RPG games), several games attempt to use natural language parsing to allow players to interact in open-ended natural language. For example (this is not an exhaustive list):

Notes

  • If you are interested on how the AI in the game works, there is a PDF explaining it inside of the misc folder: https://github.com/santiontanon/SHRDLU/blob/master/misc/SHRDLU.pdf

  • The game has been coded using TypeScript; basically a typed version of JavaScript, which is much more natural to code in if you are used to object oriented languages. TypeScript compiles to JavaScript, and thus the game can run in any web browser that supports JavaScript. Although in principle any modern browser should do, I usually test using Safari and Chrome. The game is built in plain TypeScript, and no additional libraries have been used.

  • Concerning the visual style, I chose a 256x192 screen resolution with a 16 color palette. These were the specs of the MSX computer, which was the 8bit computer with which I learned how to code when I was a kid.

  • The font used for the game is the original font used in the BIOS of 1983 MSX computers. I used this procedure to generate it: http://www.ateijelo.com/blog/2016/09/13/making-an-msx-font

  • Concerning the use of time in the game: I know dates and times in a 24 hour system with Earh years doesn't make any sense in an alien planet with an undisclosed day/night or star revolution cycle. However, I decided to go with Earth time and dates, to keep the AI simple, and not having to create domain knowledge rules to handle time scale conversions, etc. So, this was a small concesion to make time-handling in the AI-side easier.

  • I would like to thank all the people that helped me betatest the game so far (in chronological order): Jichen Zhu, Josep Valls-Vargas, Jordi Sureda, Sam Snodgrass, Javier Torres, Adam Summerville, Ahmed Khalifa, Sri Krishna, Bayan Mashat, Pavan Kantharaju, Chris Martens, Yaqirah Rice, Zuozhi Yang, Shannen Angell, Robert Gray and every one who played my demo at AIIDE 2018 and 2019! Thank you one more time! :D

About

An adventure game based around natural language parsing (inspired by Winograd's SHRDLU)

License:Apache License 2.0


Languages

Language:TypeScript 99.2%Language:HTML 0.5%Language:JavaScript 0.2%Language:Shell 0.0%