Qbasicnews.com
September 19, 2019, 03:42:59 PM *
Welcome, Guest. Please login or register.

Login with username, password and session length
News: Back to Qbasicnews.com | QB Online Help | FAQ | Chat | All Basic Code | QB Knowledge Base
 
   Home   Help Search Login Register  
Pages: 1 [2] 3 4 ... 10
  Print  
Author Topic: 100% QB game  (Read 44007 times)
na_th_an
*/-\*
*****
Posts: 8244



WWW
« Reply #15 on: March 12, 2004, 08:37:13 AM »

Superput is just like another lib. An assembly coded routine which is not included with QB.

I don't understand these "lib haters", because they hate "some libs" but use another ones.
Logged

SCUMM (the band) on Myspace!
ComputerEmuzone Games Studio
underBASIC, homegrown musicians
[img]http://www.ojodepez-fanzine.net/almacen/yoghourtslover.png[/i
Plasma
Na_th_an
*****
Posts: 1770


WWW
« Reply #16 on: March 12, 2004, 10:56:15 AM »

Who hates libs?
Logged
na_th_an
*/-\*
*****
Posts: 8244



WWW
« Reply #17 on: March 12, 2004, 04:32:40 PM »

Pure QBers
Logged

SCUMM (the band) on Myspace!
ComputerEmuzone Games Studio
underBASIC, homegrown musicians
[img]http://www.ojodepez-fanzine.net/almacen/yoghourtslover.png[/i
Plasma
Na_th_an
*****
Posts: 1770


WWW
« Reply #18 on: March 12, 2004, 05:34:12 PM »

And who would that be? Rel? Certainly ain't him. Anybody who's entered one of Toshi's Competitions? Probably not.

The whole "Pure QB" thing is about the challenge, not the hate of libs.
Logged
Pyrodap
Senior Member
**
Posts: 166



« Reply #19 on: March 12, 2004, 09:42:48 PM »

I love libs...

And also, you never send anything about commenting the code. (did you?)

And ALSO, SuperPut isn't a lib! That's like saying if you copied this code:

Code:
SUB Init
SCREEN 13
CLS
PRINT "SCREEN 13 INITIALIZED!"
END SUB


Into your program saying "I used the INIT lib!!"

A lib is a file that you actually say REM $INCLUDE:'Library.bi' so that you can use different functions. All superput does is modifies QB's own put routine. You can copy the program right into QB and it works fine. (You dont even need to "QB /Lqb" it when you start QB)

But other then that, How do you like the game Cheesy
Logged
na_th_an
*/-\*
*****
Posts: 8244



WWW
« Reply #20 on: March 12, 2004, 10:29:45 PM »

Every pack of functions and subroutines is a library.

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

The game was really cool Smiley
Logged

SCUMM (the band) on Myspace!
ComputerEmuzone Games Studio
underBASIC, homegrown musicians
[img]http://www.ojodepez-fanzine.net/almacen/yoghourtslover.png[/i
Spotted Cheetah
Ancient QBer
****
Posts: 400



WWW
« Reply #21 on: March 13, 2004, 03:34:21 PM »

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 Smiley
Logged

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/
na_th_an
*/-\*
*****
Posts: 8244



WWW
« Reply #22 on: March 13, 2004, 03:54:08 PM »

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.
Logged

SCUMM (the band) on Myspace!
ComputerEmuzone Games Studio
underBASIC, homegrown musicians
[img]http://www.ojodepez-fanzine.net/almacen/yoghourtslover.png[/i
Spotted Cheetah
Ancient QBer
****
Posts: 400



WWW
« Reply #23 on: March 13, 2004, 04:11:04 PM »

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.
Logged

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/
na_th_an
*/-\*
*****
Posts: 8244



WWW
« Reply #24 on: March 13, 2004, 04:15:23 PM »

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.
Logged

SCUMM (the band) on Myspace!
ComputerEmuzone Games Studio
underBASIC, homegrown musicians
[img]http://www.ojodepez-fanzine.net/almacen/yoghourtslover.png[/i
Spotted Cheetah
Ancient QBer
****
Posts: 400



WWW
« Reply #25 on: March 16, 2004, 03:33:04 PM »

I think this game is okay for this challenge. P300 - not too high - but should be lower Smiley. But anyway that's good at a QB game.

Here speed counts too Smiley

I will try to create a scoring system...
Logged

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/
Optimus
Member
*
Posts: 37


WWW
« Reply #26 on: March 19, 2004, 11:22:42 AM »

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)
Logged

ave a time Smiley
na_th_an
*/-\*
*****
Posts: 8244



WWW
« Reply #27 on: March 19, 2004, 11:52:00 AM »

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!
Logged

SCUMM (the band) on Myspace!
ComputerEmuzone Games Studio
underBASIC, homegrown musicians
[img]http://www.ojodepez-fanzine.net/almacen/yoghourtslover.png[/i
relsoft
*/-\*
*****
Posts: 3927



WWW
« Reply #28 on: March 20, 2004, 06:53:01 AM »

Hey!!! you came!!!! So what about "THE" site?

And how's Germany?
 Cheesy
Logged

y smiley is 24 bit.


Genso's Junkyard:
http://rel.betterwebber.com/
Spotted Cheetah
Ancient QBer
****
Posts: 400



WWW
« Reply #29 on: March 20, 2004, 02:34:06 PM »

Nice codes Smiley 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  :Huh:
This annoys me... Why they can do, but I can't Huh

Of course I program in QB too... But if QB then pure QB Smiley
Logged

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/
Pages: 1 [2] 3 4 ... 10
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!