Allegro.cc - Online Community

Allegro.cc Forums » The Depot » [TINS 2020] FlowerFlyerTron

This thread is locked; no one can reply to it. rss feed Print
[TINS 2020] FlowerFlyerTron
Bruce Perry
Member #270
April 2000

FlowerFlyerTron

Fly your plane through the mazes, trailing your banners behind you and watering as many flowers as you can. What's your best score? There's a new banner for each level - how many of them can you get to?

Implemented in Rust, which I thoroughly enjoyed learning how to do. Special thanks to SiegeLord for the Allegro bindings.

Made as if for a very old computer. Most of the display updates progress one tile at a time. A smaller entry than usual from me since we have a daughter now. There's no sound and no readme!

If anyone needs help compiling it or otherwise, post here, or ask on IRC if I'm there.

Controls

  • Use the arrow keys to control the plane.

  • Press Enter or Space to proceed whenever you finish a maze or crash.

  • To exit the game, just close the window. There is no key implemented for this.

Implementation of rules

The flowers in the game are evident. I hope the banner trailed by the plane counts as a text scroller. Fun is made of old-fashioned things through the old-computer format, some of the banner text praising its modernity, the use of contemporary styles of showmanship, and even the fashion in which the game is named. The mazes are procedurally generated before your eyes, but not only that, the tile images (including letters and numbers) are all specified using binary numbers in the code (which admittedly would have been much more impressive if, like in my BBC BASIC days, binary literals weren't a thing).

Links

Progress log
Download (including Windows binary)

Screenshots

{"name":"612452","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/d\/6\/d6c753afbf2ee9bd3540a3f80ca6a6fa.png","w":656,"h":518,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/d\/6\/d6c753afbf2ee9bd3540a3f80ca6a6fa"}612452

{"name":"612449","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/4\/a\/4a48e7705bd3d128c18ad7d4b501e2df.png","w":656,"h":518,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/4\/a\/4a48e7705bd3d128c18ad7d4b501e2df"}612449

{"name":"612451","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/0\/9\/095cdf41020fd6f207a54c9a161402df.png","w":656,"h":518,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/0\/9\/095cdf41020fd6f207a54c9a161402df"}612451

--
Bruce "entheh" Perry [ Web site | DUMB | Set Up Us The Bomb !!! | Balls ]
Programming should be fun. That's why I hate C and C++.
The brxybrytl has you.

GullRaDriel
Member #3,861
September 2003
avatar

Well done Bruce !

"Code is like shit - it only smells if it is not yours"
Allegro Wiki, full of examples and articles !!

SiegeLord
Member #7,827
October 2006
avatar

Nice! I could almost hear the old hard drive seeking sounds as the maze was being generated. It reminded me of a game I completely forgot the name of, where you shoot a snake type of thing.

Anyway, it's pretty challenging! I didn't get very far, but I enjoyed the levels I tried. It really punishes you if you get greedy and try to enter some nook without a way to escape!

"For in much wisdom is much grief: and he that increases knowledge increases sorrow."-Ecclesiastes 1:18
[SiegeLord's Abode][Codes]:[DAllegro5]:[RustAllegro]

Bruce Perry
Member #270
April 2000

Hard drive? What's that? :) We started with floppy disks, and even that was an optional add-on. If you didn't take that, you had cassette tapes. Now, even that computer (BBC Model B) was capable of more than whatever system this game is modelled on (nothing specific).

Thank you for the feedback :)

--
Bruce "entheh" Perry [ Web site | DUMB | Set Up Us The Bomb !!! | Balls ]
Programming should be fun. That's why I hate C and C++.
The brxybrytl has you.

Elias
Member #358
May 2000

Very impressive, especially considering you could only spend some of the time on it and also wrote it in a new programming language. I loved all the old-style effects like the tile update delays and the flood-fill(?) map reveal.

The game was surprisingly hard - I always crashed myself into a wall at first so couldn't beat level 1. Finally learned to avoid keyboard auto-repeat and limit myself to small one-step movements and made it to level 4 before running into impossible small closed chambers. Was about to give up when I realized that I could sometimes run twice before the snake moves. So I had to revert my initial trick and go back to auto-repeat, having to master the fast movement after all. That got me to level 9 or 10 doing some impossible between-the-update jumps :)

--
"Either help out or stop whining" - Evert

amarillion
Member #940
January 2001
avatar

It should be possible to port this game to a ZX Spectrum. It has exactly the same palette. Except the resolution is off - ZX Spectrum is 256x192, so 32x24 characters.

I still remember drawing sprites on an 8x8 grid, and manually translating the binary to decimal, in order to POKE them into the user-defined graphic memory.

LennyLen
Member #5,313
December 2004
avatar

I still remember drawing sprites on an 8x8 grid, and manually translating the binary to decimal, in order to POKE them into the user-defined graphic memory.

I used to do a similar thing with the Atari 800, except I'd POKE the values to override the text character set. Then custom graphics could be PRINTed.

amarillion
Member #940
January 2001
avatar

The ZX Spectrum had 21 special characters reserved for this purpose. They were somewhere in the upper 127 characters of the extended ASCII table, you could access them on the keyboard with GRAPH + letter from A to U.

Entheh, how many 8x8 sprites did you create for FlowerFlyerTron?

Bruce Perry
Member #270
April 2000

Elias said:

running into impossible small closed chambers

Were you under the impression you are obliged to water all the flowers? If so, I like the fact that you got to level 9 or 10 by 'glitching' :) I'm having difficulty imagining how that's humanly possible; any chance of a video?

drawing sprites on an 8x8 grid, and manually translating the binary to decimal

I did the same, because the BBC computer used the same concept for text display in graphics modes (where a 'graphics mode' is everything except Teletext).

In the case of the BBC computer, this was largely an OS ROM construct. The screen memory itself supported any pixel being any colour, so the codes I constructed were fed to the OS ROM for rasterisation into screen memory on demand. The screen memory had a layout which also went 'character' by 'character', except that a 'character' was narrower in modes with more colours, so the OS had to convert. You'd notice that rasterising a character in text mode (aligned with the hardware 'character' grid) was fast and doing it in graphics mode (any position) was slow.

My game is modelled on character rasterisation in hardware, with the game only in control of the choice of icon and colour per 8x8 cell. I can't work out from what you wrote whether the ZX Spectrum was like that or whether it was more like the BBC computer.

Entheh, how many 8x8 sprites did you create for FlowerFlyerTron?

I think I made 48 (including 26 letters and 10 digits). There is a 'num_icons' variable in icons.rs which I think is exact, although for the code to work, it didn't matter if it was greater than the actual number created.

--
Bruce "entheh" Perry [ Web site | DUMB | Set Up Us The Bomb !!! | Balls ]
Programming should be fun. That's why I hate C and C++.
The brxybrytl has you.

Go to: