BombSquad Modding Guide Episode 1: Hello World

Alright let’s do this.  Its time to mod the squad.

In this first tutorial we’re going to learn how to issue commands to BombSquad as it is running, which is very useful for modding and tinkering purposes.

What you’ll need:

  • BombSquad version 1.3.15 or newer (the version number is visible at the bottom right of the screen when you launch the game) Grab an update from the Mac/OUYA/etc app store if you’re out of date.
  • Python scripting knowledge.  BombSquad’s game logic is written in Python, so you’ll need to be familiar with the language. It’s pretty nifty and useful outside of the game too; go to python.org to learn about it.  BombSquad uses Python 2.7.

Option 1: The In-Game Console

If you are running BombSquad on Mac, Windows, or Linux, you can simply press backquote (`) or F2 to bring down the system console which will let you issue Python commands directly to the game. This is convenient, though functionality is a bit basic at the moment (no copy/paste, etc). For that reason you may still want to opt for option 2 even on these OSs.

Option 2: Telnet

The second option for talking to BombSquad is via a telnet client from your Mac/PC/etc. This is handy when you’re running BombSquad on a machine without a keyboard attached, such as an OUYA. Macs and Linux machines should have command-line telnet clients installed already; on Windows you may have to download a client such as ‘Putty’. Note that BombSquad’s telnet support is pretty rudimentary, so you may need to configure your client to connect in the most simple way possible to avoid strange errors.

Telnet Step 1: Find the game host’s IP address

We’ll need to know where to connect our telnet client to.  If you’re running BombSquad on an OUYA, go to MANAGE->SYSTEM->CONSOLE INFO to find its IP Address.  If you’re running BombSquad on the same machine you’ll be telneting from, you can just use ‘localhost’ as your address.

Telnet Step 2: Connect

Make sure BombSquad is running on your OUYA/Mac/etc, and then open a terminal on your computer and type the following to connect to the game, replacing ‘192.168.1.5’ with the address you found in the previous step:

telnet 192.168.1.5 43250

This will attempt to establish a telnet connection to the game on port 43250.  If this works, you should see a message pop up on your BombSquad game asking if you want to allow the telnet client to connect.  Hit ‘Allow’.

You should now see a prompt such as this:

bombsquad>

Ok, you’re connected; now say hello.

At this point you can enter python commands for the game to run.  As an example, type the following and hit return:

dir(bs)

This will print a list of everything in the ‘bs’ module, which contains bombsquad’s core functionality.  To learn more about something, you can use the builtin Python help.  For instance, type the following to learn about the ‘bs.screenMessage’ function:

help(bs.screenMessage)

As you can see via help, this function lets us print stuff to the screen.  Let’s give it a whirl by typing the following:

bs.screenMessage("HELLO WORLD!")

When you hit return you should see that message pop up in BombSquad.  Ta-da!

And that’s it for our first tutorial.  In the next tutorial we’ll build on that by looking at BombSquad’s internal scripts and starting to modify them for our nefarious purposes.  Cheers!

Posted in BombSquad | 19 Comments

Ok now what?

I realize it’s been forever and a day since I updated this blog, but it’s time to get started again. A year and a half ago I released BombSquad on the Mac App Store. A lot has happened since then:

  • BombSquad was featured by Apple and briefly hit #1 paid in several countries on the Mac App Store. (woohoo!)
  • Over the following months I added lots more single player content, a Free-For-All mode, and GameCenter support.  I got featured again.  (woohoo #2!)
  • I began work porting the game to mobile devices, which required completely rewriting the graphics engine and various other parts.  This took a *lot* of time and effort but should be worth it in the end.  Last month I released the first results of this effort: BombSquad for OUYA.  If you’re not aware, the OUYA is a $99 console based on the Android operating system.  I plan on releasing the game for general iOS/Android devices but want to hold off until I get network-games working.  I went ahead and pulled the trigger on OUYA, however, since it works well with local ‘couch multiplayer’ type games.  The response so far has been great.

So what’s next?

Customization.

BombSquad was meant to be totally mod-able, and it’s time to get started with that.  I’ll be releasing a series of tutorials showing how to completely rip the game apart and turn it into whatever you want to.  This should be fun.  Stay tuned.

-eric

Posted in BombSquad | 1 Comment

Ladies and gentlemen, presenting your 2011 BombSquad starting lineup!


Ok, I vote that’s enough characters for now; what say we release this thing?

Posted in BombSquad | 12 Comments

Getting serious for a moment…

Here I sit on a cloudy wednesday afternoon at Pixar with the news of Steve Jobs’ passing spreading from office to office around me, and it makes me think of how much he’s affected my life. I’m here working at a job I love because Steve bought and kept Pixar afloat through early difficult times. When I leave here in a few hours I’ll listen to some music or read a bit on my phone during the train ride home, or maybe stop for dinner and watch some online videos while I eat. Then later at home I might tinker with some coding on my Mac. As a technophile, pretty much every waking moment of this day has been made possible or heavily influenced by one visionary human being.

Thanks Steve.
Rest in Peace.

Posted in Uncategorized | 1 Comment

Kronk!

Fear him.

Posted in BombSquad | 2 Comments

Hooray for ‘Splosions!

For a game with explosive devices in the title, BombSquad’s explosions have always been pretty tame; really nothing more than glowy orange spheres that pop in for a moment, grow, and then disappear.  I finally got around to pimping them out a bit though…  I find one of the keys to a neat looking explosion is to just add *lots* of random different stuff.. some sparks, some rocks, some smoke, some distortion, some scorching, etc.  Here, Spaz is kind enough to demonstrate some of the improvements for us:

Posted in BombSquad | 3 Comments

Cleanin’ the Castle

Yeah, I know; I said I was done with levels…  But there’s one I just had to revisit: Crag Castle.  That’s the goofy one that looks like two mirror-image castles up on pedastals facing each other.

Here’s my simple little model I built for it originally:

And here’s what it looked like once converted to 3d, mirrored, and added to the game:

It looks pretty decent from a visual standpoint, but the problem arises when playing on it: all the neat organic lumpy imperfection in the model starts to detract from the fun of the game.  Its hard to judge relative positions of things or where bombs will land or how they’ll roll when they hit the ground because everything is so curvy.  Its also hard to judge how close to the edge of the level you can get before falling off.  Furthermore it feels a bit too large and all the contrast and bumps make it harder to pick out little objects and characters. In general, form has triumphed over function. So with all that against it, despite having spent a fair bit of time on the map, I was about to the point of chucking it in the ol’ virtual trash…

Thankfully I’m stubborn, however, and as it turned out it was nothing a bit of elbow grease and photoshop couldn’t fix.  After spending a chunk of my weekend flattening out the 3d version, filling in holes, painting over bumps, and squaring everything up, I’ve got something I’m happy with. The level is now much simpler and feels more natural to play on while still retaining a bit of the appealing organic clay goodness it started with:  Hooray; the castle is saved!  And now I really *am* done with levels. I swear.

Posted in BombSquad | 1 Comment

Sprucin’ up the Menus

I just had to share my new menu graphics.  Obviously my 5 years of art school is shining through in the modeling of those figures.

 

Posted in BombSquad | Leave a comment

Levels Complete!

I just passed another big milestone: all my maps are done.

One of my goals I made for myself when I started working on the game again last winter was to get a particular consistent look for all the characters and the maps.  When I originally wrote BombSquad I had modeled a few maps in 3d and painted textures for them by hand, which looked alright but always felt a bit ‘generic-video-gamey’ to me (example).  I decided I wanted to take the look of BombSquad in a more unique direction.

I love the look of real-life miniatures; things like stop-motion animated films or model train sets.  Even when they’re not high quality, they have that physical, tangible appearance that makes them interesting to look at.  When working in CG, whether for film or games, everything starts out geometric and perfect and it can be a huge challenge to make things look imperfect and dirty.  However, with real life models you get that look ‘for free’.  So to try and take advantage of that, I built all my maps in real life and then reconstructed them in 3d for the game, using the originals as textures and reference.  Finally, I added some vignetting, depth of field, and various other filtering to my game engine to try to accentuate the imperfect, model-like look.

Here’s some of the results:

Posted in BombSquad | 1 Comment

Smashing!

I’ve been slacking the past few weeks as far as posting goes (though ive made lots of progress on the game) so I thought I should post at least a small morsel of newness:  This little snippet shows another fun effect that’s easy to add due to the fact that all characters are already simulated as rigid body ragdolls.  Ice bombs are gonna be a lot more gratifying to use now. 🙂

Posted in BombSquad | Leave a comment