Author Topic: The Imitation Game - an offer  (Read 6588 times)

0 Members and 1 Guest are viewing this topic.

Offline Kawa

The Imitation Game - an offer
« on: July 02, 2015, 07:33:44 PM »
Long, long ago, long enough for me to have irretrievably lost it all, I implemented a few things in SCI0; a questionnaire ala Larry, and a battle system like in Quest for Glory -- albeit somewhat simplified. Also an even more simplified Mega Man Battle Network system. I did these first two without looking at any code, for I could and can not read SCI machine code and had no decompiler. Thus, the only straight copy (IIRC) was the question format. I might've expanded those battle systems if things hadn't happened.

I do so enjoy a little challenge, so here's the deal: you suggest something like the things above, things like battle systems or minigames, and I'll try to implement it in SCI11, assuming it seems reasonable, then release it with adequate documentation and probably placeholder art.

The challenges:
  • Scored question list
  • Simple QfG battle system
  • Health meter

The downloads:
http://helmet.kafuka.org/sci/
« Last Edit: July 04, 2015, 09:29:45 PM by Kawa »



Offline Collector

Re: The Imitation Game - an offer
« Reply #1 on: July 02, 2015, 10:28:52 PM »
  • Health meter - Gumby implemented one for 120 Below (SCI0)
  • Stats building - Don't remember if Doan did one for Betrayed Alliance.
KQII Remake Pic

Offline Kawa

Re: The Imitation Game - an offer
« Reply #2 on: July 03, 2015, 04:41:39 AM »
  • Health meter - Gumby implemented one for 120 Below (SCI0)
  • Stats building - Don't remember if Doan did one for Betrayed Alliance.
Looking at the screenshots on this page for these two games, I have two thoughts:
  • Put the health meter in the status line, since that's a thing we can totally do.
  • Let's just... pick our noses or something.

Okay, I lied. I had these thoughts long before looking at the screenshots and merely confirmed them just now.

Offline Kawa

Re: The Imitation Game - an offer
« Reply #3 on: July 04, 2015, 10:10:26 AM »
Code: [Select]
= correctAnswer (- (& textBuffer[0] $FF) $30)
= textBuffer[0] (| (& textBuffer[0] $FF00) $20)
This is abuse, I tell you! Abuuuse!

But hey, at least it lets me encode the correct answer in the question, Larry-style, instead of having a separate array like Space Quest 5.

How the hell'd I do it way back then?

Offline Kawa

Re: The Imitation Game - an offer
« Reply #4 on: July 04, 2015, 09:32:11 PM »
Question list is now available!

Features:
  • a rousing soundtrack
  • sample questions, old and new
  • no hardcoded strings
  • mouse and keyboard support
  • named constants

Offline lskovlun

Re: The Imitation Game - an offer
« Reply #5 on: July 04, 2015, 09:40:00 PM »
This is abuse, I tell you! Abuuuse!
Seconded.  ;D It can get much worse though... picture this stuff combined with Memory and odd pointer voodoo.

Offline Kawa

Re: The Imitation Game - an offer
« Reply #6 on: July 05, 2015, 09:14:47 AM »
Questionnaire has been updated with more questions -- twenty now -- and a skip cheat.

One of these games is not like the others. One of these games just doesn't belong.
A. Space Quest Ⅲ The Pirates of Pestulon
B. Freddy Pharkas Frontier Pharmacist
C. Monkey Island Ⅱ LeChuck's Revenge
D. King's Quest Ⅴ Absence Makes the Heart Go Yonder

Offline OmerMor

Re: The Imitation Game - an offer
« Reply #7 on: July 05, 2015, 04:07:54 PM »
Questionnaire has been updated with more questions -- twenty now -- and a skip cheat.

One of these games is not like the others. One of these games just doesn't belong.
A. Space Quest Ⅲ The Pirates of Pestulon
B. Freddy Pharkas Frontier Pharmacist
C. Monkey Island Ⅱ LeChuck's Revenge
D. King's Quest Ⅴ Absence Makes the Heart Go Yonder


The answer is (A) Space Quest 3.
Because it's the only game (beside Monkey Island 2) that involves pirates.
 :P

Offline Kawa

Re: The Imitation Game - an offer
« Reply #8 on: July 05, 2015, 05:05:11 PM »
Wrong.

Offline Collector

Re: The Imitation Game - an offer
« Reply #9 on: July 05, 2015, 05:56:45 PM »
Depends on what the criteria are. SQ3 is the only EGA game, MI2 is the only non-SCI game, KQ5 is the only one that is not more comedy than drama, SQ3 is the only one that does not take place in the past.
KQII Remake Pic

Offline Kawa

Re: The Imitation Game - an offer
« Reply #10 on: July 05, 2015, 06:07:29 PM »
Freddy Pharkas has no Roman numeral.

Anyway, that's two outta four challenges. Any others?

Offline Kawa

Re: The Imitation Game - an offer
« Reply #11 on: August 22, 2015, 06:39:06 AM »
Who would like to see a GK1-ish dialogue system?

Offline Kawa

Re: The Imitation Game - an offer
« Reply #12 on: March 26, 2016, 10:33:16 AM »
I suppose this counts as "imitation" -- I took this image from Twitter and implemented it just now.

Code: [Select]
;;; Sierra Script 1.0 - (do not remove this comment)
(script# 130)
(include sci.sh)
(include game.sh)
(use System)
(use Main)
(use Game)
(use Print)

(public
PixelPuzzle 0
)

(define PUZZLE_LEFT 16)
(define PUZZLE_TOP 50)

(local
[image 168] = [
0 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0
1 0 0 1 0 1 0 0 1 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1
0 0 0 1 0 1 0 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 1
0 0 1 0 0 1 0 0 1 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1
0 1 0 0 0 1 0 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 1
1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1
1 1 1 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0
]
drawn = 0
)

(procedure (DrawGrid &tmp col row i x y c w h)
(= x PUZZLE_LEFT)
(= y PUZZLE_TOP)
(= i 0)
(= row 0)
(= col 0)
(= w (CelWide 128 0 0))
(= h (CelHigh 128 0 0))
; I find while syntax easier than for, tbh.
(while (<= row 6)
(= col 0)
(while (<= col 23)
(= c [image i])
(DrawCel 128 0 c x y -1)
(= x (+ x w))
(++ i)
(++ col)
)
(= y (+ y h))
(= x PUZZLE_LEFT)
(++ row)
)
)

(instance PixelPuzzle of Rm
(properties
picture 130
)

(method (init)
(super init:)
(gOldMH addToFront: self)
(gRoom setScript: puzzleScript)
)

(method (dispose)
(gOldMH delete: self)
(super dispose: &rest)
)
)

(instance puzzleScript of Script
(method (changeState newState)
(switch (= state newState)
(0
(= gCursorNumber 999)
(gGame setCursor: 999 1)
(Display {Make the following statement true by filling in four of the boxes.} dsCOORD 16 16 dsWIDTH 200 dsFONT 4)
(Display {You should be able to solve this.} dsCOORD 16 128 dsWIDTH 128 dsFONT 4)
(DrawGrid)
)
(1
(DrawGrid)
(++ drawn)
(if (== drawn 4)
; Check if we did right.
(if (and [image 5]
[image 20]
[image 149]
[image 164])
; Your shit here.
(Prints {You did it!})
else
; Your shit here.
(Prints {Are you mad?})
)
else
(self state: 0)
)
)
)
)

(method (handleEvent pEvent &tmp x y i)
(if (== (pEvent type?) evMOUSERELEASE)
(pEvent claimed: 1)
(= x (- (pEvent x?) PUZZLE_LEFT))
(= y (- (pEvent y?) PUZZLE_TOP))
; Convert from pixel to tile coordinates
(= x (/ x (CelWide 128 0 0)))
(= y (/ y (CelHigh 128 0 0)))
; Ignore out-of-bounds clicks
(if (or (< x 0)
(< y 0)
(> x 23)
(> y 6))
(pEvent claimed: 0)
(return)
)
; Calculate offset
(= i (+ (* y 24) x))
; (DebugPrint {Clicked tile %d at %d %d} i x y)
(if (not [image i])
(= [image i] 1)
(self cue:)
)
)
)
)


SMF 2.0.19 | SMF © 2021, Simple Machines
Simple Audio Video Embedder

Page created in 0.055 seconds with 23 queries.