FullScreenShenanigans / EightBittr

Bare-bones, highly modular game engine for 2D 8-bit games.
MIT License
78 stars 10 forks source link

🚀 Feature: Have initial height of game container be based on game's initial size #298

Open JoshuaKGoldberg opened 2 years ago

JoshuaKGoldberg commented 2 years ago

Bug Report Checklist

Expected

Right now index.css hardcodes the game section's height:

https://github.com/FullScreenShenanigans/EightBittr/blob/88eb8ace3eb2ff06e50679effa5f987d4e340f98/packages/shenanigans-manager/setup/web/lib/index.css#L56

But, that's generally not correct. Games measure the browser window and determine their pixel height dynamically. The hardcoded incorrect section height means the page has a big layout shift as soon as the game loads.

Instead, that size should be dynamic based on the game's preference. This is probably going to have to be a setting in shenanigans properties: a fixed height, or a flex to be as big as possible in the screen. For as-big-as-possible ones I imagine I'll have to make a flex container surrounding the header, game, and options menus.

Additional Info

ChooseYourFramework has a manual replacement in dist/index.css to resolve this, which I really don't like having to do: https://github.com/JoshuaKGoldberg/ChooseYourFramework/blob/5bd9afd74922a5319ee07f430ca8758243280870/fix-index-for-vercel.js#L53.