Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
100% QB game
#21
Every pack of functions and subroutines is a library.

Superput is not PureQB, that's my only point.

The game was really cool Smile
SCUMM (the band) on Myspace!
ComputerEmuzone Games Studio
underBASIC, homegrown musicians
[img]http://www.ojodepez-fanzine.net/almacen/yoghourtslover.png[/i
Reply
#22
I not hate libs.

But I think if using libs QB can only be called a "code organizer" since the important things are in the libs.

QB.QLB can be used here because it is originally included in the QB4.5 package, and the first version of QB had these routines built in.

FFIX.QLB can be used because it's only a bug fix, not "extra code"

I think programming only in QB is a different art - let's do it Smile
fter 60 million years a civilization will search for a meteorite destroying most of the living creatures around this age...

There must be a better future for the Cheetahs!

http://rcs.fateback.com/
Reply
#23
Okay, but you are wrong on one statement: The first version of QB did not have those routines built in.

Qbasic 1.x is not the first version of QB. Qbasic 1.x came after QB 4.5

Read more here: http://www.download-qb.com Wink

Anyhow, I think differently. To me, a QB game is a game which logic is made in QB. I just use a better PUT routine, for example. My game would run using the normal PUT which is built in, but slower. So esentially, the game is the same, but it runs faster.
SCUMM (the band) on Myspace!
ComputerEmuzone Games Studio
underBASIC, homegrown musicians
[img]http://www.ojodepez-fanzine.net/almacen/yoghourtslover.png[/i
Reply
#24
If it works fine with pure QB code, and won't need GHzs, You can do it... This is like FFIX.

But if You can not do it without using external routines, You can not say that it is 100% QB...

I thought that the QB included in DOS was first, and only that was improved later... Thanks for the info. But anyway, interrupt handling is built in at a version of QB - so I think it can be used.
fter 60 million years a civilization will search for a meteorite destroying most of the living creatures around this age...

There must be a better future for the Cheetahs!

http://rcs.fateback.com/
Reply
#25
My principal example is my game "Jill". I coded it in pure QB, using SCREEN 7. It needed a PII 300 Mhz to go at full rate (if there weren't many sprites on screen). When I changed the game to DirectQB (changing the paging routines and the GET/PUT routines) I was able to run the game at full rate in a 486 DX2 66 Mhz, and almost a full rate in a 486 SX.
SCUMM (the band) on Myspace!
ComputerEmuzone Games Studio
underBASIC, homegrown musicians
[img]http://www.ojodepez-fanzine.net/almacen/yoghourtslover.png[/i
Reply
#26
I think this game is okay for this challenge. P300 - not too high - but should be lower Smile. But anyway that's good at a QB game.

Here speed counts too Smile

I will try to create a scoring system...
fter 60 million years a civilization will search for a meteorite destroying most of the living creatures around this age...

There must be a better future for the Cheetahs!

http://rcs.fateback.com/
Reply
#27
I try to use pure Quickbasic when it's about democoding because of the challenge. It doesn't matter for me if games are using libs, as long as they are smooth and funny to play.

I'd like to code a game in pure quickbasic, since the only thing I was doing for years is pure demofx coding and I'd like to try something diferrent now. I have no idea about good keyboard handling (instead of Inkey$, I tried to do it my own way with INP(&H60) but that wasn't working at many cases), I once used mouse (but with CALL INTERRUPT) and it's quite easier than what keyboard could be, I also don't have any idea about timers or music programming. I am wondering how easy or at least possible is to do these with pure quickbasic. I almost have an idea about Adlib music, but keyboard? It's a dream of mine now to have a working keyboard routine now, pure qb or even not!!! =)

But the gfx routines, would be a challenge to be in pure qb. I'd like to take your challenge for enough months, I am not sure about time though. It's a pitty to be working on many other things in the demoscene and not have a time to try some diferrent things I'd love to work on since ages (game, emulator, compiler coding).

Which are the best or most impressive pure quickbasic games anyways? (If there are some good enough) I don't have that much of an idea about the most famous games in the quickbasic scene. I am mostly in demos.. (But lately, enjoyed playing Monospace, Wetspot 2 and others that site suggested)
ave a time Smile
Reply
#28
You can do FM music (ADLIB) easily in Pure QB. Check "TRAKKER" here: http://usuarios.lycos.es/qbsux/proggies.html to find out how.

About keyboard handling in pure QB... Yeah, it can be done also. Digging in ABC packets... Yeah:

Code:
'===========================================================================
' Subject: MULTIPLE KEYS                      Date: 03-08-97 (13:07)      
'  Author: Joe Huber, Jr.                     Code: QB, QBasic, PDS        
'  Origin: huberjjr@nicom.com               Packet: KEYBOARD.ABC
'===========================================================================
DECLARE FUNCTION MULTIKEY (KEYNUM)

'MUTIKEY FUNCTION - LETS YOU TRAP SEVERAL KEYS AT ONCE (BETTER THAN INKEY$!!)
'
'USAGE:
'  riable=MULTIKEY(KEYNUM)
'WHERE KEYNUM IS THE KEY YOU WANT TO TRAP
'  riable = 1 IF KEY IS DEPRESSED, 0 IF IT ISN'T
'
'EMAIL ME AT: huberjjr@nicom.com
'
'HAVE FUN!!!


DIM SHARED KEYS(255), SC(255), DU(255)  'ALWAYS NEED THIS!!!

CLS

X = 10: Y = 10
XX = X: YY = Y

DO

'FOR I = 1 TO 255                    '\
' TEST = MULTIKEY(I)                 ' |-TEST LOOP
' LOCATE 1, 1: PRINT TEST; I         ' |
' WHILE INKEY$ = "": WEND            ' | PRESS KEY IN QUESTION UNTIL
'  IF TEST = 1 THEN END              ' | LOOP ENDS. THE SECOND NUMBER IS THE
'NEXT I                              '/  SCAN CODE FOR MULTIKEY

RIGHT = MULTIKEY(75)    ' GET SOME KEYS' STATUSES
LEFT = MULTIKEY(77)
UP = MULTIKEY(72)
DOWN = MULTIKEY(80)
SPACE = MULTIKEY(57)
ESC = MULTIKEY(1)

IF ESC = 1 THEN END    'TEMINATE WHEN ESCAPE IS PRESSED

IF TIMELOOP = 100 THEN             'THIS MOVES YOU AROUND
IF RIGHT = 1 THEN X = X - 1
IF LEFT = 1 THEN X = X + 1        'THE TIMELOOP   RIABLE DELAYS
IF UP = 1 THEN Y = Y - 1          'MOVEMENT WITHOUT SLOWING DOWN
IF DOWN = 1 THEN Y = Y + 1        'INPUT (WITHOUT IT YOU WOULD GO
TIMELOOP = 0                      'WAAAAYYY TOO FAST)
END IF

IF X >= 80 THEN X = 80        'KEEPS YOU FROM GOING OFF THE SCREEN AND
IF X <= 0 THEN X = 1          'MAKING AN ERROR
IF Y >= 23 THEN Y = 23
IF Y <= 0 THEN Y = 1


IF SPACE = 1 THEN                    'CHANGES YOUTR SHAPE WHEN
LOCATE Y, X: PRINT CHR$(94)         'YOU HIT SPACE
ELSE
LOCATE Y, X: PRINT CHR$(127)
END IF

IF XX <> X OR YY <> Y THEN           'UPDATES YOUR POSITION
LOCATE YY, XX: PRINT " "
LOCATE Y, X: PRINT CHR$(127)
END IF


XX = X: YY = Y                     'TELLS ME WHERE I WAS LAST

TIMELOOP = TIMELOOP + 1

LOOP                 'LOOP (DUH...) :)

'THANX TO Eric Carr FOR FIGURING OUT HOW TO TRAP SEVERAL KEYS AT ONCE
'EVERYTHING ELSE WRITTEN BY ME,              

FUNCTION MULTIKEY (KEYNUM)

STATIC FIRSTIME

IF FIRSTIME = 0 THEN
  FOR E = 0 TO 127              '\
  SC(E) = E: DU(E) = 1          '|
  NEXT                          '|-ERIC CARR'S CODE--------------------\
  FOR E = 128 TO 255            '|                                     |
  SC(E) = E - 128: DU(E) = 0    '|                                     |
  NEXT                          '/                                     |
  FIRSTIME = -1                 '                                      |
END IF                         '                                      |
                                '                                      |
I$ = INKEY$       ' So the keyb buffer don't get full     \routine/ \ |
I = INP(&H60)     ' Get keyboard scan code from port 60h   \lines/  |-/
OUT &H61, INP(&H61) OR &H82: OUT &H20, &H20       '         \!!!/   |
KEYS(SC(I)) = DU(I) ' This says what keys are pressed        \!/    /

MULTIKEY = KEYS(KEYNUM)


END FUNCTION

Good luck!
SCUMM (the band) on Myspace!
ComputerEmuzone Games Studio
underBASIC, homegrown musicians
[img]http://www.ojodepez-fanzine.net/almacen/yoghourtslover.png[/i
Reply
#29
Hey!!! you came!!!! So what about "THE" site?

And how's Germany?
Big Grin
y smiley is 24 bit.
[Image: anya2.jpg]

Genso's Junkyard:
http://rel.betterwebber.com/
Reply
#30
Nice codes Smile But let's go back to our subject...

Finally I made the scoring system:

Usual scores:
9 points for graphic
9 points for useability (Keyboard handling, mouse ect)
9 points for sound and music
9 points for story and gameplay (Is interesting?)
5 points for challenge (How hard is the game or how can it be set)
9 points for replay (Will people play it again, or delete)

100% QB scores:
25 points for complexity
25 points for speed

Complexity:
Maximum if only using what is documented in QB
-1 if using up a memory location (like A000), or a built-in fileformat (for each one)
-1 for each port group (For example palette changing takes place on 2 ports)
-10 if using the basic library, -5 for each used interrupt
Using FFIX: You can do it freely, but the scoring will take place on the FFIXless
version of the program.
For example if you have a program using the basic library (-10) for mouse handling
(-5) and using the A000 location (-1), and uses up that the first two byte of GET
stores the X and the Y size of the image (-1), you will get 8 points.

Speed:
The program's speed without any library or assembly speedup
30 points if it runs on the original 4MHz PC
25 points if runs on my 33Mhz computer
After: -5 points for each 33Mhz until 133Mhz
(66Mhz: 20, 100Mhz: 15, 133Mhz: 10)
5 points if needs 200Mhz
0 points if needs 300Mhz or more


This is not the final. You can tell it if You think this is wrong.

On this system an empty program would get 50 points. To prevent this the two part
will be divided, and scored independently. The final score will be the double of
the worse.


Using libs - again: I am upset because of it because they can put up good games, but I can't because I program in C :???:
This annoys me... Why they can do, but I can't ???

Of course I program in QB too... But if QB then pure QB Smile
fter 60 million years a civilization will search for a meteorite destroying most of the living creatures around this age...

There must be a better future for the Cheetahs!

http://rcs.fateback.com/
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)