Author Topic: Has anyone done these games in QB64 (and would be willing to share the source)?  (Read 4673 times)

0 Members and 1 Guest are viewing this topic.

Offline madscijr

  • Seasoned Forum Regular
  • Posts: 295
    • View Profile
I learn best from examples, was wondering if anyone has attempted any of the following old school games in QB64?
  • Pinball Construction Set
  • Combat (Atari 2600)
  • Battleship or any game over LAN or a home network
  • Lode Runner (with level editor)
  • Ultima 1-5 (any classic version)
  • Adventure Construction Set
  • Racing Destruction Set
  • Gravitar
  • Pole Position / Pitstop II / Outrun
  • Pitfall II
  • Zork type classic Infocom game or interactive fiction engine
  • a simple D&D type RPG with combat logic taking into account different attributes for player, NPC, weapon, armor
  • Activision’s GameMaker or a game with a simple scripting engine where players can “code” small pieces of logic to control behavior
  • a 2-D Minecraft game that either works locally, or over a local network or peer-to-peer
  • simple isometric walkaround game like Realm of Impossibility or Crystal Castles
  • Alter Ego

FellippeHeitor

  • Guest
Closest I ever got to any of those was one by Activision - since you didn't list it, it must not be of interest.

Here it is anyway: Frostbite https://www.qb64.org/forum/index.php?topic=342.msg2278#msg2278

Offline bplus

  • Global Moderator
  • Forum Resident
  • Posts: 8053
  • b = b + ...
    • View Profile
Cobalt did a version of Battleship that tries to duplicate the plastic version.

I did one with Johnno with pretty good AI. (see Games Board)

Terry Richie did QBzerk which might be zork clone.
« Last Edit: April 03, 2021, 12:20:50 pm by bplus »

Offline madscijr

  • Seasoned Forum Regular
  • Posts: 295
    • View Profile
Closest I ever got to any of those was one by Activision - since you didn't list it, it must not be of interest.

Here it is anyway: Frostbite https://www.qb64.org/forum/index.php?topic=342.msg2278#msg2278

Oh yes, thanks, I loved that game!! Very underappreciated!

Offline Cobalt

  • QB64 Developer
  • Forum Resident
  • Posts: 878
  • At 60 I become highly radioactive!
    • View Profile
Cobalt did a version of Battleship that tries to duplicate the plastic version.

Its somewhere around here, It has pretty good LAN function.
Granted after becoming radioactive I only have a half-life!

Offline johnno56

  • Forum Resident
  • Posts: 1270
  • Live long and prosper.
    • View Profile
I am a sucker for "The Classics". One of my favoutie genres, before the advent of graphics cards, was Text Adventure (Interactive Fiction). Heck of a lot or work using basic but used the best graphics engine yet developed. The imagination. I have tried my hand at figuring out how to code a simple game; Game templates and crude creators. A few minor successes but nothing worth publishing. Then along comes programs like Inform, Squiffy, Twine and Tads... and most of the tedious work is "taken care of".... SO much easier to create a game... Now trying to create an I.F. engine in QB64 would be quite an adventure in itself... I have no idea as to how to even begin something like that, but if anyone wanted to try and assuming that I could, I would be happy to help out...

Sorry. Waffling on again... I blame the low caffeine levels....
Logic is the beginning of wisdom.

Offline TempodiBasic

  • Forum Resident
  • Posts: 1792
    • View Profile
Hi
talking about engine for games I remember some good works posted on the.net and maybe also on .org

See Terry Ritchie's library for game developing, the Unseen Machine's library for games and apps, the raycaster for 3D wolfstein's style,  the 3D engine  of Petr, the map editor  of Steve and so on, please guys help my poor memory....
Each of these can become a professional tool with some improvements.... but are the authors interested to spend time and energy to realize this task? How many are the QB64 coders interested? How these works/tools can empower / enlarge the community of QB64 coders?

@johnno56  What is an I.F. engine?
Programming isn't difficult, only it's  consuming time and coffee

Offline johnno56

  • Forum Resident
  • Posts: 1270
  • Live long and prosper.
    • View Profile
TempodiBasic,

Sorry. Abbreviation for Interactive Fiction e.g: Inform7 (http://inform7.com/) or Twine (https://twinery.org/)  These are examples of engines used to create stories similar to the old style Text Adventures....

You also posed some interesting question about tools etc.

My opinion, for what it's worth, is this. Compared to all the game/application creating tools 'out there', I believe that those that spend the time and effort coding a game or application in Basic, would be a small group. Basic is primarily still used by those that have a desire to explore Basic. Will tools such as Map Editors or Raycasters etc.  create a greater interest in Basic? Maybe. But definitely by those already using it. If we can show 'Joe Public' what QB64 (or any Basic) can do, in concert with these tools, then it can only be a good thing for QB64. Are the "authors interested..."? Naalaa creator wrote a Tile map editor and a Raycaster Engine and an IDE using Naalaa itself. It is my opinion that QB64 is a superior package and the same could be achieved by members of this forum. If tools like these could be integrated with QB64 it can only improve the chances that others will find QB64 a more complete and attractive game authoring system. Should we wait for the "Authors to be interested"? If "we" are building the tools we need, then who is it that we are waiting for?

My apologies for babbling on... My caffeine supply is running low.... lol

J
« Last Edit: April 06, 2021, 04:17:21 am by johnno56 »
Logic is the beginning of wisdom.

Offline TempodiBasic

  • Forum Resident
  • Posts: 1792
    • View Profile
@johnno56
Thank you very much!
The 2 main reasons:
 1 I have learnt I.F. and the existence of  Inform7 (not that of Fellippe), Twine and Naalaa
 2 the inside power of QB64 there is but not yet showed completly in professional mode

So I agree with you saying
Quote
Should we wait for the "Authors to be interested"? If "we" are building the tools we need, then who is it that we are waiting for?
Programming isn't difficult, only it's  consuming time and coffee

Offline Raven_Singularity

  • Forum Regular
  • Posts: 158
    • View Profile
Closest I ever got to any of those was one by Activision - since you didn't list it, it must not be of interest.

Here it is anyway: Frostbite https://www.qb64.org/forum/index.php?topic=342.msg2278#msg2278

That's a very cool game!  I've never played the original, but your game looks like an emulator.  I got to level 3 after a few tries, scored 2220 points.  It's a tough little game, like most games of that era.  It reminded me of playing Frogger and Burger Time.  It's more complex than Frogger (with the hypothermia), but less complex than Burger Time.

Offline Unseen Machine

  • Forum Regular
  • Posts: 158
  • Make the game not the engine!
    • View Profile
Well, whilst you can indeed learn a lot from examples i am willing to bet youll learn more from trying to do stuff yourself...start with the basics and then...well if youre like me youll end up with a whole load of half made stuff that you only quit on cause when you got that far you realised a better way or needed to go build a new tool and that led down another path!!!!

So game design eh...well as i did that for my degree ill say a few words....

First have and idea. Then SET your goals...and make them realistic, want fancy 3d graphics with god rays and ray tracing but you dont know how to load textures...well i'd prepare myself for a lot of head scratching and trying to decode C++ demos into QB64...basically just dont reach to far or it will all become to much and youll not enjoy it!

Write pseudo code first...this helps break down the build into sections and is easier to keep track this way.

Keep it simple...Yes mario has a lot of different animations but do you really need to implement them all before even checking your tile engine works?

Do one thing, finish it and then have coffee!

So, get your idea, plan your design, 2d, 3d, iso, etc...write pseudo code and then if your still stuck ill happily help out and im sure the others will too...

I've attached pics, if anything is along the lines of the games you listed then let me know and ill dig up the code.

Unseen

Offline Aurel

  • Forum Regular
  • Posts: 167
    • View Profile
what is MapMaker program ?
//////////////////////////////////////////////////////////////////
https://aurelsoft.ucoz.com
https://www.facebook.com/groups/470369984111370
//////////////////////////////////////////////////////////////////

Offline Unseen Machine

  • Forum Regular
  • Posts: 158
  • Make the game not the engine!
    • View Profile
It was a basic map editor i made for a game called 'Hot Air'....I got taught that tools, even basic ones like that, are the best way to make content for games...all it did was dump the tile number refs into a file but it made level development a lot easier than editing DATA blocks.

Offline johnno56

  • Forum Resident
  • Posts: 1270
  • Live long and prosper.
    • View Profile
Who made the Map Maker and the Mario Editor? I would like to see how these programs were made.

J
Logic is the beginning of wisdom.

Offline Unseen Machine

  • Forum Regular
  • Posts: 158
  • Make the game not the engine!
    • View Profile
I made them years ago, that code went with [abandoned, outdated and now likely malicious qb64 dot net website - don’t go there] cause i dont have any copies of the code any more. I made them using VQB and GDK...im actually making a new more generic editor now but im still on the GUI dev stage so it doesnt do much anything yet...if you wanna make something like the editors then i'd suggest that using InForm would save you all the head ache i have in just creating the interface. and you can then concentrate on the function...

Unseen

Here's my new one...dont try to run it cause it requires libs...

Code: QB64: [Select]
  1. '// UnseenGDK Tool - Level Designer v.01 \\
  2. '// By John Onyon a.k.a Unseen Machine \\
  3. '// #Rev : 0  \\
  4.  
  5. REM $INCLUDE:'VQB\VQB.bi'
  6.  
  7. VQB_Screen 0, 0, 1024, 768, _RGB32(200, 200, 255), "UnseenGDK Level Designer v.01"
  8.  
  9. '// DIMS \\
  10.  
  11. CONST Col_Max = 1024, Row_Max = 1024, Col_Standard = 256, Row_Standard = 256
  12.  
  13. '// GUI Elements \\
  14.  
  15. DIM Btn(9) AS Button, Map(3) AS Button
  16. DIM GridCBox AS CheckBox, GridSize AS INTEGER, GridBTN(1) AS Button
  17.  
  18. GridSize = 10
  19.  
  20. VQB_CheckBox_New GridCBox, 650, 20, 8, 8, TRUE
  21.  
  22. VQB_Button_New GridBTN(0), 720, 20, 20, 20, _RGB32(180, 180, 180), "-"
  23. VQB_Button_New GridBTN(1), 800, 20, 20, 20, _RGB32(180, 180, 180), "+"
  24.  
  25. '// Control variables \\
  26.  
  27. DIM Mouse(1) AS MouseInfo, GDK_Mouse(1) AS MouseState, KB(1) AS KeyBoardState, LMB_Mode AS _BYTE, RMB_Mode AS _BYTE
  28. '// And there is a basis for my new project QB Blocks. GDK mouse is different to VQB mouse so GDK mouse functions cant use the VQB typedef...
  29. '// QB Blocks will be the frame work on which all my libraries are going to be re-written/written so they all work seemlessly together.
  30. '// im hoping to add support for some stuff from InForm and hopefully some pyhsics etc...but thats all way down the road
  31.  
  32. DIM Col AS INTEGER, Row AS INTEGER '// Calculated when mouse is over editor screen
  33.  
  34.  
  35. '// File Setup - To be improved in the future!! \\
  36.  
  37.  
  38. '// DATA Arrays
  39.  
  40.  
  41.  
  42. '////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  43.  
  44. VQB_Frame 10, 10, 600, 600, _RGB32(0, 0, 0)
  45. VQB_Frame 10, 620, 600, 25, _RGB32(0, 0, 0)
  46. VQB_Frame 756, 18, 22, 22, _RGB32(0, 0, 0)
  47.  
  48.  
  49. EditorBCK& = VQB_StoreScreen& '// The stuff which doesnt change only needs to be drawn once and then stored.
  50.  
  51.  
  52. '// MAIN LOOP \\
  53.  
  54.  
  55.   '// Loop control \\
  56.   _LIMIT 60
  57.   _DELAY .005
  58.  
  59.   '// Control Logic \\
  60.  
  61.   '// Get Input \\
  62.   GDK_Keyboard_GetState KB(0)
  63.   GDK_Mouse_GetState GDK_Mouse(0)
  64.   VQB_Mouse_GetInfo Mouse(0)
  65.  
  66.   '// Event checking is based on the state of the input controllers and control variables \\
  67.  
  68.   '// Is mouse over editor window \\
  69.   IF Mouse(0).X >= 10 AND Mouse(0).X <= 610 THEN
  70.     IF Mouse(0).Y >= 10 AND Mouse(0).Y <= 610 THEN
  71.  
  72.       '// Calcuate col/row
  73.       Col = (Mouse(0).X - 10) / GridSize
  74.       Row = (Mouse(0).Y - 10) / GridSize
  75.  
  76.       IF Mouse(0).L THEN '// Left button clicked
  77.         SELECT CASE LMB_Mode
  78.           CASE 0 '// Place tile
  79.  
  80.           CASE 1 '// Clone tile
  81.  
  82.             '// For future expansion \\
  83.  
  84.         END SELECT
  85.       ELSEIF Mouse(0).R THEN '// right button clicked
  86.         SELECT CASE RMB_Mode
  87.           CASE 0 '// Delete
  88.  
  89.           CASE 1 '// Select tile for data edit
  90.  
  91.         END SELECT
  92.       END IF
  93.  
  94.     END IF
  95.   END IF
  96.  
  97.   '// Check buttons \\
  98.  
  99.   IF VQB_CheckBox_Click(GridCBox, Mouse(0)) AND NOT Mouse(1).L THEN
  100.     IF GridCBox.CheckValue = TRUE THEN
  101.       GridCBox.CheckValue = FALSE
  102.     ELSE
  103.       GridCBox.CheckValue = TRUE
  104.     END IF
  105.   END IF
  106.  
  107.   '// Copy the input states for comaprisons next loop.
  108.   KB(1) = KB(0)
  109.   Mouse(1) = Mouse(0)
  110.   GDK_Mouse(1) = GDK_Mouse(0)
  111.  
  112.  
  113.   '// End of control logic \\
  114.  
  115.   '// Render \\
  116.   CLS
  117.  
  118.   VQB_RestoreScreen EditorBCK&
  119.  
  120.   VQB_CheckBox_Draw GridCBox
  121.  
  122.   VQB_Button_Draw GridBTN(0)
  123.   VQB_Button_Draw GridBTN(1)
  124.  
  125.   '// Text \\
  126.   COLOR _RGB32(255, 20, 20), _RGBA32(0, 0, 0, 0)
  127.   _PRINTSTRING (15, 625), "Col : " + STR$(Col)
  128.   _PRINTSTRING (105, 625), "Row : " + STR$(Row)
  129.   _PRINTSTRING (665, 18), "Grid"
  130.  
  131.   IF GridCBox.CheckValue THEN
  132.     FOR y% = 10 TO 610 STEP GridSize
  133.       FOR x% = 10 TO 610 STEP GridSize
  134.         PSET (x%, y%), _RGB32(255, 10, 20)
  135.       NEXT
  136.     NEXT
  137.   END IF
  138.  
  139.  
  140. '// END OF MAIN LOOP \\
  141.  
  142. '///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  143.  
  144. REM $INCLUDE:'VQB\VQB.bm'
  145. REM $INCLUDE:'UnseenGDK.bm'
  146.  
  147. '////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  148.  
  149.  
  150. '// SUB contains all the programs TYPE defs \\
  151. SUB LVL_DES_TYPE_DEFS
  152.  
  153.   TYPE GAME
  154.     FileName AS STRING * 64
  155.     TAG AS _UNSIGNED _BYTE '// Version id...for now is 0
  156.     Levels AS _UNSIGNED _BYTE '// Max 255 levels - First level (0) will be made with GDK intro \\
  157.     TileSheets AS _UNSIGNED _BYTE '// Max 256 tile sheets
  158.     Sprites AS _UNSIGNED _BYTE '// Max 256 sprites - For future use \\
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.