/bootRogue

bootRogue, a roguelike game that fits in a boot sector (510 bytes)

Primary LanguageAssemblyBSD 2-Clause "Simplified" LicenseBSD-2-Clause

   _                 _  ______                       
  | |               | | | ___ \                      
  | |__   ___   ___ | |_| |_/ /___   __ _ _   _  ___ 
  | '_ \ / _ \ / _ \| __|    // _ \ / _` | | | |/ _ \
  | |_) | (_) | (_) | |_| |\ \ (_) | (_| | |_| |  __/
  |_.__/ \___/ \___/ \__\_| \_\___/ \__, |\__,_|\___| 
  \            A_________            __/ |          /           
   \        )==o_________>          |___/          /
    \__________V__________________________________/

bootRogue, a roguelike game that fits in a boot sector (510 bytes)
by Oscar Toledo G. Sep/26/2019

http://nanochess.org
https://github.com/nanochess/bootRogue

It's compatible with 8088 (the original IBM PC)

If you want to assemble it, you must download the Netwide Assembler
(nasm) from www.nasm.us

Use this command line:

  nasm -f bin rogue.asm -l rogue.lst -o rogue.img
  nasm -f bin rogue.asm -Dcom_file=1 -o rogue.com

Youtube video:

  https://www.youtube.com/watch?v=DMMr4z6kU5g

Play it on your browser: (v86 at parkertomatoes.github.io)

  https://tinyurl.com/y4447ph8


>> HOW TO PLAY <<

Move with the arrow keys to reveal the area where you are.
Any action is done by touching the target.

Any letter is a monster, the Aardvark monster is the most
easiest of the game, while the Zombie master monster is the
most difficult one. Touching them will cause a battle to
start, press any key to keep advancing the battle and see
how your HP goes down.

The diamonds are traps that will suck your HP.

The clover symbol is food. The square with a hole in the
center is armor, getting more of these means the monsters
will have a hard time hitting you. The up arrow is weapon,
getting more of these means the monsters will receive harder
hits.

The asterisk like symbol is gold, but doesn't affect the
gameplay nor is counted (because lack of space), but I wanted
to have gold in the game ;)

Finally the Amulet of Yendor is represented by a Female sign,
and it will appear only in level 26 or deeper. Once you get
the amulet, the ladders will start taking you to upper levels.

The game will get stuck once you lose all your HP or take the
last ladder to surface.

Enjoy it!


>> AND THERE WAS ROGUE <<

I was a young kid when I learned to put floppy disks inside an
old Televideo machine with green monochrome monitor, turning the
handle to close the door, and turning it again to open it and
insert another disk.

I learned by watching that you could type DIR, and then enter
the name of anything that appeared at the left side.

Didn't passed too much time until I saw I could execute only
the files with COM or EXE letters at the right side.

I played Digger, Jumpjoe, Columbia Invaders, Buzzard Bait,
J-Bird, Bushido, some Pacman-like games, and then I found a
game starting with a full text screen and then a tiny face
over a dotted background. It was called ROGUE.EXE.

You could move over the rooms and find things, like a ring,
armor, weapons, and monsters! Barely I could understand English
but it got me immediately because there were always things
around the corner, and more levels!

I went lazy and tried to go so deep as possible, finding the
ladders without fighting. Big mistake! A dragon appeared and
roared fire with ASCII letters, killing me immediately. I was
hooked!

Patience was the key, slowly started to gather experience
killing the small monsters, discovered how to get better
weapons and armor, avoided the rings (You could never know
the strange things these could do! Except of course when I
found the Identify scroll). Went to level 26 and retrieved
the amulet of Yendor, then started to go back to surface,
fighting for my life, avoiding monsters, and finally I was
out! I was ecstatic, and I was age 11.

It was one of these epic fables that you do only one time
in the life, since then I only played some minutes a few
games of Rogue for the nostalgia, but didn't had time again
to go to level 26.


>> 30 YEARS LATER... <<

But still I had the game in my mind, and decided that I
could write a smaller version for a boot sector, just as a
challenge.

I had "clear" specifications, it had to have the ASCII
graphics and gold (this made it a very difficult task).

  Statistics of source code files over development.

                lines bytes (com file)
  rogue0.asm     252   351  Sep/20/2019 07:18pm
  rogue1.asm     358   467  Sep/21/2019 10:00pm
  rogue2.asm     548   829  Sep/22/2019 05:54pm
  rogue3.asm     502   759  Sep/23/2019 05:22pm
  rogue4.asm     468   670  Sep/23/2019 07:03pm
  rogue5.asm     460   652  Sep/23/2019 09:43pm
  rogue6.asm     460   643  Sep/23/2019 10:16pm
  rogue7.asm     457   630  Sep/24/2019 07:08pm                    
  rogue8.asm     435   602  Sep/24/2019 07:48pm
  rogue9.asm     436   596  Sep/24/2019 09:44pm
  rogue10.asm    441   576  Sep/25/2019 01:35pm
  rogue11.asm    480   553  Sep/25/2019 10:24pm
  rogue12.asm    472   510  Sep/26/2019 12:24pm

I went into a coding spree and I had coded the whole game
in 3 days. But of course it was too big (rogue2.asm).

Then I had to optimize carefully the code and remove the
features that wouldn't fit even with all my effort, so there
went the roguelike monsters names (the easiest monster is A
for Aardvark, till the more difficult Z for Zombie Master,
feel free to invent more names).

At same time preserved the ASCII graphics for rooms and items,
but couldn't put inside scrolls or potions.

In the last iteration I removed the exp(erience) code because
it really didn't affect the gameplay and managed to get under
510 bytes.

I've put all the revisions inside the backup directory so you
can watch the process of optimization. I preferred to optimize
rather than remove features if possible.

And no, it isn't too easy to go to level 26 and get the Amulet
of Yendor.


>> ATTENTION <<        

Would you like to learn 8086/8088 programming? Then you
must get my new book Programming Boot Sector Games including
a 8086/8088/V20 crash course!

Now available from Lulu:

  Soft-cover
    http://www.lulu.com/shop/oscar-toledo-gutierrez/programming-boot-sector-games/paperback/product-24188564.html

  Hard-cover
    http://www.lulu.com/shop/oscar-toledo-gutierrez/programming-boot-sector-games/hardcover/product-24188530.html

  eBook
    https://nanochess.org/store.html

These are some of the example programs documented profusely
in the book:

  * Guess the number.
  * Tic-Tac-Toe game.
  * Text graphics.
  * Mandelbrot set.
  * F-Bird game.
  * Invaders game.
  * Pillman game.
  * Toledo Atomchess.
  * bootBASIC language.

After the success of my first book, if you need even
More Boot Sector Games then you must get this book!

  Soft-cover  http://www.lulu.com/shop/oscar-toledo-gutierrez/more-boot-sector-games/paperback/product-24462035.html

  Hard-cover  http://www.lulu.com/shop/oscar-toledo-gutierrez/more-boot-sector-games/hardcover/product-24462029.html

  * Follow the Lights
  * bootRogue
  * bricks
  * cubicDoom
  * bootOS