Saturday, December 31, 2011

Happy New Year all you Imps.

Zero Punctuation - Imp Hoody @ SplitReason.com
Zero Punctuation - Imp Hoody design @ ©

Friday, December 30, 2011

Doors




Well, we are in the midst of the holidays. Everyone is sick. And work is getting ready to gear up for the New Year crunch. I finally had a moment at a coffee shop this last week, while waiting for someone, and got in a quick 20 minutes on the WishfulRPG! That's the true beauty and fun of this ridiculous project. It's only 20 minutes stints.

Doors. I implemented doors.

They are a deceptively tricky game feature to do. They essentially amount to all sorts of special case code dependent on events and so forth, but this is exactly the kind of feature you want to implement to see if your game code is structured correctly.

In short, mine isn't. Yet. But I know what to fix. For now, it works, and working goes a long, long way when you are rapidly prototyping things. You are better off throwing things together quickly and getting them working, than spending hours or days or weeks pontificating on elegant designs.

Partially, this is because elegant designs unveil themselves with experience. And partially because when making digital creations, we are not making physical castles. It's easy to change things and throw things out (provided you haven't accrued too much code debt.) It's also very easy to over design something before you build it.

So doors are working, crapfully.

The problem is that all the terrain is tiles, but a tile is just a sprite that can be rendered. And there is a collision model provided by pygame. Really, what we want is a snap-together component model for game objects. That is to say, you can add on the ability to collide to an object. Or an object can be a tile. And it can be a trap. And a animated particle system. And it can play a unicorn fart noise when the avatar steps on it. Etc and so on.

So this means a fundamental rewrite and some foundation work to get a component system going for all these attributes and event responses and so forth. But I am going to put that off, and instead implement some portcullises, and sliding blocks, and triggers and other things. In a nasty and messy way. This should let me have an idea of just how I want everything to be cleaned up. So once I have some non-trivial stuff working, then we can fit it to a more elegant weapon for a civilized age. I should probably put a mob in there as well.

Tuesday, December 6, 2011

Company Killers




It's been a little while since I put up an update. I made a huge amount of progress on the last prototype, getting a nice set of basic needs features in and cleaned up. Also, I set up a local code repository so that I have some history and won't worry about making changes or losing code. More on that another day.

This is a quick post on the nature of RPGs with regards business. Part of this blog premise is that everyone -- and by "everyone" of course we refer to a small set of Games Industry people who grew up with a deep seated love for one or another great old RPG, from the most dedicated junior QA guy to the jaded exec producer who has seen it all -- everyone wants to make an RPG.

Whether the concept is the classic quartet trope of fighter-priest-archer-mage or a "innovative" romp into the realms of a futuristic science fiction "twist" never before seen that turns the RPG on its head, they are all laden with scads of items and weapons and toys and rods and monsters of every shape and dimension and hidden villages in the obligatory lava-ice-forest-desert locale.

The key word here is lots. If you indulge anyone about their pet RPG, it's almost like asking about their D&D character. "Let me tell you about my dark elf ranger...." "Let me tell you about my Japanese demon RPG idea..."

"It's got LOTS of cool monsters and LOTS of great weapons and armor and LOTS of..."

When doing design on any game, you can usually spot poor design discipline in the concept of "more is better". If something is cool, then two must be cooler. And hundreds is mega-cool. RPGs are famous for this. Diablo is one of the best examples, and in those cases it really works.

But let's talk budget for a second. RPGs have monsters and locations and items and weapons galore. Often they will add skills and spells and mounts and classes as well. Each one of these systems takes time to design. And they take art to create. And they take programmers to implement. And if you are trying to do anything more than the most basic sprites with color changes (red slime, green slime, blue slime, meme slime), then this budget gets wildly out of hand super fast.

"Oh, but Square does it all the time", you cry! And what about Blizzard!?

Well these companies have nearly unlimited budgets. And truth be told they have extremely good design discipline. There are a lot of internal checks and balances. And they are also, simply-put lucky.

The title of this post is "Company Killers" which is the Industry slang term for RPGs. They are considered company killers because they suck such massive resources that the end result rarely is able to pay back the cost of development. There are lots of stories of otherwise healthy companies that have had a string of successful (critical and/or financial) games, embarking on someone's personal RPG (or more commonly these days MMO-RPG) and that is the last project that company attempts before closing it's doors.

So grab a mug of ale, join in on the wishful RPG meme, and raise a toast to all those past companies that tried and failed and are no more.

Friday, November 4, 2011

Of Serpents And Apples




I'm a big fan of python.

It's a great language that just about anyone can learn. I often recommend it as a good first language for young programmers and for designers or professionals who express a desire to learn programming.

The language is elegant and powerful, but doesn't bog down in a lot of the typical quicksand that people get stuck in when trying to get something working. So you get a lot done quickly, and that motivates you to stay with it. It's not an ideal performance language, but it's "good enough" for most non-critical tasks...like say writing a Wishful RPG in a few 20 minutes weeknight sessions before bed.

For making games, there is a great module called PyGame. It's what we're using for WishfulRPGs.

Another great thing about Python is that it runs on a mac. While I have used every type of computer under the sun, and at work am usually limited to a specific platform for the kind of development we're doing, for my personal computer I have used Apple powerbooks for ... well since they were called the Apple IIc -- the c stands for "compact".

Years ago, I had a seminal Apple buying conversation with my friend Quinn. The topic of size came up, and the best advice was given: (paraphrased) "Get the smallest Powerbook. The 13". It's more convenient to carry, so you'll take it more places, and thus use it more."

While some of the larger ones are kind of cool, it's easier and better (and cheaper) to get a large separate monitor. That said, I never need it. And again always have a large set up at work. My laptop goes with me everywhere, and I am cozy and happy tip-typing on a couch at home or a comfy chair at the coffee shop or on the train, etc.

The point is one of convenience and joy. All those little 20 minutes sessions can add up to a lot of good creative output. In game development, the key is little iterations and experiments. You'd think that the name "game" development would tip people off to the fact that the only way to be successful is to "play".

Tuesday, November 1, 2011

In The Beginning...




Everyone has a dream RPG they want to make.

By RPG, I don't mean a rocket-propelled grenade or a pen and paper D20 clone. I mean a classic old school dungeon grinding epic arc story with a massive overworld, interesting quests, a Homeric story, infinitely varied items, complex combat system, you get the point.

And by Everyone, I mean anyone who has ever worked in video games. Perhaps I am a little biased. Maybe it's everyone in the world who has ever PLAYED a video game. Especially from the 80's.

Alas, most of us never work on such a project. There are a few left in the Industry on the scale of large 3D world quest fests. Bethesda is releasing their latest Elder Scrolls: Skyrim. Bioware is still known for huge worlds and huge stories.

And there are some amazing things that still happen on handhelds in Japan. If you move there. And speak Japanese. But there aren't a lot of places you can go to work on the latest Bard's Tale, Wizardry, Legend of Zelda, Heroes of Might & Magic, Pool of Radiance Gold Box, etc.

Still, everyone has a big plan for that huge RPG. And here's the rub, most of the stories and locales are so similar as to be hard to differentiate. A young boy, just coming of age...

In fact, if you want to see a list, here it is starting with the Sleepyhead Rule: The teenaged male lead will begin the first day of the game by oversleeping, being woken up by his mother, and being reminded that he's slept in so late he missed meeting his girlfriend.

But like a moth to a flame, the desire for singed wings brings us back.

While driving home from another late night of development, I had an idea. Knowing that I will never work on the grand Odyssey of pubescent memory, why not make something small.

How small? Perhaps small enough to finish in a weekend (not that I have weekends free), but maybe a few weeks in a row of messing about on school nights after the kids are asleep and chores are done. Maybe make each installment as a gift for someone who would appreciate a mini adventure with them at the center of it.

Thus "Wishful RPG" was begun.

Last night, I pulled down some sprite sheets, grabbed pygame, and got Link wandering around on a background. And went to sleep happy with each new idea for the next task spawning two more ideas and so on.