Alien Text Engine? What?
This is the first big project that I have faced. It started a few years ago when Prometheus (the alien movie sequel) launched. As an alien fan I went to watch it hoping for the best. It was terrible (sorry if you liked it). On that day I set down and though: “How can I fix this? How can I save this amazing universe?”.
The first thing that came to mind is that I’m a developer and I wouldn’t be able to make an animation or a movie, but since I loved games I would make a game out of it. I would rewrite Prometheus to my taste! I decided to make it a text game since I wanted to see results quickly and finish soon.
A Work always in progress
As all my friends know, swiftly my small project became huge. I wanted a clean API and a sh** ton of features. Soon enough it became an engine (this happened to me before. Like… with all games I started).
A mountain of features
As the years went by (yes, at least 3) the engine took shape, grew and became strong. In 2014 I took a course on compilers during my graduation and made my main assignment to create a language for this engine. A language (and a compiler) where everyone would be able to code histories. And thus, Tale code was born.
But what is it?
Alien text engine is a game engine that provides a framework for text game development. It is a big library with many standard definitions for objects, actions, interactions that one would use to create a text adventure. It is internationalized supporting by default portuguese (Brazil) and english.
Tale code is a companion programing language that comes with the engine. The language is a declarative script. In it you instantiate behaviours and objects, create scenes and links setting up an entire history.
Tale pad is a notepad that compiles tale code. I don’t suggest using it to write talecode though, for that I use NotePad++ with a language definition that I made (available here).
What can you do with it?
- Create amazing virtual text worlds
- Embed text histories on your apps and sites
- Play other histories
- Use to help master RPG games
- Custom translation support
- Command creation at runtime
- Multiplayer ready
- Easy API (Java)
- History models are customizable/extensible