Wednesday, July 9, 2008

Update

I have the framework of the game pretty much completed. It is fully playable, but there's only placeholder content available. I have all the animation code completed, but only one character graphic and only one frame per animation, so it's not very pretty just yet.

Also, I have a high score table for each difficulty. The game asks for the your name as you select the difficulty, and uses it when it saves your high score. I might have it ask for your name at a different time, but I'll leave it for now.

I've made the game load its settings from an xml file, which means I don't have to recompile when I tweak the game and more importantly that my client (as I'll call the guy that commissioned me) can customize the game himself after I hand it over.

Since I have the framework complete, I've started work on an editor to simplify the content-production. So far all I have is the interface for the question editor. I think that the most useful editor I will make is the animation editor. Coding the xml for the one simple character I've made so far was tedious enough. I hope to simplify and quicken the process with an editor.

A concern I have is that all the content for the game is easily accessable and editable, which means that the game can be easily hacked. Maybe down the road a bit, I'll change the format or something and allow editing only through the official editor. But not yet.

Ever since I began work on RefLib, I've had a hankering to add a little story to it. As you progress through the game, you are hired to a new library. I think it would be fun to make each library a little more sinister than the last, the librarian a little creepier. And maybe it can vary per difficulty. The easy difficulty stays happy and merry throughout the stages, but each harder difficulty shows a little more hint at the evil underneath until the hardest difficulty that shows it all.

Anyway, thanks for reading.

clevceo

Thursday, June 5, 2008

Graphics

The graphics have come a long way. The patrons are now displayed on screen so you know how many there are. At the moment, they're each little circular guys. They walk from the right side of the screen into the line to ask you a question. As of yet, there are only three different bitmaps that are displayed for a patron, one for each mood. As time runs out, the patron gets impatient. Right now, there are three moods total: happy, impatient, and mad. Smile, straight-lip, and frown. However, I have the graphics ready for walking and talking. I just have to code them in.

Coding is the least of my worries right now. It's coming along and I'm enjoying it. It's the graphics that daunt me. For some reason, an ordinary png with transparency displays artifacts when the image is resized in XNA. So I have to separate the image into an opaque picture and a mask, then combine them with directx's image tool. It's simple enough, but it gets tedious when I have to do that for every single picture. So I think I might figure out how to automate part of it in GIMP, which is the imaging tool I use. I might be able to save some time that way.

Anyway, things are coming along nicely. Thanks for reading.

clevceo

Tuesday, June 3, 2008

Animation, Unmanaged Content

I made some major progress on the animation code. And I'm nearly done with the code that loads the animation data from the xml file. I have the structure down solid. All I have left is some touching up before I start testing it.

One thing I think I might do is support unmanaged content. That way I won't need to recompile the game every time I change some content. Also, my boss will then be able to change the content himself. It will allow for much greater flexibility.

Anyway, that's all for now. Thanks for reading.

clevceo

Friday, May 30, 2008

Update

I've made some progress. I'm working on the animation code primarily now. I have the underlying framework for the gameplay down. I'm trying to make the animation classes work in such a way that it would be easy to load them from an xml file. Meanwhile I have to create a specification for how the xml will work. It's coming along, but it still needs some time.

It's much more data driven this time around. Last time, I was planning to do the xml support later on down the road, but I discovered that it is too essential to be put off. I think that the game is all around more structured and stable than before. Once it's done, it should be easy enough to add content. I like to think I'll leave plenty of flexibility for my old boss to work with. By the end of the year, I won't be able to work on it anymore, so I'll have to hand it off. I have to do all the coding, but they can still add content after I'm gone. Thus, the coding is my first priority.

Anyway, just thought I'd throw out another update. Thanks for reading.

clevceo

Sunday, May 18, 2008

Progress

I have made some progress on RefLib. I've worked a bit on the animation code, but it's incomplete and untested. Most of the work has been on the logic. It's playable, but there's only a few different questions and there are no graphics. Nevertheless, I'm moving along so much faster this time than I did last time since I'm putting the graphics off until later.

Anyway, I thought I'd throw in a quick update. Thanks for reading.

clevceo

Thursday, April 24, 2008

I'm Back

Unfortunately, this last semester allowed me little time to work on RefLib. I was much busier than I expected to be. This summer semester, however, I've made sure I have a lighter workload specifically for RefLib's sake. Development is starting again.

After my last post, I made some more progress with the game. The graphics were improved and I'm sure there were code improvements, too, but it's been so long and I don't have the time to itemize them. However, that isn't important because I'm starting over anyway.

If you've read my Sever blog, you'd know that a new version of the graphics library has been released, and that I've made alot of progress on my own underlying framework. Thus, starting over would be the intelligent move, especially since I haven't touched my old RefLib code in a long time. Also, I think alot of my old code could use some improvement, the animation especially.

RefLib is at the top of my priorities this semester. I can't let it slide. And this time, unlike last time, I'm going to build the game logic before the graphics and other details. That's what killed me with both RefLib and Sever in the past.

Anyway, it's official. RefLib is back. Thanks for reading.

clevceo

Thursday, October 18, 2007

Animation

I've created some rough animation code that, at the moment, only cycles through each of the four patron bitmaps I've made. Thus, there are four patrons in line, each having synchronized gender changes.

There's still some work to be done on it. I plan to separate the lower body, upper body, and eyes as three separate animations. That way, I can make the upper body do one thing while the lower body walks or something of that sort. Of course I'll allow for synchronized animation where all three come together for something special.

I'm going to meet with my boss soon to work over some gameplay details. For a while there, I was getting lost in my code, but I came out on top. There's something to say about seeing it run flawlessly for the first time. Of course, the bugs show up as soon as you try something new. Nevertheless, the fact that it worked at least once is good enough for me.

Suggestions? Questions?

clevceo

Friday, October 12, 2007

In-Game Browser

I've come to realize that the in-game browser is just too impractical. There's way way too much data. Thus, I've decided to either keep the game windowed (as opposed to full screen) allowing the player to switch back and forth between the game and the browser, or having the game and browser side-by-side in a single window. These would solve the problem, but I wish they weren't necessary.

They would also save me a ton of time and frustration. It would mean a ton less code to write, so I guess it's a good tradeoff. Even though I think it would've been fun to have an in-game browser and go full-screen, it's much easier and more practical to go with the windowed-mode.

Comments? Suggestions?

clevceo

Saturday, September 29, 2007

Lone Wolf

Well, it seems I'm a one man show now. I emailed my teammate and he said he's way too busy right now to work on the game and that our third member is most likely out as well. Therefore, it all falls on me. Fortunately, I'm not too busy. Furthermore, less people == less confusion. Frankly, I'm not used to teamwork, so the breakup is welcome. Plus, all royalties go to me now. And I can now brand it as Clev.

Before we get too excited, however, we haven't completely agreed that he's out. He said he's too busy, but I don't know if he intends to find time later or what. He suggested that the game be web-based with ASP.NET instead of XNA and that I could use his server to test it, but frankly if I'm going to be the only one working on it, then I get first choice and I choose XNA. I realize that making it web-based would solve some problems we've been anticipating, but I have next to no experience with ASP.NET and I've already invested too much time into the game to drop it now.

We're going to try to meet next week to discuss it, and I hope we ultimately agree that he's out. I would love to do the project on my own. I have nothing against him. He's a good guy. But I'm just not experienced with teamwork and I can't afford to let that get in the way right now. I'll take a class on it or something later.

Anyway, I'm working on some animation helper classes now that the graphics fall on me (thank goodness). Things are looking up.

Suggestions? Questions? Comment.

clevceo

Thursday, September 27, 2007

Getting Closer

Things are going alright. No, I still haven't contacted my team, but I will do that soon. I want to have a good portion done by the time we meet. So far the main menu is functional (though incomplete), the game is playable (you can answer questions now, but all the questions are the same), and I have a line of patrons (static stickmen sprites with varying hairdos) that walk up to the desk and walk away when they're done.

At the moment, I'm learning to incorporate XML into .NET so I can load the questions from an .xml file. After that I think I might complete the core gameplay elements, such as score, promotions, difficulty, categories, victory, and so forth.

We thought it might also be fun if you could be hired to more prestigious libraries as you climb the ranks, eventually ending in the Library of Congress or something like that.

On the side, though I haven't spoken to anyone about this, I thought it would be fun to incorporate a story into the game. For example, there might be a rival reference librarian. Maybe he could be the boss at the end of the level, disguised as a patron, asking harder questions with less time to answer. A little story might add a little element of fun to a bland game.

Suggestions please? Questions? Comment.

clevceo

Sunday, September 23, 2007

Progress

Last time I planned to devote at least one day to RefLib, just to get the ball rolling. However, I put it off until yesterday. Nevertheless, I did it and progress has been made. I'm a little less distracted now and I plan to work on it daily.

I still haven't met with my team and I plan to get in contact with them soon. I'm sort of hoping our third member cops out, as she was never a concrete member in the first place and she had little experience. Basically, I don't know that we can afford to rely on her, especially when I could easily be doing her work right now. In fact, I have some ideas for how it would work and I'm quite excited about them.

As I worked on it yesterday, little things began to click and everything seemed to come together. I'm beginning to feel the same way I did about Sever.

Anyway, things are boding well. Suggestions? Questions? Comment.

clevceo

Thursday, September 13, 2007

Back to Work

Haven't posted in a while. Then again, haven't worked on RefLib in a while. I've been quite distracted. A thousand things are happening at once in my life and, frankly, I haven't been too excited about RefLib. I haven't seen any of the team members in weeks (or months? before I lasted posted anyway), and a lot of it just doesn't seem practical.

On the plus side, we have more time to complete it. For a while, I was thinking I would've needed it done by...well yesterday to be precise. But I'm taking a semester off to work and part of that work is RefLib. I'm going to devote a few days here soon completely to RefLib. I'm going to shut my door and douse myself with RefLibism. I firmly believe that my lack of excitement, and therefore lack of work, is my own fault and I plan to make amends.

clevceo

Friday, July 27, 2007

Team Trouble

First off, I've been having trouble working things through in my head, so today I'll tell you where we are on the project and the dilemmas I have.

So far, we've split the roles between the three of us and we have a general idea of how the game will play. Unfortunately, communication isn't going as well as it could, so we're not really in sync and I really don't know how it will pan out. Also, the other two have little experience in game development (one of them has made tetris with allegro and the other is a full fledged newbie), so naturally I'm nervous.

I'll explain our roles:

Our third and latest member volunteered to do the graphics. However, the reason she did so wasn't because she's good with graphics; she wants to learn graphics. Frankly, it would save time if I did it. You can't rely on someone who's still learning, especially if they're busy. I'm afraid I'll eventually have to pick up most of her load.

The second member's role is more complicated, so I'll explain. First off, we're going to load the questions and answers from an xml file. However, that's the easy part. A reference librarian performs searches through almanacs and the such on the internet, so we're basically going to create a mock-browser and a large file full of the data to display in the browser. The hard part here is collecting this data. Typing or even copy/paste is out of the question. Ideally we could use a scripting language to collect it automatically, but no one knows how. Anyway, that's his job, and he is still working on the q&a.

My role is to code the game logic. Though I previously expressed my preference to do the graphics, the game logic is even more important. I've been able to reuse a ton of my Sever code, such as the GUI, the input classes, and my state machine code, so most of my work is already done. All I have to do now is piece it all together. I'm confident that my portion will turn out fine.

I think I'll complete my portion as fast as I can so I can focus on helping the other two out. I'm afraid we might not finish in time. I never realized teamwork could be so stressful. Anyway, if anyone has any tips, please please send them my way. Thanks.

clevceo

Thursday, July 26, 2007

RefLib?

Hi. I go by clevceo on my blogs. My blogs are about my progress as an amateur indie software developer (who has yet to complete a single project). You may have read some of my other blogs. I have three others:

Clev - I hope to one day run a successful software company (Clev) and this blog is where I share my ideas of what this company might be like.

Clev Idea Development Diary - This was the first project I started, which triggered my decision to start these blogs and begin thinking forward with my career.

Clev Sever Development Diary - This is the second project I've started; a video game. This is where most of my focus has been the past few months.

RefLib Development Diary - The blog you are reading right now.

RefLib is merely a working title. I was commissioned by my boss (I currently work in my university library) to create this game. He was planning to create it himself until he realized it would be too much work, so he decided to outsource it to myself and a former cooworker. I'd rather put my effort into Sever right now, but RefLib has a deadline: mid-september. Besides, it's smaller in scale and is guaranteed to return.

RefLib is a simple computer game that puts you in the role of a reference librarian, answering any question that your patrons have, such as "What year was Elvis Presley born?" or "What's the current birthrate in China?". Each question answered earns you money, and you can be promoted to higher positions if you earn enough. You have a time-limit for each question, and the amount of money you earn depends on how fast you answer it. If you take too long, the patron will leave. If too many patrons leave, you're fired.

Technically, this game isn't a Clev game because I'm collaborating with two people outside Clev to create it, and Clev currently consists of one person: me. Nevertheless, I started the url, clevreflib, with clev in order to make it easier to remember, as all my blogs start with clev. Anyway, I wasn't planning on dedicating an entire blog to RefLib, but I've found that keeping a development diary helps me to think my projects through. It gets my mind rolling. That is the primary reason for this blog's existence.

I hope you enjoy this blog. I wish I could keep moving on Sever, but I'm pretty caught up at the moment. However, chances are I'll get bored with RefLib and spend a few days on Sever, but I can't say when that will happen. Anyway, please comment if you have any questions or suggestions. Thanks for reading.

clevceo