Eric Yu

Other Projects

What have I been up to recently?

A Mouse in the Lion’s Den: My First Game Jam

A screenshot of the first level of our game, Mouse House

A screenshot of the first level of our game, Mouse House

Throughout my years at Carnegie Mellon University as a student, multiple jams and hackathons were advertised to us as a way to show off our skills in a 24 or 48 hour window.  During my four years I never really did one for fear of not having the abilities to make an app, though the idea of staying up 48 hours never really appealed to me as well. I did do an Animation Jam and produced an unfinished 3D animation with some friends, but I considered that my only one for the time being.  However, I learned that jams weren’t supposed to be places where you make quality products; instead, they are intended to be places for you to learn and test your skills in a limited time window, creating something that you care about. With that in mind, I prepared for my first Global Game Jam.

The Global Game Jam is an annual challenge that takes place worldwide where the objective is to create a game in less than 48 hours.  Our location took place at Carnegie Mellon, in the newly constructed Tepper Quad. Now that I was out of college, I didn’t have weekend assignments to work on, so I thought to give it a shot.  Plus, I’ve been working in 3D art for awhile, so I thought this was a good way to test my abilities. So, my friends and I formed a group made up of artists and programmers (a few of whom could do both, myself included), and joined the battle.  I went with the intention of doing game art, whether it be 2D, 3D, and anything in between.

Each Global Game Jam every year has a theme, and the theme this year was “What home means to you.”  There was much talk amongst the team, with ideas including a dark story based game, a tower defense game, and a Shrek based game.  I was a personal fan of a game which took the idea of safety in a home and reversed it, but in hindsight I realize that many people probably had that same idea.  Eventually our ideas strayed to animals, who had to build their homes from simple everyday objects. At one point someone said “What if a mouse had to make a bed from, let’s say, matches and cotton balls.”  We all immediately latched onto that idea, and thus, the mouse platformer was born. Platformers were doable in a 48 hour session, and gave the artists something cute to draw, and the programmers something interesting to code (like the feel of the wall jumping).

We decided to use Unity as our main game engine, with 2 programmers and 4 artists.  We unfortunately didn’t have a musician, so we decided to use royalty free music online.  Many of our artists were skilled in 2D, but we thought it would be visually interesting to make a 3D background, a la Paper Mario.  Plus, that would help our 2D artists concentrate on making multiple assets and sprites for the foreground and animations respectively.  One of my other team members had experience in 3D modeling, which freed me up to focus on texturing the assets, instead of doing both, taking twice the amount of time.  I naively thought that this would prevent me from pulling any all nighters.

Immediately something I had to figure out was how to reconcile a 3D background with a 2D foreground, especially when the style we were going for was inspired by books we read from when we were kids, around the early 2000s.  Paper Mario made everything out of cardboard and paper, so maybe we could try that? We went through a bunch of 2D art from various books and illustrators before we compiled a list of sources whose art we liked, including art from Animal Crossing, Good Night Moon, and Clifford the Big Red Dog.

Above, the first three images are inspiration we had for the artstyle of the game (Animal Crossing, Paper Mario, and Goodnight Moon). The fourth image is concept art for our game, produced by Xiang Luo, one of our illustrators.

My attempt at making cartoony furniture, using art provided by my illustrators and some of materials in Substance Painter.

My attempt at making cartoony furniture, using art provided by my illustrators and some of materials in Substance Painter.

 Once the 2D Concept Art was made, I used that to dictate how my 3D models would be textured.  However, I have mostly up to this point textured stuff realistically… so how could I make the 3D models look like the background of a children’s story book?  After some research, I came up with some ideas:

  • Use mostly flat shaders, especially since most stuff in the backgrounds of cartoons and books are cel shaded, or use…

  • Paint, watercolor, or anything with texture.  Maybe painting the UVs with a watercolor brush could enhance the effect

  • Augment the model with 2d drawings from the artists, like how Blizzard handles pictures of heroes in Overwatch

In reference to the last point, I originally wanted to 2d artists to help texture the assets, but given their amount of spritework I quickly decided that only a few paintings and patterns would suffice.   And thus, I went to work.

The UVs and texture work of the assets were done in Maya and Substance painter respectively. However, everything would need to be laid out in Unity, which I had, maybe a couple Lynda tutorials worth of knowledge on?  Still, part of a jam is not only testing your abilities, but also learning new ones on the fly. And thus started my trial by fire in Unity, specifically on texturing and shading.  I originally wanted to do Toon shaders, as I wanted outlines on the assets to make them appear 2D. I tried a variety of plugins, such as Toon Shader Free, but the issue I found with them was that they worked really well with round objects… but not so much with rectangular ones.  This was a problem, especially since many of our assets relied on being low poly and rectangular.

So instead, I decided to look into Cel shading, with plugins such as Post Processing Outline Effect and Cel Shading from the Nasty Old Wizard.  This gave a nice effect, especially with the hard outlines of the shadows reminiscent of cartoons.  However, when comparing it to the Standard shader, the default in Unity, it didn’t really offer a much better aesthetic.  Plus, you needed to lower the light in the scene in order for any effect to be scene; the default light makes the scene entirely white since it was too bright!  So, we just went default.

How it looks with the Standard shader…

…how it looks with Toon Shader Free…

…and how it looks with the Cel Shader from Nasty Old Wizard.

What happens when you increase the width of the stroke with Toon Shader Free…

What happens when you increase the width of the stroke with Toon Shader Free…

The kitchen, laid out in Unity…

After many colas and chips were consumed, we started reaching the endgame.  I was UVing and watercolor painting as many assets as I could; as it turned out, the amount of items we wanted for the background was a bit more than I could fit into 24 hours, and as a result, I cut a few of the smaller and more inconsequential background assets.  In addition, I was helping the Unity developers place the 2D sprites into the game with their corresponding colliders, which is something I’ve never done before. After a few panicked chat messages to the developers, I was able to get it done in an hour. Other features weren’t so lucky.  We planned to have 3 playable levels, but we scaled it down to two at the halfway point. Close to the end, we had troubles with the final level, from the cat animations to problems with the pause menu to invisible blocks. In the end, we submitted what we had; a working first level, and a second work in progress one.  Still, we were proud to have something we could show to others.

Soon it was time to show off our game.  It’s always scary to present your game to other people, especially when certain elements went unfinished.  Still, feedback is necessary in order to improve yourself as an artist. As people came by, they commented on a few things.  Many liked the feel of the controls and jumping puzzles in our game, though some thought that they should be able to play with the D Pad, something we hadn’t implemented yet.  Another thing I noticed was that people would try to jump onto background objects; perhaps it wasn’t intuitive enough that 3D objects were in the background and 2D were foreground objects.  This was definitely something to keep in mind.

20190127_173611.jpg

All in all, this was a quality experience.  I’d be lying if I said it was a painless experience, but I’d also be lying if I said that I would never do it again.  Among the things I learned:

  • I probably needed to communicate more.  I was relaying things in between the artists and programmers a lot, but I guess with the time constraints we both assumed that we were on the same page in terms of art and game mechanics, which became a problem several times when we got together to share our progress

  • Think more on everyone’s strengths.  Not only did we have no musician, but I was the one of the only ones who was comfortable in texturing; one of my other friends could do it to but had his hands full with programming.  I did think we did a good job with relegating tasks, but there were times where I wished I had a hand.

  • Plan for something, cut out the excess fat, then when you’re doing it, and be prepared to do at least 50% of it.  We had so many ideas that we wanted to implement, but they ended up on the chopping block, even as late as the final 3 hours of development.  What one should keep in mind is the core aspect of the gaming, which for us was the art style and jumping mechanic.

Still, this was an eye opening experience.  I’m starting to plan what games I want to make for the next game jam.  Maybe we’ll go back to that Shrek game...