Engagement Window - A bullet hell where the window resizes as you fight

You cannot see outside your barrier.
Yet you are impervious to all strikes from outside it.
You pilot the only remaining prototype.
Prove the technology works.
Your orders: Find and destroy the other existing prototype before it falls into enemy hands.
The only things you need to know are your orders…
…and what lies within your Engagement Window.


Engagement Window is a bullet hell shmup inspired by my love of early 2000’s doujin shmups, and honestly a ton inspired by Zeroranger.

You play as a mecha pilot, piloting the only remaining prototype for the Engagement Window system - a barrier that keeps the pilot completely safe from everything outside it, while also preventing them from seeing anything outside, as well.

ew_screenshot_01

The most important part of any shmup - the chuuni-ass boss approach screen.

This is, of course, represented as the game window itself.

As you play, the window dynamically resizes at your Operator’s command, forcing the player to approach the space differently whenever the screen resizes. I’m also doing some neat meta stuff on top of that, like your Operator’s dialogue box being a completely separate window from the actual game!

(I’ll change this to an embed… when i… learn how to do that…)

ew_screenshot_1

I have made a game functionally impossible to properly screenshot.

I’m still in the process of trying to… figure this game out as I make it. Right now, it’s feeling mechanically underbaked. I definitely need a secondary shot type bare minumum.

I think that my current prototype proves that the game’s core concept has legs, but now I just need to find more than the legs. I’d like a torso, at the very least. I don’t wanna be like that one wallace and gromit cartoon with the penguin. you know the one? that one.

uhhh yeah. this is incredibly cinematic. the tweening and effects coming from window edges is really slick. (i think for future ref. you can just drag most vid files into the post editor and it uploads to the site storage… im not sure about embedding from external places)

yeah, including the narrative elements in this system is what really sells the ‘style’ for me here. i’ve seen a couple games that make use of multiple windows but as essentially different views that all look into the same scene. but this is all tied together into this HUD-like feeling. to me the ideal fun would be to spawn up as many windows as possible in that sense, every UI element even flavor ones lol - what sorta limitations do you have when you spread a single app into multiple like that? do they need ways to “communicate” or is it all top-down fed from somewhere?

Oh neat okay! I just wanted to host it offsite for the sake of saving space.

So these actually have the same answer! Previously, the solution I had to this was opening two separate game instances, and the only way to communcate between them was using gamemaker’s debug output to write to a debug file the other game could read. I would then read it, check if the debug message was in a specific format, then parse the format as a command. This, unsurprisingly, sucked! And was bad.

But a GML extension called Window’s Windows came out last week and forced me to rewrite the whole thing. This is, in my eyes, some insane dark magic. It’s all one game instance now. They’re sharing variables, communicating between each other without any tricks, just because it’s all one game. I can do window transparency, moving windows, as many windows as I want - it’s EXTREMELY freeing, and really opened up the options for what this game can do.

right now storage space isn’t a huge huge issue, unless someone is purposefully misusing it. I think there’s a ~20mb upload limit though. I also checked things out and was able to whitelist the domain you’re hosting the video from - so if you just paste the link to the mp4 directly (instead of with .md syntax) it should embed in an iframe now :>

You’re a modern day hero. Thank you very much~!

This is a pretty neat idea. Did you have to do anything tricky to get that many bullets working? I have read that bullet hell can be difficult to program performantly.

Honestly, very few so far! Hilariously, the biggest problem is actually less of “processing all the bullets,” and more about actually spawning too many on the same frame making the game unhappy with me. I’ve done some basic stress tests, and I found I can have around 500 bullets onscreen before I notice any real performance hits, and that was before fixing a lot of performance issues caused by my awful hacky multi-window solution. And since my game is very inspired by Zeroranger, which is a lot more bullet light than say, Touhou or Dodonpachi, I don’t really need more than that!

At least so far. I’m going to eat those words one day when I have to rewrite my bullet handler code entirely! But for now, WHO HOO!!

Anyway, the biggest problem was managing bullet behavior, and making sure that the code that manages complex behavior was only running on bullets that have that behavior. That took me a while, but I do this using some scripts I wrote that I, in a fit of melodrama, call the STG System. It ended up being so lightweight and easy to work with, I’m currently using it for enemy behavior, boss behavior, bullet patterns, enemy spawning, basically everything in the game at this point. It’s been really really nice to work with.

Again. For now. One day I will probably have to eat my words and rewrite the whole STG System a fourth time, but for now, WHOO HOO!

don’t really have anything to say besides this looks really neat. i’m a huge fan of anything which breaks the boundaries of what games are allowed to play with

I have objectively better things I should be doing with my time. Quite a lot of them. The prototype level isn’t done, there’s no pause function or start screen. The game also isn’t that fun right now and needs major mechanical reworks to be really even vaguely playable. All of this is dire.

so instead I rewrote my entire UI rendering code to render the UI as separate windows because @twky suggested it and the idea lived in my head completely rent-free for a full week afterwards.

It doesn’t look great but this is more of a proof of concept than anything and honestly the fact that I got it working at all is the greatest accomplishment of my life.

urgh alright i’ll work on things that are actually important now fiiiiine

hooray ive done an impact 0v0

i like it! I think if there’s one thing ive learned from the community or fans of schmups its that leaning heavily into complex eccentricities is pretty much how to stand out when the gameplay formula is so solidly defined for the genre. im really not an expert but the ones i see that kind of shine to me are really just built around the most archaic and self-indulgent systems