Bass Abyss 1.0.8

Bass Abyss 1.0.8 - Doom Guy vs Arch-vile

Hi guys. I am back with a very quick update for Bass Abyss just to fix a blocking issue reported by Youtube user Canal Slayerbot in this video‘s comment section.

Key updates

  • Doom Guy now can get past boss doors.
  • Doom Guy tweaks and weapon balancing.
  • Plenty of other bug fixes.

Now if you enjoy reading developer ramblings, make sure to keep reading after the cut.

Read more »

Bass Abyss

Hello guys, I’m publishing a brief update. I’ve been doing a lot of maintenance work in the server side code, so I don’t have much to show at the moment. However I had this little Bass Abyss change in store for a while so I decided to publish it now.

When you blow up certain enemies, you’ll see all sort of little fragments flying around. I’ve been a fan of this in Mega Man X games, so I really felt I was missing something every time I blew some enemy up.


Usually you don’t see these fragments within a particular sprite sheet so you have to rip them individually on your own. While on air they switch between visible and invisible, requiring some correct timing to get them all. Collecting all possible fragments of every possible enemy can get quite time consuming, so probably I won’t do this very often, but still, it is nice to have the infrastructure in place in case I feel like doing the job for a certain enemy later on.

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!

One Tap Dash

It was brought to my attention that on Bass Abyss the dash move is not cancelled when the Dash key is released.

I was going to notice that that’s how the game should work. Nevertheless I decided to check first, and to my surprise, in the Snes version of Mega Man X and Mega Man X2, the dash and the air dash are both cancelled when the dash key is released. I didn’t check any other more recent version.

So I started to wonder, where did I get the idea of the one tap dash?

Since this game started with Bass, apparently I took the convention from Mega Man and Bass. There, a single tap will make Bass do the whole dash sequence.

Then I started to test how the gameplay would be affected if I enabled the cancelled dash with X. While the experience got closer to the Snes version, I noticed some unwanted stress in my finger having to hold the dash key to get the whole dash sequence.

In the end I decided this should be an option. By default the game will behave as usual, a single tap will make the whole dash.

But If you’d like to turn this off, press ENTER to access the options page. A new setting called One Tap Dash is there where you can set it off. This setting will be persisted between sessions.

Here’s a picture highlighting where the control is located.

Well, that was kind of fast to implement. Lately I’ve been holding features in favor of usability changes. I’ve been devising a way where you don’t have to clear your cache everytime I push an update. It is in place now and it is experimental, so I’ll keep polishing it a bit more.

Have fun!