NeoArcherFire QuickBasic source code

Today I decided to try to include some of my oldest game projects into my page at http://slashie.net. A couple of them were ArcherFire and NeoArcherFire, the first games I created which included graphics.

Screen Shot 2016-08-16 at 11.45.34 PM

Bundled with the original ArcherFire, I found a file which was supposed to be its source code. I tried checking it out: it was a .BAS file so I thought it’d be a plain text file with QBasic source code… I was wrong, it was a binary file.

Then I remembered back then the version of “QBasic” I used allowed saving the source code as binary files for faster loading times. I downloaded QBasic and tried to load the file (Using DOSBox, of course). It failed, unable to read the binary contents.

I googled a bit and refreshed my mind: back then I was using QuickBasic, not QBasic.

[from wikipedia]

A subset of QuickBASIC 4.5, named QBasic, was included with MS-DOS 5 and later versions, replacing the GW-BASIC included with previous versions of MS-DOS. Compared to QuickBASIC, QBasic is limited to an interpreter only, lacks a few functions, can only handle programs of a limited size, and lacks support for separate program modules. Since it lacks a compiler, it cannot be used to produce executable files, although its program source code can still be compiled by a QuickBASIC 4.5, PDS 7.x or VBDOS 1.0 compiler, if available.

I downloaded it and was able to check the source code, finding out that it was Neo ArcherFire, the enhanced version which used DirectQB, and my final game project using any BASIC variant!

af1

I made this game back on 2003, the source code is surprisingly organised 🙂

Screen Shot 2016-08-16 at 11.31.08 PM

I exported the binary “project” to ASCII, and uploaded it to github, if you are curious you can check it out here, but I’d recommend getting MSQuickBasic so you can navigate the SUBs easily 😀

This game was powered by DirectQB, a lib released in 1999 by Angelo Mottola which greatly extended what could be done by QuickBasic, you can find more info here.

Although this wasn’t really my first game, I think it’s very unlikely for me to find any older source code, it was lost in my old 486… may be some day I’ll find a rusty diskette with it? Some of the things I miss the most are:

  • The source code of the original ArcherFire (with graphics): The only surviving compiled version has you starting with 1 hit point left, so it’s pretty hard 😀
  • The romhack for translating Final Fantasy I to Spanish, which I recall was a lot of work and was (almost?) done
  • The non-graphics versions of ArcherFire, as well as some earlier console-mode games I made including a set of “athletics” games (I recall one being about 100 meters dash), another adventure game where you could move a happy face around, and a puzzle game similar to Dr. Mario.

Archerfire 0.41

Play online!

041

Changes

  • Increase rate for Powerups
  • UFO type ships should lean forward to advance
  • Lean forward or backward automatically when climbing or diving into planets
  • Fix initial values for war status screen

Pending

  • Add intro sequence using big ships, a la Megaman
  • Less Big Ships, and change sprite for a small robot
  • Enhance torch weapon (or put it on a premium ship)
  • Make enemies lean forward and backward when changing altitude
  • Make allies smarter
  • Nerf laser enemies
  • Withstand hits before losing weapon upgrade
  • Bug: Keep music volume when looping and paused!
  • Letters don’t look good in bright planetary backgrounds.
  • Reduce SWF size (currently 8MB)
  • Reenable payments

Archerfire 0.40 released

This is a MAJOR release from last one 🙂 PLAY ONLINE

Version 0.40
New version 0.40

It’s been almost a year, last one was August 15 2013… thousands of things have happened.

What can I say, I decided to shoot to finish it and made some hard choices in order to take it into the shipability route. It’s a completely different game!

Here’s a gameplay vid:

I have stripped a lot of functionality that was either incomplete or burdened the user experience, say goodbye to:

  • Custom Player Creation – Was overly complex and offered little return for the player
  • Weapon and Pilot Selection – Now they are tied to the ships, so you can jump quicker into the game.
  • Wingmen – This was unfortunately not polished enough, it might go back into the game soon.
  • Difficulty level selection – To streamline the game and make it easier to balance (balancing 5 difficulty levels was not fun and was a nuisance for players as well)
  • Missions Mode – Was incomplete, buggy, unbalanced and unfun.
  • Items Shop and consumable powerups and Batteries – They were not really useful in-game, plus I don’t like them as a monetization model.
  • Experience Points: Not useful
  • And many more other things
Previous version, note the screen size and additional data
Previous version, note the screen size and additional data

I also added two new tracks for the Title and GameOver screens, and changed resolution to 800×480 (was 900×650)

Additionally I debugged and reworked critical portions of the code

  • Enemy AI modules
  • Enemy spawning structures
  • Sound Management

Ship purchases are currently broken since facebook seems to have completely changed how that works since it was functional last year; that might require a fair bit of work to get up and running again.

Pending tweaks:

  • Less N00b enemies, more smart ships
  • Increase rate for Powerups
  • Add intro sequence using big ships, a la Megaman
  • Less Big Ships, and change sprite for a small robot
  • Make enemies Lean forward and backward when changing altitude
  • UFO type ships should lean forward to advance
  • Lean forward or backward automatically when climbing or diving into planets
  • Make allies smarter
  • Bug: Keep music volume when looping and paused!
  • Letters don’t look good in bright planetary backgrounds.
  • Reduce SWF size (currently 8MB)
  • Fix initial values for war status screen

ArcherFire continued cleanup

Done some further work on Archerfire, refactored sound effects management, slowed down enemies a bit.

ScreenShot029

Still not time to deploy  a new version tho.

ToDo:

  • Make enemies spawn closer to the edge of the screen
  • Fix “RANDOM” AI
  • Check out ALL the AI modules, and ALL the formations and tweak them
  • Increase the rate of ally waves
  • Check correlation between mines and ally waves
  • Add weapon names to each ship on Ship Selection Screen
  • Make big ships move vertically
  • Fix music on/off message
  • Improve UI yet even more? check out NES games
  • Change DOS font for a NES font

Worked a bit on Archerfire

Added the 2 new tracks for title and gameover, while reestructuring the whole music management code.

Also started tying the weapons to the selected ships, got into refactoring as well and ended up in a mess… gotta finish adjusting the ship selection part next time.

Also should note that the current public version is broken: Both because of an expired SSL certificate that won’t let it run inside the facebook canvas, as well as some changes in facebook in app purchases policies..

Removal

Getting Cleaner
Getting Cleaner

Removed:

  • Missions Mode
  • “Energy”
  • Experience Points
  • Difficulty Level Selection
  • Pilot / Wingman Selection
  • Pilot Personalization
  • Shop
  • Items (Bomb / Shield / Radio)
  • Weapon Selection (Will be tied to the ship)
  • Time, Kills and Shoots counters

TODO:

  • Play some shooters to get ideas for gameplay
  • Change resolution to 800×480 (Low Tablet)
  • Tie weapons to selected ship
  • Remove coins
  • Remove slower than ship bullets (Including big ship bullets)
  • Enhance enemy generation, cap number of enemies per wave
  • Reduce the length of the screen shaking animation
  • Balance music and sfx volume
  • Mute SFX on Music Off