Categories
Game Design Game Development Games Geek / Technical Linux Game Development Personal Development

LD#11: Saturday Dinner

I decided to eat a quick dinner.

LD11 Saturday Dinner

That’s a vegan pizza. Now, this isn’t a fake cheese pizza, so don’t get disgusted yet. This pizza is just made with different ingredients. It’s actually quite delicious, and it only takes 10 minutes to cook.

Unfortunately, I also found out that my fridge is leaking. I’m not sure why, but it has to have been a recent development. Luckily, the World Wide Web saves me again, and I can watch How to Fix a Leaking Refrigerator which tells me it could be one of three things.

Actually, it turned out that there was a fourth thing. The bottom of my fridge was filled with water! The best explanation is that over a month or so ago, I turned the setting down to a lower intensity, and so there must have been some condensation that I never noticed. I’ll be keeping an eye on this leak.

Categories
Game Design Game Development Games Geek / Technical Linux Game Development Personal Development

LD#11: 24 Hours Left

One day down, one more to go!

I have been adding mouse support to my game. As I never implemented mouse control before, ever, why not do so in a time-based competition?

I am surprised at how complicated it can be to support mouse input in my existing input system, but one thing it did teach me is that I think my input system design needs to be reworked. For example, if my game wants to know the status of the pause key, it has to keep track of the status and ask my input system for the current status. As you press and release keys, the input system updates an array, but the game itself doesn’t know when a key’s status is updated until it asks and sees that it is different.

Here’s my actual game.cpp code:


if (!m_pauseKeyPressed && InputSystem::getInstance()->isKeyPressed("Pause"))
{
m_isPaused = !m_isPaused;
m_pauseKeyPressed = true;
if (m_isPaused)
{
m_isPaused = !m_isPaused;
}
}
else if (!InputSystem::getInstance()->isKeyPressed("Pause"))
{
m_pauseKeyPressed = false;
}

All of that code is needed just to pause and unpause the game.

A simpler way to do it is to have callbacks. When a key is pressed or released, it will call a function called OnKeyPress() or OnKeyRelease(), and those functions can do whatever they want. If the pause key is pressed, the OnKeyPress() function can call the PauseKeyPressed() function. I no longer have to keep the state of the key in both the input system and the game.

In a similar way, mouse movement and button handling would work better with callbacks. Right now, since I don’t have callbacks, I have to make the game keep the status of the mouse and check if the mouse button had been pressed or was already pressed.

But it’s Ludum Dare. If the code wasn’t hastily put together and ugly, you were doing it wrong. B-)

Categories
Game Design Game Development Games Geek / Technical Linux Game Development Personal Development

LD#11: My Minimalist Game

minimalist

Yeah, so far I just got a window to appear. And I apparently forgot to add some way for the game to know that you are closing it, so I had to kill -9 the program. Yeesh.

Categories
Game Design Game Development Games Geek / Technical Linux Game Development Personal Development

LD#11: Breakfast of Champions

After a quick shower, breakfast!

A banana, some cereal with almond milk, and a peanut butter and raisin and pickle sandwich. I washed all that down with a glass of orange juice (not pictured):

LD11 Saturday Breakfast

Now back to the competition!

Categories
Game Design Game Development Games Geek / Technical Linux Game Development Personal Development

LD#11: Good Morning!

After spending the evening trying to figure out what to do, I went to sleep.

Some of my ideas:

  • Ikebana (thanks, Mandy!)
  • Avoid the Ball
  • Avoid the Walls
  • One Shot Space Invaders

The first one involves the Japanese art of flower arrangement, and it would seem on paper to make a good game, but I am not sure how I would go about making it in 48 hours. The last one is the idea that instead of having unlimited shots to kill Space Invaders, you get only one. You have to depend on a chain reaction explosion to kill them all, so it would be more like a puzzle game. The middle two seem the easiest to make, so I might stick with them since I need to spend a bit more time just getting my code base working than most of the other contestants.

It seems that minimalist games can sometimes be very complex things to create.

I’ll take a quick shower and have some breakfast, and then it is back into the thick of things.

Categories
Game Development Games Geek / Technical Linux Game Development Personal Development

LD#11: It begins…with dinner!

My girlfriend offered to cook me dinner for LD #11, and I am really glad she did. Otherwise, I probably would have made a sandwich.

The beautiful and lovely Mandy at work:
Mandy Makes Me Dinner

The meal. Rice and stir fried chicken, broccoli, zucchini, carrots, garlic, and shitake mushrooms, topped with chopped spring onions and nori strips, washed down with Sapporo beer:
LD11 Friday Dinner

The meal “minimalized”:
LD11 Friday Dinner

Categories
Game Design Game Development Games Geek / Technical Linux Game Development Personal Development

Ludum Dare #11

I will be participating in my first Ludum Dare competition. From the FAQ:

Ludum Dare is a regular community driven game development competition. The goal is, given a theme and 48 hours, to develop a game from scratch. Ludum Dare aims to encourage game design experimentation, and provide a platform to develop and practice rapid game prototyping.

The last time I participated in something like this was June 2005’s Game in a Day, which didn’t go as well as I expected, but I was warned properly. Still, it was fun, and I learned a lot.

The theme for LD #11 won’t be announced until later tonight, when the contest begins. Then I’ll have 48 hours to come up with a design and make a game. There are a few guides out there, such as sol_HSA‘s and MrFun‘s. Generally, to prepare for a grueling 48 hour contest, I need sleep, food, and prepared tools.

The latter is where I think I might falter. In the past few months, I’ve learned that continuing to use the Kyra Sprite Library is more of a detriment than a help. I would rather not use it for newer projects, and if I am not going to use it, I can use libSDL directly. Kyra provided a lot of functionality, such as loading sprites with named animations, dirty rectangle updates, and collision detection. I intend to go without it, especially since I would like the game to be ported to Windows much more easily, and Kyra is giving me enough headaches trying to port it to older Linux-based distros. Since I am not using Kyra, I am worried that I will spend more time trying to implement technical details than making a game. Game in a Day kind of went like that for me, and so I think this time I shouldn’t worry about a complex design. And I should make sure that any simple designs are actually, truly simple.

Other preparations for this weekend include buying kitty litter, cleaning my apartment, and buying groceries.

Keep an eye on my LD blog posts. I will try to cross-post.

Good luck to all of the LD #11 participants!

[tags] game development, video games, competition, contest, ludum dare, tools [/tags]

Categories
Game Development Games Geek / Technical Linux Game Development

Download Ryan “icculus” Gordon’s Speech at UCLUG

Thanks to LinuxGames.com, I learned that you can now download the icculus UCLUG speech audio files.

If you don’t know, Ryan Gordon is a Loki alumnus who is well-known as the guy who ports commercial games to GNU/Linux. I liked hearing him on FLOSS Weekly a few years back. You can download the audio for that show at http://twit.tv/floss8.

The Upstate Carolina Linux Users Group had a few talks, and Ryan’s talk starts around 35 minutes into the almost 3 hour audio file.

How many of you think of yourselves as game developers? Alright. A lot more of you should be raising your hands. A lot more of you are game developers than you think you are.

He takes you through a very brief history of Linux-based gaming, from Cracked.com to Loki to Vicarious Visions. He talks about Loki’s business model, which was porting existing, shipped Windows titles to Linux. I wrote about the problem with this model in Why Aren’t There More Linux-Using Gamers?, and Ryan mentions how low the interest is for people to buy the games they already purchased. He describes how Linux-based game servers became popular compared to the unreliable Windows servers. He talks about APIs such as OpenAL and SDL, which is a Google Summer of Code project.

He also talks about the false perception that Linux users don’t respect intellectual property, and false impressions about Linux users in general.

He finishes the talk by asking developers to teach other people how to develop. After all, the ability to create something, whether it is a game or not, whether it is on Windows or GNU/Linux, is great. The Q & A session at the end is also fascinating.

You can find the links to the MP3 or OGG files at icculus.org.

[tags] linux games, game development, video games [/tags]

Categories
Games Marketing/Business

Why Would You Buy an XBox 360 Again?

One of the things we talked about on the Chicago Game Developer Gathering panel was underserved markets. I didn’t get an opportunity to mention it at the time, but even if you assume that the current generation of consoles is meeting the demand, which it generally isn’t, you wouldn’t be able to play their offerings anyway.

If you don’t already own a Wii, you won’t anytime soon. Somehow Nintendo has had a supply problem for over a year now, which makes it impossible to find in stores unless you want to be that creepy person who is ALWAYS at Game Stop.
The PS3 is a great BluRay player that also happens to play a few games.
The XBox 360 and Live Arcade would be great…if the hardware wasn’t so flaky.

Seriously, 1 out of 3 XBox 360s have a hardware problem, and it sounds like someone needs to introduce Microsoft to Six Sigma. There have been reports that people have sent Microsoft their busted 360s only to get a new one back, which also ends up malfunctioning one-third of the time. Sometimes it isn’t a new one that gets sent back but a refurbished one…you know, one of the malfunctioning ones that people have sent in the first place.

And then there is Kevin, who has to deal not only with Microsoft’s support for the hardware but also has to deal with it’s so-called DRM.

The Consumerist’s Microsoft Has No Answer For Their Broken XBOX Live DRM summarizedthe story so far and allowed Kevin to gripe about his experience. See, Kevin also suffered the Red Ring of Death, and he sent the machine in and received a new one. A new machine, with a new serial number.

So what’s the problem? Well, Kevin had purchased a lot of content from XBox Live, which is tied to his ORIGINAL XBox 360 and won’t run on his new one, even though he owns it. Microsoft has done a horrible job of providing support for Kevin, too.

This new replacement console has a different serial number and as a result all of my downloaded content only works now when the purchasing profile is signed into Xbox live. Additional profiles on the system can no longer access the content. I can no longer access the content when I’m not signed into Xbox Live. So any internet issues with my system or Xbox Live (which experienced serious problems for most of last month) means I can no longer use the items I have purchased. As far as I’m concerned since the functionality I had before is now crippled my console has not been repaired.

My Atari 2600 still works. I have an original GameBoy that still runs. Is there a reason why consoles of this last generation are such a risk for the customer to purchase? You’re being asked to pay hundreds of dollars just for the system, and you have no realistic expectation that it will JUST WORK?

I was looking forward to getting a Wii, but I wanted to wait because the last time I purchased a console, I bought it one month before a price drop. I figured I would be able to purchase another game with the savings if I waited it out this time. Well, the Wii is in such high demand and has such a hard time fulfilling it that the price drop isn’t going to come anytime soon. I know some people have had hardware failures with the Wii as well, but I believe Nintendo has been better about making sure such problems don’t continue years into the Wii’s life. I have heard that there has been a lack of games for the system, but as I don’t own one yet, I haven’t done much research.

The PS3…well, I can’t recall getting excited about anything regarding this machine. I was in a Game Stop recently and was watching some kid play Super Smash Bros Brawl. I kept hearing a loud whirring noise, and when I turned to look, I realized I was hearing the PS3 on display. That thing is loud! If anything was ever a candidate for liquid cooling, this was it. Frankly, even if I was interested in any of the handful of games available for it, my wallet is protected by the Geneva Conventions for the kind of torture I would need to put it through to afford it.

So that leaves the XBox 360, which I think would make for a great system to own. XBLA alone would be worth it. Unfortunately, I can’t trust that the system I buy will actually work, especially not for the price. I only have a 66% chance that I will be able to play games on it, and that’s assuming that it doesn’t fail a few months down the road. If it does fail, I have no guarantee that Microsoft will stand behind it. I know one person who has had to return his machine 4 different times. He purchased a second machine because he didn’t want to wait for his first one to get fixed, and that machine also failed eventually. And if Kevin’s story is any indication, Microsoft’s DRM does more to lock you out of your purchases than anything else. What kind of value add is that?

With all of the problems with the console industry, why is anyone ringing the death knell for the PC as a gaming platform? A desktop computer seems the be the most stable “next-gen” platform out there, and there aren’t any supply problems preventing me from owning one. There isn’t a shortage of games, either.

[tags] xbox, xbox 360, ps3, wii, games, video games, market [/tags]

Categories
Game Development Games Geek / Technical Linux Game Development Marketing/Business

Why I Can’t Use Flash for Game Development

People everywhere love Flash. It has become the Web’s de facto standard for all manner of interfaces. From simple menus to full-blown games, you can bet that Flash is there. It has been called one of the best prototyping tools available, and game designers love it because they don’t need to be computer science graduates to use it. Most people browsing the web today have a Flash plugin installed, making it a fairly ubiquitous platform.

With all of these things going for it, why won’t I use it?

Because if I can’t even watch YouTube videos without it crashing Firefox on my Ubuntu system, then it can’t be that ubiquitous.

I thought the problem was that I was using an older version of Flash. I checked, and sure enough, there was a newer version available. I downloaded it, installed it, and put it through its paces. That is, went to YouTube and watched a few videos. Sometimes all I do is click a link to load a new page while a video is playing on the old page, and the next thing I know, I need to manually kill Firefox because it stops responding.

It doesn’t happen each time I watch a video, but it does happen often enough to be a source of frustration. Everything else on my system seems to be pretty stable. It’s just Flash support that isn’t.

It isn’t a consistent problem for everyone. It seems that when someone else updated to the latest version, it worked fine, although it did have the side-effect of hogging a lot of system resources. I’d argue that this is a problem, too, but at least it isn’t freezing Firefox for this person anymore.

Recently, Adobe announced it had joined the Linux Foundation “to collaborate on the advancement of Linux as a leading platform for rich Internet applications (RIA) and Web 2.0 technologies.” With people complaining that 64-bit Flash isn’t available and with the existing 32-bit version being too buggy for doing things as simple and as common as watching videos on YouTube, I’m curious how much progress will get made. It seems that almost everything available for Linux on Adobe’s site is “alpha-quality”, with a link to get the already-stable Windows or Mac version.

In any case, until Flash becomes more stable for Linux users, I have to look to other technologies to provide a more consistent experience across platforms. Java applets should be a better proposition, and languages such as Processing make it friendlier for prototyping. And since OpenJDK is Sun-supported, I can’t see it crashing as randomly as Flash does. Unfortunately, it seems that Java isn’t on as many systems as Flash is, and asking someone to download a plugin if it isn’t already installed is just asking too much if you are trying to attract the casual player.

I’d love to use Flash. It’s not a bad technology. It’s just disappointing that Linux support is so inconsistent. If I am going to make web games, I am definitely not going to use something that results in games that I can’t even play.

[tags] video games, game development, linux, flash, java, business [/tags]