Bass Abyss

Alright, I’m posting the current stable Bass Abyss game now before I get started with new stuff.

I might consider this just a maintenance update. There is a lot of 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 in order to get the flexibility to expand the platform and, bla bla bla. Also we fixed bugs and it is a more stable release”. And then you go, “yeah yeah, but where is the GAME, new levels, the new music, weapons, maps, enemies, songs? WHERE?”

I know myself I’ve reacted like this quite impatiently in the past. Not vocal enough to embarrass myself 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 in actual new content. So I just decided to stop, assemble an stable release and post it online before, you know, breaking it again into some work in progress 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.

A new screen system. Essentially I got rid of a lot of time line based navigation. Now it is all code based.
Why? Well, I’m planning to add key configuration at Main Menu level, 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 didn’ t want to duplicate this symbol just to have a “main menu” version. That would be a double work to maintain.

So, now to show the pause menu I went from timeline based:

to 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;


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. Actually it 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 in a roll I decided to clean the same way the main menu. Take a look at this monster:

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.

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, 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 first a nostalgia play that surely will remind me a lot of stuff I had in store for Bass Abyss!