King's Quest II SCI - Gameplay videos and new BGs

This is a public forum, where you can find out everything you wanted to know about making games. Please don't use this forum as a place to recruit new members.

Moderators: adeyke, VampD3, eriqchang, Angelus3K

Message
Author
MusicallyInspired
The Master of All Things Musical
Posts: 4030
Joined: Tue Aug 20, 2002 8:57 pm
Location: Manitoba, Canada

#51 Post by MusicallyInspired » Fri Nov 03, 2006 3:44 am

I've gone ahead and got some brand new forums just for the KQ2SCI website so it's not on my music website forums anymore! Update your bookmarks!

http://users.boardnation.com/~musicallyinspired

Also, stay tuned for a preview of the next new background scene! I've started working on it today and it's about 25% complete.

MusicallyInspired
The Master of All Things Musical
Posts: 4030
Joined: Tue Aug 20, 2002 8:57 pm
Location: Manitoba, Canada

#52 Post by MusicallyInspired » Sun Nov 12, 2006 9:30 pm

There are a couple brand new backgrounds over at the KQ2SCI site. Run on over and check it out if you're interested!

MusicallyInspired
The Master of All Things Musical
Posts: 4030
Joined: Tue Aug 20, 2002 8:57 pm
Location: Manitoba, Canada

#53 Post by MusicallyInspired » Thu Nov 16, 2006 12:36 pm

This one is pretty much complete now. Just gotta add a couple more things, but otherwise this is done.

Image

MusicallyInspired
The Master of All Things Musical
Posts: 4030
Joined: Tue Aug 20, 2002 8:57 pm
Location: Manitoba, Canada

#54 Post by MusicallyInspired » Mon Nov 27, 2006 2:38 pm

I've got my first heckler! :D

http://users.boardnation.com/~musically ... hreadid=12

Now I KNOW this will go far! He even mentions Muzlack in the role call of people with "no lives".

Kurdt
Hero For Hire
Posts: 1081
Joined: Fri Jan 11, 2002 5:58 am
Location: Texas
Contact:

#55 Post by Kurdt » Mon Nov 27, 2006 6:17 pm

Okay, I've done my part to make myself feel better. We can all go back to life as normal, heheh.

MusicallyInspired
The Master of All Things Musical
Posts: 4030
Joined: Tue Aug 20, 2002 8:57 pm
Location: Manitoba, Canada

#56 Post by MusicallyInspired » Mon Nov 27, 2006 7:45 pm

Was a good reply, too, Kurdt :).

Erpy
Forum Administrator
Posts: 11434
Joined: Tue Sep 25, 2001 8:28 pm
Location: The Netherlands

#57 Post by Erpy » Mon Nov 27, 2006 9:35 pm

I still believe the best way to deal with hecklers is to just silence them completely. Most of these types of people are attention junks and like to post crap to get just that. Flaming back means he's getting the attention he's failing to get through other means. Immediately deleting such a topic tends to piss them off more than any comeback, since it means he truly wasted time collecting bait.

Image

Kurdt
Hero For Hire
Posts: 1081
Joined: Fri Jan 11, 2002 5:58 am
Location: Texas
Contact:

#58 Post by Kurdt » Mon Nov 27, 2006 11:29 pm

Yeah, but sometimes it's funny to watch the troll skulk around. I think it's funny sometimes, at least.

MusicallyInspired
The Master of All Things Musical
Posts: 4030
Joined: Tue Aug 20, 2002 8:57 pm
Location: Manitoba, Canada

#59 Post by MusicallyInspired » Fri Jun 08, 2007 3:40 am

Here's a little demo of my project so far. It's just of the title screen. Any button you push will just quit the game. But it took forever to get this exactly like KQ1SCI's menu. See if you can spot any differences! (Other than what the buttons do, of course)

http://brandonblume.commerceculture.co. ... 2title.zip

EDIT: Just to give you guys an idea of what all goes into scripting in SCI, here's the source script from the title screen for those who are curious as to how SCI works:

Code: Select all

(include "sci.sh")
(include "game.sh")
(include "keys.sh")
/******************************************************************************/
(script TITLESCREEN_SCRIPT)
/******************************************************************************/
(use "main")
(use "game")
(use "menubar")
(use "obj")
(use "cycle")
(use "user")
(use "controls")
(use "feature")

(local

    title1 = 0
	title2 = 0
	sIntro = 1
	sBegin = 0
	sCred = 0
	sCont = 0
	sMenuStart = 0
)
/******************************************************************************/
(instance public TitleScreen of Rm
	(properties
		picture scriptNumber
	)
	(method (init)
        // Set up the title screen
		ProgramControl()
		= gProgramControl FALSE
		(send gGame:setSpeed(1))
		(SL:disable())
		(TheMenuBar:hide())

		(super:init())
		(self:setScript(RoomScript))

		(send gEgo:init()hide())
		(send gTheMusic:prevSignal(0)stop()number(1)loop(-1)play())
	)
)
/******************************************************************************/
(instance RoomScript of Script
	(properties)

	(method (changeState newState)
        = state newState
	  	(switch(state)
            (case 0 = cycles 1
            )(case 1 = seconds 10
                (send gGame:setCursor(999 0))
                (theRomance:init())
                (theThrone:init())
                = title1 Display( "SCI Pre-Alpha Version 1.0"
                    dsCOORD 98 170
                    dsCOLOUR clMAROON
                    dsBACKGROUND clTRANSPARENT
                    dsFONT 4
                    dsSAVEPIXELS
                )
                = title2 Display(	"By: Brandon Blume"
                    dsFONT 4
                    dsCOORD 115 180
                    dsCOLOUR clMAROON
                    dsBACKGROUND clTRANSPARENT
                    dsSAVEPIXELS
                )
                (theSpark1:init()setCycle(Fwd))
       	        (theSpark2:init()setCycle(Fwd))
                (theSpark3:init()setCycle(Fwd))
                (theSpark4:init()setCycle(Fwd))
                (theSpark5:init()setCycle(Fwd))
                (theSpark6:init()setCycle(Fwd))
                (theSpark7:init()setCycle(Fwd))
                (theSpark8:init()setCycle(Fwd))
            )(case 2 = seconds 2
                (theRomance:dispose())
                (theThrone:dispose())
                = title1 Display( "" dsRESTOREPIXELS title1)
                = title2 Display( "" dsRESTOREPIXELS title2)
    	    )(case 3
                (send gGame:setCursor(999 1))
                = sMenuStart 1
            
                (buttonIntro:init()loop(1)setScript(pressIntro))
                (buttonBegin:init()loop(2)setScript(pressBegin))
                (buttonCred:init()loop(3)setScript(pressCred))
                (buttonCont:init()loop(4)setScript(pressCont))
                (if (sIntro)
                	(buttonSelect:init()loop(5)x(58)y(146))
				)(else
					(if (sBegin)
						(buttonSelect:init()loop(5)x(161)y(146))
					)(else
						(if (sCred)
							(buttonSelect:init()loop(5)x(58)y(165))
						)(else
							(if (sCont)
								(buttonSelect:init()loop(5)x(161)y(165))
							)
						 )
					 )
				 )
			 )
        )
	)

	(method (handleEvent pEvent)
        (super:handleEvent(pEvent))
        (if (==(send pEvent:type)evKEYBOARD)
           	(if(==(send pEvent:message)KEY_RETURN)
           		(if(sMenuStart)
           			(if(sBegin)
               	   		(send gTheMusic:fade())
               			(send gRoom:newRoom(INITROOMS_SCRIPT))
               		)(else
		                (if(sCont)
    	                   	(send gGame:restore())
                   		)(else
		                   	(if(sIntro)
    	                   		= gIntro 1
                           		(send gTheMusic:fade())
           	               		(send gRoom:newRoom(INITROOMS_SCRIPT))
               	       		)(else
	                   	       	(if(sCred)
                               		= gCred 1
                       	    		(send gTheMusic:fade())
                           			(send gRoom:newRoom(INITROOMS_SCRIPT))
								)
							 )
						 )
					 )
				)(else
					(RoomScript:cue())
					(RoomScript:cue())
				 )				 
			)
		)
		(if(==(send pEvent:type) evJOYSTICK)
            (if(==(send pEvent:message) 1)  // UP
                selectorCheckUp()
            )
        )
        (if(==(send pEvent:type) evJOYSTICK)
            (if(==(send pEvent:message) 5)  // Down
                selectorCheckDown()
            )
        )		
        (if(==(send pEvent:type) evJOYSTICK)
            (if(==(send pEvent:message) 7)  // Left
                selectorCheckLeft()
            )
        )
        (if(==(send pEvent:type) evJOYSTICK)
            (if(==(send pEvent:message) 3)  // Right
                selectorCheckRight()
            )
        )        
		(if(==(send pEvent:type())evMOUSEBUTTON)
            (if(sMenuStart)
                (if((> (send pEvent:x) (buttonBegin:nsLeft))and
                    (< (send pEvent:x) (buttonBegin:nsRight))and
                    (> (send pEvent:y) (buttonBegin:nsTop))and
                    (< (send pEvent:y) (buttonBegin:nsBottom)))
                    (if(sBegin)
                    	selectorZero()
                    	= sBegin 1
                        (send gTheMusic:fade())
                        (send gRoom:newRoom(INITROOMS_SCRIPT))
                    )(else
						(pressBegin:changeState(2))
                	)

        	    )(else
                    (if((> (send pEvent:x) (buttonCont:nsLeft))and
                        (< (send pEvent:x) (buttonCont:nsRight))and
                	    (> (send pEvent:y) (buttonCont:nsTop))and
                	    (< (send pEvent:y) (buttonCont:nsBottom)))
                	    (if(sCont)
                	    	selectorZero()
                	    	= sCont 1
                    	    (send gGame:restore())
                	    )(else
                            (pressCont:changeState(2))
                	    )
            	    )(else
                        (if((> (send pEvent:x) (buttonCred:nsLeft))and
                            (< (send pEvent:x) (buttonCred:nsRight))and
                            (> (send pEvent:y) (buttonCred:nsTop))and
                            (< (send pEvent:y) (buttonCred:nsBottom)))
                            (if(sCred)
                            	selectorZero()
                                = gCred 1
                        	   (send gTheMusic:fade())
                        	   (send gRoom:newRoom(INITROOMS_SCRIPT))
                    	    )(else
                        	    (pressCred:changeState(2))
                    	    )
                	    )(else
                            (if((> (send pEvent:x) (buttonIntro:nsLeft))and
                                (< (send pEvent:x) (buttonIntro:nsRight))and
                                (> (send pEvent:y) (buttonIntro:nsTop))and
                        	    (< (send pEvent:y) (buttonIntro:nsBottom)))
                        	    (if(sIntro)
                        	    	selectorZero()
                                    = gIntro 1
                            	    (send gTheMusic:fade())
                            	    (send gRoom:newRoom(INITROOMS_SCRIPT))
                        	    )(else
                            	    (pressIntro:changeState(2))
				                )
                            )
                        )
                    )
				)
			)(else
                (RoomScript:cue())
                (RoomScript:cue())
            )
        )
	)
)
/******************************************************************************/

/**********Menu Selector Procedures*************/

//Menu select UP
(procedure (selectorCheckUp)
    (if(sBegin)
        selectorZero()
        = sCred 1
        (buttonSelect:posn(58 165))
    )(else
        (if(sCont)
            selectorZero()
            = sBegin 1
            (buttonSelect:posn(161 146))
        )(else
            (if(sCred)
                selectorZero()
                = sIntro 1
                (buttonSelect:posn(58 146))
            )(else
                (if(sIntro)
                    selectorZero()
                    =sCont 1
                    (buttonSelect:posn(161 165))
                )
            )
        )
    )
)
//Menu select DOWN
(procedure (selectorCheckDown)
    (if(sBegin)
        selectorZero()
        = sCont 1
        (buttonSelect:posn(161 165))
    )(else
        (if(sCont)
            selectorZero()
            = sIntro 1
            (buttonSelect:posn(58 146))
        )(else
            (if(sCred)
                selectorZero()
                = sBegin 1
                (buttonSelect:posn(161 146))
            )(else
                (if(sIntro)
                    selectorZero()
                    = sCred 1
                    (buttonSelect:posn(58 165))
                )
            )
        )
    )
)
//Menu select LEFT
(procedure (selectorCheckLeft)
    (if(sBegin)
        selectorZero()
        = sIntro 1
        (buttonSelect:posn(58 146))
    )(else
        (if(sCont)
            selectorZero()
            = sCred 1
            (buttonSelect:posn(58 165))
        )(else
            (if(sCred)
                selectorZero()
                = sBegin 1
                (buttonSelect:posn(161 146))
            )(else
                (if(sIntro)
                    selectorZero()
                    = sCont 1
                    (buttonSelect:posn(161 165))
                )
            )
        )
    )
)
//Menu select RIGHT
(procedure (selectorCheckRight)
    (if(sBegin)
        selectorZero()
        = sCred 1
        (buttonSelect:posn(58 165))
    )(else
        (if(sCont)
            selectorZero()
            = sIntro 1
            (buttonSelect:posn(58 146))
        )(else
            (if(sCred)
                selectorZero()
                = sCont 1
                (buttonSelect:posn(161 165))
            )(else
                (if(sIntro)
                    selectorZero()
                    = sBegin 1
                    (buttonSelect:posn(161 146))
                )
            )
        )
    )
)
//Reset all menu buttons (for use when enabling a buttons variable)
(procedure (selectorZero)
	= sBegin 0
	= sCont 0
	= sCred 0
	= sIntro 0
)

/*************Mouse click on new button instances**************/
/************when selector is not currently on them************/

//Mouse click on Begin Game button
(instance pressBegin of Script
    (properties)
    (method (changeState newState)
        = state newState
        (switch (state)
            (case 2 = cycles 1
                  selectorZero()
                  = sBegin 1
				  (buttonSelect:posn(161 146))
			)
            (case 3
                  (send gTheMusic:fade())
                  (send gRoom:newRoom(INITROOMS_SCRIPT))
			)
		)
	)
)
//Mouse click on Introduction button
(instance pressIntro of Script
    (properties)
    (method (changeState newState)
        = state newState
        (switch (state)
            (case 2 = cycles 1
				selectorZero()
				= sIntro 1
				(buttonSelect:posn(58 146))
			)
            (case 3
            	(send gTheMusic:fade())
            	(send gRoom:newRoom(INITROOMS_SCRIPT))
			)
		)
	)
)
//Mouse click on Credits button
(instance pressCred of Script
    (properties)
    (method (changeState newState)
        = state newState
        (switch (state)
            (case 2 = cycles 1
				selectorZero()
				= sCred 1
				(buttonSelect:posn(58 165))
			)
            (case 3
                  (send gTheMusic:fade())
                  (send gRoom:newRoom(INITROOMS_SCRIPT))
			)
		)
	)
)
//Mouse click on Continue Game button
(instance pressCont of Script
    (properties)
    (method (changeState newState)
        = state newState
        (switch (state)
            (case 2 = cycles 3
				selectorZero()
				= sCont 1
				(buttonSelect:posn(161 165))
			)
            (case 3
				(send gGame:restore())
			)
		)
	)
)

/***********Prop Instances***********/
(instance theRomance of Prop
    (properties
        x 86
        y 163
        view 913
        cel 0
    )
)
(instance theThrone of Prop
    (properties
        x 236
        y 159
        view 913
        cel 1
    )
)
(instance theSpark1 of Prop
    (properties
        x 61
        y 27
        view 950
        cycleSpeed 10
    )
)
(instance theSpark2 of Prop
    (properties
        x 97
        y 59
        view 950
        cycleSpeed 11
        cel 2
    )
)
(instance theSpark3 of Prop
    (properties
        x 130
        y 21
        view 950
        cycleSpeed 12
        cel 4
    )
)
(instance theSpark4 of Prop
    (properties
        x 182
        y 21
        view 950
        cycleSpeed 11
    )
)
(instance theSpark5 of Prop
    (properties
        x 208
        y 54
        view 950
        cycleSpeed 9
        cel 1
    )
)
(instance theSpark6 of Prop
    (properties
        x 264
        y 32
        view 950
        cycleSpeed 12
    )
)
(instance theSpark7 of Prop
    (properties
        x 143
        y 89
        view 950
        cycleSpeed 8
        cel 3
    )
)
(instance theSpark8 of Prop
    (properties
        x 174
        y 117
        view 950
        cycleSpeed 10
    )
)
(instance buttonIntro of Prop
    (properties
        x 58
        y 146
        view 950
    )
)
(instance buttonBegin of Prop
    (properties
        x 161
        y 146
        view 950
    )
)
(instance buttonCred of Prop
    (properties
        x 58
        y 165
        view 950
    )
)
(instance buttonCont of Prop
    (properties
        x 161
        y 165
        view 950
    )
)
(instance buttonSelect of Prop
    (properties
//      x 58
//      y 146
        view 950
    )
)

Schloss Ritter
Knight Status
Posts: 347
Joined: Wed Apr 03, 2002 11:07 pm

#60 Post by Schloss Ritter » Sat Jun 09, 2007 1:15 am

And that's partly why programming went from individuals to teams with the move from AGI to SCI, all the extra details.

navynuke04
Honorary AGD
Posts: 5378
Joined: Fri Sep 13, 2002 1:19 am
Location: US of A
Contact:

#61 Post by navynuke04 » Sat Jun 09, 2007 1:45 am

Yipes! If I ever make a game, I might ask you to be on the programming team! :)

Lambonius
Knight Status
Posts: 405
Joined: Tue Dec 13, 2005 11:54 pm
Location: Illinois, USA

#62 Post by Lambonius » Mon Jun 11, 2007 6:19 pm

Aww...what a tease!  Title screen looks great though.  I truly hope that this little project makes it to completion.  Hopefully I'll still be around here when it does, too. :)  Keep of the good work, MI!

Music Head
Defense Minister Status
Posts: 717
Joined: Sun Aug 15, 2004 3:55 am
Location: South Australia

#63 Post by Music Head » Tue Jun 12, 2007 1:56 pm

:) sweet. I sat there and listened to the music all the way through, wanted to get as much out of it as possible ;). I really hope this is seen through to completion too, those background pictures you've done look really good. Have you had a go at drawing sprites and such yet?

Schloss Ritter you should resize your avatar is wonkying up the column  :p .

MusicallyInspired
The Master of All Things Musical
Posts: 4030
Joined: Tue Aug 20, 2002 8:57 pm
Location: Manitoba, Canada

#64 Post by MusicallyInspired » Tue Jun 12, 2007 3:26 pm

I've made one sprite as of yet. The mailbox for Grandma's House. Still have to program it in, though. I'm gonna program most of it and do all the backgrounds, I think, before I do sprites. Or at least for a while, anyway. I'd welcome any help with sprites in the future, however.

Schloss Ritter
Knight Status
Posts: 347
Joined: Wed Apr 03, 2002 11:07 pm

#65 Post by Schloss Ritter » Tue Jun 12, 2007 9:43 pm

Music Head wrote: Schloss Ritter you should resize your avatar is wonkying up the column  :p .
Better?  8o

MusicallyInspired
The Master of All Things Musical
Posts: 4030
Joined: Tue Aug 20, 2002 8:57 pm
Location: Manitoba, Canada

#66 Post by MusicallyInspired » Mon Nov 12, 2007 1:50 am

Here's a slightly big update for KQ2SCI. I've got a handful of more backgrounds and a couple gameplay movies recorded with DOSBox (though they are fairly large).

Take a gander:

Image Image
Image Image
Image Image
Image Image

And the videos. The gameplay video is a video of some of the things that have been programmed thus far so you can get a feel for how the game will look and act. The intro video is a video of the current introduction sequence, obviously, with just a couple KQ1SCI placeholder songs. No original music has been completed yet but all KQ1SCI themes (excluding the title screen fanfare. That will stay intact and a new title KQ2 theme will play after it) will be replaced with brand new music.

Gameplay Video (41.7 MB)

Introduction Video (15.7 MB)

greensenshi
Knight Status
Posts: 218
Joined: Mon Jan 29, 2007 12:22 am

#67 Post by greensenshi » Mon Nov 12, 2007 2:15 am

I don't suppose you'd be willing to upload those videos to youtube?  I'd have to download software just to watch them, and I have enough crap on my comp as it is.  The screenshots look very nice though.

MusicallyInspired
The Master of All Things Musical
Posts: 4030
Joined: Tue Aug 20, 2002 8:57 pm
Location: Manitoba, Canada

#68 Post by MusicallyInspired » Mon Nov 12, 2007 2:20 am

Unforunately I haven't the time at the moment. But next time I'm at a place that has internet I'll transfer them to youtube.

Johnathon
Peasant Status
Posts: 29
Joined: Sat May 06, 2006 4:47 pm
Location: The Earnon System
Contact:

#69 Post by Johnathon » Fri Nov 16, 2007 3:54 am

This is all looking just excellent, Brandon. I wish you the very best, and hope sincerely that this great effort of yours will in fact become a complete new fangame someday. I personally look foreward to playing it. Glad to see more people around the place with a taste for the classic sci style.

Two thumbs way up!

MusicallyInspired
The Master of All Things Musical
Posts: 4030
Joined: Tue Aug 20, 2002 8:57 pm
Location: Manitoba, Canada

#70 Post by MusicallyInspired » Sat Nov 17, 2007 10:00 pm

Thanks for the words, Jonathan.

And I will be getting those videos on YouTube today. I'll post the links once they're up.

MusicallyInspired
The Master of All Things Musical
Posts: 4030
Joined: Tue Aug 20, 2002 8:57 pm
Location: Manitoba, Canada

#71 Post by MusicallyInspired » Sun Nov 18, 2007 11:08 pm

For those who don't have the codec to view these videos or don't want to bother downloading them, here are the youtube links.

Introduction

Gameplay Video

Lambonius
Knight Status
Posts: 405
Joined: Tue Dec 13, 2005 11:54 pm
Location: Illinois, USA

#72 Post by Lambonius » Mon Nov 19, 2007 2:38 am

Those look really awesome so far!  The Kolyma screens in particular look especially good.  I would venture to say that many of your SCI screens look even BETTER than some of the actual Sierra games that use that style.  The shadowing in several of them and the reflections of the trees on the water in particular are done to really nice effect.  Keep up the great work!  I'd truly love to see this project one day completed.

Johnathon
Peasant Status
Posts: 29
Joined: Sat May 06, 2006 4:47 pm
Location: The Earnon System
Contact:

#73 Post by Johnathon » Mon Nov 19, 2007 3:49 pm

I especially think you've done a great job depicting the rocks below the water when entering the ocean. Gives the whole scene more life/realisticness.

Keep up the good quality. I can't wait to play this game.

And as a matter of fact, I never did get very far in Kq2 before moving onto other games. I'm feeling tempted not to try and beat any other version, until this one comes out. Make the first time experience worth it for me. :p

MusicallyInspired
The Master of All Things Musical
Posts: 4030
Joined: Tue Aug 20, 2002 8:57 pm
Location: Manitoba, Canada

#74 Post by MusicallyInspired » Mon Nov 19, 2007 4:07 pm

Ya, I really like those reflections as well. The only problem with them is that if they are to stay that way they have to all be animated or else it won't look good at all in-game. Just a static picture of wavy water that....isn't...moving. So that'll be a challenge. But I'm sure I'll get it all done.

I fully intend to make this game a worthy experience for any KQ player. I intent to make the soundtrack especially immersive.

Music Head
Defense Minister Status
Posts: 717
Joined: Sun Aug 15, 2004 3:55 am
Location: South Australia

#75 Post by Music Head » Tue Nov 20, 2007 1:15 am

will you make Graham also reflect?

Post Reply