Smash Bros Circle

Developers' Blog

Matt Soukup's Avatar

Coming to a Browser Near You

Posted 2012-12-31 12:34 AM CST by Matt Soukup

2012 is coming to a close, and development of Smash Bros Classic has slowed in favor of other projects. I'd like to keep everyone up-to-date with where it sits.

To maximize the reach of this game, we have decided to redevelop it as a browser-based game. Unlike other browser-based Smash Bros games, this version will not rely on a Flash plugin or the like. It will use the HTML5 canvas and be playable directly on this site, which will also act as the manual and account manager.

Much of the redevelopment will focus on making collisions more efficient as a JavaScript backend is much slower than compiled C++. Our goals with a first release are superb controls and collision system. Other modes (e.g. Adventure) will only be added after we have a good engine in place. I've had a vision of the game play of an NES Smash Bros game, and I fully intend to bring it to fruition.

Until next time, here's to a new year and a playable demo in 2013. Happy smashing!

Matt Soukup's Avatar

Playing NSF files in GameMaker

Posted 2011-12-14 11:07 PM CST by Matt Soukup

NES Sound Format (NSF) is a file format for emulating music as it emanated from the Nintendo Entertainment System. Thanks to the S-WinAmp GameMaker extension, including these rockin' chip tunes in your GameMaker game has become a reality.

NSF files include a number of tracks in a single file. To advance tracks in an NSF, you have to issue a Play command or a Next command to your audio player. So if you have an NSF file with 20 tracks, and you want to play track 19 in your game, you normally have to press Play/Next 18 times. If our GameMaker game wants to play track 18, do we really need to issue 18 Play commands to the S-WinAmp extension?

This is one solution to the problem, but there's another method that's quite a bit more elegant. For each track that you need out of an NSF file, you create a copy of the NSF file. (Don't worry, they are small!) You then open up each NSF in a hex editor and modify the value of the starting track. When the NSF player opens an NSF, it checks which track it should start with. Normally, this is set to the first track, but we could set it to the 18th track! Then, all we would need to do is open the NSF and issue a single play command!

The NSF spec tells us what bytes mean what inside the NSF file. As you can see, the byte at offset 0007 is the starting song. (01 means the first, 02 means the second, etc.). Let's look at an example:

I have the Zelda 2: Adventure of Link NSF, and I want the boss battle track. This NSF has 16 tracks and the boss battle IS track 16. I open my Hex Editor (I use one called HxD). I then open up my Zelda 2 NSF. I look at the offset 0007, which means the eighth byte (numbering starts with zero). At offset 0007, I find a value of 01. AHA! That means currently, it is set to start at track 1. But we want to change it to track 16, so we must edit that byte and change it to "10". These numbers are in hexadecimal format, which is base 16. "10" in hex is 16. We should actually be writing that hex number as "0x10". The "0x" prefix tells us it's hex. After making the change, we hit save. We then open it up in Winamp (with our NSF plugin installed) and VOILA! It starts off at track 16, and we hear the epic boss battle music!

In a perfect world, we could take apart the NSF track by track so each is its own file and doesn't still contain all of the other tracks. If you don't know about the NES sound processor (I don't), this would be quite a feat. Given the time savings, I think this is a great alternative.

Have fun adding crystal clear NES music to your games. I look forward to playing them!

Skylar Welke's Avatar

New Site, New Blog, and Status Update 2

Posted 2011-12-03 11:06 PM CST by Skylar Welke

Sky here. I just wanted to get in a few words. As far as the site is concerned, expect to see the menu expand as we bring you updates, as well as existing content change as we make revisions to certain aspects of the game. When the ball gets rolling we will get into the habit of making these updates consistent.

As a developer it's encouraging to see your project grow and evolve. At its inception many years ago, it was originally my goal to create a basic one vs one, stock of three, single room demo as a proof of concept. I didn't believe I was qualified to tackle the project in full. I've come to learn that you grow with your project and learn from experience. The progress we've made on the game has exceeded my initial expectations and I believe we'll continue to push it further.

Regarding my personal involvement, most of what you saw in version 2.0 will be different. Arenas have changed to accomodate the newer technical additions and the character's attacking animations have been recreated to improve the gameplay. For instance, from a visual standpoint, Link was my least favorite character in the previous demo. I decided to start over from scratch and now I'm very pleased with the finished product. The other characters have gone through similar makeovers, though not as drastic. Graphically, it's coming along nicely.

Thanks for dropping by. Be sure to visit again in the future. We look forward to your support.

Matt Soukup's Avatar

New Site, New Blog, and Status Update

Posted 2011-12-01 01:30 AM CST by Matt Soukup

Hello World! Smash Bros Classic Dot Welkup Dot Com is back, slightly redesigned, and now with blog. In this new version, we have made things cleaner and a bit fancier. We've moved away from all of that overlay nonsense, as well.

So how 'bout an update on the progress of the game? Well, last time we talked, we had released version 2.0 of the demo. It was riddled with bugs and other "features" that made it borderline unplayable. Back then, we were young... ignorant... and, above all, lacking any proper sense of QA. Since then we have made leaps and strides in the direction of achieving FUN gameplay. Imagine that! I can speak towards the programming, and Sky can update us on the spriting.

The entire engine was rewritten after version 2.0. It has become more object oriented, more memory cognizant, and quite a bit spicier. We have a brand new attack-collision system, a brand new camera system, and brand new character abilities. The quality of the adventure levels has skyrocketed compared to version 2.0. My focus at this time is to make the controls as fluid as possible.

Anyway, now that this website and are taken care of, we look forward to diving back into development. Stay tuned.