Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - troflip

Pages: 1 [2] 3 4
The Games and other Sierra Adventure stuff / Art feedback
« on: July 06, 2016, 02:08:20 PM »
I'm redrawing several of my screens for my SCI0 project, and I'd like to get some feedback on what looks good and what looks bad.

Here's the first one I've redone. It's a dark cave in which you need to find a light switch to turn the lights on (otherwise you have to navigate a twisty path in the dark). I'm probably going to split it up into two screens... the top image is the new version (first screen), and the bottom image is what it looked like before.

If anyone else has any art to share, feel free to use this thread!

SCI Syntax Help / More text parser tricks
« on: July 04, 2016, 02:47:14 AM »
I always though the '>' operator indicated sequence, basically sticking together two separate Said strings, so that you could do

Code: [Select]
(if (Said 'look>')
    (if (Said '/tree')
        (Print "The tree is great.")
    ; ... more things to look at, and I don't need to repeat 'look' everywhere

But the second Said above is actually run in parallel with the first. So you can actually do the opposite too:

Code: [Select]
(if (Said '/tree>')
    (if (Said 'look')
        (Print "tree is great")
    ; .... more actions on the tree

Basically, each / splits a part of the phrase. So the code above says if "tree" is the second part and "look" is the first part. The order of the Said statements doesn't matter.

You can have up to 3 parts to a phrase of course, so you could do the following:

Code: [Select]
(if (Said '//tree>')
(if (Said 'look>')
(if (Said '/bird')
(Print "It's giving you the bird.")

That will respond to things like "look at the bird in tree", since we have:
- 3rd part is tree
- 1st part is look
- 2nd part is bird

Likewise, you can leave these blank if you want anything to match. This example was from poking around in the LSL3 decompile (which is how I discovered this). They have something like this:

Code: [Select]
(if (or (Said '/tv') (Said '//tv'))
    (if (Said ('watch'))
        ; this matches "watch tv", but also "watch something on tv"

I had some things in my game that I wanted you to be able to burn, and I want the user to be able to type "burn blah", or "put blah in fire". So now I can do:

Code: [Select]
(if (or (Said 'burn>') (Said 'put//fire>'))
    (if (Said '/blah')
        ; put the blah in the fire
    (if (Said '/child')
        ; put the child in the fire, etc...

I've recently had some random people try out my Cascade Quest project, and express utter confusion at the text parser interface.

One in particular remarked that they weren't sure when they were allowed to type. And several others were using the wrong words for things - when a simple "look" would have described the room and the things in it - someone who hasn't played this style of game before wouldn't know that. Of course, upon playing the game for a few minutes, people get used to it - but it can be a big turn off at first.

A couple of questions then:

- Didn't Sierra have some kind of booklet that briefly explained the kinds of things you could type? I seem to remember that coming with my games. Anyone have a reference to that?

- Given that the text parser input is hidden in SCI, what kinds of things can be done to indicate the user can type?
    - always showing it (like AGI) of course... but then it's taking up screen real-estate
    - maybe put some kind of arrow or icon in the lower left that indicates text can be input
    - maybe some kind of indication that text input is disabled (e.g. for cutscenes) by letter-boxing or something (but then we still have the problem that brand new players don't understand you can even type - even if you tell them).


What do you think? Useful?

(down arrow to commit the selected autocomplete term, and right/left arrows to switch terms - keyboard controls don't quite feel right yet, I know).

I think it would be hard to get this working with Sierra's interpreter (there's no way to access the vocab resource from script, so you'd have to pre-process it offline and load it from a text file, and it would probably be pretty slow). But possibly ScummVM could do something like this (although it required some changes on the game script side too, but that could probably be avoided). Of course, it wouldn't be "historically accurate".

Look for inspiration for my project... tired of the standard stuff. Were there any especially cool but still readable fonts in any Sierra games?

The Games and other Sierra Adventure stuff / CRT shader opinions
« on: June 17, 2016, 03:55:11 AM »
I've been playing around with a CRT-emulation shader for my little Unity project. What do you guys think of the look? Attached are comparisons with "unmolested", and Scumm's high quality upscaling (and undithered).

(Seems like a "CRT" option would be a good thing for Scumm to have, given the time period of games it supports).

SCI Syntax Help / Decompiler mysteries 2
« on: June 14, 2016, 04:19:12 AM »
Also in QFG2... The decompiler produces a bunch of "--invalid--" tokens in Said strings. It turns out (of course), that these *are* valid. They just correspond to duplicate words in the vocab resource.

For example, QFG2 has:
word group 451:    open       verb
word group 1246:  open       verb/noun

When Companion loads the vocab resource, it assembles a dictionary of word -> group, and assumes each word is unique. So one word goes missing, and the decompiler can't map from word group to word.

So the questions are:
- Is that intended behavior for Sierra to have duplicate words? Was it used for different words in other languages maybe? (someone could probably test this)
- How did their compiler disambiguate them? 'open, open>'   -> how does it know the first open is 451, and the second one is 1246?

SCI Syntax Help / Decompiler mysteries
« on: June 14, 2016, 03:54:45 AM »
Thought there was already a topic for this, but couldn't find one.

In Quest For Glory 1 (Hero's Quest), in, Act:canBeHere, there is this clause in an if statement:

Code: [Select]
(== illegalBits 0)
(& signal --UNKNOWN-PROP-NAME--)  ; SCI Companion couldn't figure out the property name.

You can SV.exe has problems with it too:

Code: [Select]
code_0825: pTos illegalBits
ldi $0
bnt code_0833
pTos signal
pToa property_26044   // It doesn't know what property it is either... property_26044!
code_0833: bt code_0843

The byte code sequence is $62 $cb78, which is pToa with a value of $cb78 (52088 decimal... SV.exe shows half this number, I don't know why... anyway). Selector numbers should be less than $1000 generally (look at the selector vocab resource). $cb78 is crazy.

If you look in other games' implementations of canBeHere, you can see that the signal is supposed to be compared to $2000, which is the ignoreHorizon flag (or possibly $4000, ignAct - different games do different things). That is, it's supposed to look like this:

Code: [Select]
(== illegalBits 0)
(& signal ignoreHorizon)  ; what it's supposed to be

(That would be a ldi operation, which would be the byte code sequence $34 $2000).

So I  guess the mystery is, what was the typo/bug in the original source code that cause that kind of byte code to be emitted?

Maybe the name of whatever flag they were using somehow collided with the name of a property selector? (But then why the crazy property selector number?)

SCI Development Tools / Most incredible SCI Companion plugin ever
« on: June 07, 2016, 03:00:13 AM »

Unzip into SCI Companion's plugin folder (so you have Plugins\PostBuild\PostBuild.exe)

What does it do? If you put a PostBuild.bat file in your game's folder, it executes it. Amazing. I use it to copy some files:

Code: [Select]
xcopy /D resource.001 Release\
xcopy /D Release\

... or write your own! Make a new C# console project. Entire source code list below:
Code: [Select]
    class Program
        static void Main(string[] args)
            System.Diagnostics.Process proc = new System.Diagnostics.Process();
            proc.StartInfo.FileName = "PostBuild.bat";
            proc.StartInfo.WorkingDirectory = args[0];

If you type "look man" (or whatever object), you can then type follow up references that include pronouns (like "look him"), and they'll be treated as if you had typed "man" (or whatever noun you last specified in a response).

(found by poking around the ScummVM code)

The Games and other Sierra Adventure stuff / Ludum Dare
« on: April 28, 2016, 12:02:29 AM »
Has anyone here ever entered a game jam (other than the ones that are sometimes held here?)?

I did Ludum Dare #35 two weekends ago (my second time submitting an entry - first one was a few years ago). I did the 48 hour compo, and my entry (a puzzle platformer) is here:

I used Unity, not SCI, but it would be cool if someone here make an SCI game. The next Ludum Dare is in August. Who's up for it?

There was also something called lowrezjam that happened in early April that probably would have been great for SCI. I'm not sure if they're doing it again.

SCI Development Tools / Decompiler blog posts
« on: April 09, 2016, 01:03:14 AM »
In case anyone is interested, I wrote up a series of blog posts detailing how the decompiler is implemented:

I'm finally presenting my sample game that (hopefully) demonstrates what can be done with SCI 1.1.

It features:
- a complete playable game with a surprise ending!
- 24 rooms
- speech for almost all characters
- a terrible mix of "art" styles
- source code (of course)
- lots of cool palette effects and other special fx.

It's certainly far from a game design masterpiece, but it is intended to show what you can do and how (of course you may find angry comments in the source code to the effect of "I can't get this to work"). Who was it that was asking about how to make a cctv effect? I tried my hand at that in the end scene.

You can get it at the SCI Companion download page:

(I'll put up a version with an installer once I get Collector's plugin working)

SCI Development Tools / Christmas present
« on: December 24, 2015, 12:13:20 AM »
With some fixes in the latest build Companion (see the release thread), and fiddling around with the vocab resources, I managed to get this working.

So here we have a parser-based VGA game with full source code (well, minus a few functions that fell back to asm), and you can compile all the scripts successfully (with the aforementioned release of Companion). I have the suffix and "tree" vocab resources working correctly now (it really was just a matter of assigning the right ones to the right resource numbers), so unrecognized words are handled correctly.

So this could serve as the base for a VGA parser-based game if someone wants to run with it. There are still a number of missing scripts, of course, since a lot was stripped out for the demo. But presumably these could be taken from decompiled game sources from around that time.

SCI Development Tools / Score sound
« on: December 07, 2015, 10:42:07 PM »
Anyone want to contribute a MIDI score sound to the template game? (It currently has the rather annoying SQ5 score sound).

Pages: 1 [2] 3 4

SMF 2.0.14 | SMF © 2017, Simple Machines
Simple Audio Video Embedder

Page created in 0.101 seconds with 19 queries.