Category: Newest🆕

2020 till now

  • 1997 Last DOS Games 🚁

    1997 Last DOS Games 🚁

    ⏱️Overview

    Here I will gather 2 last games I made in DOS. Each of them also featured an editor, for creating (drawing) maps.
    Still in resolution 320×200 (256 colors) and in Turbo Pascal 7.0 with parts in Assembler. This was on PC with Pentium 120MHz. I tried 640×400 later, but it was too slow.

    🚗Car game

    📜History

    The first game I just called Porsche. Poor name, it’s a brand name, so it can’t be used. But I was a kid and had a model and a poster of such car.
    On the most bottom left screenshot there is a first, starting version of this game.
    This is what’s left. Very sadly, I have lost the final version (had no others) about 1 or 2 years after.
    But I won’t forget how we played it, in the summer of 1997 with elementary school colleague(s).

    📊Features

    Game was for 2 players only and had split screen. Cars were in center, map moved below. Similar way to my earlier 2 Planes game here.
    Maps had 3 sizes (square, in pixels): small (250 x 250), medium (450) and big (700). Due to only 640kB memory big maps didn’t start in IDE, so I could only test the game on medium.

    It was a simple, rally type driving with lots of sliding (especially in winter and autumn).

    The final game had 87 tracks in 7 sceneries: Forest, Jungle, Desert, Winter, Australia, Autumn, City (latest new: Mountain).
    About 18 of them were actually just circles, ellipses and rounded rectangles. These were real fun to play with many laps.
    I still have all our track prototypes drawn on paper. They lasted way longer than any of my PCs.

    There was an editor for creating tracks, where I would draw road:

    • straights and turns,
    • bridges or dips
    • jumps (car flew for a while without control, longer with more speed at start)

    Then place trees (also all of 9 types of vegetation at once), water, etc.

    There were also few graphic attractions like:

    • staying tire trails
    • dust behind cars (on deserts)
    • screen blur effect in autumn (with more speed), kind of like rain.

    Next, gameplay features were areas, with:

    • water
    • mud (slowing down)
    • grease (less control and random turning)
    • ice (no control)

    These were already present in my earlier game from 1996.
    Water puddles in autumn were even more slippery than the wet road.

    Then were some funny things:

    • stacks of tires – didn’t damage car, but bounced it back and sounded funny
    • blocks of hay – helping on road, or side, by slowing car down, e.g. before sharp turns
    • hedges – were along road, safe, didn’t bounce or damage car
    • sharp bushes damaging car (possible on road)
    • city tracks could have crosswalks with people (few pixels), you could smash

    Game featured sounds of course. The collision detection was quite basic (bad) but worked. The car just bounced back after hitting anything (trees and such), in the opposite direction it hit.
    We had simple damage slowing down cars. Tracks had repairing areas, car didn’t need to stop just drive over them.

    So the screenshots on left, with car in center, show actually the next version Porsche II, which was started later but never finished.

    🚁Shooter

    The second game, a top view scrolling shooter, again I poorly named Rambo II. Was meant to have similar jungle style to that movie.

    I did the basic start of game, 2 enemy planes, 3 weapons for player’s helicopter, animating water (palette), sparks on hit, and explosions.
    And the editor for map was quite good. I was drawing terrain levels, then few algorithms were adding noise, blurring few times to make it look like foliage (grassy hills). Then I could put rivers, with increasing width, starting from tiny streams. Rivers had auto added rocks on sides. On screen there are 2 types visible, clear blue and olive.
    There was also a separate tool, visible in the middle, just for putting enemy ships and picking their paths in places on the map. It was possible to move the map (in time) to show where ships will be.

    Once I showed this project in class (technical high school), I didn’t have to do anything, besides attending. It was very cool.

    ⏳Conclusions

    Since the loss (of Porsche with 87 tracks) was a result of my stupidity, I’ll gather the faults that led to it, with what I learned to do below:

    • HDD fail (the worst failing Seagate 1GB). I then even bought a second of same type (was cheaper) and it failed later too.
      Well today I’m checking for fail rates of HDDs before I buy and I don’t go just for the cheapest.
      For some time I made backups on CD/DVD/BR, some lasted more than HDDs. But now I don’t, recorders cost the same as HDDs. Eventually all HDDs fail, and I think I had maybe 2 every 5, lasting longer than I needed it. Now I have one HDD more, just for backup (of important data).
    • I made just one backup copy, on floppy disks, using a freaking self extracting RAR (binary exe). Without the 1st I can’t extract any later.
      I never used self extracting type after, and also forgot about RAR after I found out 7zip, which is also supported in DoubleCommander.
    • I have overwritten the backup, the first 8 of 23 parts. I shouldn’t ever do that. There were several ways to avoid this. Worst is that it was actually a suggestion from, well the stupidest teacher I had. The one who also said “you can overclock your CPU, no problems” and my motherboard died after. Later he even ended in jail for stealing huge money sums, also some from students.
      So yeah, as the saying goes: “never follow advice from people who you wouldn’t trade places with”.
    • I never made any copy of the source code during. It was 65kB for game and 68kB for editor.
      This is so small, that I should have copied it every day. Later I started just making archives often, from just my sources.
      And since I started with github I have repositories of my main projects there.
    • I would even loose everything from DOS (my projects in Turbo Pascal) with that stupid HDD, if I didn’t copy it all to my friend. I think it was my idea, so he could learn from it. He kept it and then I could restore it back.

    Finally, I used few concepts of this car game and many actual tracks in our 3D game (started 13 yeas later) Stunt Rally. And since Stunt Rally was really well made and its track count reached 176, I don’t miss my 1997 game so much (which took 2 or 3 weeks to make). While Stunt Rally had (over) 5 years of development, and I wouldn’t make it so only by myself.

  • 1996 Tracks game 🚘

    1996 Tracks game 🚘

    ⏱️Overview

    This was my first 2 player car driving game. Well a car being here a 6×3 pixels solid color rectangle.
    Done in that great 320×200 mode, with a static view of whole track on screen. I wrote it in Turbo Pascal 7.0 in 1996.

    It was also very successful, I played it at the time with my elementary school colleges (even few visited).

    💡Implementation

    It had very basic 1 tone PC speaker sounds. And all moving graphics were blinking badly (no V-sync). I think I didn’t know how to change palette R,G,B colors yet, so it only had default 256 palette colors. But it did feature some pixel effects like leaving tire traces and palette rotation for water animation (and teleporters).

    The later tracks were at night. A cool idea that wasn’t really that great due to that blinking. Cars had lamps (a triangle) that lit (changed colors) in front of them. One track was a total labyrinth in night and one even had a lighthouse with rotating light.

    📊Features

    It had 52 tracks, in just one scenery. But they featured plenty of attractions:

    • Car damage
      It was simply decreasing car top speed. After some damage taken, a spanner icon (for your car only) would appear in a random place. If picked it would repair damage.
    • Bridges
      Actually not easy to implement in a 2D game. I implemented them with special colors, reserved for detection and making car shift level (go dark under bridge) on bridge edges.
    • Jumps
      Those gray to white areas, making cars jump (become uncontrollable) and land after some time, depending on car speed when entering.
    • Areas with:
      • Water – Simply but nicely animating and making a splash sound when entering, slowing car.
      • Mud – Slowing cars down a lot.
      • Grease – Vigorously turning car in random directions (each frame), quite funny and with sound too.
      • Ice – Car wasn’t controllable on entering and was spinning in circle until it left ice.
    • Teleporters
      Those pink-magenta blinking pixels. There could be pairs of them on track. When entered it would instantly place car in other place. They made some pretty funny and odd looking tracks possible. E.g. the track with 6 circles, you basically didn’t know where you’ll land.
    • Moving barricades
      Closing and opening in a place on track requiring to be quick to pass or blocking road and making you wait until it opens again.
    • Rubber road borders
      In red-pink color. I think the idea was to make some places not damage your car.

    🔍Details

    Since nearly all roads had borders, that was the main difficulty to slow down or quickly steer to not hit borders and take damage. Hitting a border stopped cars immediately in place (bad but easy to implement). This required cars to be steerable even without moving and around the edge not center.
    I was detecting collisions (and areas) by reading a pixel from image. Hitting other car was possible and funny (it gained speed).

  • 1993-96 Oldest projects

    1993-96 Oldest projects

    ⏱️Overview

    Here is a collection of my oldest programs and games. Spanning from about 1993 to 1996.
    I did them in Turbo Pascal 7.0 in elementary school.
    Simple graphical demo programs and games limited by 1990s hardware.

    📜Old

    Left column has screens from the earliest programs in EGA 640×350, 16 colors.
    They had also only PC speaker sounds. Except music score? player (with editor) which I made later.
    Like most of my early drawing on screen, everything was blinking awfully, not having V-Sync.

    The Military and Sea animations (left bottom) were the biggest of my programs at the time (435 and 223 lines). But not complicated at all, only using for loops and few procedures for shortcuts.

    💡New

    Middle and right has screens from VGA 320×200, 256 colors, the favorite mode 13h. Which I learned from a new book.
    Later I also was using 10 or 22 kHz, 8bit sounds (another book). I gathered and extracted them from wherever I could (i.e. other games, programs). Some sounds I recorded on my analog microphone.

    There was a cool program for editing and playing animations on 8×8 matrix of LEDs, saving and loading them in files.

    I created my first music tracker (way before SXIV). It could only play 1 pattern and there weren’t even real notes, just all letters from alphabet changing frequency improperly. It had 4 channels with oscilloscope view and was fun.

    🕹️Games

    I made many small games at the time. Most were for 2 players on keyboard.

    • Space games (3 on top right).
      Top view, 2D, having cyclic borders, i.e. when you fly over bottom, you appear on top, same for left and right.
      Those were pretty funny games. Only Mars shooter was funnier, newer and same style.
      The fist one though was too complicated as there were only 8 directions of movement and too many weird weapons, all having own keys to use.
      The later 2 were cool and just used 4 keys to move and 2 to shoot with some ammunition buffer that slowly auto refilled.
    • Frogs game
      Front (side) view, 2D, with gravity.
      Using just integer values multiplied by 1024 for more precision (so fixed point).
      Game’s idea came from my colleague. Flies appear over time and move randomly. You control a frog, jump and stick out a short tongue to catch them, until time ends. The longer you press the higher you jump, this was bit tricky to code back then. Tongue goes fast and back slower, then has some idle time.
      The second version was already great, it had up to 2000 particles from splashes and 3 types of flies.
      Ah and those pink particles were puke ?, happening when frog got a wet fly, falling slowly after being splashed. It was a lot of fun and laughing. Even more so with dying flies having sounds from e.g. Dune 2 dying troopers or Cannon Fodder ?.
      Then I already was using assembler for double buffered drawing and V-Sync. It was nice and smooth.
    • 2 Planes
      Game featured 2D map of a big size (max. what 640kB allowed, I think 750×750). Scenery was created with simple drawing code for grass, trees, water etc.
      It had 2 views, 1 for each player. Map was moving, the plane was always in center.
      It was quite simple, had keys to turn, faster, slower and shoot. Weapon heated up so it had to cool down to again shoot faster. Planes were leaving smoke pixels with more damage.
      In the middle there was a green (rectangle) radar with fading dots where the planes are.
      Ah and lastly you could blow up few buildings on ground just for fun.

    ⏳Next

    What came next were bigger games (just more content), but in the same VGA mode. Sadly I stick to it for too long, not having either fast code (DOS4GW was out of reach) or hardware. I didn’t move to bigger resolutions until I left DOS.

  • 1992 The beginning 📜

    1992 The beginning 📜

    ⏱️Overview

    So, this is the beginning. In the beginning was the Word, and the Word had 2 bytes.

    This was my first computer, an Amstrad produced IBM compatible PC XT, PC 1640. It fits well because it had a 8086 processor, which was 16 bit, so had just 2 byte words.

    Some more pages about the PC here: 1, 2, 3.

    📜History

    It ran at 8 MHz with 640kB memory, and already featured a 20 MB hard drive (very loud), besides the 360 KB 5¼-inch floppy drive.
    I had a monochrome CRT for a while. Then got a color display with 640 x 350 pixels and 16 colors (EGA mode). Sadly the first was junk I couldn’t get rid of, since it had the power supply inside.

    I got it when I was 10 years old. After probably a year of using DOS 3.2, Norton Commander and playing very old games (were mostly just bad ports from Amiga as I see now) I wanted to create some of my own.

    ✍️Motivation

    Then luckily after hearing that, my cousin brought me Turbo Pascal 6.0, one book for it, and that’s how it started. I was tinkering with the included BGI demo a lot. It was very big, had 1425 lines of code. Which was so inconvenient to browse, when only 21 lines of code were visible at once (80×25 characters on screen). Still, this and the book examples, were my only sources for most programs at start.

    I created few graphical demos and other small programs. And at the age of 12 I have already made a game. It was very simple as I didn’t even know loops, but it worked and had 3 levels. Shortly after I made many more. This is covered in the next post.

    📷Pictures

    Here is the picture of my first keyboard. It didn’t yet have the extra part with arrows. Which basically duplicates numpad keys (with NumLock off). I got used to it and I prefer that. You have more keys in 1 place, so less moving around, and can have 4 fingers on all arrows. This explains why I tend to remove that part it in my new keyboards.

    Next, a picture with my first siskette (a system diskette💾 for short).