The trouble with talking


The Problem

A Case of Murder involved a fair amount of talking to characters and was the area of the game I was always the least happy with. Players needed to know the exact syntax to talk to NPC, for example, Say to Jane "Hello", you needed to include the speech marks. If you had a lot to say to Jane repeatedly typing Say to Jane "" got old very quickly or at least it did during the test phase. You also needed to know what to ask about.

The next game in the series Both a Belt and Suspenders again will feature interviewing different characters. Mindful of the issues from this game I wanted to try something different (better hopefully). Many adventure games were released as point-and-click to avoid these issues, personally, I always found them less immersive. Point-and-click also doesn't work well with a keyboard as your only interface.

The Solution

As a result, I started looking at implementing a more menu-driven form of speech. Before getting too far down a wrong path I wanted to get some idea of the difference in memory usage and how well the idea would work. The best solution seemed to be to compare to a known benchmark, so I worked on converting A Case of Murder to a menu-driven speech system. The end result was a size increase of 200 bytes primarily due to the extra text in the menu options. Unfortunately, this overwhelmed the 48K Spectrum target which only had about 8bytes of free memory when released. However, for the larger memory targets, there was plenty of space.

I've uploaded images for the Commodore 64, MSX 2 and Spectrum 128 which feature a version of the speech system to be used in the next game. To use it make sure you are in the same location as an NPC then trigger it using Talk (to) Jane/Robert/JP, etc. 

 

This will then display a menu, each item in the menu is preceded by one or more letters. Type these in to trigger the NPC to respond.


L for Leave will take you out of the conversation and redescribe your location. A couple of options like A to Ask about a person will take you to a submenu, from the submenus B will take you Back to the top level.

Hopefully, this is an improvement on the original implementation and will be further refined in the next two releases.

Technical Notes

My original idea was to number the entries, but as the options displayed depended on who you were talking to or what you had so far discovered, the numbering would either have been non-sequential or a cumbersome mess to manage elegantly. Hopefully using letters is a sensible compromise.

The ability to implement menus was enabled by a feature in DAAD that PAWS lacked, the condact SKIP which allows you to jump forward or back in code. For example, if the letter inputted wasn't one on the list it was easy to SKIP back to request another input. 

I played with the idea to capture input using INKEYS but the result returned varied on different platforms and would have required a deal of messing about to get the right capture codes it seemed more sensible to use the inbuilt

> _      _      NEWTEXT
                    PARSE 0

and implement the letters as verbs. In some cases where they already existed as direction verbs, this was a small space saving.

Previously the game had 23 Processes about half of which dealt with speech, this was reduced to 12, only 1 of which deals with speech. This made a sizeable space saving.

Files

MURDER COMMODORE 64 GRAPHICS SPEECH MENU.D64 170 kB
Apr 14, 2023
MURDER 128K GRAPHICS SPEECH MENU.DSK 190 kB
Apr 14, 2023
MURDER MSX2 GRAPHICS SPEECH MENU.DSK 720 kB
Apr 14, 2023

Get A Case of Murder - Re-Release

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.