Today we are going to take a look on “best programming language for text-based games” and on top of that we’ll tweak some stuff to avoid some common mistakes. Always on the run and on the hunt for knowledge and inspiration!
For me, there is no better inspiration than: the first time I played Skyrim, trying to invent mazes as a small child, walking under green trees whispering with Mother Nature, making jokes about friends and family… But sometimes you just have to settle down, sit back and soak in what’s around you. A new programming language you’ve never heard of or a project that isn’t really working as intended.
Twine
You don’t need any coding experience for simple, basic stories, which is where Twine comes in. Giving you the tools you need to start creating your interactive fiction, Twine runs on desktop and in your browser.
Simply use the app to create your interactive stories and export them as web pages. When your story is finished, upload the HTML files to a web server and share them with the world.
For more complex narratives, Twine supports features like variables and conditional logic. It also supports JavaScript, CSS, and images if you want to present your story as more than standard interactive fiction.
To help you learn Twine, check the official wiki, and view the screencasts. There is also an informative reference guide and community help in the Twine forums. Get active here and share works-in-progress and learn tips and tricks from your fellow users.
Download: Twine for Windows, Mac, Linux, and Web (Free)
Quest
While you don’t need programming experience to use these text adventure makers, it can help with Quest. It features a built-in scripting language for handling complex logic and supports the addition of sound, images, and video.
Available for Windows or in your browser, completed Quest games can be exported to the web and played online. Furthermore, there are no commercial restrictions, so you can even sell your Quest games if you want to.
Quest is open source (open source vs free software) under the MIT License, which means you can download the source code and modify it. You probably won’t do this, but forking the project remains a possibility if you don’t like the direction Quest takes in the future.
This tool has one of the most active communities of all the text game engines currently available. Specifically, the official Quest forums have regular traffic and new posts on a daily basis. If you want to become part of a community, Quest might be the best choice for you.
Download: Quest for Windows and Web (Free)
ADRIFT
ADRIFT is one of the oldest functioning options for creating your own text-based games. Its unique selling point is pretty clear: absolutely no programming experience needed, even if you want to create non-trivial narratives.
The beauty of ADRIFT is that everything is driven by the GUI. This means drag-and-drop selections, folder navigation, drop-down menus, etc. All characters, events, objects, variables, etc. are click-to-set-up, making ADRIFT one of the easiest systems to use.
The only downside is that ADRIFT games can only be played through the ADRIFT Runner application. The good news is that ADRIFT is cross-platform, so it’s not too much of an inconvenience.
Looking for games to play? Check out ADRIFT’s own database of games. Need help or want to hang out with other ADRIFT users? Check out the official ADRIFT forums.
ADRIFT hasn’t been updated since 2016 but don’t let this put you off as it remains in use.
Download: ADRIFT for Windows and Linux (Free)
Inform
A free app that uses a programming language based on English, Inform features two built-in books to help you learn. These are a tutorial, Writing With Inform, and The Inform Recipe Book. Using the tutorial, you can ease yourself into the software; the recipe books shows you how to control objects in your text adventures.
As well as being bundled into the game-making software, these books can be read on the website’s documentation page. Meanwhile, there is a community of creators working with Inform on the Interactive Fiction Community Forum.
In addition to Windows, macOS, and Linux, versions of Inform are available for FreeBSD and Raspberry Pi.
Download: Inform for Windows, macOS, and Linux (Free)
Squiffy
From the same team as Quest is the simpler Squiffy tool. While Quest is aimed at writers planning to create advanced text adventures or gamebooks, Squiffy focuses on story.
Free and open source, Squiffy outputs completed games as HTML and JavaScript so you can upload them to the web. This can be your own site or the textadventures.co.uk community. Or you can use Adobe PhoneGap to turn your game into an app.
Download: Squiffy for Windows, Linux, and Web (free)
Ren’Py
For a more polished product there’s Ren’Py, a popular game creation tool. You can use this for anything from interactive fiction and other text games to point-and-click adventures.
It comes with a detailed reference manual and a quick start tutorial to teach you the ropes. To see the possibilities of this tool, spend a few moments browsing games made with Ren’Py on itch.io.
While powerful, Ren’Py might prove to be too much for you to handle if you’re new to making games. However, if you have already developed a story with another tool and are ready to upscale it to another platform, Ren’Py is ideal.
Download: Ren’Py for Windows, macOS, Linux, iOS, Android, and Web
Inklewriter
Not sure if you want to commit to any of these text game makers at this stage? Inklewriter is a web-based tool that guides you through the creation process with an interactive tutorial. It’s a more casual tool, designed for less advanced stories.
Simply head to the website and follow the steps. An interactive “Tutorial Story” guides you through the process, enabling the creation of a branching story. With no special code requirements, this is a largely point-and-click process, with you simply adding the story.
Head to the Inklewriter website to start creating your text adventures.
JavaScript (React.js and Node.js)
Usable for both back- and front-end programming, JavaScript is also becoming widely used within the Internet of Things. JavaScript is a core technology for powering the World Wide Web. This is because its effective in front- and back-end development, works well with other languages, is extremely versatile, and is updated annually.
And JavaScript is made better by awesome frameworks that aren’t actually programming languages themselves but might as well be, as beefier versions of JavaScript. These frameworks are so powerful when compared to standalone JavaScript that we teach react.js and node.js at Devmountain instead of standalone JavaScript. These frameworks allow our students to program outside the confines of a browser for more modern applications and use-cases.
![python programming language](https://obiztools.com/wp-content/uploads/2021/10/2crTh7pF_6BR5PtuYzpgJwRxDmMeTIpxqZu8omA8OU-6CuXtHiiLaJJD_8aHzmAjWYQxb3G5bJOkp-TmmPWCKUCz6cGcNU36zLYv9ib_T4XIxRoXMwHFoZ0nKtY3DHb5uRk1pQ9r-1-500x127.png)
Python
What can we say? It’s hard to have a list of top programming languages without Python. Python is often on programming language charts for good reason. That’s because Python is powerful, yet simple to learn. A high-level general programming language, Python is usable across many applications and can be great for beginners and professionals alike.
![html programming language](https://obiztools.com/wp-content/uploads/2021/10/CPl9gFnQWpPHwlBwV9mYQsTgeEygWVpSeUqXFt8bqOVXARQOqXM52jFil5F00BF6g4xKokyLRrnOVnv_aPg6eNntoER4pj96MnpVYGpNvWMpZZts6QtzE-UZE7tBoHagwMUJirw7-1-500x127.png)
HTML
Another core technology of the World Wide Web (and thus a popular programming language) is HTML. HTML is used to define the content and structure of web pages. In this capacity, it is commonly used alongside another “programming language” called CSS.
![css programming language](https://obiztools.com/wp-content/uploads/2021/10/mTraGzXC8L3993p9Dg5y0MwmNCNOCog5cFeQfIYYO4ohD62rKKm2VR7wnGbiAhG_uJaWmiH33eJUxe2q1PPtyfPvfR7BV4ouFWCXGeFluk4TEj-kV-XLFPHaTaP6IorqA0lSjulU-1-500x127.png)
CSS
CSS is not a programming language; it is a markup language. But, alongside JavaScript and HTML, CSS is the third core technology of the World Wide Web. Usually used with HTML, CSS helps define the visual aesthetic of HTML elements. Essentially, where HTML defines the page’s content, CSS defines the page’s overall look and feel. Programmers who are interested in web development would benefit from learning to work with both CSS and HTML.
![c++ programming language](https://obiztools.com/wp-content/uploads/2021/10/izptMHtvX14e5HFpR6ebamFj6aP4FKaZBd-CmsNhU6YoO-ulH0t8_hqW3rGE1kWc-V64_LAEhTZ8E63IZ5FmgxKXna18By_iGyUVb28fo2TTRzZ8rtnmKSLSfSPF5eW7ZcoBwJJq-1-500x127.png)
C++
A star among application, game, and animation-software programmers, C++ offers the speed and portability needed to be used across devices and platforms, and it allows programmers the ability to reuse code, for easier program maintenance.
![typescript programming language](https://obiztools.com/wp-content/uploads/2021/10/tX7mqU_trZMn9K4ZtB2L83uPDToWFVBEaGmXKGen1NTppcCDYHLZWofX3VTq1qvYLEBqPQGE0a7LEQZKTHBG1pU1j1gt9YWeZ8HHeiCS-xnU82IlKVM7icEhPKkLuXtxSnkQ5e-l-1-500x127.png)
TypeScript
Backed by Microsoft’s significant resources, TypeScript is essentially JavaScript, but less confusing. It improves upon JavaScript in a number of ways, such as by allowing programmers to add static types (for easier error identification). TypeScript adds improved functionality to JavaScript, without reducing its effectiveness, making it a great choice for new programmers.
![rust programming language](https://obiztools.com/wp-content/uploads/2021/10/aD7-SqoKy9KJ8B_S67ggRC2lFR1S1mK5pkU1D46VCKgeBqz0KAN0itqtqoRJGszArVveEJR_lyHT0pO39APq6Tl8lnt4osMHzYszZNzmQNICelsCe33V-5byKCqhe5EFEfV3K2Or-1-500x127.png)
Rust
Rust offers speed and security, without sacrificing performance. Rust has valuable built-in documentation and features helpful error messages (so you can more easily find problems when something goes wrong). That said, for beginners, Rust may be more difficult than some of the other languages on this list.
![scheme programming language](https://obiztools.com/wp-content/uploads/2021/10/bNtm-wpRBDZYqw2T9bOZuYT0a-VhB-7OcTebMYFYG6LrGVuP36fu_0o0xIImTUOyNuCBy4tU8aJQwaJBPz1PWGmLOxn2d-qy69ZdMgYC5Fm13a4EpWSlUF_y72-xFaynxuu7XPCP-1-500x127.png)
Scheme
An older language, Scheme is used by large, established internet entities such as Reddit and Google. Scheme’s format is easy to learn and ideal for teaching functional programming.
![java programming language](https://obiztools.com/wp-content/uploads/2021/10/BAcPEUeb2pmiOwkNeqRep7WPsUBAqounZCxa4HgPsuXHhmkDWlpjg9vCExJfNLqKJn_VkzTODuPP78oe3fRqfkPJ7b17ZjUTQWusb7zauYS8cvZseOwlmdMSRdX9b-BCoZAcwGLJ-1-500x127.png)
Java
Java works exceptionally well in a number of use-cases and has long been the preferred go-to language for coding on Android. Java’s motto: Write once; run anywhere references its cross-platform abilities. This versatility, combined with the range of available extensions, can make Java a powerful addition to the programmer’s toolbox.
![kotlin programming language](https://obiztools.com/wp-content/uploads/2021/10/OfNyBeV9rpvPDMME31rTxLNDnEBvb-ElIZl2JkqS2Tm4aLhI2kjUXuHj-3qoKE93xQjrwvUsca7vZUIim_6oFfrPKBz65sIMUaOZsJer7LtD2txx6GsA8MrTHpjbHDoZxosHUVUA-1-500x127.png)
Kotlin
Kotlin is, first and foremost, a programming language used in Android development (where it is officially supported by Google and functions as an alternative to Java). That said, Kotlin’s simplicity, conciseness, and ease of maintenance make it a choice for non-Android tasks, too.
![c# programming language](https://obiztools.com/wp-content/uploads/2021/10/GUYl-h2ISz9NW49Bk5_IVZfGzFDr8ha04Fls5LzBXn3O_jIX4VYjyriJ5w1vExVkkoqyG6hXwHDIobvPVxsCrAhkcmMGH55qGn2HOXhw4GR6sKmoiNmuD51LBWYs6cQipVV9i6-P-1-500x127.png)
C#
Another Java influenced programming language, C# is an accessible, general-purpose language that is as powerful as it is flexible. C# is designed specifically for use with the Windows OS (sorry Mac users) and is part of the .Net framework.
![perl programming language](https://obiztools.com/wp-content/uploads/2021/10/cmv_ZVupQiq9k08kqOurdb5F86BZiLlD0vAR4ZkF52P7z4mrnaZycx7ni27jJlb1JPTaQcrHtQyvG_kfpIHdQU6dINIOyagf3O4qtlTu61ILFaiTmulY_33CpYmzUuUOeFEVc3jZ-1-500x126.png)
Perl
Originally designed for use in manipulating text documents, Perl grew into a popular, widely used programming language in the early 2000s. And while the introduction of Python has effectively stolen most of Perl’s thunder, this once-widely used language still enjoys some popularity. Perl is open-source, clean, and powerful.
![php programming language](https://obiztools.com/wp-content/uploads/2021/10/hnvFIZg49TtwcGN8qnMzPWgjk7MLgSIv9pVyhnoiGeMLBZ6fDh6usrVXVbemPUIBb3BGU8RefESCt-haHnofePlOSztimN-iAQj7YPLEAHF8hPUUmq_b5MZecDXCb1c5OoJnmh0m-1-500x127.png)
PHP
The code behind Facebook, Yahoo, and Wikipedia, PHP has long held an important place in the coding world. PHP is simple-to-use, integrates easily with other languages, and is supported by all major operating systems. PHP is also uniquely designed to operate effectively with databases.
Conclusion
It is always a great idea to know how to code in your favorite language. However, when you are thinking of creating your own game, you realize that there are many different kinds of games that require their own special programming skills. Which one should you choose? The games that are the most popular seem to be either physics based or text based.