G'day
For todays video I'm taking a look at Bob's Fury, my own MS-DOS homebrew project.
Given that it's my own project, this won't be a review, as obviously I'm biased.
However I would like to talk about its history, where it came from, where it is now and what
I'm planning on doing with it in the future.
I guess the best place to start is in the begining.
Way back in my early teens I was learning to write software, starting with GWBasic and
later using QBasic.
At this point I had just started coding with QBasic.
Most of my projects up to this point were expansions of projects I had started in GWBasic
and not had enough room to complete.
I wanted to start something new that took advantage of the expanded capabilities available
in QBasic.
I got my inspiration from two shareware platform games that were my favourites at the time.
Hocus Pocus by Moonlight Software and Xargon from Epic Megagames.
I imagined a sort of run and gun game with plenty of treasure to collect.
So I got to work creating what you're seeing on the screen now.
It took roughly a year with my younger brother helping with some of the graphics and levels.
It's certainly no master piece, and has some quite significant flaws.
But for a 14 year old kid it was quite an achievement.
I made a second game using most of the same code.
This one was inspired by a screen shot of Pharoh's Tomb in a magazine.
At the time we had never played that game so what I made turned out quite different.
In this game you can't kill the enemies, your task is simply to collect as much treasure
as possible and get to the level exit.
A few years after completing the QBasic version of the game one of my high school teachers
gave me a copy of turbo pascal.
I jumped aboard it in much the same way as I did when switching to QBasic, I saw that
I could solve many issues and add features by using Pascal but didn't immediately have
enough knowledge to start on a port straight away.
So I spent some time making small projects and learning pascal to build up my skill level.
I started the port to pascal around 1999 not long after I started at university and have
been working on it ever since.
Early versions looked and played much like the original, although faster and with some
new features.
I've been lucky enough to find some old code backups of early work I did.
Lets take a quick look at some of the older code running.
I'm sure you can see that there has been some significant changes over the years.
I've added alot of features and gradually ironed out issues.
Much of the game engine has been stable for a little while, so I've been focused on creating
new levels, improving hardware support and performance.
The current SVN release requires a 286 with about 200 to 300 k of memory depending on
what hardware support you use.
It should work on fairly slow machines, but I don't have a slow 286 to test on.
My guess is 10Mhz will work well, but maybe even slower machines will be playable.
The graphic modes supported include: CGA, EGA, VGA and VESA modes.
This is primarily because I used the Borland Graphics Interface (or BGI for short) which
supports a wide range of hardware provided you have a BGI driver.
I'm particularly proud of the CGA and EGA graphics.
Instead of recreating the graphics in 16 and 4 colours I made a conversion program that
automatically creates the graphics set.
The EGA mode is 640x200 which allows for some basic dithering like what's used in the DOS
Thexder games.
If you take a side by comparison to the standard VGA graphics you can see it's a pretty good
approximation.
The CGA mode by comparison didn't convert quite as well, but all things considered it's
not too bad.
Audio support includes the PC speaker, Adlib cards and the OPL2LPT, or of course no sound
at all.
The adlib support includes provision for playing music, but I haven't made any suitable music
yet.
I've got quite a bit planned in terms of development.
Some of it is obvious, such as creating and polishing new levels, music and content.
But I have a bigger job planned.
I'm planning on moving away from the Borland graphics library, implementing my own in a
combination of Pascal and assembly code.
Part of the reason for this is the Borland library is comparatively slow, if I can manage
to improve the graphics performance I may be able to get the game working on older slower
hardware.
I'd like to try and aim for an XT class computer if I could.
I'd also like to try some possible graphical improvements to make things look nicer.
This will be a significant project primarily because of the wide range of graphic hardware
support I wish to maintain.
I have no doubt that I can make something faster than the BGI and perhaps make the graphic
engine do some nicer drawing, but I'm not sure if I'll be able to get it working on
an XT class computer.
I'm also considering adding more sound card support, say something like the Creative music
system.
However I'd really want to have an example of the real hardware for testing before implementing
something like this.
I don't have any cards that support it as far as I know.
I've been working on bob's fury for quite a long time now.
In recent years development progress has generally been quite slow, I work on it fairly sporadically,
when I have time.
This is because I've accumulated lots of time sinks and distractions as I've gotten older.
I don't really see this as a problem as I'm doing this for fun, and not looking to make
an income from it.
In a way it's been good, it has kept a piece of my youth and passion for computer programming
alive when I might not have otherwise continued.
It has also been a fun thing to show and share with my children.
I released a download for it some time ago, which I've been updating as I've fixed bugs
and added new features.
I now have a download that is automatically updated once a month based upon the projects
subversion repository.
However the way I'm hosting the download isn't ideal, so I'm considering making it available
on something like itch.io.
If you've had some experience with using itch.io or another service I'd love to hear about
it in the comments below.
That's all I've got for today's video, I hope you enjoyed.
Thanks for watching and I'll catch you next time.