• Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!

    You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!

Super Tilt Bro for NES

RogerBidon

Smash Cadet
Joined
Nov 15, 2016
Messages
52

Nintendo's consoles before the N64 do not have their Super Smash Bros game. Let's fix it!

Super Tilt Bro is my project of porting the "versus platforming" to the NES. There are lots of excellent retro demakes out there as Super Smash Land, Super Smash Bros NES and, of course the freaking awesome project of Khao on these boards. The goal here is to make an actual NES game that we can put on a cartridge and plug in the NES of our childhood.

Gameplay


Kickstarter


tq0sfld-kickstarter-logo-green.png

Play it

The rom file and an version playable in web browsers is available here.

You want a cartridge? Register your mail, and get notified on release!

About the project

I am working on Super Tilt Bro for some time now and, while it still has a long way to go, it is playable and enjoyable. While it was a pet project at its beginning it slowly became my greatest pride, and I swear that it will continue to improve it as long as I can!

Roster

Super Tilt Bro is a free and open source project, and its roster is composed of free characters. If you don't know them already, you can check their associated project, they are all great free tools.

Sinbad, from Ogre3D.

Sinbad is an orc pirate. Fighting with a big scimitar, he is a highly mobile Super Tilt Bro. character.

Kiki, from Krita.

Kiki is a humanoid mouse who likes to draw. Drawing platforms at will, Kiki is an heavy mid-range character with tons of options to catch her opponent off-guard.

Pepper, from Pepper&Carrot.

A resourceful young witch. Pepper has a very versatile moveset. There is always a way to continue a combo with her.

Help wanted

Characters movesets need polish,
rollback netcode needs tuning,
bugs need squashing!

Come to the discord, help to test and improve the game!
 
Last edited:

RogerBidon

Smash Cadet
Joined
Nov 15, 2016
Messages
52
Here is the first update. What's new?

Screen shaking


The goal is to give some feedback on hit. Instead of opting for the Super Smash Bros "freeze frames" which freeze the characters while not the game, Super Tilt Bro freezes the game and shakes the screen. Screen shaking is more brutal and obvious than the original freeze frames.

At least for now it is impossible to input DI during the screen shaking. It is obviously possible to implement DI, but the current state of hitstun may make it useless. It will need your opinions.

Hitstun

In the initial version of Super Tilt Bro, when a character is hit, he is sent reeling and can't do anything before hitting the ground and crashing or tech. It was done like it by simplicity and would undoubtedly prove too much combo friendly.

Now the thrown character is more in a "tumbling" state. The character can do almost anything, like aerial attacks, influencing it's momentum but will crash on the ground unless the player input a good tech. This is basically the inverse of the original solution, the player that was hit can react immediately making combos strictly impossible.

So hitstun comes to save combos. When hit, the character cannot do anything except tech for a number of frames dependent of the attack's knockback, the more knockback, the more hitstun frames.

For now when a character is hitstun, the player can still impact it's momentum with left/right inputs. It is possibly a bad choice (as was vectoring in ssb4, in worst). If it is the case we will can replace that by a good old DI.

Hitting opponent's weapon

When both characters hit each other's weapon, their moves are cancelled. It feels more natural this way than going through each other's weapon ignoring it. Also, Weapon vs Weapon can be used to cancel an opponent's recovery move.

Knockback replaces momentum

Formerly, on hit, the knockback was added to existing momentum. It made most move very efficient against a jumping opponent as the existing upward momentum extended the travel distance. Now the knockback cancels any existing momentum, it is easier to balance and actually feels more natural.

Balancing moves

It is not really balancing, more replacing copy/pasted knockback values in all moves to something theoretically more sensible. Here is a full list of changes:
Diversify damages dealt, globally nerfing the 10 damages standard to values around 5
Down tilt has less scaling knockback and more base knockback
Side tilt has more scaling knockback
Up tilt knockback is more upward
Down aerial knockback is now downward
Neutral aerial has less knockback
Side aerial knockback is more horizontal
Down special aerial has less knockback
 

4nace

Smash Ace
Joined
Dec 18, 2008
Messages
663
Location
Bellevue, WA
Looks really cool.

Yeah pausing the whole game will work if you never go above 2 players. Otherwise you'll have some issues doing hitpause that way.

Also in that gif, minor suggestion. Your "crash" / knockdown state when you hit the ground in hitstun would probably look better if they just started already on the ground instead of standing then falling down. To make it look a bit cooler you could have them hit the ground then still in the lay pose, pop up a few pixels then lay back down then get up. This would look closer to what the Smash series does and probably make hitstun feel a bit more impactful.

DI is not incredibly hard to implement and can help improve defense a ton if you want to go for a combo heavy game.

Good luck!
 

RogerBidon

Smash Cadet
Joined
Nov 15, 2016
Messages
52
Wow, thanks a lot!

Yeah hitpause would be terrible with three players or more. The NES having only two controller ports actually allow this possibility. A four ports adapter exists, but it is rather uncommon.

I'll try to improve the crash animation you're completely right this one feels unnatural and seems more like going for a nap than violently hurting the ground.

In the currently available for download version I did not want to include DI because it seemed redundant with the possibility to influence character's momentum with left or right, even on hitstun. On the last github master I removed this possibility (it made impossible to score a kill horizontally), so DI is back on the TODO list.
 

RogerBidon

Smash Cadet
Joined
Nov 15, 2016
Messages
52
Here comes the Alpha-3!

You can play it in web browser (without music) or download the ROM.

What's new?

Overview


Please do not be harsh. I am not used to videos, YouTube and the likes :)

Now with sound!

It was the big chunk. I had no idea about technicalities of sound and had to develop a sound engine for the NES in assembly language. And that's exactly the same for music composition.

Finally, with the help of the NES hardware's documentation and a cool chiptune composer it came to life.

Configuration menu

It allows to turn music off when you are tired of the tiny music loop and set the initial stocks value.

It is very lite because Super Tilt Bro ran out of ROM space (16KB is not a lot, even for the NES). Now some graphics are compressed so there is enough space to improve this screen in the future.

Hitstun forbids momentum influence

On the air a character can influence its momentum by pressing left or right. This enable changing direction mid-air like in most of platformers.

In alpha-2 it was allowed to do this while under hitstun. It is a terrible idea as a player can cancel any knockback almost immediately making him unkillable. Now that's fixed by not allowing this mechanic under hitstun.

New crash animation

Thanks to 4nace, the new crashing animation is far superior to the former one.

What's next?

The "planned improvements" section of the original post begins to look like it will be fully done one day. So it needs more items!

First, things are perfectible. Even if the music is present, upgrading the engine to be able to play complete tracks would be great. Even if the hitstun mechanic is functional, the hitstun duration may have to be pimped ...

Also, completely not gameplay related, things can be compressed in ROM. As said, the size of the ROM becomes a limiting factor, so putting some time on compressing things is not luxury.

Once the game is good and properly compressed it could be time to add a second character to the roster. In the free and open source cast, I thought of Sara from opengameart. She could be somewhat of a ranged mage character.
 

RogerBidon

Smash Cadet
Joined
Nov 15, 2016
Messages
52
The alpha-4 is ready!

You can play it in web browser (without music) or download the ROM.

What's new ?

Redrawn aerials


Aerial attacks where drawn in a rush to complete the moveset. The ugliest ones were the aerial down, up and forward, which was simple subsets of the neutral. It is now fixed, each attacks has its own feel.

Victory dance

After the match, characters where just sitting idle on the podium. Now there is the essentials: dance, slowclap and balloons!

Lower gravity

It is a terrible dilemma each time I think about it. A lower gravity lets more time to make interesting moves mid-air, but slows down the game's pace and/or make characters feel floaty.

With new animations being more long than their former counterparts (and this is a good thing), lowering gravity became mandatory. So now Sinbad's gravity is really similar to SSB4 Fox's gravity. Going lower than that feels too floaty, maybe a new falling animation could help with this.

Version on title screen

Not a big deal. This version shows "alpha4" in the bottom of the title screen. It will be incremented each time a build is released on itch.io, allowing you to check if there were update since your last download.

Feedback please

With the TODO list being complete, I need more than ever some feedback to know what to do next.

In lack of feedback, I will polish what I can think of, compress things to free enough space for a second character and play the game more (hoping to find how to improve it). But it would be great if the game can be well-rounded before integrating a second character. So feel free to report anything that you don't like, it will be taken in consideration​
 
Last edited:

RogerBidon

Smash Cadet
Joined
Nov 15, 2016
Messages
52
Happy new year!

Play-testing and new year resolutions helped me recreate a todo-list of things to improve. Mainly there is implementing the missing moves (downward B, upward tilt and aerial B), fixing some bugs and implementing the shield. Can a game honors SSB without a shield?

As a side note, I wonder why the game gathers so little feedback. I do my best to ask for feedback as much as possible and the only (internet) comments about the game are the ones in this thread (thanks for that guys, you rock). I take it as "the game is not bad enough to be insulted nor good enough to be interesting," is it the good interpretation?
 

RogerBidon

Smash Cadet
Joined
Nov 15, 2016
Messages
52
It's time for Alpha-5!

You can play it in web browser or download the ROM.

What's new?

Better javascript emulator

That's actually not Super Tilt Bro. itself, but largely related. When you play without downloading the ROM file, the web page runs an embedded NES emulator to let you play. The former one was nice, but had some severe limitations that made notably impossible to play music.

The new emulator is capable of tons of good things, most notably:
  • Playing music
  • Rebinding controls
  • Using gamepads
  • Looking more like an old TV
No more missing moves

From now on and forever, any combo of a direction + A or B is bound to a move. Be it grounded or mid-air.

The new moves are "Down B" and "Up Tilt". The former throws your opponent behind you (deadly on the edge) and the second is perfect to initiate or follow combos.

Bug fixes


This is no more possible to stall the game by going under the stage, sorry. Crashing the game by entering the first half of the Konami code is also impossible.

Optimization

Not gameplay related, but this is finally done: animations are flipped on the fly instead of bein duplicated (one for running to the right, another for running to the left). It allows to get back some free space, which is luxury in a game that cannot be bigger than 24Kb.

It was not trivial because flipping an animation necessitate, in Super Tilt Bro., to take care of the depth. As the character hold a scimitar, if the animation was simply mirrored the scimitar would not always be held in the same hand. So the animation engine handle layers of sprites and consider it an equivalent to 3D voxels, as illustrated by the following animation:

 
Last edited:

RogerBidon

Smash Cadet
Joined
Nov 15, 2016
Messages
52
Let's roll out the Alpha-6!


What's new?

The shield

It is somewhat iconic of Super Smash Bros, but was missing all this time, it is now fixed!

The impact on gameplay of this addition is still unknown. It seems a little too powerful as it misses most of the drawbacks of the shield from SSB. Mainly, it suffers no end-lag and no hard-counter like the grab. This new shield will certainly have to be played and tweaked.

Short hop and fast fall

With them, aerial movement is more flexible than ever.

Has there are now two jump heights, the long jump has been increased. A character can cover almost all the screen vertically (using specials) while still being able to attack a grounded opponent with aerials, thanks to short hop. It is impressive how a simple thing like short hop can be impacting on games mechanics.

Improved respawn

Characters now respawn on a revival platform letting players have a break after being killed.

This was missing for too long. It is in this category of things that are overlooked too easily when developing a game. It is not useful when testing bugs. It needs some way to implement invulnerability (which was absent until shield's implementation). While overlooked it is nonetheless a rare occasion to slow down the game's pace if the player wants it, so the game is still intense, but less stressing.
 

RogerBidon

Smash Cadet
Joined
Nov 15, 2016
Messages
52
Alpha-7 is coming.

What's new?

Artificially intelligent foe


This was really annoying for those who wanted to test the game before trying it with friends. So here is the infamous CPU opponent!

The artificial intelligence is super simple for now, but as long as you do not try to cheat it there is some fun fighting it. This is by no mean perfect yet, but still a big enough addition to the game to game to justify a release.

Trivia: It is less than 70 lines of assembly! That's impressive what can happen with so little code o_O

New font


More than just being prettier, the new font also should display well on CRT screens. Such screens are irremediably a bit blurry and NTSC does not help as it was designed to convey analog signal, but not pixels.

Bug fix

In previous version it was possible to use grounded attacks mid-air by inputting it at the beginning of a double-jump. It's fixed.
 

RogerBidon

Smash Cadet
Joined
Nov 15, 2016
Messages
52
Let's advance to BETA.

Why beta?

In Super Tilt Bro. versioning, alpha means "playable" and beta means that all major features are present. The plan is to have alpha becoming beta then release. After that, another set of features may be defined to start a 2.0-alpha, etc.

Super Tilt Bro's foundations are pretty solid right now, but the game is not as great. It is time to focus on improving the game, pushing its engine further on what it already can do. A great opportunity to begin the beta, adding flashy effects, good music, better graphics, improved moveset and more "non-engine" stuff.

What's new from alpha-7?

Multiple stages

That was the last feature necessary to pretend to have a complete game. A single stage is not enough, especially when it is so simple that jumping is an optional move. So, now there is the possibility to add stages and two new ones in this release.


The pit is more of a technical demo than a good stage, it will have to be improved or replaced during the beta. Skyride on another hand is quite fun to play, give it a try.

Bug fixes

When playing on real NES hardware (not in emulators,) the configuration screen is corrupted. Big thanks to the NESDev community for finding it. Shameless begging: I'd love to test hardware compatibility myself, but I am on budget. Do not hesitate to help through itch.io's donations ;)

In configuration, lowering the stocks' number while at "1" no more change the player two from "cpu" to "human".
 

RogerBidon

Smash Cadet
Joined
Nov 15, 2016
Messages
52
One year of development and a great Beta-2


What's new?

Tons of visual effects

The goal of this release was to improve the in-game feeling, the game is now more vibrant and furious. It was super fun to implement, the game now even features a particle engine (ON THE NES!) Even if it took a little longer than expected, the result is here.

If you want a complete list of the new visual effects:
  • The screen-shaking is stronger and in the knockback direction
  • Character on hitstun are now blinking
  • On hit, a directional indicator is shown (particles, hooray!)
  • A KO character now explode (also particles)
  • Matches end in slow-motion

Character selection


While keeping one playable character, tweaking colors is still nice. We can now choose the character and its weapon, leading to 49 useless combinations :D

Actually not so useless, color-blind people will no more use it has an excuse to lose. The original green versus red was not to their taste.

Improved menus

Nothing super-fancy here, but menus now have each an icon and a title, fixing the emptiness of some.

NROM-256

Formerly, the NES cartridge of Super Tilt Bro was an NROM-128. This is the barbarian name of the hardware, it means that this is the smallest existing NES cartridge.

With this version, the game needs an NROM-256 that is a slightly larger cartridge. It is still a dumb and simple hardware, but at least it does not trick the NES to be smaller than what expected.

For the development, it means we now have a great deal of free space and the game can continue to grow. For the player it is simply that the ROM file is now 40 Kbytes instead of the initial 24 Kbytes. We are still far from Skyrim :D
 

RogerBidon

Smash Cadet
Joined
Nov 15, 2016
Messages
52
Beta-3, the invisible patch.

What's new?

AI re-implementation

The AI's difficulty is now configurable in the configuration screen. That's the point of this release.

It may seem light, but it is actually a big chunk of work. The AI had to be re-though from scratch, taking inspiration from modern technologies and adapting it to the NES hardware. I wrote a full article on the subject, read it to figure out what a big deal it is.

Other little things

In the menus, pressing B now consistently goes back to the previous screen.

The "Unholly scimitar" is renamed to "Unholy scimitar".

The web-browser version now shows gamepads state and the default keyboard binding.
 
Last edited:

RogerBidon

Smash Cadet
Joined
Nov 15, 2016
Messages
52
SunnyGuyMan SunnyGuyMan Thanks, this kind of comment are heartwarming!

SuperDoom1 SuperDoom1 Is it an in-game complaint or something around (in this thread)? If in-game, I suspect the name of the default color for the Scimitar of player one. Can you confirm? As I am not a native English speaker, I may have strange judgment of what is acceptable or not, but Super Tilt Bro has no reason to be offensive. It is to be fixed.
 

SuperDoom1

Smash Journeyman
Joined
Sep 25, 2017
Messages
258
Location
SPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACE
NNID
SuperDoom
3DS FC
4656-6065-5905
SuperDoom1 SuperDoom1 Is it an in-game complaint or something around (in this thread)? If in-game, I suspect the name of the default color for the Scimitar of player one. Can you confirm? As I am not a native English speaker, I may have strange judgment of what is acceptable or not, but Super Tilt Bro has no reason to be offensive. It is to be fixed.
Yes. It is, in fact, the bad[butt] scimitar.
 
Last edited:

RogerBidon

Smash Cadet
Joined
Nov 15, 2016
Messages
52
Thank you for the feedback, it will be modified in the next version (to be release soon). Do you have any suggestion for the new name? The "Great scimitar" is my best idea for now.
 

RogerBidon

Smash Cadet
Joined
Nov 15, 2016
Messages
52
No pitfall, it is Beta-4!

What's new in the game?

No more swearing

The bad*ss scimitar has been renamed to awesome scimitar. Thanks to SuperDoom1 SuperDoom1 , Super Tilt Bro us now appropriate for more people.

The Pit, completely re-done


The former version was more of a technical test than an actually enjoyable stage. It was particularly ugly, hard to navigate in and could be abused to pull off infinite combos.

The new version, is not only nicer to the eye but also fun to play! True to the original idea of “having a hole in the middle,” it removes the things that did not work well to replace it by moving platforms. Moving platforms are common for a good reason: it is super cool to play with.

Music

Sick of the five seconds music loop that serves as main theme? Good news, the sound engine has been greatly improved so we can now have full-length tracks. There is now a music for the menus, one in-game and the game-over music is greatly improved. Thanks to the new sound engine, it is a choice to use a cute little loop for gameover instead of a long music. Shortening this track allows getting immediately to the point, not wasting time listening music when all you have to do is starting another game.

What's new under the hood?

New music engine

Basically, a music is a sequence of notes. The original music engine of Super Tilt Bro was storing musics just like that, as a sequence of notes. It leads to an incredibly large amount of data needed to store a single tracks. There is approximately fifteen notes per second, so a two minutes music is around 1800 notes. The engine uses three bytes per note, leading to more than 5 kilo-bytes per track. In a standard NES cartridge, it is 30% of the available space. If you store three tracks like that, you may not have enough space to put a music engine to play it.

The music engine has not been rewritten from scratch, but it now uses a cool property shared by most musics: chorus and verses. A music is a sequence of verses separated by a unique chorus. So half of the music is the sequence of notes that makes the chorus. The music engine plays a sequence of samples, which are each a sequence of notes. Samples may contain one verse, the chorus or just a part of a verse. It allows reusing data for repeated sequences pretty well, so space is less a problem than before.

To go further, it would be possible to do a better encoding of the notes. Music engines from other games use a format using approximately one byte per note. They are also more complex and, for now, the space needed to store three tracks is manageable. It will be the next step to the perfect music engine.

Moving platforms


In Super Tilt Bro, a stage is defined as a list of platforms, each one having coordinates, and a set of functions that execute when the engine needs it. Typically, the stage's initialization function draws the screen's background, then the engine uses platforms positions to know if characters are falling or not.

The way to implement moving platforms is quite obvious: when a platform needs to move, update the platform's position in stage's data. Current stage data is copied in RAM when starting the game, so everything seems good, we can modify it at will. There is still two little problems.

First, we need somewhere to write the code that moves platforms. The engine itself does not have to take care of this, this is specific to a stage. So we add a callback function to stages, to be called each frame, so stages can do whatever they want. Existing stages, simply register a function that does nothing while our new stage sets a function handling moving platforms.

The second problem is to actually draw the moving platform. In the typical case, the screen is drawn once, when loading the stage, then the engine put sprites on top of it for characters and special effects. We can update the screen's background between frames, but there graphics are aligned on a 8x8 pixels grid. We do not want a platform that jumps 8 pixels at a time, we aim at smooth movements. To place a platform with one pixel precision, we can use sprites.

Summarily, each frame a function of the stage is called. This function moves platforms in stage's data and displays it as sprites.

Sprite-efficient particles usage


The NES allows for 64 sprites of 8x8 pixels at the same time on screen. Super Tilt Bro associates each one to a particular use:

0-15: player 1 sprites
16-31: player 2 sprites
32-35: unused
36-42: particle block 0
43-49: particle block 1
50-56: particle block 2
57-63: particle block 3


This is all fine, except that there is only 4 unused sprites. The Pit needs 8 sprites for its moving platforms. Almost half of the reserved sprites are for the particles' system, this had to be changed.

The particles' system is used for two things: showing the impact of a blow and popping explosions on death. It works by affecting particles emitters to a block, each time the game wants to display particles, an emitter is created and it uses sprites of its block for the effect. As, there is two possible emitters per character, it is convenient to have four blocks. One for impacts on player one, another for player one's death and the two sames for player two.

We can save two blocks as, for a given character, it is highly unlikely to need impact and death particles at the same time. Death generally occurs after an impact and impact particles are very short-lived. So the same result can be achieved while reserving only one particle block per player. Just take care to stop any active particle emitter when we recycle a block that is still active. The new sprites map is now:

0-15: player 1 sprites
16-31: player 2 sprites
32-49: reserved for stage's usage
50-56: particle block 0
57-63: particle block 1


Super Tilt Bro's Python library

Super Tilt Bro begins to have a lot of its own internal formats: animations, stages, music to name a few. It was funny to manipulate it in binary at the beginning, but as the projects grows in scope it becomes merely manageable. Some separate tools where developed to save time, but without consistency nor publishing it was pretty niche for some very specific workflows.

The former tools are now merged in a Python library, the stblib. The stblib is distributed with Super Tilt Bro's source code, it allows easy manipulation of its data structures and exporting it as json. So instead of writing a new stage in binary, one can do it in json (which is way more human-friendly) then write a tool that generates the binary. The long term goal will be to have a full editor allowing anybody to mod the game as easily as possible.
 

RogerBidon

Smash Cadet
Joined
Nov 15, 2016
Messages
52
So pretty, so Beta-5!

What's new in the game?

Improved menus


Menus evolved a lot, with special care for the transition.

Now the menus scroll to each other, and fade-out to start a game. Also, the clouds on the title screen are now animated, and move in a parallax way according to the menu transition.

It has nothing to do with transitions, but the character selection now shows a little bit of grass behind characters.

Improved in-game


The running animation has been reworked, rubbing the scimitar, spawning sparkles. When Sinbad runs, he is more imposing than ever!

A spawn animation has been added. It delays a little the beginning of the match to let players warm-up their hand. More importantly, the presence of Sinbad on this island is now explained! He comes from a portal...

Finally, the end-game slowdown has been extended from one second to two. Occurring when one player loses its last stock, this slowdown lets the winner some time to taunt. And yes, it is super important to have the time to correctly humiliate the loser!

What's new under the hood?

Steady progress on the stblib

The Python library that allows storing and manipulating game's structures in Json is now perfectly able to manipulate animations. Actually the new spawn animation has been done entirely in Json instead of the obscure binary format compatible with the NES.

Menus implementation

The original idea was that all menus in Super Tilt Bro where like independent games. When going from a menu to another, the previous game was stopped and a new one was initialized.

Implementing smooth transitions and, with more impact, clouds that continue to move from one menu to the next, challenged this design. So, now menus are able to communicate to each other some shared state without friction. The goal was not to rewrite entirely the menus implementation, so only a common chunk of code is able to manipulate this state. Previous code is not impacted, except that it calls the common code regularly.
 

RogerBidon

Smash Cadet
Joined
Nov 15, 2016
Messages
52
What's on the menu? Beta-6!

What's new in the game?

New stage: The hunt


This fourth stage is based on a very simple and enjoyable layout. It is super friendly, it is relaxing to play on it... until the orb appears!

The player that succeed to hit the orb gains power. How much power? Something like “NO WAY! GO AWAY FROM MY ORB!!!” power.

Improved menu graphics


Adding borders to interface elements definitely make the menus feel more... finished.

Also, the configuration screen was the first menu of the game and its design shown its age. Completely revamped, it is now the prettiest menu in existence!

What's new under the hood?

Steering behaviors

In the new level, the orb floats in the air. It seems so natural that we do not think of it, but NES games generally don't feature such organic movements. Actually, the orb uses an approach that was not yet discovered on Super Mario Bros' release year: steering behaviors.

The idea is pretty simple and gives great results. Each frame: draw a vector for each goal of the orb, sum up these vectors, it is the new velocity of the orb. Bellow illustrated for the three following goals: Go between players, avoid player one and keep the same velocity.

 
Last edited:

RogerBidon

Smash Cadet
Joined
Nov 15, 2016
Messages
52
Version 1.0, the final destination!

What's new in the game?

Version number

Betas are over. Now is the great stuff!

After more than two years working on this project, it surpassed all my expectations. It was an experiment, it became a prototype, it imposed itself as a pet-project, but today we can call it a new way: it is a game!

For becoming better and better, month after month, Super Tilt Bro. deserves to have a real version number. It is officially Super Tilt Bro. v1.0 now :)

Polished moveset

The jab as a new animation. More than just a visual upgrade, it slightly changes its use. The new animation as more end-lag, but can be cut to start a new jab. With this change, we still can chain jabs, but can also be punished as we have to wait before doing something else.


New jab animation, nice and efficient!

The aerial-down attack has been accelerated and cancels fast-fall. It is now possible to use it during a short-hop, which can be deadly.

When charging its side-special, Sinbad now shakes. Standing still just seemed too buggy.

Pimped mechanics

Air friction is now here. It progressively slows you down while mid-air. Implementing this mechanic means strong moves can be stronger without being insta-kills. It is always fun to deliver overpowered slaps!

By pressing down just before hitting the ground, you can recover instead of crash. It is not a new mechanic, but now it is easier to input as the timing is more permissive.

Bug fixes

Pressing select no more regenerate your shield. Don’t be so apprehensive, go out of that shield and fight!

The visual glitch at the end of stage selection is no more. The transition to the stage is now super smooth.

The visual glitch between menus (only on specific hardware) also disappeared.

What's new under the hood?

Continued development on stblib

The parsing and manipulation of game’s animations with the stblib is now super easy.

New build option

Formerly we could only build the game as a ROM file for emulators. It is nice, but now we can also build raw data to be flashed on an actual cartridge. It means that it is easier than ever to build Super Tilt Bro. to be played on an actual NES.

What’s next?

Cartridges!


Woot! A real game!

What else? Would it really be a NES game without a physical edition? Actually a first batch of nine cartridges has already been produced. But, alas, there is not enough for everybody, so I plan to do a second batch, targeting December.

Version 2.0

It is a really big work. As Super Tilt Bro. started with humble goals, it comes to a point where its engine cannot do a lot more. So, the idea is to rework the engine, remake the game and to push it over its current limits. Some crazy ideas that may be added are: 4-players, multiple characters, alternative game modes,... Actually, anything.

Thank you

Thank you for reading this post, reading this topic or even participating. It was a long journey, going from zero, building a game. From the bottom of my heart, thank you to anyone that at any point cared a little.
 
Last edited:

TDRR

Smash Journeyman
Joined
Sep 18, 2017
Messages
286
Location
Venezuela
A good idea for 2.0 would be to add characters with the most different playstyles, a good idea would be a Mario style character (Well-rounded) a Link style character (Not very fast, but has powerful and disjointed attacks) and maybe a Pikachu would be good too (Fast and combo-oriented character)

I suggest doing the characters with 2 frames per animation so as to be able to fit more than just one character, personally i think that's good enough for a NES fighting game, and you could make the Link style character similar to Sukapon from Joy Mech Fight, which would be a real good idea because you wouldn't need as many sprites!

And maybe a sequel for the SNES? Ha.
 

RogerBidon

Smash Cadet
Joined
Nov 15, 2016
Messages
52
Version 1.1, the ultimate Super Tilt Bro.

What's new in the game?

Not much!

This version fixes a visual glitch on real hardware and improve menus on NTSC systems. That's all!

But, why this micro release?

As you may have noticed, both fixes are for playing on actual hardware. It is the last patches made just before the cartridges are produced. Sort of day-1 patch, but without internet...

What's next?

I was very busy producing cartridges. The version 2.0 is still a project to be started. Anyway, NES developers' community is working on something big. Something incredible! Super Tilt Bro. will try to climb on the bandwagon. It will be awesome!

On the side

As cartridges made their way to their owners, reviews began to appear. If you do not have time to test by yourself, I recommend this great one:

 

RogerBidon

Smash Cadet
Joined
Nov 15, 2016
Messages
52
Whoosh, one and half a year without update here!

The project is not dead. Far from it. It got new graphics, a new playable character, soon will have new musics ... Oh, and I almost forgot: it now features an online mode! It would be one of the very first games to feature online on the NES, thanks to a Wi-Fi chip in the cart.

I do not know if there is still interest here, on smashboards, to get future release notes. If so, I may resume my posting of release notes here. What do you think of it?
 

TDRR

Smash Journeyman
Joined
Sep 18, 2017
Messages
286
Location
Venezuela
I do not know if there is still interest here, on smashboards, to get future release notes. If so, I may resume my posting of release notes here. What do you think of it?
I think this goes without saying, but yes. Well, at least I am still very interested!
 

---

鉄腕
Super Moderator
BRoomer
Joined
Jan 27, 2008
Messages
13,483
Location
Michigan
NNID
TripleDash
3DS FC
1719-3728-6991
Switch FC
SW-1574-3686-1211
The NES/FC is the big system I collect for so this has definitely caught my eye. Am surprised it flew under my radar until recent gaming website articles.
 

RogerBidon

Smash Cadet
Joined
Nov 15, 2016
Messages
52
Thanks for the interest TDRR, and ---!

It was easy to miss, especially from smash community, there is a lot of fangames, many of them being very high quality. Super Tilt Bro. is more limited than most. For the typical smasher who don't especially care about the NES, there is definitely better alternatives. I tried to be vocal on the NES homebrew communities though. Maybe not enough in NES collectors communities, but until a big batch cart release, this is not the place for Super Tilt Bro.
 

---

鉄腕
Super Moderator
BRoomer
Joined
Jan 27, 2008
Messages
13,483
Location
Michigan
NNID
TripleDash
3DS FC
1719-3728-6991
Switch FC
SW-1574-3686-1211
I'll definitely keep an eye out for updates in the future, though I do agree the NES is a bit more limited of an audience. Homebrewing is definitely an interesting scene I need to take more part in; was a backer in the NES Maker kickstarter but haven't done much with the program myself.

Video Game Sage forums is probably the big NES collecting site to go to now that NintendoAge is dead.

You could probably reach out to any of the Writing Staff here on Smashboards to see about doing an article about the game. Thirdkoopa is the head Admin for that section.
 

RogerBidon

Smash Cadet
Joined
Nov 15, 2016
Messages
52
Yes, that was sad what happened to NintendoAge but it was for the better. VideoGameSage, is literally the same community (born the day after NA's collapse), has prettier interface, and a joke in its name! I actually had a technical devlog on NintendoAge, lost some entries in the event, but I continue it here if you want to read about gory details on screen coordinates, ROMs size, and stuff: https://www.videogamesage.com/topic/762-super-tilt-bro-for-nes/

I'll wait until I estimate the game to be ready before reaching any smash-minded writer. For now, controller in hand, it is far bellow the average fan-game. Only two characters, no one with a final moveset, combos that hardly connect, no balance,... Anyway, thanks for the clue, I'll remember about it ;)
 

RogerBidon

Smash Cadet
Joined
Nov 15, 2016
Messages
52
The version 2 is warming up!

Very special release note today. Since the beginning of Super Tilt Bro. version 2 development, there was no one published. So this one summarizes what happened since the release of the cartridges.

What's new in the game?

Online gameplay

Super Tilt Bro. for NES, is a game for the NES. Is the NES capable of network play? YES!

The idea is to put a WiFi chip in the cartridge and use it to play online. And, it just works! Leveraging our high speed network connections, Super Tilt Bro. offers real time action on the web, for your system from the 1980s.

WiFi cartridges are not yet available for the public. Anyway, Super Tilt Bro. comes bundled with emulators patched especially to support these cartridges. Have fun!

sinbadonline.png

A new character

Yes, Super Tilt Bro. just doubled its roster! Here comes Kiki, mascot of the Krita Project.

kiki_01.png
kiki_gameplay.gif

Kiki carries a big brush, allowing her to draw platforms and walls at will. She can use this ability to avoid falling from the stage, or more creatively to block her opponent. The brush is big enough to strike through painted platforms, allowing her to capitalize on an opponent surprised by the fresh wall she just painted.

Kiki is slower than Sinbad, so she has a bad time trying to approach him upfront. She shines in a more defensive gameplay, capitalizing on her opponent's errors.

New graphics

Stages backgrounds have been re-imagined by Martin Le Borgne. No more word needed, watch pictures instead.

stage_bg.png

Gameplay improvements

Characters can go slightly out of screen without losing their lives. It seems natural, but was actually one big change to the engine which handled only one screen.

A quick tap on down button makes your character fall from thin platforms.

Fall speeds have been reduced. It makes characters more "floaty", allowing a better in-air control, and improving a little Sinbad's recovery.

Recovery moves are easier to input correctly. Example: holding "left, up and B" now performs the same action as just "up and B": Sinbad's triple jump.

Also, after sleeping from the edge, you are now able to use your double-jump to avoid a dumb death.

Famicom expansion port

The game is now compatible with controllers plugged on the Famicom expansion port. That's great news for those limited by the infamously tiny controller cord of official controllers.

Improved AI

It is harder to get the bot stuck, endlessly repeating the same move. It is now able to strike you even if you don't move!

ai.gif

If you are one of those who said the game is too easy: go fight against Kiki bot in hard mode ;)

New music

Ingame, and gameover musics have been improved. The game's output is much more accurate to Ozzed's originals.

Title music is a completely new one, composed especially for Super Tilt Bro. by Tuï.
 

RogerBidon

Smash Cadet
Joined
Nov 15, 2016
Messages
52
Super Tilt Bro. 2.0-alpha4: smoother netplay, stronger Sinbad!

What's new in the game?


Sinbad's gameplay reworked

Sinbad is now way more interesting to play. Focus points are to improve his recovery, fix weird behaviors, and reward skilled player.

First notable change, Sinbad now has a wall jump. It comes in addition to his double jump, and can be done while in helpless fall. The wall jump is a lot more than a simple bonus jump, doing it in helpless means you can chain a second up-special or forward-special after cancelling your helpless fall. Sinbad's recovery is greatly improved, and allow off-stage mind-game as this opens a lot of recovery options. Edge guarding is also safer now.

gameplay_v2_walljump.gif

And he keeps his double jump!

Another big change is the grounded special. It was a first draft of the move that never got the love it deserves. In its old state it had a frame-1 hitbox, and weird momentum behavior, making it overpowered in some ways while unexpectedly weak in others. Now it has a big startup time, and cancels momentum. It is a finish move, requiring anticipation to place correctly but very rewarding.

grounded_spe.gif

So powerful!

Airborn special is now cancellable into helpless by pressing B again. Allowing for slightly speedier fall speed, and wall jump. The spike of side special is now stronger. Finally, Sinbad bot has been updated to use wall jumps for recovery.

Kiki's counter slide

Kiki's special is a counter strike. While in counter's animation Kiki retained her momentum in a strange way: only horizontal momentum while on ground. She could slide long distances when countering at the end of a jump. It is changed by having reduced ground friction, so she can still slide, in a more natural way.

kiki_slide.gif

This is post-patch, before she would have slide beyond platform's limit.

Better netplay

Connection quality of both players is displayed briefly before starting an online game.

The game has been optimized to be able to rollback more frames, improving netplay on unstable connections. More details on the technical parts of this release note.

What's new under the hood?

Fixed server

Rollback netcode is something notoriously hard. The smaller the game system, the harder it is to rollback frames. Some says that it is impossible to do it on the Switch, because its lack of computing power. Don't listen to them, nothing is impossible, but that's hard. The NES, with its 2 KB of RAM, and its 1.5 Mhz CPU is far beyond minimal specs. The server helps notably with memory management, sending checkpoints so the NES does not have to keep them in memory. The NES receives opponent's inputs with an associated checkpoint to rollback from if necessary.

This solution requires the server to be able to compute the game's state to create those checkpoints. It was originally done by reimplementing the game's logic in C++ (the language of the server), since the game itself is made of 6502 assembly which is not compilable for modern CPUs. Maintaining two completely different implementations of the same logic was terribly time-consuming, and led to inconsistencies between the game and the server.

Now the server embeds a very lite emulator, able to emulate game's logic from the ROM. This solution is slower than the C++ implementation but is guaranteed to be consistent with game's code, it is game's code. The biggest part has been to make it reasonably speedy, the original emulator came without specific optimization. Detailing how to optimize a 6502 emulator would require a full article, here are some hint: avoid a maximum function pointers, avoid branching, and recompile what you can. Easier said than done, if you want a more detailed history of my progress, here is a real-time twitter thread of the optimizations done: https://twitter.com/RogerBidon/status/1319175188450344962

Optimized client

The NES has checkpoints on hand when needed, but it still needs to rollback frames. That means, playing multiple frames worth of gameplay on the time allocated to only one frame. Playing a frame worth of gameplay has to be lightning fast. In this version the code has been optimized exactly for that reason.

The first step was to create tools. Believe it or not, 1980's systems have terrible profiling tools compared to modern systems. Thankfully, emulators are extremely versatile nowadays. With some scripting we can output the game's code annotated with the time consumed by each line, or even flamegraphs.

stb_perf.png

Each rectangle is a function. The larger the rectangle, the most time spent in the function.

With that tooling, and good knowledge of the code, it is easy to spot bottlenecks. Some were simply old code that became critical, other required little refactoring. Everything considered, the hardest part was to make tools. With good tools, optimization is straightforward.
 

tuck :)

Smash Cadet
Joined
Mar 22, 2017
Messages
72
Location
Chicago
Slippi.gg
TUCK#214
Wow this has been in development for over 4 years and I just discovered it today. Got to play it on browser, it's awesome! I got a sick Kiki so watch out everyone.
I'm sure more AI improvements arent at the number one priority, but if you ever get to that point, you could try to find a way for the CPU to actively get out of juggling combos. I think the AI is set to always move in the direction of the player, even when their in hitstun in the air, so if you pop them up you can just uptilt/upair until they eventually die off the top blastzone.
Another "CPU Killer" is Sinbad's Grounded Side B, you can spam it back and forth, and since the CPU doesnt shield immediately on wakeup, you can rack them up to super high percents.
But obviously CPU issues are minor stuff compared to the cool stuff you have planned. this game is really cool, and if I get the money in the future, I will try to support and buy a cart. :)
 

KingBooGengar57

Smash Champion
Joined
Sep 23, 2018
Messages
2,412
Switch FC
SW-6126-0782-8125
This looks really cool, some more stages, and some more characters would be nice though, I get the hardware limitations, but more characters would be nice.
 

tuck :)

Smash Cadet
Joined
Mar 22, 2017
Messages
72
Location
Chicago
Slippi.gg
TUCK#214
Yeah there's a lot of limitations for putting together a 40KB NES game, I'm impressed at the stuff that's in here by itself.
There's a great video about making a 40KB NES game here by the people that made Micro Mages.
 

RogerBidon

Smash Cadet
Joined
Nov 15, 2016
Messages
52
Thanks for the kind words, and the feedback!

I will up a little CPU improvments in my todo-list :) Players that notice these weaknesses tend to over-exploit it ruinning the, already limited, single player fun in the game.
 
Top Bottom