Tuesday, August 25, 2020

Deploying JavaScript Game to Steam, App Store, Google Play, and PWA

As time has allowed over the past few months, I've been experimenting with Paco and the Tumbling Seed Box to take advantage of various open source technologies like Cordova and Electron so that Paco can play on multiple platforms. Using Cordova, I can package the game as an app for both the App Store and the Google Play store. Using Electron, I was able to build standalone versions of Paco for Windows, Mac, and Linux.

One of the first issues I ran into is that both of these tools are unable to build for all platforms from the same development computer (with the exception of Cordova being capable of building both iOS and Android versions on a Mac). I wanted a solution that allowed me to build the game for all of these platforms without me having to bounce between computers. Even better, I preferred a solution that allowed me to invoke a command from the game code base itself to build for any or all platforms regardless of what platform I am presently using.

So I created a packager project that runs as a nodejs express server with built-in relays to handle requests depending on the platform it's serving from and pass along those it can't handle to another server. Running this service on a Mac and on a PC provides game-packaging services for all the current platforms I've built support for. From Paco's game development project, I can run something like "npm deploy:steam", which packages the current version of the game into a zip file and sends it to the PC. The PC in turn recognizes that it is unable to deploy to Steam (Windows seems to have issues with ".app" Mac files) and passes the game zip on to the Mac. The Mac recognizes that it can't package for Windows, so it leaves that to the PC and builds the Mac and Linux versions using Electron while the PC builds the Windows version and sends it to the Mac. Once the Mac has all three versions ready, it ships it off to Steam using tools from the Steam SDK.

In addition to the above, I also set up the packager to deploy a PWA version to the website. I'm still working on the hosting website as time allows, but you can enjoy the current progress and see the four targets at https://town.gopherwoodstudios.com/store/paco.html

Each platform and store has its own quirks, but I'm hoping that this process will separate those issues from the game itself and make deployment of future Gopherwood games a bit simpler, allowing each game to reach folks on the platforms they prefer as well as making game updates and fixes go a little quicker.

Monday, May 11, 2020

Paco and the Tumbling Seed Box

If you haven't been following Paco on Twitter, you may have missed out on some progress I've made with his tumbling seed box. Why does an imaginary bird have his own Twitter account? I have no idea, and he's not telling me why. He can't. He's imaginary.

In any case, the tumbling seed box tumbles! Check it out and try the preview. If you run into any issues, let me know! (Comment below or email Gopherwood). Currently it is only available as a progressive web app on our admittedly bare-bones game-hosting site. More plans are in the works to target additional platforms and prettifying the site, but right now it's a mystery (aka unfinished).

This is a self-funded, passion project of mine to create fun games that are reminiscent of what you might find in a child's storybook. Thematically, I also thought it would be fun to highlight endangered animals and use them as characters in these games, since, you know, our business is named "Gopherwood" and our logo (if you cross your eyes just right) is an ark. It seems fitting. (Related, I found inspiration from Joel Sartore's work with The Photo Ark - highly recommend checking it out.)

Paco is the first character and game to come to life from this idea. He's a Puerto Rican Parrot with three chicks that he's trying to feed. Yes, I know Puerto Rican Parrot chicks aren't yellow or red... ...I took a few game-design liberties: it'll all make sense when you play.

A big thank you to ARBIMON for recordings of actual Puerto Rican Parrots chattering. Adding their vocal ambiance to the game really brings it to life.

Also, thanks Todd. Your advice was critical.

One final note: this title captures a lot of the game-play from one of our very first games, Sand Trap. I go into a bit of the evolution here if you want to see a few early designs (with awesome prototype art).

Hope you enjoy the game!

Wednesday, May 06, 2020

Control the Mission at Mission Control

Bzzzz .... Come in Mission Control. This is Boop. Satellite parts are falling from the sky. I repeat, important stuff is falling from the sky: please advise. ... zzzzt.

Read the above in your best Mars rover voice, and you'll have an idea of what's going on inside my head when I play MISSION CONTROL. This is the last of the set of games we created for Ready Jet Go! Space Scouts. Players are tasked with putting together a control panel that covers everything from sucking up recyclables, to exploring Mars, to saving broken satellites.
Boop's magnetic personality really comes in handy.
I would post a picture of Gopherwood Studios's Mission Control where we succeeded in our mission to bring you Mission Control, but Todd's desk is too messy. (Todd, I'm writing this, so you have no platform to talk about my desk.)

In Mission Control, players add controls to a control panel to control Jet 2 (a robot), Boop (a Mars rover), and the Propulsion's spaceship (I don't know its name... ...let's call it Claire). Once the control panel is built, players use the panel they've created as the input controls to move around the map and complete goals.
Claire tidying up with a tractor beam.
That's it!

Or is it?

No, also, there's a satellite falling apart and asteroid vortexes, but you'll have to play to see what that's all about.

Jet 2 recycles... not like those other robots that litter the landscape with trash cubes.
We worked with Miles Tilmann to bring Mission Control to life (you might recognize some of his other work at PixelJam: it's fun too). Mindy was also a great help: with her eternally chipper demeanor and great all-around attitude, you two will get along nicely completing all those missions.


Friday, May 01, 2020

Food Farmer Forever!

Do you love to garden? Do you wish you could grow a garden inside? Do you get impatient waiting for your vegetables to grow? Do you wish you could click the clouds so they stop blocking the sun's life-giving rays? Do you want to shrink into a tiny version of yourself to see what you're growing up close? Do you want to plant a garden on Mars? What about Mercury? Do you like eating carrots that are just as big as you are? Do you want to earn badges like "Prize Garden" or "Tons of Tomatoes" to honor yourself for your clever gardening skills?
Enough carrots to make 314 miniature carrot cakes.
If you answered "YES" to any of those questions, then we've created a gaming experience you will love: Food Farmer! You'll get to grow a variety of plants on a variety of planets. Woah.
Martian potatoes are the best potatoes. - Mark Watney
Each planet serves up it's own challenges: Earth provides rain, but Mars and Mercury require a full-time gardener on the watering can. You'll never run out of sufficient sunlight on Mercury, but you'll want to avoid giving your garden too much and cooking your vegetables before they're ready! Somehow aphids and bees made it into the Martian and Mercurian greenhouses: bees are super-helpful, but keep an eye on those aphids...

A big thanks to Miles Tilmann for his work in developing this game, and it was a pleasure working with PBS KIDS and Wind Dancer to bring this game to life! Check it out and let your kids play too.

Monday, April 20, 2020

Amazin' Amazon Adventure!

Todd and I have a lot in common with the Kratt Brothers. They're brothers and coworkers. We're coworkers. They love going on world-wide adventures to show animals to kids. I have a dog. Their cartoon selves have the coolest gadgets. Our cartoon selves would have cool gadgets if we had cartoon selves. They wear blue and green. We wear blue and green sometimes, too!

With that much in common, we were super-honored to help create Amazin' Amazon Adventure, a game about creatures, their unique creature powers, and the triumph of good over evil! (Stop stealing innocent creatures, Zach.)
For those who have followed us for some time, this may be a bit of déjà vu: back in 2013 we created Monkey Mayhem, another Wild Kratts title where the brothers navigate the Amazon Rainforest. Both games are 2d platformers set in the Amazon with characters using their Creature Power Suits to navigate an obstacle-filled jungle. That said, the direction on this most recent game focuses on more action-based activity and exploration, whereas the first was more about solving puzzles to make forward progress.
Ah! You're downside up!
We also took level generation to the next level with this title. Each level is a grid comprised of up to 20 unique level sections to create a unique experience with each play-through (unlike Monkey Mayhem, which had 3 unique sections per level). In addition to the variety of level pieces, the number of obstacles increases as the player progresses through the game, ramping up to a final generated level that makes use of all the player's creature powers.
From the top of the canopy to the bottom of the river, lots of Amazon to explore!
We had fun designing this game with the Kratt Brothers team and PBS KIDS, and we hope you and your kids enjoy the game and learn a bit about the amazing creatures in the Amazon along the way!