Qbasicnews.com

Full Version: Anyone interested in making a text adventure as a group?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
so... when will begin actually working on the game? :???: :roll:
Good question...We need to decide on an introduction then work on from there.
3
Quote:You wake suddenly, jumping from your resting place - or at least, you wiggle, since you’re strapped down to a table. As you open your eyes, you realize you are stripped of your clothes and in some sort of laboratory. As you lift your head, it gets pulled back down by sensors attached to your scalp. Over your left shoulder, you see a door open slightly. A voice whispers, “Press the red button...” and the door slams shut. As it does, you look down at your feet and see a large panel of buttons, switches, and levers. Your toe can barely reach the red, green, and blue buttons that are each stretched off to the side. Even though you were given a suggestion, you seem compelled to press the blue button. What do you do?


2
Quote:A light blinds you as you start running. You don’t know why you’re running, but you remember it being important. As you slow down and start absorbing your surroundings, you realize you’re in a jungle. Even though you don’t remember being in a forest, you have a vague recollection of your location. You walk to a sign in the path that reads, “ALL S WILL BE SHOT!”, and you suddenly realize why you ran so fast. Time is now a problem, and you also have three ways to go. The sign reads “WEST: GATES TOWER”, “EAST: SHIPPING AND RECEIVING”, and “NORTH: SCHEMES AND DASTARDLY PLANS DEPT.” You know you can’t go back.
(Make Shipping and receiving unavailable until later (with overgrown trees))


3
Quote:you were fired from a microsoft branch, so apple hires you and you go to microsoft's secret island (you have to "hack" into microsoft's computers to get the location), and you then play "james bond" and do some hard core espianage......may want to include something about Windows Vista (since it copies apple's OSs so bad).....then you have to kill Bill Gates (but he gets a nose job, so you don't recognize him, and he ends up helping you throughout the game, then you kill him)



ok. theres the options.. unless someone has a new idea? but i guess if we are voting... i vote for #3
Fine with me. Anyone want something different? (I want to get this show on the road!)

Now we just need to make options and/or a room or whatever to start out in.
so let me get this straight. we're making a choose-your-own adventure book/game, or a game kind of like oz and I said?
WE ARE NOT MAKING A CHOOSE YOUR OWN ADVENTURE GAME! Definetly the ones you guys suggested.
oh. i thought that because when you said this

Quote:That's going out of my league. I don't know how to make those complex ones work.

well i think Alex knows what the hell he's doing. I mean, he wrote a 3d program in qb!!! :o
What I meant by complex was...

Quote: and on top of that, we could allow (semi)complex sentences

3D in QB, that's amazing.
I've seen this before. This is all we really need to do:

Let's say the player inputs a command. Let's make that command "TAKE SWORD".

Alphabetize the command pool DATA.
Code:
DATA "eat", "sleep", "TAKE"

Then, take the first letter of the command and store it.
Code:
FLCOM$ = UCASE$(MID$(INP$,1,1)

Next, find all the DATA that starts with that letter.
Code:
DIM COMMANDS(*however many we have*) AS STRING * *length of biggest string*

RESTORE CommandStart
FOR I = 1 TO *however many commands we have availible*
   READ cominp$
   cominp1$ = UCASE$(MID$(cominp$, 1, 1)
   IF cominp1$ = FLCOM$ THEN COMMANDS(I) = cominp$
NEXT I

So, now we have all the commands that start with T.
Now, we have to narrow it down to our command.


First, find all the letters of the first word. Just in case, add a space to the end.
Code:
FOR I = 1 TO LEN(IN$)
WHILE ALLETT$ <> CHR$(32)
   ALLETT$ = UCASE$(MID$(IN$,I,1)
   a = a + 1
WEND
NEXT I
a = a - 1

That gave us the number of text symbols before the space.

Then,

I'll finish this later...[/code]
This is a very brief example of how things could work:

[syntax="qbasic"]#DEFINE Obj_NotHere 1
#DEFINE Obj_None 2
#DEFINE Obj_Unable 3

#DEFINE Scene_Invalid 1

DECLARE FUNCTION SceneValid(sceneID as integer) AS INTEGER
DECLARE FUNCTION ObjectValid(obj as string) AS INTEGER
DECLARE FUNCTION Obj_in_Scene(sceneID as integer, obj as string) as integer
DECLARE FUNCTION Obj_Act(obj as string, act as string) as integer
DECLARE FUNCTION Get_Root_Action(u_command as string) as string

DECLARE SUB Parse(action as string)

' lots of jibberish

INPUT "> ", action$
Parse(action$)

' lots more jibberish

FUNCTION SceneValid(sceneID as integer) AS INTEGER
' How-ever we save and load scenes will take care of this.
' This will be more of a shortcut...

SceneValid = 1 'By default, it is assumed valid....

DIM f as integer = FreeFile
open "scene" + str$(sceneID) + ".scn" for input as #f
if(lof(f) = 0) then SceneValid = Scene_Invalid

' If the file is empty, then it's not
' valid. I assume we'll use a different
' system to save/load...this is just
' an example

close #f

END FUNCTION

FUNCTION ObjectValid(obj as string) AS INTEGER

ObjectValid = 1 'By default, it is assumed valid....

DIM f as integer = FreeFile
open "obj_" + trim$(obj) + ".obj" for input as #f

if(lof(f) = 0) then ObjectValid = -1

close #f

END FUNCTION

FUNCTION Obj_in_Scene(sceneID as integer, obj as string) as integer
'We have some sort of header to determine what is where...
' For no, i'll leave this empty, as i'm not even sure how we'd
' save/load scenes.....
END FUNCTION

FUNCTION Get_Root_Action(u_command as string) as string
' This would be a "smart" function that would do something like this:
' The user inputs: "grab the microphone"
' This will get the "grab" part, and check to see what that means
' and will translate it into something like "take"

' We'd have to do some sort of database search.....
' this would also be good for language translations

' This isn't done Tongue
END FUNCTION

FUNCTION Obj_Act(obj as string, act as string) as integer
' Are you able to do <act> to the <obj> ?
' This will determine this (probably through headers)

' Again, dependant on how we load/save things
END FUNCTION

SUB Parse(action as string)
DIM position AS INTEGER = 0, oldpos AS INTEGER = 1
DIM AS STRING Chunk, Action, Object

' Loop through all the commands we have...
while(position = instr(lcase$(action), "then", oldpos + 1) > 0)
chunk = MID$(lcase$(action), oldpos, position)
action = "move" ' seee below for reasoning
' Seperate the chunk
' Probably use " " to seperate...more instr.......too lazy right now
' If there is no command, assume "move"...such as input "north"
' really is move north


' Do some validation checks

' If it's valid, then initiate it
oldpos = position
wend
END SUB[/syntax]

[syntax="qbasic"]TYPE cmdType
act AS STRING
assoc AS FUNCTION() as any
END TYPE

DECLARE FUNCTION Take(obj as string)

DIM commands(999) AS cmdType

commands(1).act = "take"
commands(1).assoc = @Take()

' Now, if we call commands(1).assoc, it will go to Take(obj as string)

commands(1).assoc("example")

FUNCTION Take(obj as string)
' This should check for valid object, and Obj_Act() should be checked
' If it goes through put into inventory, and take away from scene
' may do respawns, too.....
END FUNCTION[/syntax]

i hope that clears up some ideas.....may even spawn some new ones, i hope

oz~
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24