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!

Friday, October 25, 2019

Build the Best Bases in Base Builder

Have you ever built a base on Mars, and then were all like, "Boy, I wish I could build a base on Earth too." Look no further; now you can! Base Builder offers the Moon, Mars, and even the Earth as potential building sites for all your base (are belong to us -- sorry, couldn't help it... ...and you knew it was coming eventually anyway). Watch out, though: it's not all fun-and-games (well, actually it is). There's wind, rain, meteorites, and proper architectural techniques to contend with to make sure your toy astronauts are protected and able to live, nay, flourish in these harsh environments.
I'm a world-renown builder of bases. No, I'm not.
This game captures the heart of the Space Scouts premise: a playful learning environment where you're free to experiment, make connections, and discover creative solutions to solve problems.

It's a mighty base that can withstand an onslaught of malevolent meteorites.
Try it out! And let your kids have a turn! This game was a blast to work on - a falling-meteorite-hitting-a-sturdy-shock-reinforced-astronaut-base blast to work on.

Wednesday, July 31, 2019

Ready Jet Go! Space Scouts - The Lab

It's here! A brand new app, Ready Jet Go! Space Scouts, is comprised of 5 games and an open-play lab that connects them all! Compared to previous Gopherwood Studios projects, this one was the biggest yet: we designed and developed Cooking School, Rover Maker, Base Builder, Mission Control, and Food Farmer each as a standalone game, and then created the Space Scouts Home Base, badge system, and Lab in the app itself to tie the games together and create a single fun and engaging experience.

The inception for the app started with my nearly-endless enjoyment playing with Fantastic Contraption and my fascination with Lego bricks. What if we made a game that incorporated the open-play of Lego but the more-directed play of Fantastic Contraption? Wait, what if we made a bunch of different games, but you could mix and match pieces between games to make new things? As we began working through the ultimate design for this app, addressing these game design questions and considering reward structure and educational goals, I began working on an early investigative prototype to flesh out the ideas a bit more, especially regarding an open-play experience that incorporates elements from different games.

The prototype was an open-play "Lab" that focused on a pin and strut mechanic. Early on, we found that this was a bit too clunky for our target audience and honestly quite frustrating on mobile devices. We continued to wrestle with the basic handling of game elements as the individual games were designed. Base Builder started with loose joints and floppy beams, which, after many iterations, ended with stiff joints and static beams to make game-play easier and more intuitive for our target audience. Rover Maker avoided beams altogether and went more of a building-block route from the onset: blocks snap together to create a rollin' rover.

As the game-play across titles solidified, integrating each of the games into the Lab proved to be a huge challenge. Base Builder and Rover Maker provided natural elements for the Lab, but Cooking School was an odd fit, and Mission Control and Food Farmer had completely different mechanics from the other three titles. Merging these into a cohesive whole required a bit of creativity.

Adding Cooking School ingredients was easy enough: playing with your food is fun. However, the kitchen tools didn't really have a place to be in the Lab, Gravity put them on the ground (which doesn't work well for various reasons, like the Mixer tool that outputs mixtures downward). They can't levitate like the game, because it looks odd and breaks the other games' elements in peculiar ways. Lastly, it opened new questions about what exactly can be processed by a kitchen tool? Astronaut dolls from Base Builder shouldn't, but what about Rover Maker wheels? Can they be fed into a Cooking School Chopper? Ultimately, we decided to add a "wall" block, identical to the Rover Maker blocks in functionality, but visually conveying the sense that kitchen tools could be "pinned" to them. Kitchen tools were then implemented to behave just like Rover Maker rockets and wheels: they can be attached to blocks and won't process other pin-able things like wheels.

Mission Control was tougher: it doesn't really have "pieces" of things to work with like the other titles. So for this game, I added Boop, the rover, and Jet 2, Jet's trusty robot, as items in the Lab. The Lab play area was also extended to provide more room for these two to go exploring and interact with other Lab items.

Finally, Food Farmer. Adding this game into the Lab focused primarily on the food, since we already had kitchen tools in place to process vegetables! In addition to the basic food items, their various cooked, sliced, and diced versions were added. Now players could cook their watermelon and pop their corn!

That's a bit of an overview regarding the Lab and how it came together. Check out the app and see what kind of awesome machines you can make in the Lab! I just thought of something...

Gotta run... ...I'm off to build a battery-powered popcorn-popping, five-wheeled toppling tower on the moon!