Month: November 2005

Comments

Well, no wonder I’m not getting any comments! I had comments set to “must register” but wasn’t allowing anyone to register! I’m setting comment registration back to off for now…if I get the occasional comment spam I’ll just clean it. I’d much rather hear from the people who are reading this blog…if they are still out there 🙂

Thanks to Chris at Convene for alerting me that comments weren’t working.


40-Hour RPG Update 3: 9 Hours

I decided to go ahead and write an editor. Writing a fairly feature-complete editor will hopefully allow me to get more and better content into the game in what little time I have.

I scheduled three hours for the editor, and worked for two. At that point I decided I needed some text, so I looked up SDL’s text handling functions. I was sure they wouldn’t take long to figure out.

Except that the SDL has no text handling functions. Oops.

Okay, the website has a list of SDL addons…surely someone has written a compatible text handling library.

Except that you can’t search the SDL website just for text handling libraries…you have to use their categories. I managed to find some, but I didn’t see any that met my needs: ie, complete, easy to integrate, fast to learn, and dirt-simple to use.

Okay, no problem. I’ll just grab the drawing context of my SDL application’s main window and use the GDI function DrawText() to put text on the screen. I’ll even get automatic word-wrapping!

Except that when I do this, the text flickers, no matter where I put it in the window update. This is almost certainly due to something the SDL main loop is doing that I have no control over.

Okay. I know the SDL works with OpenGL, and there’s a function called wglUseFontBitmaps() that allows the use of TrueType fonts in an OpenGL app. It seems kind of silly to require OpenGL support for the program just to write text to the screen, but everybody has OpenGL…

Except that when I enable OpenGL support, OpenGL basically takes over all display functions and calling something as simple as SDL_BlitSurface() causes the program to crash. I’d have to rewrite all of my drawing functions to use OpenGL instead of SDL. No thanks.

So I guess I’ll have to write my own real simple bitmap font handler. Fortunately, nine-tenths of the work has been done for me by Sol on this page (and Sol’s tutorials have been very helpful throughout this entire project, I’m going to have to send him a thank-you note).

Except…

I don’t like the included font, and Google has failed to help me find a font I like better that is in the proper format. I can legally exclude the time I’m spending getting the font system working from my project because it’s framework stuff, but the font will actually be visible on the screen, so if I make my own font, that time will count against my forty hours. Can I afford to spend a half-hour putting together an alternate font? If I do, I can use a font from an old Commodore 64 RPG like Legacy of the Ancients, which will contribute even more to the game’s old-school feel. But is that the best use of my time?

If I say “I’ll make one at the end of the project if I’ve got some spare time” then it won’t get made, because I won’t have any spare time. And I want it. So I’m going to do it. I’ll probably regret doing this around the 35 hour mark, just as I’ll regret spending three hours putting tiles together, but I want what does get on the screen to look as nice as it can.


40-Hour RPG Update 2: 7 Hours

What a difference two hours can make!

Woo!

It’s actually looking rather gamish! While I already have all my terrain types defined, I don’t have a map yet. I think I’m going to have to spend a few hours writing a map editor, especially if I intend to shoot for the moon and have an overworld, towns and dungeons.

There’s also no input yet, but that’ll come quickly once I have a map to actually walk around on.

One thing I’m realizing is that I’m at a disadavantage because I’m using C++, and not something lighter and faster to develop with like PyGame. But the whole point of this is to get my skilz up, so I’m willing to put up with it.


40-Hour RPG Update 1: 5 Hours

Well, I am now five hours into my 40-hour RPG-

Oh, so you finally decided to do some work on this project, huh?

Okay, just who the hell are you, anyway?

I’m your superego. You know, the part of your brain that nags at you constantly about what you should be doing. You know damn well that you should have worked on this project over the weekend, but what did you do? You spent the whole weekend playing Soul Calibur III!

Really. Isn’t the superego the “parent” aspect of consciousness?

Why, yes it is! I’m surprised that you-

[BANG]

AUUUUGH!

Oooh, looks like you won’t be “parenting” any more.

You…gasp…you can’t do this to me!

In the end, it’s my brain, so…yes. Yes I can.

I’ll be back! You can’t get rid of me! They’re tricksy, false hobbitses! We must have the Precious!

Yeah, yeah. Now that that’s taken care of, let’s talk about the game!

I hit my first roadblock early on. I had expected that assembling the tiles off their various pages into one tile bitmap would take about an hour. It ended up taking three hours and fifteen minutes, partially because the Angband tiles I liked didn’t have the terrain symbols I needed, and I couldn’t find any others that I really liked. Yes, I wasted time Photoshopping some tiles together when ones I found on the net could have been used. I just didn’t like how they looked, and I want this game to be as good as it can be (I also don’t want it to look like every other quickie RPG out there). I don’t think the time was completely misspent.

I was then able to work up a map structure and a tile structure so that I could start putting the map on the screen. I don’t have any map data yet, so until I get some, here’s a look at the tileset I chose.

Tiles!

You may notice that I’ve only got 56 tiles so far…I’m reserving some because I know that as the project progresses the need for new tiles will come up.

Picking the tiles also dictated a lot of the game design. I tried to pick the most interesting monster tiles I could find, and to cover the basics of weapons, items and armor. Plus, I just couldn’t help but include four spell tiles in the game; hopefully I’ll actually have time to code those spells.

My next task will be to put together the overworld map and allow the player to scroll around it. I also need to finalize what the game’s GUI is going to look like.