• Stars
    star
    156
  • Rank 239,589 (Top 5 %)
  • Language
    Assembly
  • License
    BSD 2-Clause "Sim...
  • Created almost 5 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A ray-casting game in 512 bytes of x86 machine code
 _____       _     _     ______ _____  ________  ___
/  __ \     | |   (_)    |  _  \  _  ||  _  |  \/  |
| /  \/_   _| |__  _  ___| | | | | | || | | | .  . |
| |   | | | | '_ \| |/ __| | | | | | || | | | |\/| |
| \__/\ |_| | |_) | | (__| |/ /\ \_/ /\ \_/ / |  | |
 \____/\__,_|_.__/|_|\___|___/  \___/  \___/\_|  |_/

CubicDoom, a ray-casting game that fits in a boot sector (510 bytes)
by Oscar Toledo G. Nov/25/2019

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

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 doom.asm -l doom.lst -o doom.img
  nasm -f bin doom.asm -Dcom_file=1 -o doom.com

Youtube video:

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

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

  https://tinyurl.com/cubicdoom


>> HOW TO PLAY <<

This is the CubicDoom, all the cubes have rebelled against
humankind! You need to stop the invasion!

Use Left Ctrl to turn to left, use Left Alt to turn to right.
Press Left Shift to advance, and Right Shift to shoot.

Destroy all cubes on the current maze to advance to the
next one. Careful! The cubes will advance towards you.

Enjoy it!


>> HISTORY <<

I've coded CubicDoom along five days. It's a ray-casting
engine over a 16x16 maze.

I always liked ray-casting engines, it was a way to get a
fast 3D-world on old machines.

I had to simplify this one greatly, for example, at least
two rays have to be calculated in order to see if a
horizontal or vertical wall has been hit, but I solved it
walking the ray very slowly.

Also a tan function would have calculated better the
distance for the wall height, but I had to go without it.

Finally, sprites for ray-casting games are handled in a
list, sorted, and projected onto screen, but there wasn't
the space. So the enemies are also walls, but moving walls
of different color.

Mature people will recognize the moving walls pattern as
the old robots game from the 80s, where the robots move
blindly towards the player. Although in the original robots
game the things on the gameplay are mines.

I've enjoyed greatly programming this game. I'm pretty
curious about how so fast would go on an old PC, but I
don't have none at the moment.


>> 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

More Repositories

1

bootOS

bootOS is a monolithic operating system in 512 bytes of x86 machine code.
Assembly
1,785
star
2

Invaders

Invaders game in 512 bytes (boot sector)
Assembly
514
star
3

bootBASIC

bootBASIC is a BASIC language in 512 bytes of x86 machine code.
Assembly
344
star
4

Pillman

Pillman boot sector game, a yellow thing eats pills and is chased by monsters.
Assembly
317
star
5

RayTracer

Ray Tracer in 483 bytes (x86 boot sector)
Assembly
236
star
6

tinyasm

Tiny assembler for 8086/8088, able to run over DOS for 8086/8088 machines.
Assembly
190
star
7

bootLogo

Logo language in 508 bytes (x86 boot sector)
Assembly
170
star
8

Toledo-Atomchess

Toledo Atomchess is the world's smallest chess program in x86 assembly code
Assembly
112
star
9

bootRogue

bootRogue, a roguelike game that fits in a boot sector (510 bytes)
Assembly
100
star
10

fbird

A boot sector game in text mode
Assembly
87
star
11

pi

Pi number calculator using 8088 assembly language
Assembly
62
star
12

bootle

Bootle (a Wordle clone in a x86 boot sector)
Assembly
55
star
13

book8088

Examples from my book Programming Boot Sector Games
Assembly
49
star
14

IntyBASIC

IntyBASIC compiler for Intellivision (CP1610 processor)
C++
35
star
15

pretty6502

A pretty printer for 6502, Z80, CP1610, TMS9900, and 8088 assembler code
C
34
star
16

CVBasic

BASIC language compiler for Colecovision, MSX, SG1000, Spectravideo SVI-318/328, Creativision, Sord M5, Memotech MTX, Tatung Einstein, Casio PV-2000, and Hanimex/Soundic Pencil II.
C
33
star
17

bricks

A game of bricks and paddle on one boot sector (510 bytes)
Assembly
27
star
18

book-Atari

Examples from my book Programming Games for Atari 2600
Assembly
26
star
19

Atomchess-6502

Toledo Atomchess for Atari VCS/2600
Assembly
25
star
20

z80rogue

A Roguelike game for MSX
Assembly
25
star
21

gasm80

Gasm80: Generic assembler for Z80/6502
C
20
star
22

Pletter

Pletter compressor, used in MSX/Colecovision games
C
19
star
23

240pTestSuite_colecovision

240p Test Suite for Colecovision/MSX/SG1000
Assembly
17
star
24

heart

x86 16-bit program drawing the heart curve equation
Assembly
15
star
25

Ttris

Ttris is a tetraminoes game for TRS-80 Model 1/3 computers.
Assembly
13
star
26

lights

Follow the Lights boot sector game in only 510 bytes of x86 machine code.
Assembly
11
star
27

Zombie-Near

Zombie Near for MSX, Colecovision, Memotech, Tatung Einstein and Spectravideo.
Assembly
10
star
28

Space-Raid

Space Raid game for Atari VCS/2600
Assembly
10
star
29

sphere

Draws a wireframe sphere in Javascript and exports it to GIF file
JavaScript
7
star
30

Space-Raid-Inty

Space Raid for Intellivision
Assembly
7
star
31

c6502

Atari VCS 6502 to IntyBASIC compiler
C
6
star
32

TMSColor

Converts a BMP image to TMS9928 bitmap/color format in assembler or CVBasic language.
C
5
star
33

IntyColor

Utility for conversion of BMP images to Intellivision screen format
C
5
star
34

ti994a

TI994A snippets (Astro Cube and Hello)
Assembly
4
star
35

psg2bas

Convert CoolCV PSG log files into IntyBASIC compilable program
C
1
star