Jump to content
IGNORED

New Years Beach Party Garbage Pick Up


Kiwi

Recommended Posts

Ok, I've improvised making a game today, yesterday and the day before. It's basically New Years Day, and you have to clean up the beach. If you're slow, then you're fired. Each group of garbage you complete, every second on the clock will be awarded 1 points per seconds, then the next round start 1 second less. Maximum points you can get is 250.

 

Saw an arcade video of Timber on the Retro Game Facebook page. I really want a boss that smoke during the game. And Goro smokes in Mappy, so that reinforce that idea. So yea, don't give him anything in this game. It's not funny.

 

The fire 1 button picks up the item. Fire 2 button drops the item. If you're not near the garbage box, the item get drop on the ground instead. It can be pick up again until it is tossed into the bin. I would do 1 button pickup and drop like Harvest moon, but I'll worry about that later.

 

There's 3 different endings. No Easter Egg.

 

And the item you're holding can be displayed on the top left corner. I wanted the item on top of the player, but that requires me +2 the entire sprite array. Player 1 sprite is sprite number 0 and 1. The rest are lower priority with flickering for those without the awesome F18A(I don't have one.).

 

The item flickering routine if you're curious is

 

 

 

void DisplayObjects(void){

 

if (flickerframe==0){

sprites[2].y = objecty[0];

sprites[2].x = objectx[0];

sprites[2].colour = objectc1[0];

sprites[2].pattern = objectp[0];

sprites[3].y = objecty[1];

sprites[3].x = objectx[1];

sprites[3].colour = objectc1[1];

sprites[3].pattern = objectp[1];

sprites[4].y = objecty[2];

sprites[4].x = objectx[2];

sprites[4].colour = objectc1[2];

sprites[4].pattern = objectp[2];

sprites[5].y = objecty[3];

sprites[5].x = objectx[3];

sprites[5].colour = objectc1[3];

sprites[5].pattern = objectp[3];

sprites[6].y = objecty[4];

sprites[6].x = objectx[4];

sprites[6].colour = objectc1[4];

sprites[6].pattern = objectp[4];

sprites[7].y = objecty[5];

sprites[7].x = objectx[5];

sprites[7].colour = objectc1[5];

sprites[7].pattern = objectp[5];

sprites[8].y = objecty[6];

sprites[8].x = objectx[6];

sprites[8].colour = objectc1[6];

sprites[8].pattern = objectp[6];

sprites[9].y = objecty[7];

sprites[9].x = objectx[7];

sprites[9].colour = objectc1[7];

sprites[9].pattern = objectp[7];

 

sprites[10].y = objecty[0];

sprites[10].x = objectx[0];

sprites[10].colour = objectc2[0];

sprites[10].pattern = objectp[0]+4;

sprites[11].y = objecty[1];

sprites[11].x = objectx[1];

sprites[11].colour = objectc2[1];

sprites[11].pattern = objectp[1]+4;

sprites[12].y = objecty[2];

sprites[12].x = objectx[2];

sprites[12].colour = objectc2[2];

sprites[12].pattern = objectp[2]+4;

sprites[13].y = objecty[3];

sprites[13].x = objectx[3];

sprites[13].colour = objectc2[3];

sprites[13].pattern = objectp[3]+4;

sprites[14].y = objecty[4];

sprites[14].x = objectx[4];

sprites[14].colour = objectc2[4];

sprites[14].pattern = objectp[4]+4;

sprites[15].y = objecty[5];

sprites[15].x = objectx[5];

sprites[15].colour = objectc2[5];

sprites[15].pattern = objectp[5]+4;

sprites[16].y = objecty[6];

sprites[16].x = objectx[6];

sprites[16].colour = objectc2[6];

sprites[16].pattern = objectp[6]+4;

sprites[17].y = objecty[7];

sprites[17].x = objectx[7];

sprites[17].colour = objectc2[7];

sprites[17].pattern = objectp[7]+4;}

 

 

if (flickerframe==1){

sprites[4].y = objecty[0];

sprites[4].x = objectx[0];

sprites[4].colour = objectc1[0];

sprites[4].pattern = objectp[0];

sprites[5].y = objecty[1];

sprites[5].x = objectx[1];

sprites[5].colour = objectc1[1];

sprites[5].pattern = objectp[1];

sprites[6].y = objecty[2];

sprites[6].x = objectx[2];

sprites[6].colour = objectc1[2];

sprites[6].pattern = objectp[2];

sprites[7].y = objecty[3];

sprites[7].x = objectx[3];

sprites[7].colour = objectc1[3];

sprites[7].pattern = objectp[3];

sprites[8].y = objecty[4];

sprites[8].x = objectx[4];

sprites[8].colour = objectc1[4];

sprites[8].pattern = objectp[4];

sprites[9].y = objecty[5];

sprites[9].x = objectx[5];

sprites[9].colour = objectc1[5];

sprites[9].pattern = objectp[5];

sprites[2].y = objecty[6];

sprites[2].x = objectx[6];

sprites[2].colour = objectc1[6];

sprites[2].pattern = objectp[6];

sprites[3].y = objecty[7];

sprites[3].x = objectx[7];

sprites[3].colour = objectc1[7];

sprites[3].pattern = objectp[7];

 

sprites[12].y = objecty[0];

sprites[12].x = objectx[0];

sprites[12].colour = objectc2[0];

sprites[12].pattern = objectp[0]+4;

sprites[13].y = objecty[1];

sprites[13].x = objectx[1];

sprites[13].colour = objectc2[1];

sprites[13].pattern = objectp[1]+4;

sprites[14].y = objecty[2];

sprites[14].x = objectx[2];

sprites[14].colour = objectc2[2];

sprites[14].pattern = objectp[2]+4;

sprites[15].y = objecty[3];

sprites[15].x = objectx[3];

sprites[15].colour = objectc2[3];

sprites[15].pattern = objectp[3]+4;

sprites[16].y = objecty[4];

sprites[16].x = objectx[4];

sprites[16].colour = objectc2[4];

sprites[16].pattern = objectp[4]+4;

sprites[17].y = objecty[5];

sprites[17].x = objectx[5];

sprites[17].colour = objectc2[5];

sprites[17].pattern = objectp[5]+4;

sprites[10].y = objecty[6];

sprites[10].x = objectx[6];

sprites[10].colour = objectc2[6];

sprites[10].pattern = objectp[6]+4;

sprites[11].y = objecty[7];

sprites[11].x = objectx[7];

sprites[11].colour = objectc2[7];

sprites[11].pattern = objectp[7]+4;}

 

if (flickerframe==2){

sprites[6].y = objecty[0];

sprites[6].x = objectx[0];

sprites[6].colour = objectc1[0];

sprites[6].pattern = objectp[0];

sprites[7].y = objecty[1];

sprites[7].x = objectx[1];

sprites[7].colour = objectc1[1];

sprites[7].pattern = objectp[1];

sprites[8].y = objecty[2];

sprites[8].x = objectx[2];

sprites[8].colour = objectc1[2];

sprites[8].pattern = objectp[2];

sprites[9].y = objecty[3];

sprites[9].x = objectx[3];

sprites[9].colour = objectc1[3];

sprites[9].pattern = objectp[3];

sprites[2].y = objecty[4];

sprites[2].x = objectx[4];

sprites[2].colour = objectc1[4];

sprites[2].pattern = objectp[4];

sprites[3].y = objecty[5];

sprites[3].x = objectx[5];

sprites[3].colour = objectc1[5];

sprites[3].pattern = objectp[5];

sprites[4].y = objecty[6];

sprites[4].x = objectx[6];

sprites[4].colour = objectc1[6];

sprites[4].pattern = objectp[6];

sprites[5].y = objecty[7];

sprites[5].x = objectx[7];

sprites[5].colour = objectc1[7];

sprites[5].pattern = objectp[7];

 

sprites[14].y = objecty[0];

sprites[14].x = objectx[0];

sprites[14].colour = objectc2[0];

sprites[14].pattern = objectp[0]+4;

sprites[15].y = objecty[1];

sprites[15].x = objectx[1];

sprites[15].colour = objectc2[1];

sprites[15].pattern = objectp[1]+4;

sprites[16].y = objecty[2];

sprites[16].x = objectx[2];

sprites[16].colour = objectc2[2];

sprites[16].pattern = objectp[2]+4;

sprites[17].y = objecty[3];

sprites[17].x = objectx[3];

sprites[17].colour = objectc2[3];

sprites[17].pattern = objectp[3]+4;

sprites[10].y = objecty[4];

sprites[10].x = objectx[4];

sprites[10].colour = objectc2[4];

sprites[10].pattern = objectp[4]+4;

sprites[11].y = objecty[5];

sprites[11].x = objectx[5];

sprites[11].colour = objectc2[5];

sprites[11].pattern = objectp[5]+4;

sprites[12].y = objecty[6];

sprites[12].x = objectx[6];

sprites[12].colour = objectc2[6];

sprites[12].pattern = objectp[6]+4;

sprites[13].y = objecty[7];

sprites[13].x = objectx[7];

sprites[13].colour = objectc2[7];

sprites[13].pattern = objectp[7]+4;}

 

 

if (flickerframe==3){

sprites[8].y = objecty[0];

sprites[8].x = objectx[0];

sprites[8].colour = objectc1[0];

sprites[8].pattern = objectp[0];

sprites[9].y = objecty[1];

sprites[9].x = objectx[1];

sprites[9].colour = objectc1[1];

sprites[9].pattern = objectp[1];

sprites[2].y = objecty[2];

sprites[2].x = objectx[2];

sprites[2].colour = objectc1[2];

sprites[2].pattern = objectp[2];

sprites[3].y = objecty[3];

sprites[3].x = objectx[3];

sprites[3].colour = objectc1[3];

sprites[3].pattern = objectp[3];

sprites[4].y = objecty[4];

sprites[4].x = objectx[4];

sprites[4].colour = objectc1[4];

sprites[4].pattern = objectp[4];

sprites[5].y = objecty[5];

sprites[5].x = objectx[5];

sprites[5].colour = objectc1[5];

sprites[5].pattern = objectp[5];

sprites[6].y = objecty[6];

sprites[6].x = objectx[6];

sprites[6].colour = objectc1[6];

sprites[6].pattern = objectp[6];

sprites[7].y = objecty[7];

sprites[7].x = objectx[7];

sprites[7].colour = objectc1[7];

sprites[7].pattern = objectp[7];

 

sprites[16].y = objecty[0];

sprites[16].x = objectx[0];

sprites[16].colour = objectc2[0];

sprites[16].pattern = objectp[0]+4;

sprites[17].y = objecty[1];

sprites[17].x = objectx[1];

sprites[17].colour = objectc2[1];

sprites[17].pattern = objectp[1]+4;

sprites[10].y = objecty[2];

sprites[10].x = objectx[2];

sprites[10].colour = objectc2[2];

sprites[10].pattern = objectp[2]+4;

sprites[11].y = objecty[3];

sprites[11].x = objectx[3];

sprites[11].colour = objectc2[3];

sprites[11].pattern = objectp[3]+4;

sprites[12].y = objecty[4];

sprites[12].x = objectx[4];

sprites[12].colour = objectc2[4];

sprites[12].pattern = objectp[4]+4;

sprites[13].y = objecty[5];

sprites[13].x = objectx[5];

sprites[13].colour = objectc2[5];

sprites[13].pattern = objectp[5]+4;

sprites[14].y = objecty[6];

sprites[14].x = objectx[6];

sprites[14].colour = objectc2[6];

sprites[14].pattern = objectp[6]+4;

sprites[15].y = objecty[7];

sprites[15].x = objectx[7];

sprites[15].colour = objectc2[7];

sprites[15].pattern = objectp[7]+4;}

 

flickerframe++;

if (flickerframe==4){flickerframe=0;}

 

}

 

 

 

I haven't tried this game on the real Colecovision. It works in BlueMSX, so that's good enough for me.

 

Here's a ROM:BeachCleanUp.rom

 

Gifeo of the game in action

post-24767-0-13049700-1546347691.gif

 

Don't try it on the Intellivision. Trust me, it doesn't work.

 

Hope everyone had a nice New Years Eve. And hopefully you will enjoy this short little game.

Edited by Kiwi
  • Like 8
Link to comment
Share on other sites

Nice New Year's game, and thanks so much for posting it as a gift to the community!

 

Your talents are profound, and I have loved all of the .roms which you've posted over the years.

 

It is this spirit of giving which makes our Colecos just as viable (heck! even *better*) than they were back in the day due to efforts like yours to put out varied games for the system.

  • Like 1
Link to comment
Share on other sites

Updated ROM version: BeachCleanUp02.rom

 

*Fixed screen clear after returning from the game screen to the title screen.
*Increased maximum score from 250 to ???
*Single fire button pick up and drop like in Harvest Moon, you could play this with your Atari 2600 controllers now.

*Increased initial time to 40 seconds.
*Increase score requirement for ??????3*

Link to comment
Share on other sites

It is amazing how much the single fire button change enhanced game play...

 

Here are some suggestions/feature requests...

 

Indicator of what “level” (“round”?) you are on. Either text “Round 1” or a pac-man style graphic (row of icons… can round, paper round, etc… Hmm… Riffing on that… Perhaps each round could have a special item?)


Match background of text to play area (ie, white on green instead of white on black) for score/etc?
Fancy title screen
Sounds (for pick up/drop off)
Sound ( for "good job" and other boss commensts -- could be like peanuts/wii people talking “sounds”, or a digitized sound (harder to localized)
Consider different scores for different items? (may not add much play value, so just a thought, but could go with the idea of bonus round items above)
Advanced mode… Get crazy and have recycle vs trash ;-)
(ie blue bin for glass/plastic)… Items will only be accepted into the “correct” bin… (else buzzer and you need to move to other bin)
  • Like 1
Link to comment
Share on other sites

It is amazing how much the single fire button change enhanced game play...

 

Here are some suggestions/feature requests...

 

Indicator of what “level” (“round”?) you are on. Either text “Round 1” or a pac-man style graphic (row of icons… can round, paper round, etc… Hmm… Riffing on that… Perhaps each round could have a special item?)


Match background of text to play area (ie, white on green instead of white on black) for score/etc?
Fancy title screen
Sounds (for pick up/drop off)
Sound ( for "good job" and other boss commensts -- could be like peanuts/wii people talking “sounds”, or a digitized sound (harder to localized)
Consider different scores for different items? (may not add much play value, so just a thought, but could go with the idea of bonus round items above)
Advanced mode… Get crazy and have recycle vs trash ;-)
(ie blue bin for glass/plastic)… Items will only be accepted into the “correct” bin… (else buzzer and you need to move to other bin)
  • Like 1
Link to comment
Share on other sites

Round indicator (ie, "Level #x in text next to score or on level clear). and a "special" / bonus item per round, ala Pac-man, for first 10 or 12 rounds, then randomize the special item after that would enhance game play even more.

 

The "enemy" suggestion could be used in a new "Hard" game type. The "Easy" (ie, current ) game would have no enemy character...

 

Great work in this addictive and fun gem of a game!

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

I've worked on this game on and off this week.

 

This build fixes the one digit when getting 100 points.

I added a chart that explains that shows the items, wait a bit at the instruction screen, it'll change on it own.

I've added 4 new areas.

Also added 4 new items, fish bones, worn out/ beach toy tires, beach ball(yes the smoking boss man want you to throw this away.), and coin.

Using 2 sets of sprite tables in this game for the main character, non holding, and holding sprite in different VRAM bank while others are duplicated. This allows me to have 16 more sprites pattern. I have 8 unused sprite pattern left

Added sounds, but no music

Animated tiles for sea and grass

Added a recycle bin, only paper, can and bottle allowed in this bin. You're rewarded 3 points for each recyclable items you put in the bin. Others will give you the error sound and not award you points, unless...

Both recyclable and non-recyclable item can go into the red bin for 1 points.

I added fourth game over condition

Still no Oscar the grouch from Sesame Street. :(

The game's still work in progress.
Enjoy: BeachCleanUp03.rom

 

  • Like 2
Link to comment
Share on other sites

It's a great little time killer game. And thanks for sharing your code. It could improve my game.

 

 

Happy New yeat.

 

That was fun. I got 60 points then deliberately left 1 bottle on the beach cuz monkey man wouldn't help.

 

The monkey is the boss. It's not his duty to clean up the beach and getting dirty.

Link to comment
Share on other sites

  • 6 months later...
  • 5 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...