Archive for July, 2006

Too much to say, so I drew a picture

Wednesday, July 26th, 2006

When you haven’t updated in a long time, and you have a lot to say, where do you start?

Apparently you don’t say anything, and you put it off. Or you invent some random topic and post, but that’s only when you’re in a weird mood. OK, some friends inspired me to draw a picture, so lets talk art. Art, and what I’ve been investigating for a 2D art pipeline.

What's up?

And there we have it. It’s been called a radish, it’s been called a Potato Warrior. Cool. It’s my usual routine of vectoring a sketch in Paint Shop Pro X. Tracing around edges with a pen/polygon tool, and picking a nice line thickness. Simple and quick.

The rough sketch was done in Sketchbook Pro. Not that Sketchbook Pro does anything special for you that other software doesn’t. It’s a sort of “nicety” program that does a lot of things conveniently. So when I save a file for the first time, it automatically by default has the name of the last file I saved, +1. “Sketch096.tif” for example. It does sub-pixel tablet pen positioning, for nice smooth non pixel rigid lines (which is however, a useful feature of Paint Shop Pro for pixel art). Photoshop probably does that too, but I grew up with PSP. All it’s menu’s are radial stroke menus, so you click an option, and your options appear around the pen. Then you just stroke the pen in the direction you want for the respected option. Neato. Really, as I’ve said, it’s just a very convenient program.

Pipeline! Up until recently, what I’ve been doing with my textures is making 512×512 image files in Paint Shop Pro X. Using as many layers as I need, raster or vector, and saving my originals in the “.pspimage” format. Then, for bringing them in to the game, using the built in PNG exporter, which conveniently remembers the last directory I exported this image to (so long as I save my file). And that process actually works great for static images (textures).

Part of what I’ve been exploring with the game and engine is something capable of utilizing 3D hardware to create a 2D game, with groovy 2D physics (yes, groovy). We’ve had a custom Blender exporter for quite some time, and we’ve used Blender for building static elements, and backgrounds. We build our static elements in 3D, often boxy shapes so we can extrapolate our collision (everything that crosses the z axis if flagged becomes a 2D collision polygon). Blender also lets us arrange several “layers” for parallaxing effects, without the need for specific tools. Unfortunately, for dynamic objects (i.e. the groovy), Blender and the way my physics work don’t mesh. So we have our custom object editor for building our 2D collision, and building an aligned 2D mesh. To make these 2D meshes dynamic, we use a sort of dirty bone like system where vertices are weighed to a pair of points in the collision, to calculate an orientation. And for the early Spider stuff, this was adequate, and we’re finding many neat looking uses for this. But even for as dynamic and cool looking as physics is, there’s something to be said for the added detail and predictability of an animation.

Animations then. 2d animations to be exact. I’m sure this part would better if I had a cool animation to show off, but I’m trying to find the right software for me. Since I’m the Paint Shop Pro nut, I started with Animation Shop, the cheesy “gif animator” that came with pre-Corel versions of PSP. It’s alright software, if you liked the Paint Shop Pro 5 interface. It does onion skinning, but no layers (yeah yeah Photoshoppers with your Image Ready, quit yer laughing). Not to mention, like Paint Shop Pro, it’s brushes are pixely in the low resolutions. It’s usable, but so is MS Paint without any means of testing your animation.

So next up in my quest to find the right 2D animation software, we hit Plastic Animation Paper. PAP is a little piece of software I’ve been fascinated with for years. It’s interface is very much like Sketchbook Pro. Simple, flexible, and nice smooth lines. Good for sketching roughs. Unfortunately, it’s pretty noticeable that it uses a software renderer for display that lacks alpha. You can see this in the layers and blue/red pencil modes, colors that are nearly white aren’t transparent, but colors that are fully white are. Much like single color transparency paletted graphics in games and on the web. It also has a relatively new rotation tool (in the expensive version of the software), which unfortunately is really slow (2fps?). However I still think it’s great for roughs, as the interface is very configurable and a simple matter of strokes like Sketchbook Pro. The full version exports to a large number of image formats, and seemed flexible enough to set up export directories. But you’d still have to bring the assets in to another application to color them.

Finally, where I’m at right now is a piece of software called ToonBoom. I considered checking this one out in the past, but it was a bit pricey. Thinking a lot about my process lately, I decided to check it out again. Well well, it’s apparently on sale for $250. And not to mention, it comes highly recommended by Mr. Theoretical Games, who posted some interesting demonstrations in weeks past. What really inspired me to go back and look at it were tweens. I toyed with TweenMaker some time back. TweenMaker is neat software that generates the in-betweens. But the problem is you need to draw you parts the same way, as it uses the strokes to calculate the in-betweens. Technically cool, but I don’t think it’s process I’m looking for. There was also Moho, which was cheaper ($99), but … well… I’m really not sure. OK, you know what? ToonBoom has a printed manual. I have a thing for technical books, that’s what sold me, OK!? Erm… Alright.

So back to ToonBoom. Alright, so it’s more than the book that sold me. It seems to be completely vector based, so exporting native flash vector, quicktime video, and image files (what I care most about) is at my disposal. Speaking of the image exporter, a huge nicety, it exports transparent PNG files (Millions of Colors+ it’s called). That and the rendering configuration are the technical pipeline related reasons I adore the program. The camera options are simply the resolution in pixels (512×512 pixels in my case). Easy. I type that in, and I’m ready to render usable PNG files with the outsides all nicely transparent. It also does in-betweens via linear interpolation and a bone structure. So unlike TweenMaker it wont calculate the in-between art, but in-between positions seem fine to me. After all, I’m also here because I want an easy way to make a 4 frame animation look better.

And then there’s those little interface things that make me go “… oh, wow, holy shonk!?!”. The biggest “shonk” would have to be, work area rotation! Yes, unlike Sketchbook Pro and Paint Shop Pro, because everything is vectors, I can non destructively rotate my view. It’s been a long time since ALT and CTRL together have made me smile. Also, there’s the grid. It’s not just any grid. It’s a 2D grid with an origin, and numbers along each edge. Sure, nothing fancy yet, but it also has diagonal lines going through the origin, and like the edges, they’re also labeled. A very slick design that doesn’t get in the way, and saves you from having to look at the nearest edge and trace your eyes across to find out what numbered line your on. The vector tools more or less work as I’m used to as well. But one nicety over PSP is the paintbrush vector tool. The paintbrush is your means of doing variable thickness painting, and it works like a pressure sensitive digital paintbrush. What it produces is a vector outsides of the shape you drew, with the insides filled with your brush color. So in other words, unlike your normal fuzzy brushes in the paint packages (PS, PSP), you get a nice clean antialiased edge from normal painting. I suppose it would be nice to have the flexibility of the normal vector tools, where you can move the control points of the spline, but also control the line thickness, but I’m sure there’s some design issue why a combination spline/line thickness tool isn’t in there. Coloring is very cool as well. As expected, you use a flood fill paint bucket to color a region. But that’s exactly the point, it colors regions. Regions being any area broken up by lines, or strokes (invisible lines). Adding shading/shadows becomes really clean then. You simply add a stroke or series of strokes that cross edges creating closed regions. Then you paint bucket each region, and you’re colored. Very cool.

So from all that, I was sold. The thing is, it’s also a fully capable application for compositing and layering scenes elements in 3D, with camera controls too. Not that it’s anything I’ll be needing any time soon, it’s quite encouraging. I’ve barely scratched the surface, as it has a solid librarian content management/organization tool built in. It’s no replacement for SVN or Perforce for backups, but when it’s as easy as dragging files in or out of a window to get assets, the process really flows.

OK, so obviously this analysis of tools for a 2D game art pipeline has gone off on a bit of a tangent. I’m still getting a feel for ToonBoom and all it can do. While at first I was strongly considering the old favorite of mine Plastic Animation Paper for roughs, a tutorial I was doing with ToonBoom actually suggested using the paint tool on a pseudo separate layer for roughs. It actually seems to work well, and not to mention, keeps you in the same app for all your animation needs. Now if it could only export each part you build as a texture, and the positions/scales/orientations of each part per frame in a readable format… Haha, that’d be too useful.

Alright, I’ve had my fun.

Teenage Indie Game Dev Ninja Turtle

Saturday, July 22nd, 2006

I guess I’ve been involved in games a long time. Doing “amazing” things with “PRINT” on the Commodore 64 at the age of 9, and promoting a cheesy Zelda/Final Fantasy hybrid online at 16. Just to give some perspective, the year was 1996, and the game was called Legends of Tidal, a game the Internet has forgotten. Then there was all that game industry experience, but *pshaw*, nobody cares about that.

Looking back, while most kids were out doing what kids do, I was busy being fascinated with and making video games. Inventing concepts, characters, scenarios, a healthy creative mind at work, with programming and art mixed in for good measure. Sure, they were Final Fantasy clones and 2D plaformers, but *I* thought they were cool.

Before the Internet really took off, the tech savvy of us communicated through BBSes, that is, assuming we communicated at all. Being the computer geek I was, that didn’t really make me all that social. I was never (much) the kid that never talked, but I was certainly not the corner stone of social structure. A topic of the social structure perhaps.

As expected, I made friends in BBS land. Mostly others interested in game development or even the demo scene. And for times, I was part of demo groups and pseudo “game company” alliances with friends. I look back and laugh remembering how much of a nervous dork I was anticipating the first time I attended a gathering of our “demo group”, but hey, I must have been 15, and not part of the social structure.

And a side note, I still get a kick out of every awkward aspect of Real Life and aliases. Referring to real people as Dragon, Narfy, Llama, and Tsu amuses me to no end. Even that pause as you attempt to remember Tsugumo=Jeff, so you don’t look like a complete jackass in front of those not in the loop, priceless. :D

But the point I’m trying to get across was BBSes were personal, in that you’d show your projects to remote friends in much the same way as local friends. Directly. I’m not saying you couldn’t spam people back then, but in my experience back then, you didn’t. It generally felt different. After all, you could be merely be 30 minutes to an hour drive away from everyone in the community. Then came the Internet. While the Internet can be personal, it’s also global, mass market, and when you had a presence, it seemed you were more than an individual. This post, as far as scale is concerned, is addressed to all that trip over the internet and find their way here. It’s structure isn’t how I’d talk to an individual. Again, it’s not that you couldn’t do this before, but finding many like minded individuals on niche topics wasn’t common. When we as game development kids stepped in to this brave new world, everything changed.

Being on the net was huge. We suddenly gained the ability to market our products. Not with money, but net presence, word of mouth, and links. It wasn’t until then we began to think of our products as products. Promotion up until now was merely showing off to friends.

In learning to promote, we were suddenly creating and promoting two products. The first product for many became our brands or “company” identity. We’d design fancy-ass websites with Comic Sans MS, Photoshop Lens Flares, and animated Gif’s. And second (or 3rd, 4th, …), we’d promote our games. We’d hack in screenshot taking code, convert them to Gif’s, place them on our websites. Shortly after, we’d contact people to get us listed and generally get the word out.

Then came the chores. You’d want to update your site regularly, to reassure your fans that you’re making progress. But truth be told, you weren’t a “real” game development operation. It was a hobby. Lack of progress often frustrated you. And this is where many projects died in extravagant “hard drive crashes” or other horrific top secret events.

What started as a mere few good game development weekends produced something cool, then you got all caught up in promotion. There was never any game development structure, we were just having fun. After the game was somewhat playable, promotion was the new fun thing. You’d get a good feeling every time someone linked you, and an even bigger feeling when someone had something good to say. It was the chore tasks of game development that we procrastinated, thus having many games never go beyond the “tile engine demo”.

In retrospect, it never mattered. ’cause hey, you’re a kid, and you should be doing something fun. You’ll do the boring when you grow up and get a job.

Now if only we realized that back then. It could have saved all those months of being annoyed with yourself for doing nothing, in attempts to motivate yourself. That way, we could have focused on whatever random project you wanted to try this week. And after a few years, we’d have had lots more little things. And not to mention, know more about game development.

Beh… kids.

PuffBOMB Concept Art 2003-2004

Saturday, July 22nd, 2006

Due to the request of a compilation Classic PuffBOMB will be a part of, I’ve collected various bits of concept art and sketches from 2003 and 2004. Given that the game was a solo effort, and completely dependent on my art skill, it’s no “Art of Warcraft 3″ style giant happy book of fantastic reference doodles. No sir. Instead, it’s just 4 collections of “learner artist” scribbles depicting some sort of character evolution.

And here they are.

2003 Concept Art
(i.e. that old PuffBOMB)

2004 Concept Art
(i.e. how that newer character evolved)