Daily Blogroll Oct 19: Time enough to learn to swim edition

If you were given six months to live, you wouldn’t spend it leveling up a new character in some MMORPG. You’d want to do something that gave your life meaning. Six months at the end of your life isn’t more valuable than six months right now. In fact, six months right now is way better. Truth is, your friends and family don’t care that you leveled a character. They care about the time you spent with them. (Fact is, it’s almost certain nobody in the world cares about your achievements in video games, and in a couple of years, neither will you).

People all around me are getting older — old! An old friend died (ten years ago! some friend, eh? but I just found out!). Another friend had a heart attack last week, nearly died. Yet another friend is getting radiation treatment on the west coast.

I discovered recently that I love life and that the world is a beautiful and wonderful place. Years ago, in the depths of my EverQuest addiction, a warm sunny Saturday just meant I’d have to keep the blinds closed so the sun wouldn’t wash out my display (maybe I would type to the guild, “Beautiful day out today!”). Now I bike, I hike, I do things. I don’t play many MMOs, and when I do, I play casually. I want desperately to live in the real world.

It was with some trepidation that I read about Damion Schubert (lead systems designer for SWTOR) and his talk at the recent Game Developer’s Conference about turning casual players into hardcore addicts. From the capsule description:

Hardcore gaming isn’t dead — all of the big ‘mainstream’ successes (WoW, Starcraft, Wizards 101, Facebook games) have a hardcore path, and work hard to convert their casual gamers into hardcore gamers. But doing so may require rethinking your definition of ‘hardcore’, and what it means in your particular game.

I still love games and I still love MMOs and I still plan to write about them — but I’ll have to enjoy the sixteen hour raids and repeated nights after nights of failures against a big boss until eventual victory makes it all worthwhile in other people’s writings.

Time for the blogroll? Sure, why not!
Continue reading Daily Blogroll Oct 19: Time enough to learn to swim edition

7DRL — World of Roguecraft: Slightly more fun than clipping your nails.

The ratings for the entries in this year’s 7DRL — 7 Day Rogue-Like — game design challenge are in, and my entry, World of Roguecraft, is in the top 95%! So grats me ;)

My game had its best scores in aesthetics (2/3) and scope (1.67/3). Can’t argue with that. I spent too much time working on the game engine and not enough on the game. Next year, I’m going to take the hint and work on my game engine ahead of time, leaving the seven days of the competition focused entirely on making a game. That’s what the winner did, and is within the bounds of the challenge as long as you note that your game is built on a game engine.

Grats to all those who successfully finished their games; some of the games are incredible.

7DRL Day 7: Content, content, content

Click to Enlarge

When I started with the 7DRL game design challenge, I’d set a timeline. I would need to get all the game mechanics done by last Sunday, so I could focus on adding content to the game, doing balancing, playtesting the game, polishing it to a fine sheen, until today it would burst on the scene like a supernova. I’d be getting piles of emails from indie game studios asking if I wanted to work on some cool projects, doors would open and angels would fly out begging me to expand the game into some monster AAA title and I….

Sunday came and went, and all I had done was my map generation and a player character and a single rat following each other around, trying not to get in each other’s way, but entirely unable to harm each other.

I managed to get the inventory system in and scatter some items around, bring a few more monsters up and give them a very rudimentary AI. That was Monday; I was so tired from that I couldn’t work on it Tuesday, and Wednesday, I watched American Idol and played Star Trek Online. I was in real danger of losing my will to follow this through.

Why? Because the stuff I’d tossed together in a hurry to get to that point was not a good foundation on which to build a game. PyGame, the graphics engine upon which my game is built, was redrawing more stuff than it needed to do. My game state was scattered all over two dozen classes. Hooks to routines everywhere.

I had to force myself into the chair Thursday after work. I started switching things around, building more, building more; I got back my momentum. When I got home Friday, I sat down and worked on it until 3AM, and got the basic mechanics FINALLY DONE. I collapsed into bed. Saturday morning — this morning — I was up at 8 coding, and by noon I was done. I’d added many different kinds of monsters, a boss battle, and a way to win the game. A dozen playthroughs had brought the game to some sort of balance.

I recorded the last of these playthroughs for the video. I decided it would be even more fun with some background music, so I spent about an hour trying to improvise something on my alto recorder. (The game has sound effects of its own, courtesy of a free sound effects site I found, but no music).

Somewhere in there, I ate brunch, if you can have brunch at 3PM. I brought the raw video and music track in Windows Movie Maker, added titles and credits, shaved off about five minutes of the playthrough because (a) it was boring and (b) it was too long for YouTube, and set it uploading. You can find it at the end of this post (unless you are reading this in Google Buzz).

Post-mortem time.

I am GLAD it’s over! But I am equally glad I did it! I’d been playing around with PyGame for awhile, but never did much more than little things with it. Now I have the confidence with PyGame to be able to move forward and do better things. My initiali design was just to make a map that looked drawn on graph paper and have toys be all the monsters, and it worked wonderfully.

I’m so pumped, now. I am thinking about a next project. I want to do another rogue-like, but a full game this time, one with a plot, boss battles and everything. But first, I’d like to check out either the Ogre3D or Panda3D engine and write a pigeon-based scrolling shooter. Scrolling shooters were my favorite sort of arcade game back in the Golden Age of Video Games — the 80s. I’ve never written one!

Anyway, full source code is at the link after the video. If you want to play with it, you will need Python and Pygame. I used IDLE on Windows, and Python 2.6 on Linux, with the pygame extensions.

So, peace, out. Back to the usual MMO fare here on West Karana :) Thanks for following along on my 7DRL this very long week!

7DRL: World of Roguecraft, Day 5

Monday evening, I understood what my game wanted to be about. Tuesday, I realized that the game was horribly, horribly flawed. Coming in, all I really knew I wanted to do was the graph paper-like room generation, and I hoped the rest of the game would occur to me as I was doing that.

And it did — it just turned out to be a different game than the one I was writing.

So my 7DRL is ending up as a game very difficult to extend. By making it graphical, and not basing it off an existing Rogue-like engine, I had to spend a LOT of time on just the basic mechanics. Writing a separate class for every monster and weapon seemed like a good idea at the time — Swords inherit from Melee Weapons inherit from Weapons inherit from Object. Though that is kind of how you would think you would want to implement stuff in an object-oriented language like Python, I think it limited me.

Well, with an evening and a morning still left to go, perhaps it’s too early to do a post-mortem on the project. The unhappy fact is that while I would love to finish this game, to do it properly I would have to rewrite it from scratch, and I just don’t have the time. Chalk this one up to a learning experience.

Day 5 of my 7DRL was all about adding combat. My penalty for dying is not harsh; you just pop back in the upper left corner, and the monsters leave you along for a little while.

The damage done by monsters is sometimes fractional because your wielded weapons add a certain amount of physical and magical damage resistance. Wands tend more toward magic resistance, and swords the physical. The idea is that, since you don’t gain xp or levels in this game, you would slowly build up nearly 100% resistance in certain areas, so when the dragon came at you and did 1000 points of damage, you’d resist 99% of it. Woe be she who drops her sword without another one handy.

Oh yeah, almost forgot to mention: the screen capture utility on my Linux box kept crashing for some mysterious reason, so I ran it on my Windows machine and captured the game with Windows Media Encoder, which worked really well! So, here’s the vid of my 7DRL working on Windows Vista :)