AKR2 Roadmap to Version 3.0

As you may know, I rushed AKR2 v2.9 out so that it would be easy for everyone to play the game again (using Ruffle). But because I rushed it out, it doesn’t have all the features and upgrades I had planned for 3.0. Hence it’s only version 2.9. I still intend to add the things I had planned, but now I can do that at a relaxed pace over the next year or more while I also work on other projects like A Koopa’s Revenge Gold and Lambtaco Run. Anyway, here are the nonbinding plans I have for upcoming AKR2 updates.

Version 2.9.1 HD Textures, High Quality Music, Performance Improvements, and More Art

The new underwater level graphics

Textures and Music

Two of my big plans for the 3.0 version were HD textures, and music that isn’t so compressed. Internet connections are a lot faster than they were when the game came out in 2014 (or 2008 when I started making it), so there’s no reason to keep the game at a measly 12Mb any more. Plus, with the newfound ability to play the game in fullscreen, there’s a real benefit to having crisp visuals.

Performance

This may cause a small hit to the games performance (believe me, it should be small, the bottleneck on performance doesn’t seem to be related to texture size at all according to tests) but I plan to more than make up for it with more optimisations. When I started making the game, I was still quite inexperienced at programming and game dev in general. I made so many obvious mistakes, and did a lot of things the fast and easy way rather than the making-the-game-run-good way.

For instance, for many offscreen objects I set their alpha values to 0, rather than setting their visibility to false. What’s the difference? False visibility prevents something from rendering, while 0 alpha value renders a thing completely transparently. So the performance increase with a zero’d alpha value is nada since it has to draw it anyway. I already changed many of the instances of _alpha = 0; to _visible = false;, but there are more to go, and a lot of other similar fixes, and not so similar stuff like batching some collision calls. I also didn’t know how functions worked, so there’s a ton of copy-pasted code that’s basically identical. It’s a real mess in there. But I’m doing my best to get the game running more smoothly.

Art

I won’t be getting all the v3.0 art done before v2.9.1 is out, but I want to get the bulk of it done so I won’t have to do so many rendering sessions. Implementing the high res art is also going to be time consuming. I have to manually resize each tile to ⅓ its original size in Flash, so it’s going to take a while.

If you see art in v2.9.0 that isn’t up to snuff, it’s probably because I haven’t gotten around to upgrading that particular asset yet.

Version 2.9.2 Menus and Save System

That’s right. The menus and save system are second up for massive improvements.

Menus

It may not be obvious to the player, but the menu system in AKR2 is a bit of a hacky mess (the whole game is behind the scenes) which needs to be totally overhauled. I want to make a system that is both more modular, and more intuitive for the end user.

The old pause menu. Much to be improved upon. Needs more colour.

If you look at the old menu one of the first things you’ll notice (aside from the wonky text in the Ruffle version) is that it’s greyscale for some reason. I didn’t out a lot of thought into some aspects of AKR2’s design. Just getting something functional was good enough for the time. Presentation was optional. Let’s jazz it up a notch or two.

There. Much jazzier.

This is just a sloppy MS Paint mockup, but you can already see some improvements. For one thing, you can see all the possibly choices for an option at once, instead of having to cycle through them. The options will also be listed on one scrolling page with subheadings, rather than a maze of menus that forces you to go in and out of poorly defined sub categories. I’ll probably still have a few sub menus for controls and saving, but they’ll only ever go one layer deeper.

Options that are only available on the map will be greyed out instead of just not being there. The description will explain why they’re not accessible while in a level. You wouldn’t believe the number of people who ask me why they can’t find things, like the save feature, on the pause menu.

The main menu will see a similar overhaul. In case you were wondering.

Save System

The current save menu.

So, the save system the game has now works, most of the time. But I want something more modular. The big colourful rectangles are one of the few menu items I put any effort into the presentation of, so they’ll likely stay pretty much the same. But behind the scenes I want to really change things.

Mostly the save import/export system that uses raw text. I want to keep the text aspect because it makes save codes very easy to back up and share, but Ruffle not supporting the clipboard made me realise how cumbersome the old codes are. I stored a lot of info as binary 0s and 1s, but I could easily convert it to hexadecimal, turning 100111000010 into just 9c2. This would make typing the codes in manually, not completely impractical. But hopefully by the time AKR2 v2.9.2 rolls around, Ruffle will have full clipboard support and no one will have to do that. I should also mention the save import system will be backward compatible, so you can paste your old long code into v2.9.2 and it will still work.

While I’m doing all this, I’ll also be laying some groundwork for future features, like language options and Challenge Mode. The update will also include more graphics updates, to make it more enticing to the casual player.

Version 2.9.3 Challenge Mode and Speedrun Accommodations

Using the new menu system implemented in the previous update, version 2.9.3 will introduce Challenge Mode, which will include speedrunning features.

Challenge Mode

What is Challenge Mode? It’s an alternate version of the main game where you can enforce certain limitations on yourself, and add optional extras like a timer. You’ll be able to mix and match these options, though not every combination will lead to a completable run. So use them at your own risk. Some challenge option include but are not limited to:

  • Pacifist mode
  • Deadly coins
  • Disable shortcuts
  • No powerups
  • No checkpoints
  • Silver coins don’t count as collected after holding them for ten seconds in a level you’ve already beaten (I need a catchier name for this one)
  • One hit kills (the player)
  • Constant water physics

I haven’t decided if the game will let you save your progress in challenge runs. I have mixed feelings about that, even if the new save system makes it easier. But we’ll cross that bridge when we get to it. I also might lock challenge mode unless the game detects a save file that has beaten level 5-3, essentially having beaten the game at least once. It would be easy for someone to just import a save file to access challenge mode without actually beating anything. This would purely be a measure to prevent new players from stumbling into a giant menu full of confusing options.

The different settings should all appear in a menu like the one for the pause screen seen above. Only this menu will be much bigger, and include things like which powerups you start with and whether you want to use a speedrun timer.

Speedrun Timer

A big part of challenge mode will be speedruns. I’m going to reuse the timer from Boss Rush and apply it to the whole game, or an individual level. On whole game runs, you will be able to decide what stops the timer. Beating the final boss, beating the true final boss, reaching 107% completion, etc.

Boss Rush, with timer.

The timer is based on the number of frames that have elapsed rather than real time. This is for three reasons.

  1. Flash games don’t run at a consistent framerate. Flash was never designed to. At least not for AS2 programmed games. Even if it averages about 30fps, the framerate oscillates and fidgets all over the place.
  2. Lag. Why should a runner with a less powerful computer (or just a setup that doesn’t work well with AKR2) be burdened with the handicap of worse times. I think most PC games should do this. Framerates and load times are never as consistent as they are on consoles.
  3. Ruffle runs at a consistently higher framerate than Flash based players. At least for me. In Ruffle, I average well over the game’s assigned 30fps, but in the NG Player it’s consistently about 29 point something.

Speedrun Accommodations

There will be certain changes to the game that occur automatically when you turn on the speed timer option. These will include but are not limited to:

  • Instant level transitions (the little animation that plays when you enter or exit a level will be skipped)
  • Skipping the little hallways that lead to boss rooms
  • Map movement using the keyboard will be instantaneous (so runners don’t have to switch to the mouse on the when on the map screen)
  • Faster animations upon completing a level (like sliding down the flagpole)

These changes will be made to cause less friction in speedruns, and to ensure the any% run is faster on 2.9._ than it was on 2.0. Sucks when speedrunners have to play outdated versions to get the best times.

You will also have the option (whether you’re using the speed timer or not) to play the whole game or individual levels. Cheats will be disabled in ILs, because what’s the point if you’re cheating? Except maybe the blood code, since it’s 100% cosmetic, players can keep it on. You can unlock the other cheats the normal way in full game runs.

Version Miscellaneous

I haven’t determined exactly which updates some of the upcoming features will debut in. But here’s the gist of what they are.

Languages

The biggest yet unscheduled update will be support for multiple languages. This may become update 2.9.4, or it may come across many updates. But since it relies on outside help to do the translations, I can’t guarantee which updates. I have some volunteer translators lined up; mostly fans, who will be properly credited for their contributions. My plan is to have at least two translators for each language. Since I only speak English fluently, I will depend on the translators to doublecheck one another’s work.

The Rest

The other notable planned features are compiled thusly.

  • Messier blood code
  • A proper stunned state for the player (for when bosses do big jumps and such)
  • Mild reworking of the invincibility and flight systems
  • A new Street Fighter skin for the true final boss when Dan’s criteria are met (possibly Hugo)
  • More unique sound effects and other improvements to sound design
  • Improved level goal animations and effects (they were rushed, and I never bothered to polish them)
  • Many more hidden 3up Moons
  • Small QoL features like jump buffering to improve controls
  • More bug fixes
  • Buffing the Thunder Flower

I don’t know exactly which update these will come with. Some might be the next update, others might have to wait all the way until v3.0. It all depends on what inspires me when I get bored of working on the bigger features.

And that’s about it. sorry this post was so long, but I got excited.