Author Topic: BA Project - A game I've been making  (Read 8026 times)

Klangaroo

  • Sr. Member
  • ****
  • Posts: 328
  • Video Game Dad
    • ManFightDragon Indie Dev Blog
BA Project - A game I've been making
« on: November 03, 2012, 06:58:43 pm »
Hello, all!
I just wanted to stop in to quickly show you an extended demo I recorded of a game I've been making in QB64 for the past 7 months. It's just vanilla QB64, no third-party tools or libraries. The whole engine is just one massive (8000 lines at the moment) .bas file.
I recorded this just for you guys so please don't pass it around. Be sure to watch in 720p to catch all the detail!
http://www.youtube.com/watch?v=6y5CeldYXvo

If you have any technical questions about how the game works, or general queries about making a game in QB64, I'd be happy to answer!
I make video games over at Man Fight Dragon and I have Twitter so do whatever really.

TerryRitchie

  • Hero Member
  • *****
  • Posts: 2803
  • Press any key to continue or any other key to quit
Re: BA Project - A game I've been making
« Reply #1 on: November 03, 2012, 07:06:28 pm »
COOL!!

Klangaroo

  • Sr. Member
  • ****
  • Posts: 328
  • Video Game Dad
    • ManFightDragon Indie Dev Blog
Re: BA Project - A game I've been making
« Reply #2 on: November 03, 2012, 07:10:21 pm »
COOL!!

Thanks, that means a lot coming from you :)

edit: There's a ton of stuff in the game not shown in that video; there's an entire gameplay mechanic revolving around sneaking and capturing people so you can add them to your team, but I figured you guys would be more interested in the technical stuff rather than the gameplay.
I make video games over at Man Fight Dragon and I have Twitter so do whatever really.

TerryRitchie

  • Hero Member
  • *****
  • Posts: 2803
  • Press any key to continue or any other key to quit
Re: BA Project - A game I've been making
« Reply #3 on: November 03, 2012, 07:12:10 pm »
Well from what I've seen it's a brilliant design.  I can't wait until you have a final version out for everyone to play.

Klangaroo

  • Sr. Member
  • ****
  • Posts: 328
  • Video Game Dad
    • ManFightDragon Indie Dev Blog
Re: BA Project - A game I've been making
« Reply #4 on: November 03, 2012, 07:14:04 pm »
Well from what I've seen it's a brilliant design.  I can't wait until you have a final version out for everyone to play.

You might like these little "behind the scenes" videos I did, you can catch a few glimpses at the tools I've built (also using QB64) to create sprites - maps - campaigns for the game.
The Map editor, Iso-tile editor and Campaign Builder: http://www.youtube.com/watch?v=azG3XDUFHmI
The Art Toolchain: Photoshop -> Sprite Converter -> Sprite Banker -> Campaign Builder: http://www.youtube.com/watch?v=0ERWmABnXLA
I make video games over at Man Fight Dragon and I have Twitter so do whatever really.

TerryRitchie

  • Hero Member
  • *****
  • Posts: 2803
  • Press any key to continue or any other key to quit
Re: BA Project - A game I've been making
« Reply #5 on: November 03, 2012, 07:24:35 pm »
The animation is so smooth.  It would fascinating, if you had time, to put a few tutorials of your techniques up here.

SMcNeill

  • Moderator
  • Hero Member
  • *****
  • Posts: 5807
Re: BA Project - A game I've been making
« Reply #6 on: November 03, 2012, 07:29:54 pm »
Aye.  I agree with Terry.  A very nice little piece of work so far.  I'll also be interested in seeing the finished product once you have it.  :)
http://bit.ly/TextImage -- Library of QB64 code to manipulate text and images, as a BM library.

http://bit.ly/Color32 -- A set of color CONST for use in 32 bit mode, as a BI library.

Klangaroo

  • Sr. Member
  • ****
  • Posts: 328
  • Video Game Dad
    • ManFightDragon Indie Dev Blog
Re: BA Project - A game I've been making
« Reply #7 on: November 03, 2012, 07:36:36 pm »
I'll probably let you guys run wild with the engine source once I'm done with it, then you can all talk about how horribly hacked together it all is :P
I make video games over at Man Fight Dragon and I have Twitter so do whatever really.

23452

  • Full Member
  • ***
  • Posts: 155
Re: BA Project - A game I've been making
« Reply #8 on: November 03, 2012, 07:38:59 pm »
I will list what I thought as I watched the video.

start to 3:40- impressive  but boring; could use some unicorns or zombies.  :-\

next few seconds - wtf is did they just shoot a gun.  ???

end of the video -    :o  That is the first game I have ever seen about a workplace shooting. 



Klangaroo

  • Sr. Member
  • ****
  • Posts: 328
  • Video Game Dad
    • ManFightDragon Indie Dev Blog
Re: BA Project - A game I've been making
« Reply #9 on: November 03, 2012, 07:44:08 pm »
The things that I am most happy with by far are the vision cones and the in-game "Sounds". Creatures that call for help actually emit a "sound" that comes out of them in an expanding radius and can be configured to pass through air, decor, glass, and/or walls. When you fire a gun, a sound that penetrates walls comes out of it. If it hits a creature (before the bullet hits them and kills them) the creature will let out a scream that will only penetrate decor and air. If someone hears the scream, they will look for an alarm panel. If they hit the alarm panel, it will let out a loud alarm that penetrates walls and calls for help. You can also toggle sounds to be "Visible", you can notice a few times in the video that entities are emitting pulses to try to alert other creatures to come help or fix them.

The vision cones are cool, too. Creatures can not turn around instantly, they have a "head" and "eyes" that moves. If the creature needs to look further than the number of degrees their eye can turn, they will turn their head, which is a slow but smooth process. It stops creatures from instantly turning around and failing to notice things that are next to them.

edit: Also those "Popup Boxes" that appear over ornaments took a few days to get right. Youse guys will probably get a kick out of how insane the code is that renders them:
Code: [Select]
FinalX = ScrollX - LiteralX
FinalY = ScrollY - LiteralY

OriginX = FinalX ' For the smooth animation, where to start the cubes
OriginY = FinalY + (IsoYOffset * 1)

DrawSprite PopupElements(Popup_BottomLeft), 0, 0, graphicsBuffer, (OriginX + ((FinalX + (IsoXOffset * 1) - OriginX) + WidthExtras) * animationProgress), (OriginY + ((FinalY + (IsoYOffset * 2) - OriginY) + (WidthExtras / 2)) * animationProgress), -1
DrawSprite PopupElements(Popup_Bottom), 0, 0, graphicsBuffer, OriginX + ((FinalX - OriginX) * animationProgress), OriginY + ((FinalY + (IsoYOffset * 1) - OriginY) * animationProgress), -1
FOR LeftExtras = -1 TO WidthExtraCount - 1
    DrawSprite PopupElements(Popup_Bottom), 0, 0, graphicsBuffer, (OriginX + ((FinalX - OriginX) + (WidthExtras - (12 + (12 * LeftExtras)))) * animationProgress), (OriginY + ((FinalY + (IsoYOffset * 1) - OriginY) + ((WidthExtras - (12 + (12 * LeftExtras)))) / 2) * animationProgress), -1
NEXT
DrawSprite PopupElements(Popup_BottomRight), 0, 0, graphicsBuffer, (OriginX + ((FinalX - (IsoXOffset * 1) - OriginX) - WidthExtras) * animationProgress), (OriginY + ((FinalY - OriginY) - (WidthExtras / 2)) * animationProgress), -1

DrawSprite PopupElements(Popup_Left), 0, 0, graphicsBuffer, (OriginX + ((FinalX + (IsoXOffset * 1) - OriginX) + WidthExtras) * animationProgress), (OriginY + ((FinalY + (IsoYOffset * 4) - OriginY) + (WidthExtras / 2)) * animationProgress), -1
FOR LeftExtras = 0 TO WidthExtraCount
    DrawSprite PopupElements(Popup_Middle), 0, 0, graphicsBuffer, (OriginX + ((FinalX + (IsoXOffset * 1) - OriginX) + (WidthExtras - (12 + (12 * LeftExtras)))) * animationProgress), (OriginY + ((FinalY + (IsoYOffset * 4) - OriginY) + ((WidthExtras - (12 + (12 * LeftExtras)))) / 2) * animationProgress), -1
NEXT
DrawSprite PopupElements(Popup_Right), 0, 0, graphicsBuffer, (OriginX + ((FinalX - (IsoXOffset * 1) - OriginX) - WidthExtras) * animationProgress), (OriginY + ((FinalY + (IsoYOffset * 2) - OriginY) - (WidthExtras / 2)) * animationProgress), -1
FOR TopExtras = HeightExtraCount TO 0 STEP -1
    DrawSprite PopupElements(Popup_Left), 0, 0, graphicsBuffer, (OriginX + ((FinalX + (IsoXOffset * 1) - OriginX) + WidthExtras) * animationProgress), ((TopExtras * -12) + HeightExtras) + (OriginY + ((FinalY + (IsoYOffset * 4) - OriginY) + (WidthExtras / 2)) * animationProgress), -1
    'DrawSprite PopupElements(Popup_Middle), 0, 0, graphicsBuffer, OriginX + ((FinalX - OriginX) * animationProgress), OriginY + ((FinalY + (IsoYOffset * 3) - OriginY) * animationProgress), -1
    FOR LeftExtras = 0 TO WidthExtraCount
        DrawSprite PopupElements(Popup_Middle), 0, 0, graphicsBuffer, (OriginX + ((FinalX + (IsoXOffset * 1) - OriginX) + (WidthExtras - (12 + (12 * LeftExtras)))) * animationProgress), ((TopExtras * -12) + HeightExtras) + (OriginY + ((FinalY + (IsoYOffset * 4) - OriginY) + ((WidthExtras - (12 + (12 * LeftExtras)))) / 2) * animationProgress), -1
    NEXT
    DrawSprite PopupElements(Popup_Right), 0, 0, graphicsBuffer, (OriginX + ((FinalX - (IsoXOffset * 1) - OriginX) - WidthExtras) * animationProgress), ((TopExtras * -12) + HeightExtras) + (OriginY + ((FinalY + (IsoYOffset * 2) - OriginY) - (WidthExtras / 2)) * animationProgress), -1
NEXT

DrawSprite PopupElements(Popup_TopLeft), 0, 0, graphicsBuffer, (OriginX + ((FinalX + (IsoXOffset * 1) - OriginX) + WidthExtras) * animationProgress), (HeightExtras) + (OriginY + ((FinalY + (IsoYOffset * 6) - OriginY) + (WidthExtras / 2)) * animationProgress), -1
DrawSprite PopupElements(Popup_Top), 0, 0, graphicsBuffer, OriginX + ((FinalX - OriginX) * animationProgress), (HeightExtras) + (OriginY + ((FinalY + (IsoYOffset * 5) - OriginY)) * animationProgress), -1
FOR LeftExtras = -1 TO WidthExtraCount - 1
    DrawSprite PopupElements(Popup_Top), 0, 0, graphicsBuffer, (OriginX + ((FinalX - OriginX) + (WidthExtras - (12 + (12 * LeftExtras)))) * animationProgress), (HeightExtras) + (OriginY + ((FinalY + (IsoYOffset * 5) - OriginY) + ((WidthExtras - (12 + (12 * LeftExtras)))) / 2) * animationProgress), -1
NEXT
DrawSprite PopupElements(Popup_TopRight), 0, 0, graphicsBuffer, (OriginX + ((FinalX - (IsoXOffset * 1) - OriginX) - WidthExtras) * animationProgress), (HeightExtras) + (OriginY + ((FinalY + (IsoYOffset * 4) - OriginY) - (WidthExtras / 2)) * animationProgress), -1
DrawSprite PopupElements(Popup_TopRightX), 0, 0, graphicsBuffer, (OriginX + ((FinalX - (IsoXOffset * 1) - OriginX) - WidthExtras) * animationProgress), (HeightExtras) + (OriginY + ((FinalY + (IsoYOffset * 6) - OriginY) - (WidthExtras / 2)) * animationProgress), -1
DrawSprite PopupElements(Popup_BottomX), 0, 0, graphicsBuffer, FinalX + (IsoXOffset * 1), FinalY, -1
« Last Edit: November 03, 2012, 08:01:11 pm by Klangaroo »
I make video games over at Man Fight Dragon and I have Twitter so do whatever really.

Klangaroo

  • Sr. Member
  • ****
  • Posts: 328
  • Video Game Dad
    • ManFightDragon Indie Dev Blog
Re: BA Project - A game I've been making
« Reply #10 on: November 03, 2012, 07:45:43 pm »
Oh, one other thing, if you'd like to see my development diary (there's screenshots going all the way back to the first prototype) have a look at www.manfightdragon.com.au
I make video games over at Man Fight Dragon and I have Twitter so do whatever really.

iamdenteddisk

  • Hero Member
  • *****
  • Posts: 2735
Re: BA Project - A game I've been making
« Reply #11 on: November 04, 2012, 12:54:32 am »
dang klangaroo, showing some mad skills there, would love to get a peek at the engine source man truly awesome and the hottest project I have seen yet shared here to be done in pure QB64 without libs, that is a proud thing..

hipp hipp hooray, Kudo's man!!

above and beyond up up and away super dude..

 ;)

Klangaroo

  • Sr. Member
  • ****
  • Posts: 328
  • Video Game Dad
    • ManFightDragon Indie Dev Blog
Re: BA Project - A game I've been making
« Reply #12 on: November 04, 2012, 01:24:52 am »
dang klangaroo, showing some mad skills there, would love to get a peek at the engine source man truly awesome and the hottest project I have seen yet shared here to be done in pure QB64 without libs, that is a proud thing..

hipp hipp hooray, Kudo's man!!

above and beyond up up and away super dude..

 ;)

Thanks heaps, it means a lot to have such positive words said about something you've such a huge amount of effort on.
I make video games over at Man Fight Dragon and I have Twitter so do whatever really.

iamdenteddisk

  • Hero Member
  • *****
  • Posts: 2735
Re: BA Project - A game I've been making
« Reply #13 on: November 04, 2012, 01:42:37 am »
understood, but really man that isn't just kissing up for a peek at source man. seriously that is awesome stuff like I said "best seen to date" I am truly impressed pal. kinda wish you would do some tut's for us on the subject..

I am hardcore believer in pure qb no libs programming. have preached it as a gospel to the point of almost being exiled from the project a few times, when the community started to sway all effort to libs.. would love to reach the level of complexity and final product you show in that video man. I would eat a worm to do that!.. :)

Klangaroo

  • Sr. Member
  • ****
  • Posts: 328
  • Video Game Dad
    • ManFightDragon Indie Dev Blog
Re: BA Project - A game I've been making
« Reply #14 on: November 04, 2012, 01:44:08 am »
I'm not sure how much help I could provide in the form of a tutorial - are there any questions you might have in regards to how certain things are done in my engine? I can atleast give you an idea of the program flow and how different things are performed.
I make video games over at Man Fight Dragon and I have Twitter so do whatever really.