New Boss!Last Friday I started work on a new boss fight. One week later it's actually nearly complete - though currently missing the intro cutscene and various bits of visual polish. I'm pretty happy with that. This fight is intended to be the second one in the game.
I'm not showing anything other than the first boss for now. The boss fights feel like something that should be kept fresh. So instead, here's an example of the game's first boss that was previously shown in this devlog:
My previous plan was that the 1st and 3rd bosses would be variations on tanks such as this one, while the 2nd and 4th bosses would be somewhat different. I've made a rare decision to cut back / simplify things for the sake of time, and make all of the bosses variations of tanks. This allows me to re-use way more of the structure of the fight and makes bosses way quicker to add - that's why I've been able to make the majority of the latest boss in around a week! Rest assured I'm still making the effort to add variety to the fights to avoid them feeling like rehashes.
I said I won't show other bosses for now, but below is a sneak peek of a new projectile made for the latest boss.
Multiple Collision bodies per entityPreviously I
went into some detail about how the collision works in the game (I know I still need to properly finish that series of posts off
). As explained in that post each entity had a single rectangular collision body that was used both for collision detection against solid collision such as walls and floors, and also for collision detection with other entities.
I did a bit of refactoring to split this single collision body into two! Entities can now choose to define separate collision bodies for moving and for colliding with other entities.
Shown here, these poison projectiles have their Movement body drawn as an orange rectangle - this behaves the same as before and allows them to collide with the floor. This rectangle is quite large and made it very easy for the projectile to collide with Leilani. Collisions felt unfair as it was very sensitive.
The projectile now has a new Collision body - drawn as a purple rectangle. Leilani will only be hurt by this collision body and not the orange one.
This seems like a pretty obvious feature and I'm surprised I haven't really needed it until now!
True WidescreenFinally, I began work on a nice improvement to the game's presentation - I've increased the resolution from 400x240 to 424x240! The game has been through various resolutions over its lifetime and I truly hope this is the last one.
I chose 400x240 because at the time I had a vague idea of "imagine if you could play this on a 3DS". That idea is pretty irrelevant these days. You can see in
this old image that when the game was scaled up to 1920x1080 it would have big borders down the sides.
I was inspired by my excitement at playing Mario Sunshine in 16:9 widescreen (and my disappointment in Mario 64 not getting the same treatment) to finally target a 16:9 aspect ratio for Leilani, too. It'll be nice for the majority of players who have 16:9 monitors to see the game fill their whole screen.
Here's a comparison of the old (top) and new (bottom) sizes:
The screen used to be 25 tiles wide and is now 26.5 - an extra 0.75 tiles on either side of the screen. Some areas will handle this just fine; otherwise will need to be manually tweaked to adjust the camera boundaries and maybe add new scenery where appropriate. In the area shown above I adjusted the camera to show more on the left hand side to balance the composition of the area out a bit.
I'll slowly chip away at these various adjustments to level layouts (and also to UI, which mostly works fine but has a couple of issues) when I feel like it.
Finally here are screenshots of how the game looks in the various display modes on a 1080p screen. Click the images for full size! I may have shown these modes off before but it's worth reviewing them with the new screen size.
Fit to Screen (default)This mode fills the screen as much as possible without distorting the aspect ratio.
Well, that's the idea anyway! I've actually done a sneaky thing allowed it to distort the aspect ratio by very small amounts if it allows the image to fill the whole screen. The game's output at 424x240 can be scaled up by 4.5x to a size of 1908x1080. This would leave 6-pixel-wide borders on either side of the screen, so I decided to allow it to stretch the image the remaining 12 pixels, less than a 1% difference in width but pleasingly fills the screen.
Pixel PerfectThis mode scales the image up to the biggest integer size that will fit on the screen. On a 1080p screen that's 4x. The rest of the screen can optionally be filled in with a lovely border. The border can be selected manually, or can automatically be chosen to match the current level's theme
Flat CRTA classic scanline filter. This also has the same scale adjustment as the Fit to Screen mode to allow the image to fill the entire screen.
Curved CRTMy favourite mode
Thanks for reading