Categories
Game Development Games General

The First Carnival of Video Game Bloggers

There are quite a few carnivals popping up these days, and the latest one is the Carnival of Video Game Bloggers.

And for the first edition of any carnival, there are many good articles. They covered a variety of topics from the humorous, the rantish, and the serious. Posts railed against the Virtual Console on the Wii and Microsoft’s apparent hate of game players, compared game rental services, informed you how to put together your own arcade cabinet, and even educated you on the benefits of serious games for hyperactive children.

I counted 18 different posts covering those topics and more.

Categories
Game Development Personal Development

Thousander Club Update: February 19th

For this week’s Thousander Club update:

Game Hours: 262.25 (previous year) + 30.75 (current year) = 293 / 1000
Game Ideas: 616 (previous year) + 0 (current year) = 616 / 1000

I have been spending part of the week figuring out what I should call v1.0 of my Space Invaders clone. I want to finish it as soon as possible so that I can release it and immediately start working upon new features and variations. While I could continue to work on it, I would rather be able to point to a finished game and claim it is mine, no matter how derivative, than to continue to explain that I have not finished a game yet.

I had a friend try the game out yesterday, and there were no complaints about speed or controls. When I had first started, it was apparent that the aliens moved too fast, especially for someone who hasn’t been developing the game for hours. At the very least, I now know that I have a playable demo that people seem to have no problem picking up and playing.

Categories
General Personal Development

Don’t Blog Angry

Don’t Publish Blog Entries When You Are Really Angry documents the frustration Juuso recently had with software. It’s never a good situation to be in when your computer shuts down suddenly only to tell you that it seems to have misplaced your email.

I don’t know if it’s Microsoft’s fault or Mozilla’s fault (or my fault), but that really doesn’t matter. What matters is how the heck I’m going to find those emails again. I have backups, but they are few days old.

Lessons are: backup your emails, and and don’t write your blog when you are angry. I think I managed the second part quite well, it’s the first part I need to practise more.

I picked up a different lesson from his post.

Recently I got upset about unanticipated obstacles to game development I recently experienced and wrote a blog post about it. I railed against inconsiderate SUV drivers and my problems with finding parking after a snow storm.

But did I write about any lessons I learned from the experience? Is it useful to anyone other than as a slightly amusing story about one man’s struggle against the elements and latte-drinking, cell phone-using, yuppie tank commanders?

No, I just wrote while I was angry. It wasn’t very fruitful at all. Calling them yuppie tank commanders wasn’t called for either. Maybe I felt better immediately after clicking the Publish button in WordPress, but how would it help anyone else reading it? How does it help me when I read through the archives?

Why have a blog if I’m just going to post knee-jerk reactions as if I was a newbie on a web forum? I can do better.

In the original post, what I should have been writing about was the futility of complaining about circumstances and situations outside of your control. I lost an extra 15 minutes of development time due to outside circumstances delaying my ability to get home sooner? So what? The really interesting questions: what was I going to do to gain it back? What will I need to do differently in the coming days to prevent a loss of what precious little productivity I have? Those lines of thought are what you should have read.

The real lesson is that things will happen that are outside of your control, but you, as a human being, have the ability to THINK before you act. You can also anticipate that things can and will go wrong, and you can take action to mitigate those problems. Create a backup system and use it. Create a policy of only publishing your blog posts the next day and follow it. Make your plans revolve around the FACT that it will take longer to get where you have to go due to the weather.

But no matter what, don’t blog angry. You’ll be more coherent, relevant, and useful if you write with a cool head.

Categories
Game Development Games General

The Carnival of Game Production Is Back!

Once again, Juuso has put together the Carnival of Game Production with a collection of quality articles.

Featured articles include:

  • Joonas Laakso’s Wannabe game producer’s confessions.
  • Jay Barnson’s Should I Become An Indie Game Developer?
  • Paul Eres’ Principles of Playtesting
  • Vedran Klanac’s How it was made? Fire Flower
  • Jochen De Schepper’s To Flash Or Not To Flash?
  • Nicholas Savery’s The Free MMO Business Model, an Alternative to Pay-to-Play
  • Joris Pyl’s Psychology in Games
  • My If Old Games Were Made Today…
  • And a special treat: Petri Purho’s The Truth About Game Development, a game about game production.
Categories
Game Development General

Unanticipated Game Development Obstacle: The Weather

In the past couple of days, I have been putting in more hours than usual. If I could keep it up, I might actually hit 20 hours for the week. I already figured that I couldn’t, what with today being Valentine’s Day (or Singles Awareness Day, or Ferris Wheel Day, or IBM Founding Day, or whatever you would like to celebrate) and Friday and Saturday evenings have me either attending or hosting a party.

What I didn’t anticipate being a problem was the weather. I drove my girlfriend to work today, and it takes an hour to get there and back on a normal day. On top of it all, due to the snowfall that Chicago hasn’t seen in seven years, SUV drivers just can’t seem to figure out why drivers of normal cars don’t want to have to drive off the street in the snow. We just can’t seem to get the wheels to go forward when part of the street actually becomes “off-road”. How about if you would be so nice as to drive your consumer-grade tank in the snow so the rest of us could actually get some traction? Thanks.

Also, parking back at home was tough. Most spots were snow traps, leaving unsuspecting vehicles unable to move. Any good, cleaned spots were taken. I don’t have a shovel as it’s been seven years since we saw any snow that merited having one. It took me over 15 minutes to find a spot even after I got home.

That’s fifteen minutes I could have spent tweaking variables or adding a new feature or even just THINKING about what I need to finish my Space Invaders clone. You would think that the weather would mean that I would have even more time to spend indoors, and now that I mention it, yeah, I would rather not leave home and deal with having to find a parking spot later or deal with a tank rush in my neighborhood.

Categories
Game Development Personal Development

Thousander Club Update: February 12th

For this week’s Thousander Club update:

Game Hours: 262.25 (previous year) + 25.75 (current year) = 288 / 1000
Game Ideas: 616 (previous year) + 0 (current year) = 616 / 1000

On Thursday, I found The Ultimate Space Invaders Shrine which provided a lot of useful information about how the original game was implemented. I haven’t played the original game in a long time, and any games I do play are clones which may or may not be faithful ports. The Shrine had a tips section that gave me a lot of information about how the original game played. I know that the aliens had three different kinds of missiles, that the various aliens were worth different amounts of points, and that the aliens started at a lower point on the screen every level for 10 levels before starting over from the top.

My clone currently mimics the original in that the player can only shoot one missile at a time and the aliens can only shoot three missiles at once. I have not implemented shelters nor have I added a bonus ship flying across the top of the screen at random times. The aliens only have one type of missile, and the player’s missiles can’t hit it. All of the aliens are currently worth the same amount of points. The aliens can’t land yet, so if you manage to let them get past your ship, they will continue until the offset of the sprite hits some limit, and then the game will crash.

I’ve added HUD elements so that you can see how many points you have as well as the number of ships you have in reserve. If you pause the game, “PAUSED” shows up in the middle of the screen. If you shoot down all of the aliens, the message “PREPARE FOR THE NEXT WAVE!” is displayed. If you lose your last reserve ship, it says “GAME OVER”.

I am not sure if I want to make the game exactly the same as the original, and I was planning on doing a few things differently. I would prefer to have some originality in this game. For instance, instead of just starting the aliens lower on the screen and making them a little faster at the start of a new level, I could increase the number of missiles they fire as well as the speed. Maybe I might even let the blast radius matter, so if a missile collides with the ground, you still have to make sure that your ship is far enough away to be safe. Perhaps I might add new alien types with different abilities.

These are important design decisions, so I can’t just add them willy-nilly. I have to think about how I want this game to feel when someone else plays it. In the meantime, I am pleased with how well it is turning out.

Space Invaders: Now with HUD elements!

Categories
Games Geek / Technical General

If Old Games Were Made Today…

Plenty of people would argue that today’s games are influenced by yesterday’s games. For example, jumping puzzles are not as common as they once were because game developers have learned that jumping puzzles generally suck, something we wouldn’t know if game after game didn’t use such puzzles as filler. Likewise, using the WASD keys to control the game is so pervasive, no one even thinks twice about putting it in a game such as Harry Potter and the Chamber of Secrets, a game that is not targeted to hardcore audiences, the only ones who would expect to use WASD.

But what would happen if old games were made for the first time today? Would they be the same games, or would “conventional wisdom” dictate changes? Below are a few guesses:

  • Donkey Kong, Mario Bros, and Berzerk wouldn’t be considered casual enough. Significant changes would need to take place to make them more acceptable to mainstream audiences. Donkey Kong would need to throw different colored barrels that Jumpman would need to collect and match. Player clicks would dictate where Mario and Luigi should go and in what order to clean the pipes. Robots in Berzerk would be changed to colorful bugs, and the player would control the bouncing smiley face to try to save the flowers that for some reason are growing everywhere.
  • Pac-man, Space Invaders, and Asteroids would provide medals with different shapes, names, and colors. Collect all of the medals, and show off to your friends!
  • Centipede would be made into an RTS based on insects. There would be three factions, each with different abilities. Koreans would watch people play this game in stadiums and on television.
  • Tetris would feature pop music and psychedelic colors flashing to a beat.
  • Defender would be panned as too simplistic as the enemies don’t shoot nearly often enough to provide a real challenge.
  • SimCity would be considered too free form. There should be specific goals, such as destroying as many buildings as possible in three minutes or tearing up the streets to prevent the SimCitizens from getting to work on time. Also, you would need to match three Residential Zones to get the condos, not just two. Eventually politicians would blast it for providing training to terrorists since they could set the city on fire or cause an earthquake on command.
  • Jack Thompson would point to Custer’s Revenge as typical of sex-and-violence training simulators being marketed to children and takes it upon himself to “shutdown Mystique”. Sales of the game would skyrocket due to the publicity.
  • E.T. would have multiplayer modes featuring kids flying through moonlit skies and saving dying flowers. Co-op mode would feature multiple phone components strewn throughout the world. Naturally, it would be a prime candidate for in-game advertising, specifically for The Hershey Company’s Reese’s Pieces. E.T. would still be considered the worst video game ever, and I would probably still be the only person who liked it.

Any other guesses?

Categories
General

Gamedev.net is still down?!?

I sometimes go to GameDev.net for the Unix, “alternative library” (whatever that means), and beginner discussion forums. At the very least, it is a good source of technical knowledge, and I love perusing the archive of articles.

But for the past week, the site has been down. If you go to the website, you will be greeted by some ravenous humans getting ready to devour a subdued and near-sighted rhinocerous, and the following note:

We detected an attempted malicious attack on the site and have decided to take the site offline to assess any impact. GameDev.net will be back online as soon as possible.

How rough an attack could it have been? I know that they use Windows-based servers and ASP-based scripting, but I would think at the most a day or two of downtime would have been enough to fix whatever issues they are encountering. Clearly something more nefarious is going on…

Categories
Games Geek / Technical General

Every NES Game on eBay

A friend of mine sent me this eBay auction for every NES game ever made, including the NES system.

Besides 670 officially licensed NES games and the NES system, you can also win the unlicensed games, ROB the robot, the Power Glove, the Power Pad, and a number of other accessories.

Normally I wouldn’t give much thought to an NES auction, but as of this writing the bidding is at $4,550.00. Eep!

I already have the two Wizardry and Zelda games listed, and so I’m good for now; however, if someone in Chicago wins this auction, I would have no problem hanging out to play any number of the other games.

Categories
General

Thousander Club Update: February 5th

For this week’s Thousander Club update:

Game Hours: 262.25 (previous year) + 21 (current year) = 283.25 / 1000
Game Ideas: 616 (previous year) + 0 (current year) = 616 / 1000

I finally hit the point where I needed to refactor and abstract some of my code for the Space Invaders clone. When I tried to start with abstractions, I didn’t have the mental agility or experience to tell me what I needed. Now that I have some concrete code, I know what is working well and what needs improvement.

Until now, my aliens, my bullets, and my ship were all KrSprite objects. In the Kyra Sprite Engine, each sprite holds its own position data as integer coordinates, and so I just used that data to handle movement. It worked fine, except that it wasn’t very precise. If I wanted to move an object by 10 pixels, there was no problem, but if I wanted to move an object 10.1 pixels, I woud lose that precision. The end result was jerky animation and a feeling that there was a lack in the control scheme.

I never liked the idea that my physics code was dependent on the graphical representation, but it worked well enough for me to concentrate on implementing missing features. One of those features is to get the aliens to slow down to a sane speed. To do so, I need to get more accurate updates, which requires a separate set of position variables. It seemed like it was time to create the general-purpose Entity class.

The Entity class that I originally wrote for Oracle’s Eye Prime involved State and Action objects. I didn’t need anything nearly so complicated. An Entity just needs to hold a position and the sprite. In the future, I may abstract it to use a general-purpose Representation, but that’s only because I don’t like the idea of having to include the Kyra header for this class. I’ll abstract it further when I need to do so, but no sooner. I seem to have more success with the iterative changes. B-)

Now that I have this Entity object, I find that the animation and movement can be slower, smoother, and easier to tweak. I can now specify movement speeds in terms of pixels per second instead of using arbitrary numbers that appear to work well.

I started out with updating just the player’s ship. Everything else gets a delta of zero, which is kind of surreal because the aliens still fire bullets at random. The bullets are also frozen in place next to the aliens. Anyway, the player’s ship used to move very quickly between frames, taking a little over a second to travel the width of the screen, but now it takes longer to travel from one side to the other.

I did the same thing with the bullet movement, and finally I applied it to the aliens. Now everything moves at much saner speeds, and I can easily tweak to get the right balance between the ship’s speed, the various bullet speeds, and the alien’s speeds.