GamesDoneQuick / gdq-break-channels

Break Screen Channels for GDQ broadcasts
Other
141 stars 45 forks source link

feat: Mega Man channel #7

Closed Suyooo closed 1 year ago

Suyooo commented 1 year ago

Description

This is a channel based off of Mega Man. Mega Man powerwalks through MM2 Wily 1, shooting at enemies spawned by donations. They'll drop pickups, with the larger versions dropping for big donations or donation trains.

MegaManChannel

One major aspect is that the donation total is not fully live: when a donation comes in, the donation total stays the same until the pickup is collected. At this point, all animations stop, and the donation total counts up to the new value - to recreate the game freezing and the energy bars getting filled, like in the original.
I'm not 100% sure whether that is okay - I limited the maximum queue length to make sure it doesn't diverge too much - but if you think that's no good, it should be an easy change.

I also took a few liberties with parallax scrolling and positioning, to make it a little more visually interesting :) I'm not much of a React user, so if there's any best practices I've missed and I could implement, please let me know.

Small update a few minutes after the original PR to change the channel number, to avoid unfortunate implications. (I picked 88 originally, as MM2 was released in 1988, but now changed it to 87, the year of MM1's release, instead.) I also updated the preview video above.

Checklist:

Suyooo commented 1 year ago

Multiple enemies can now appear at the same time, with a cooldown of slightly less than a second (any shorter, and Mega Man would start jumping over pickups...). This also means the queue can be pretty much removed - since the interval between spawns is now one instead of four seconds, that should still allow most donations to get their own enemy even without the queue.

I kept the code for it in just in case, since I don't think it's significant overhead, I just set the maximum length to one. That way, donations can be merged right away to allow the displayed total to be fairly close to the real one, even during extreme donation trains. Let me know whether it's good now or I should speed it up even more! (It would be possible to merge incoming donations into enemies already on the way, maybe?)

Suyooo commented 1 year ago

I would love to see more done with the background environment and the variety of enemies if you or someone else has the appetite for it.

I can do that - adding some enemies from all the classic MM games together should pretty much just require adding the sprites for them (maybe give them some new behaviours like bouncing or flying in a wave pattern). And stages from the other games could be added as additional backgrounds, picking a different one each time the channel is loaded. I think I could adapt the code I already have for the clouds to make it easy to add new layers to the existing background or add new ones...

I'll give it a shot in the coming days :)