📜 ⬆️ ⬇️

About text adventures - back to basics

Hello!

In this post I would like to tell a little about the development of a textual adventure, which gradually grew into the creation of a platform and an editor, and also formulate my thoughts about the genre as a whole.


About Interactive Literature (IF)


Interactive literature (IF) has become one of the pillars of computer games. Back in 1975, Colossal Cave Adventure was created, thanks to which the genre quickly captured the minds and hearts of people who at that time had access to a PC. I will not describe the further rapid development of the genre in detail: this has already been written about so much. It suffices to say that with the development of graphical interfaces, completely text-based games gradually began to be forgotten, and in the end, by the early 90s, the main developers of adventure games and, in particular, point-n-click adventure (we have known as quests ") went completely to the graphical interface (the same point-and-click). Interactive literature has become more niche, games continued to be released, but even those who closely followed and followed the development of computer games about this genre little is known. The only exception was Legend Entertainment . In general, although I watched the genre a little, it seems to me that there are two branches of development: maximum simplification, when you just need to choose the further development of the plot, like a computer variation of game books, choose your own adventure . Such games are usually called “menus”, as a rule, in them you just need to click on the options or on the highlighted words to move through the plot. There is no text parser in them at all as superfluous. The second branch went along the path of complication, while, on the contrary, maximum attention was paid to the development of the parser, so that the command line would understand the phrases entered as best as possible. It is worth noting the system TADS and Inform .
')
In my opinion, both approaches are very interesting, but at the same time, it seems to me, the essence of a computer game is fading into the background: the player’s interaction with the game world. Indeed, in the game, the greatest interest arises when a player can, in principle, influence the world and characters, can play the game in various ways. Role-playing games in this regard have progressed much further, but, unfortunately, a short period of revival of the late 90s, which pushed geniuses from Black Isle Studios , quickly ended, giving way to action-RPG and again slipped to simplification from the point of view of the global nature of the game world. and nonlinearity of passage. But even in Fallout, the development of scripts left much to be desired ... One of the best examples of the development and smoothness of the game world and scripts, in my opinion, is still the game Maniac Mansion , the other day, by the way, the efforts of our Oldheimer Translation Bureau finally translated into Russian language . You can complete the game in various ways, the Edison family intervenes in every way, many events are tied to a timer - as a result, immersion into the game turns out to be incredible! The first game of Lucas Arts , unfortunately, remained largely unsurpassed, as the development of quests took the path of simplification for the player (first, the number of verbs or commands with which you can interact with the game world was reduced, and then simplified to just one click ) and a quantitative increase in content (more scenes, more conversations). It is worth noting that in MM there were no dialogs at all, the characters talked without your participation.

Choosing a concept


Finishing this somewhat lengthy introduction, I would like to say that I wanted to return to the past, to the times of Zork and Maniac Mansion , and make the game completely on cause-effect relationships, without any random'a, with an emphasis on interaction with the game world , and not on the development of the parser or something else. Key points:

0) no random'a;
1) the game should be clear and simple for the player and for the creator;
2) there should be a comfortable modern editor;
3) old school interface (text only, in canonical text mode 80 to 25);
4) of course, support for the Russian language, including cases (i.e., not “take the book”, but “take the book”).

Of the existing systems for the development of IL, ADRIFT is closest , but it is much more sophisticated (they even make RPGs there!) And the situation with the Russian language support is somewhat unclear (as far as I could find out, only the old third version has it (it was still in 1997, ceased to be developed in 2001).

From the first paragraph it follows that the number of verbs (commands) should be limited and initially known to the player. All objects with which you can interact must also be known, which is achieved by highlighting them in the descriptions of objects and scenes. As for simplicity for the creator, then, first of all, this means that he does not need to know programming, and the creation of the quest must be “out of bricks”, and not in his own object-oriented language.

The second point means that a person should create a game using a convenient GUI, and not in a text editor (filling out tsiferki-actions from memory).

The third point was determined by the engine on which the TDZ is written. They became pdcurses , the ideological development of Curses , which originates from UNIX-systems. One time, I had the idea to use an extension that allows you not to limit yourself to colors, but it is only for Windows and I quickly disliked it.

We program the engine


In the program plan, I originally wanted to strictly fix the game scheme, to make it as easy as possible. Therefore, it was decided to make only three classes - “scene”, “object”, “action”. Scene is the scope of commands, that is, while you are on the same stage, objects from another scene are inaccessible for interacting with them. The only exception is the “global scene”, which allows you to interact with objects anytime and anywhere (for example, if the objects are in your inventory). But, it is important to note here that interaction with objects in the current scene can change objects or actions in another scene (for example, you press a button, and somewhere a door opens below). But the most interesting class is the action. Action is what you can do in the game with the help of a command (for example, “take an apple”). All causal relationships in the game can be described by the “conditions”, “results”, and also the “states” of the actions themselves. Conditions are what actions must be committed (or - not committed) before a given action can be performed. Results are changes in the states of other actions. Condition - done or not this action (there may be other states, if there is a need, the engine is not limited to only two). And, of course, there must be an answer that gives the game to perform this action, as well as a change in the score of the game (as it was in the old Sierra quests).

It seems that it is simple and convenient, but in fact it turns out that even just to get only two objects out of the refrigerator (which can be opened and closed) while keeping track of the correct description of the refrigerator (“the refrigerator is closed”, “lie in the refrigerator both items ”,“ only the first item is in the refrigerator ”,“ only the second item is in the refrigerator ”,“ the refrigerator is empty ”) will need to think very seriously :) That is why, as it seems to me, the text adventure engines have taken the object-oriented way Gramming, when you need to create container classes, etc., and the engine itself will already know what description to substitute at the right time. I do not like this approach because the individuality is lost in the game: it is much less interesting to read sample descriptions than written ones.

Interface


I never thought about the convenience of the interface: I am interested in the concept and general game ideas - but after I posted the first version of the game in 2008, people immediately started talking about the interface. Someone didn’t want to type in phrases completely, so I reduced the length of the object or verb I needed to enter up to 3 characters, someone didn’t want to enter anything at all, just choose from the list. Then I introduced the “Casual” interface, where verbs can be selected using the arrows on the keyboard and the space bar. Someone did not like the colors, I wanted to customize them for themselves. Of course, these features should be additional, so they can be disabled or configured by editing the settings file (tdz.cfg).

The field for activities in this sense is simply enormous. For example, you can add the ability to play music and more. I hope I will not abandon the project and I can add all this and make it customizable.

We program the editor


At first I made the game itself (description of scenes, objects, actions) just in a text editor, but then I thought that it would be much more useful to make a convenient graphical interface. Fortunately, in the second paper I am developing in Python / Turbogears , about which I have already written about the application to all fun things here . The interface allows you to view and edit descriptions and parameters of scenes, objects, and most importantly, add and modify actions with all their numerous nuances. I nevertheless decided to leave the game resources in the original text form, and not in the form of an sqlite database, because, it seems to me, users should be given the opportunity to look at the “insides” of the game. Therefore, the ability to export-import resource files is made from the editor.

results


At the moment, made two games, one is devoted to the game Simon the Sorcerer , which I love very much and even once translated:


The second game is smaller and is called Cosmic Madness :


The video shows the walkthrough, so if you want to play on your own and don’t want to spoil your impressions, it’s better to watch them when it’s not clear what to do, etc.

Well, I recently recorded a video explaining how to work in the editor (view in HD, otherwise everything is blurred):


Page about TDZ on my site - dimouse.ru/norka/computers/tdz.html
I am not posting an editor yet, but if someone wants to see-try - write, send.

I will be glad to constructive opinions about this development and tips for improvement!

Source: https://habr.com/ru/post/211226/


All Articles