Game Development Linux Game Development

Oracle’s Eye Development: Graphical Enhancements

To continue with the improvements necessary for Oracle’s Eye, I decided I would focus on simple and quick things. On my list:

  • Shrink the Ball images to half size.
  • Create an actual sprite for the Player.

No coding for tonight, mostly. And there really isn’t too much to describe for the Ball, either.

The Ball

I just took the Ball image and scaled it so that it was 32×32 instead of 64×64. The tough part was rotating it 45 degrees at a time and putting it in the graphics collection for the Kyra Encoder. I could use the Kyra Sprite Editor to create the animation, but I found it much easier to manually edit the XML file. I already had the larger Ball, so I just changed the numbers. It was really easy, and I only had to fix a problem once. When I ran the game, the top of the Ball was cropped so it looked flat on top.

I even added some more Walls to the level. Eventually I’ll be able to dynamically load the level from a file so I don’t need to recompile for each change. For now I’m still working on the mechanics. The new Walls actually make the level a slight challenge. You can’t just kick the Ball three times and win anymore, although it isn’t all that more difficult either. Still, it is definitely a nice improvement. What is especially nice is that the Ball only spins if it is moving now. Once it stops, it stops spinning as well. Eventually I’ll change the rotation depending on which way it goes, which means more frames of animation to handle movement up and down.

I also decided to change the movement of the Ball. Instead of bouncing perpetually between the Walls, it now stops upon collision. I think handling the Ball movement will be more interesting this way, and levels can be created that take advantage of the fact that the Ball stops once it hits a Wall. We’ll see how it works out. It’s actually more of a puzzle now, so I think it might stick.

The Player

Next, I wanted to change the image of the Player. A white stick figure isn’t all that exciting. A non-animating stick figure is even more so. If he can’t move between two Walls, that would be a problem. I needed to provide a better Player.

I didn’t exactly want hyper-realistic graphics, but I realized that I hadn’t thought of an art style to use. I was thinking about making it simple for now and using a cartoon blob, but I felt it would be cheap and would make it look too much like Lolo. I wanted something that showed character but was also mine. I still wanted a cartoon feel to it, but I thought I would do well to make up a nifty character. Beetles? Snails? Pigeons?

I made a quick drawing of a corporate cubicle dweller. No reason, really. Yeah, this is all very temporary, but it is easier on the eyes, as you can see:

Image of updated Player and Ball

The Player still floats around the Room, but I figure that animating him would be premature. I would prefer something a bit more adorable than this guy. B-)


codenameOraclesEye-r97.tar.gz, 8.0 MB 8.5 MB

To build, you will need libsdl1.2 and libsdl_image. Go into source/kyra_2_1_1/kyra/engine/ and run ./make. Then, you go back to source/ and run ./make. To run, ./oracles-eye.

Only available for Gnu/Linux currently, but apparently it doesn’t take much to get it to run on Windows. Thanks, Scott!

6 replies on “Oracle’s Eye Development: Graphical Enhancements”

It’s really cool getting the play-by-play of how you made all the decisions about movement and everything, especially with the ball. It really helps in understanding what is required for a good game. Sometimes it’s a very thin line between a totally rockin’ game and a sucky one and it can all depend on whether the ball sticks to the wall or not.

Your office cubile dude reminds me of a Weeble. (Click my name for the awesome throwback toys!)

And now I sing the theme song, just for you. Ready? Ok.

“Weebles wobble but they don’t fall down!”

Words to live by.


Thanks, Kelli! Yeah, I was going to give the guy legs so he could walk, but it was getting late. Eventually I’ll decide on a more permanent character to use. Got any ideas?

Without too much risk of copyright infringement, how about a mouse? Maybe he can have some kind of spin move that doesn’t just kick the ball, but whips the ball really fast with his tail.

I just want a tail.

Actually, a mouse would work out really well. It could be a wheel of cheese he pushes around, or maybe he just gets cheese as a reward for getting the ball in the goal.

And yes, the secondary actions of the animation will involve the tail. B-) It could flick and swish and everything.

That’s great! Maybe the mouse’s name can be Flick! And if you have a player two, that could be Swish. Kind of like Mario and Luigi.

Comments are closed.