We are a 3 person team. Here are our games so far:

Retro Game Internals: Punch-Out Overview

Each fighter in Mike Tyson’s Punch-Out!! is controlled by one or more interpreted bytecode scripts. The player character, Little Mac, runs a single script that contains the logic for each action available to the player (dodging, blocking, punching, etc.) The opponent characters are controlled by 3 tiers of independent scripts that work together to create the opponents’ behavior.

Match Script

The highest level opponent script runs throughout all 3 rounds of the fight and controls the major changes in opponent behavior. I’ll call this script the “match script.” The main job of a match script is to set the behaviors that the opponent will run in response to various events during the fight. For example, a certain behavior will be selected to run immediately after the opponent gets up after being knocked down, or when the player runs out of hearts and becomes tired. These behaviors are recorded in a table and will be invoked by the game engine in response to the appropriate events. The match script also sets up initial values for configuration options related to the difficulty of the fight (like the amount of time that the opponent will remain vulnerable after missing a punch.) Finally, the match script will begin waiting for certain time markers during the fight to make changes to the values it has previously set.

Behavior Script

The next lower level opponent script tier is the “behavior script.” This level is in charge of sequencing the specific punches and attacks the opponent is supposed to perform as part of his current behavior (as dictated by the match script.) Behavior scripts execute commands like “throw a right jab, pause for 28 frames, randomly throw either a left or right uppercut, repeat all that 5 times.” They also have commands for reading and writing any memory location from the underlying game engine so behaviors can be very dynamic.

Animation Script

The lowest level opponent script tier is the “animation script.” These scripts perform the nitty gritty details of a single punch, block or special attack as part of a behavior (as dictated by the behavior script.) Commands found at this level include things like “set the opponent’s current frame of animation to sprite #23, move him down and to the right by 1 pixel every 2nd frame for the next 10 frames, change frame of animation to sprite #24, play sound effect #7.” In addition to animation related commands, animation scripts also sequence various gameplay state changes that are closely tied to the movements of opponents. For example, as part of a long animation for a special attack, an animation script might insert commands to make the opponent vulnerable to being knocked down with a single punch during a very specific window of time. Like behavior scripts, animation scripts can read and write arbitrary memory from the game engine to achieve more dynamic effects.

Little Mac Script

The script that Little Mac runs is most similar to the opponents’ animation scripts. It changes the current frame of animation being displayed and moves the player around on screen as needed. Like the animation scripts, Little Mac’s script is also what sequences certain gameplay events like when exactly Mac is considered to be punching the opponent, or when he should register as blocking or dodging. The player’s input is what drives Little Mac’s script in the same way that behavior scripts drive animation scripts for the opponents.

Each of these 4 script systems is processed by a different interpreter. Although many of them share some common functionality like basic flow control and raw memory access, each system implements its own version instead of sharing code (or opcode space) with the others. This allows each type of script to be very domain specific and make efficient use of a small set of targeted commands. Script data accounts for about 22% of the non-graphics data on the game cart (the actual machine code for the game engine is only about 17%) so having a compact representation for scripts was very important.

Up Next

In the following posts in this series I’ll go into more detail about each of these different kinds of scripts and explore how they interact to create gameplay. I’ll also look briefly at the hidden rules of the game like what determines when an opponent gets up after a knock down, and how star punches are awarded. If you have anything you’d like to see covered or any questions about a post you can contact me on twitter @allan_blomquist

(Prev – This is part 2 of a series – Next)

Now Available in Europe and Australia… and Multiplayer Updates Everywhere!

European and Australian eShop customers enlarged to show texture.

 

World of Goo, Little Inferno, and Human Resource Machine are now available in Nintendo’s European and Australian regions, in adorable eShops everywhere! And extra thanks once again to our volunteers who made all these translations possible – all three games were translated by real live human community volunteers.

 

Two updates were also just released today, for all regions. The Switch should automatically apply these updates for you:

  • Little Inferno: Now with multiplayer, grab the other Joy-Con and burn it all down with a friend!
  • Human Resource Machine: Now you can swap which Joy-Con you’re using whenever you want. Just press a button on whichever one you want to use. This was, strangely, a very requested feature.

Tomorrow Corporation Games Have Arrived, Now on Nintendo Switch!

Actual photo of the Nintendo Switch eShop. Customers enlarged to show texture.

 

Move over, Zelda, we’re here! World of Goo, Little Inferno, and Human Resource Machine are now available on Switch devices!

 

Q: What special features do these Switch editions have?

A: Yes!

  1. They are on the Switch!
  2. All games come with their original soundtracks. Turn up the volume on your Switch and delight everyone on your subway car or flight!
  3. World of Goo and Little Inferno have cooperative local multiplayer! Playing with a friend is now our favorite way to play.
  4. All 3 games playable in Handheld Mode using the touch screen, or in Tabletop Mode or TV Mode using using one or both Joy-Con controllers.
  5. Small tweaks and improvements throughout, visible only to the most observant observers.

 

Q: Where can I get them?!

A: On the eShop on your Switch!

 

Q: Can I get them all as a bundle?

A: We wanted to allow players the joy of three separate purchases! So, no bundle, they are each fully individual games. (And also, there is no technical way for us to bundle them at the moment – we definitely looked into it. If it becomes possible for us to bundle them in the future, we will try and do that. But it’s possible we won’t ever have that ability.)

 

Q: Can I have them all in a physical box?

A: We are looking into a physical version, but it’s a lot trickier than the digital world we’re all living in now. If we do find a way to make a physical version, it will not be for a while. In the meantime, you are welcome to download the games to your Switch, and then put your Switch in a box. Is a physical version something you want? Let us know!

 

Q: What is the price of these multiple award winning games?

A: Each game is listed at 9.99 USD, and the experience will stay with you for a lifetime!

 

Q: Hello! I am from Europe and/or Australia. When can I experience these award winning games?
A: Hola! Guttentag! Où est la bibliothèque? We have heard all three games will release in Europe and Australia on Thursday, 3/23. Profitez-en! Genieten! наслаждайтесь!

(We hear there is a way to get games from any region, from any other region… Some googling might turn up answers. But we can not confirm, since none of us have retail Switches yet!)

 

Q: Help! When are your games coming out?

A: Right now! See above! Thanks, everyone, and have fun! 🙂

 

 

Grab a Friend, Switch Editions will Have Local Multiplayer

Enthusiastic players enjoy multiplayer Little Inferno.

 

For those of you lucky enough to have a friend, invite them to your rooftop party! Switch editions of World of Goo and Little Inferno will both have cooperative local multiplayer – the best kind of multiplayer.

 

Q: I do not have any friends?

A: We’ve all been there. In the meantime, you can always play single player, or with two hands.

 

Q: Multiplayer Little Inferno, a Switch exclusive?!

A: Yes! The brand new Switch Edition is the first and only version of Little Inferno to feature multiplayer. Now you can drag a friend through your personal existential crisis! It’s incredibly satisfying to rip things apart and burn it all down with a friend. Also perfect for couples.

 

Q: But I want to play by myself!

A: You’re in luck! We got single player Little Inferno approved first, and multiplayer approved a little bit later. So the single player version will launch first, and then the multiplayer update will roll out automatically about a week later. It should all happen magically and you won’t have to do anything special, except sit back and enjoy that brief moment of alone time while you’ve got it.

 

Q: A free update?! Will there be pink logs?

A: Due to inexplicable, overwhelming, demand for pink logs, Tomorrow Corporation is considering branching out into the pink log manufacturing business. Management does not know why pink logs are so popular, but is happy to accommodate.

 

Q: I thought I remember playing World of Goo with a friend … a long time ago?

A: Many years and several generations ago, the original Wii version supported playing with more than one Wii controller. We think this is the first version since then to feature multiplayer.

 

Q: Is Human Resource Machine multiplayer?

A: We thought about it, and debated it, and decided it would be too chaotic for a game that needs such concentration. But if players want it and can make a thoughtful case for it, we’ll consider adding it!

 

Q: I am not a cooperative person and do not want to cooperate with others.

A: You can always play single player! Good luck out there, and see you … Tomorrow!

 

We Have a Switch Release Date…!

Princess Peach has smiled upon us, and granted us a release date for – THIS WEEK! World of Goo, Little Inferno, and Human Resource Machine Switch editions will all be available in North America this Thursday, March 16!

We haven’t received an official confirmation from Nintendo of Europe, but we hope to have good news for our European friends soon.

And our intern made us Switch eShop trailers for all three games, delicately embedded below.

It was a long, dangerous journey, but here comes the Tomorrow Corporation train! Stand back. The doors are closing. Next stop: Nintendo eShop!