Log In  


Cart #blorb-1 | 2024-10-01 | Code ▽ | Embed ▽ | No License
13

BLORB LIKES CANS. GET CANS!

  • DPAD / Cursors to Move
  • Hold X to Grab / Retract
  • Retract all the way back to the portal to collect a can.
  • You only get 1 life ~ CTRL-R to restart if you crash (or open the menu with ENTER).
  • There is no sound in space (I mean .. there is no space for sound)

Good luck!

This is a game made in 1024 bytes for PICO-1k Jam 2024, co-designed and pixelled by @castpixel (twitter). It is our third production as POD Design; you can find the first two here and here. BLORB is also up on itch and has a PICO-1K entry page. Thanks as always to @Liquidream for running this great jam, and @thisismypassword for the invaluable Shrinko8!

blorb.p8.rom as a hexdump because it looks good:

0070786105BB0400679E73C731C1D945707074C8D9497742141C1A2597DCDEBC
45D01C52BC46707CF302C5EDC50B14D715E715A7B69670383682B208CEBB64EE
AAE2F866B4BC29BD6AA31C8B8E7F868DABCE9AE89AE4C0F2BE2C4BDBF2B4666E
69B019386FC425F179A9CB8EEB268220BFEDBA859D8DE4B8A88CA28DBABC3090
0A30FEB599D6F969A35134138503D181DA02D72D8F6503D3DDDA92179AB16CA2
EA5E41A5247C878D577880DD7E6EE78047588DAA3AF0A14A48B8FB0ED5FEE45E
B7679438AAA3A99DB5B5E8869D51F324499034F50171A521B0B7B03532353072
433C953D435C365DB6B1536D36FDEEC246323B508665D8471375BCBBDCF6ABE3
AB7B615FE7775655DC36CD76DA56ABAB6353132B9B03537511E52E595A991D6A
E7E35051602508BA7AEA01B215B980602AEB3D3DE6798C9613531341D0DD3A96
0FA4F909B5C1F388A3491079D501C5875027E73DFC15AFBF168C67ED1D497084
03DAE484E2615F7FA04A0FEBBAA70E74C2EA7A6DF95DAB76E50DAF6A1F310B26
EBC601D3EB4DFC364F1DBEE1238E545B5530EAB93258AF82377BC0E5ADE8A9CB
E01CEDA0174A373D91BD5138B5E699951BC3AFA0B8BF485FAD0D6E8BE3627820
085E69AE6EEF1C4E9B6065E2E82B0EF5E4CE5CD7A7DB4DD00C948FB1B138927B
6265280D16EB3A8FBA3A5C1A8BE381D1EED13C35355CD7611C44B393CDF31606
18F2D405E1B379E28289EC213AAD813C0E8766E50D740792A581F2020994AACB
5407868A8DD5AE09A6363265C431175D7F40163CEFD619A744F78C0DDC14ECDC
D31EA528719A5CCB55575D75DA758D74437EC085D75E1645656F8385FAB8CB4E
DD5C896F947C5C9958BA343B315F884D70C62DE585136755EB971D51574A14BA
56FD52385296A76C65CFB3725771E3EA9242DCD48E9A43B038D48DA9508EBE4D
F938D58D071FBC939F3193094708BE0C2C07D97615EF88D814D76AEDD8616E29
5EEA06EBB11336A3A9209209D91C789DF524985F0E8281300876F2D6056D2310
FE2C18402164A091A5EA956866E281F0C67847E3A02DE34387D75DEFECD46E6E
627523D82BD774A9AA8963B3C4340B61335FCEB9DE8D56C096AD7A990D476B05
099FED7451311E6A636C647B4349B62550944F4517A49BDDCED68C11FA68A128
DACBC6F270A290CF52321061288ABC7FACE92B92224E8502EAC952ADC41BCE88
9A215116EF46CD905FD65548723D0D9D8E81E1313D820B3686E2D8D58A2D5D37
32578C0E559BF3C1DCFCC6EAD071D979238F55314C502EC52074B6546EECEECA
9544D18D1B6973C85CAA50309D85FA666639C45E91FDBFC1F08062573D657050
7DC05359A48620187246718360C08E07469A7CCD917ED540504CCD9BC9BC974C
A08320494485866C612FEC5490ED960C5791F689CEC05E61925E49204EB4A722

There are comments in the source code of blorb-1 (use the "Code" pulldown under the cart player above). For the minified 1024 byte version: > LOAD BLORB-0

Technical Notes

As usual, to get this to fit in 1k some entertaining hackery and ugly code was required:

  • A single loop is used to draw the nebula, stars and to decode the gfx from a string. The nebula lines are sometimes drawn over stars, making them twinkle -- a happy accident.

  • One more loop is used to draw both the spacejunk and the chain segments. So the chain can never be longer than the maximum number of rocks / aliens.

  • The eye of each alien is just the last drawn foot duplicated 10 pixels higher.

  • A pixel under the player is sampled for colissions (colours 8~15). There are no "Objects" -- aliens only exist as drawn pixels.

  • The same pixel is also tested when adding a new chain segment. If it is already the colour of the chain (4), the add() is skipped. So the shape of the segment character determines how frequently segments are added, and the retraction speed.

  • The graphics are stored as a 320 character string, where each byte encodes 2 bytes in the spritesheet; bits 0xff are split into bits 0x3333. 44 is added to each encoded byte to get it to compress better. Less escape codes like \0 are needed in the string, and +44 happens to give a distribution of values that compress better with the surrounding code. Mistakes in the decoder produced many beautifully grotesque results like this one:

  • The portal radius (pr) has many meanings: it is used for the chain colour so that it fades out as the portal opens and closes, and is used to determine the state of the game (large == playing, 0 == finished level, 0.1 == died). The player sprite colours are also set to the portal radius when colliding, so that it looks like it is getting sucked in and then eventually becomes hidden. Some alternative portals with varying byte costs:

13


1

Wow, an impressive entry followed-up by an equally impressive write-up.
It's still a form of sourcery, but at least we all now know the ingredients
(...sort of! 😅)

You are most welcome @zep - always a pleasure, nay honour to have you submit such coding treats to a Jam I'm running ❤️


It's unfortunate that the camera doesn't follow the player when they move all the way to the far right or left.



[Please log in to post a comment]