Bass Abyss 1.0.7.5

All right, I’m publishing the current stable version of Bass Abyss before I get started with new stuff.

Maintenance Update

I might consider this just a maintenance update. There is a lot going on behind the scenes, but unfortunately, there’s no new visible content to brag about.

Yeah, it is frustrating when some project announces some update and then you download it excited wanting to check the new stuff but the truth is there’s nothing to be seen. And then the developer goes, “Oh well, you see, we just did these important changes in the code base, cleaning some structures and decoupling some modules. This will provide the foundation for blah blah blah. Also, we fixed bugs and it is a more stable release”. And then you go, “Yeah, but where is the GAME, new levels, the new music, weapons, maps, enemies, songs? WHERE?”

I’ve reacted like this very often in the past. Not vocal enough to embarrass me though.

And it is not really my style to post an update like this, but really, weeks just kept going and going, and I had to accept I was not near to finish the changes I wanted to do before working on actual new content. So I just decided to stop, assemble a stable release and post it online before, you know, breaking it again into some alpha state. This should give me some time before I get too anxious to update again.

But if you’re really curious, here’s a list of the stuff that kept me so busy.

Screen system

A new Screen system. Essentially I got rid of a lot of timeline-based navigation. Now it is all code-based.

Why? Well, I’m planning to add the Key Input page at the Main Menu, and not force the player to start a new game before doing this. For this, I have to be able to show the Pause Menu that was currently visible during gameplay.

But the code was too coupled. Actually, it was a symbol in the library. Adding and removing tabs was out of the question. Also, I did not want to duplicate this symbol just to have a “Main Menu” version. That would be more work to maintain.

So, now to show the Pause menu I went from a timeline-based approach to a simple code configuration:

		var mc:MovieClip = Game.mcRoot.attachMovie("TabMenuView", "PauseMenu", RootZorder.PAUSE_DIALOG_LAYER);
		var vc:PauseMenuController = new PauseMenuController(mc);

		var items:Array = [new ControlsViewController(), new SoundViewController(), new GraphicsViewController(), new AdvancedViewController()];
		vc.viewControllers = items;
		vc.bottomNavLinkId = "PauseBottomNavigationView";
		vc.showMinimizeButton = true;

		vc.viewDidAppear();

And now I can add custom tab names, reorder the tabs, add/remove tabs, and a lot of other stuff that I probably won’t use, but it is there and it is working!

If you’re acquainted with iOS development, you’ll notice the syntax somewhat familiar. This is because I based it in their UIKit Framework UITabViewController. I use to check a lot of frameworks, Windows, Android, IOS, and I like to implement the ideas I like the most. There are even traces of Midp coding style in my code.

And since I was on a roll I decided to clean the Main Menu the same way.

Take a look at this monstrosity.

Cleaning this was so much fun. For this one I implemented yet another iOS navigation style based on a class called UINavigationViewController. Now, if you abuse it you’ll notice that you can go back and forward between screens.

Improved Menu navigation

Before, if could did:

Main Menu -> Character Select -> X Character Select -> Level Selection.

A ‘Cancel/Back’ action at this point used to take you back to the Main Menu. Not very friendly. Now you’ll actually see the previous screen in the state you left them.

The same here.

Main Menu -> Custom Levels-> Paste Code -> Character Select -> X Character Select

Each ‘Cancel’ will go back one screen. For instance the Paste Code screen will keep the pasted code you just placed.

Yeah, I know, very little details, but I just love this stuff, and once I started to do it I had to finish it before moving to something else.

Which reminds me, I haven’t actually added the Key Configuration screen to the main menu yet. I’ll do it, eventually!

Well, now that Capcom has finally released Mega Man X2 for the Wii Virtual Console, I’ll have a nostalgia game session that surely will remind me a lot of stuff I had in store for Bass Abyss!