About this blog
A look into an Indie startup.
Entries in this blog
It's been a week or so since my last update. That's because we've been pretty busy with our real jobs, and the game. We've made a ton of progress. The match logic, collapse logic, and gem generation is all pretty much done now. I have put in the initial match check when the game starts, nor have I put in the code to check for a new match once the gems have collapsed. I plan on having all of that in by this weekend.
Gordon added an aquarium type effect in the background. One of the light beams is being a little quirky, but it looks great anyway. You can see the water movement in the background. He'll be fixing the lighting bug and adding bubble particles in the coming days.
I'm putting together a new list of everything that has to be done by June 31. That day is fast approaching. Here is a clip of what we have done so far.
It was a pretty busy weekend. I was able to get most of the match logic done. I'm getting some weird things happening in the CheckMatchRight and CheckMatchUp functions. If a gem is on the top border, or the right border, it incorrectly flags one of the gems below it as matched and that one is removed. There error doesn't exist in CheckMatchDown and CheckMatchLeft, which are nearly the same logic (copied and slightly modified from CheckMatchRight actually). So I'll be cleaning that up tonight and try to get it working correctly. Once I get the match code working correctly I'll post a movie.
I'm still dreading the logic that searches the entire board to try to detect a possible move so that it determines whether the game is over or not. I've put it completely out of my mind until I get to it. I'll likely do it last.
Well, I fixed all of the problems with the mouse selecting the proper objects. Then I added the check to see if the clicked gems were adjacent to each other. After that, I added the code to animate the swapping of the gems. I'll add the match logic this weekend.
Here is a little movie of what I have done so far.
I'm looking forward to getting home and working some more on the game. I basically want to get logic going so that I can click two gems, test to see if they are adjacent, and then swamp them if they are. I was also thinking about the match logic, which I'm not looking forward to. I drew up - in visio - the flow for checking for a match. You can see it here:
This works around the moved gems first. Maybe it won't be as much trouble as I think, but it definitely has "PITA" potential.
I've definitely made some progress the past couple of days. I wasn't able to work much over the weekend, but I did get at least 10 minutes in.
I was able to get objects placed in my grid, add new artwork, and add mouse input. Right now, you basically just click the object and it removes it to test the input.
The TorqueScript stuff is definitely coming along thanks to the helpful folks at GarageGames and in their community. I posted an issue with mouse input earlier and I had a response that helped me fix the problem in under ten minutes. I was pretty amazed. The same thing happened last night with a graphics issue that I was having.
Anyway, here is a screenshot of what I have so far. It's not much.
Once again, last night, my ten minutes turned into three and a half hours.
I finished the art that we'll need for the prototype match-three game. Once that was done I was finally able to dive into some code. Once you figure out how TorqueScript works, and the order of things, it's very easy to get something up and running. I was able to create a grid image, display it, and create an empty tile map and lay it over the grid. This tile map would house the game objects. I need to learn a little about simsets and simgroups before I can move forward. We should have something up and running by this weekend. I also opened Visio and created a diagram of how the match logic would work.
Unfortunately, Thursdays and Fridays, my ten minutes may actually be only ten minutes. I'll probably spend that time updating the wiki documentation to reflect the design changes. Those are raid nights in World of Warcraft. Those are pretty much the only times I play WoW anymore. But that leaves Saturday and Sunday open for development.
Speaking of World of Warcraft, the design of that game has intrigued me. Before World of Warcraft, Everquest held the highest membership with about 500,000. World of Warcraft eclipsed the five million mark several months ago, and may even have hit the six million member mark. I've seen estimates for 2006 at nine to ten million members. This is quite an accomplishment and suggests the designers have created a very compelling and rich game. But, if you navigate the forums, or listen to guild chat, or general chat in the game, all you hear are complaints about design decisions, yet no one leaves. They just complain. So, is it the game that keeps the players, or the community? Is the game the reason people can't stop playing, or is the people they meet in the game? I can only answer for myself. If I didn't have the friends that I've made in my guild, I wouldn't even log on to raid anymore. That being said, I've tried to quit before, and did for a few months at a time, but I always came back and game-play possibilities were what coaxed me back. A new patch; more features; things I wanted to accomplish. Maybe it's a mixture of both community and the game. Perhaps the people complaining just want everything and want it now. Who knows? Whatever it is, it appears to be working in Blizzard's favor.
My ten minutes a day mantra has been working pretty well. I set down to finish one small thing and end up working for a few hours.
My friend, who happens to be a great programmer has decided to join me in creating a game. We were brain storming about how to make Connect Four a fun and more competitive video game. What we decided was to change directions a little bit. We've decided on a networked match-three game that plays kind of like tetrinet. I'm changing all of the design documentation on our wiki, and we're currently brainstorming ways for you to screw your opponent.
The last couple of nights we managed to tinker around with with Torque some more. I also managed to finish quite a few photoshop tutorials and managed to create most of the prototype art that we're going to need. Tonight I plan to finish the last of the prototype art and begin working on a single player version of the prototype which will be just a basic match-three game.
Motivation is a strange thing. Beginning the work is always the hardest part. It seems to be the same with everything. I dread getting up in the morning to go to the gym. But once I'm there, I'm thankful that I went. I dread preparing 36 meals for the week (6 meals a day, 6 days a week), but once I begin preparing them, I'm thankful that I did. It's the same with my homework. Once I get started on an essay or paper, the words just seem to flow out of me, and I wonder why I waited to get started.
For project work, it's the same thing. I know that I have things I want to get done, but sometimes it's just hard to get started. So basically, I've just said to myself, I want to work at least ten minutes on the project, every day. Ten minutes usually turns into 30, 30 into an hour, an hour into two, and so on. Some would say you shouldn't have to coerce yourself to do what you love, but is that really true? How many times have you wanted to do something, but you just sat on the couch and watched a movie because it was the "easier" thing to do. That's the thing. People usually take the path with less resistance. Is it easier to continue watching that movie, or to learn to use that new game engine? Well, no more for me. Ten minutes a day. That's my new motto.
With that in mind, I opened up the TGB level builder yesterday with the idea of taking ten minutes to create a new level with scrolling clouds and mountains and a player ship placed in the level. By the time I was finished, I had loaded up Torsion - a fantastic IDE for TorqueScript - and began adding player movement and projectile code, enemy spawns, and collision. I only stopped when I encountered a problem I didn't know how to fix. I made a post about on the TGB forums, hopefully they get back to me soon. I have to put in my ten minutes today.
I created my own level last night with the Torque Game Builder and figured out how to manipulate objects from the level editor in the TorqueScript. So now the task is to just become more proficient with TS. I'm doing a quick and dirty little side scrolling shooter prototype, just because the art is already available to mess with. The worst thing about TGB right now is that nearly all the documentation and tutorials that were available are now out of date, which makes the learning curve a little difficult. Luckily people are helpful in forums and on the IRC channels.
The design documentation for the Connect Four game is coming together. It's pretty nice to just leave the wiki open in the background, and then begin editing as soon as something strikes me, and to have that information available no matter where I am.
The more I mess with TGB, the more I love it. These guys have put together a great product. I've finished up a couple more tutorials with the level editor and the scripting. I think I'm just about ready to start building a small prototype.
I also began planning and documenting the project. I decided to use a wiki software called MediaWiki for the documentation. It's incredibly easy to install and maintain. I can now work on the design and project plan from anywhere I have an internet connection. Very awesome stuff.
I've been checking out EDI's Project2 blog over the past couple of weeks. He's doing some good things over there (love the raidial menu). The way the guy handles his projects is quite inspiring.
So I've put together my task list for Torque tonight, when I mosey on over to the private Torque Game Builder forums at the GarageGames site. What is this? Beta 2 has been released? Sweet mercy! I must download it! Much to my dismay, after reading a few posts, I discover there were drastic changes made in this release. Everything I have learned will now have to be relearned. I was deeply saddened by this, but decided to download it here at work and take a look. Holy hell! This new level builder is insanely cool and my somber mood quickly brightens. A new 37 page tutorial for this glorious new tool is available with the release package! I can definitely put up with changes like this, when it greatly improves the product. Hopefully now that this release has seen major changes in structure, those types of changes will be limited in the future. I'm suddenly feeling ill and I may have to leave work for the day *wink*.
I'm almost comfortable enough with TorqueScript to get started. There is one more tutorial I'd like to run through, which I will do tonight. Once I complete that 44 page tutorial I'll get started on the Connect Four variation. It's going to start off being a direct copy of the original game play, though in a slightly different display format. I will probably add some effects as well. Then I will be brainstorming different game play variations to try to turn it into a lengthy, compelling online battle between opponents. That will be the real challenge.
The Learning Curve
I've decided to do a Connect Four type of game first. I already have a few ideas on how to differentiate it as well. But I have to crawl first, so I gathered all of the Torque Script documentation that I could find and started hacking away at the empty t2d shell. I've got images loading, displaying, and moving around. I got input working. I'm still trying to figure out in what order it does things, or how other things are triggered. Torque is a very cool product.
Last night, I watched a 35 minute presentation by Will Wright of Maxis on his new game Spore. I was completely amazed. I am so stoked about this game. It takes on such a huge scope, and some of the things they've done procedurally in the code are just amazing. Here is the link, and I highly suggest that you watch all of it, because just when you think he's gone as far as he can with the design, he demonstrates something else that will blow your mind.
It's been quite some time since this aspiring producer has posted an update. I've been focusing mostly on my studies. I decided to take Marketing, Business Law, and Sociology all this quarter. I'm giving my final presentation in Business Law tonight though, and Marketing is complete. Only Sociology left to finish.
I was assigned copyright law as my topic, so naturally I decided to use the Hasbro Interactive v. independent game developers and distributors of 2000 as my case study. I still find it hilarious that they were bought-out by Infogrames after causing such an uproar. Ah, the winds of change.
I lost my team of programmers to other things and nearly gave up the idea of producing a game. But games are what I really love, so why should I give up my dream? I've decided to go it alone for now. I need to brush up my mediocre programming skills, make about 800 throw away games, and soak in the knowledge of creating games. My number one goal at the moment is to finish something - anything. I'm tossing around two ideas to start with. One is the old match game. The game where a series of cards are laid out, and you flip the card over looking for a match. The other is the old Connect Four game. These games would start in the original forms, and then possibly morphed into something different. Another attractive aspect of these games is that very simple networking could be added to make them multiplayer.
I own copies of both Torque Game Engine and Torque Game Builder and these would be fine tools for producing such games as I don't want to waste my time building my own engine. With these tools I can jump right in and begin programming. I started looking into TorqueScript last night on the Torque Developer network wiki site. I tell you, the folks at GarageGames are doing some really exciting things. They seem like a great bunch of guys too.
Well, I'll make a decision about which game to tackle first by tonight and begin the pre-production work. I'll have to do my own artwork, which won't be pretty, but I'll just be releasing these games freely anyhow. I'll keep you all updated on my progress.
I've been kind of scarce lately as I've worked on my final research paper for a class ending next Thursday. It's been a fun paper to write. I'm a huge fan of Stephen Covey's book, "The Seven Habits of Highly Effective People," so I'm writing a paper on how Mike Brown of FEMA could have been more effective and saved his job had he learned these habits.
So besides that, we've started production on the game. Production began Monday. Three tasks have been completed so far. I ran a build this morning and it looks pretty good. We'll do some minor tweaking over the weekend. Our target for ending production is 2/28/06. That is not the release date. It is simply our goal for completing the production phase and entering the release phase.
As the title suggests, we will be finished with the preproduction phase of the game today. The design was posted and I'm busy putting together the final task list. This will be posted for the team tonight and then the programmers will begin grabbing tasks and marking them off. Programming tasks are not assigned. Instead we put them on a board, and a programmer grabs a task, and marks himself as owning that task. Once completed, the programmer marks it off, checks in the code, and grabs another task. We then do a build once a week to see how we are progressing.
Once the tasks are up, I have to disappear from the team for about a week and half. This is unfortunate, but I have to management my academic career as well. I have until a week from Thursday to complete my final research paper. I'm striving to keep my 4.0 GPA. My goal is to graduate Suma Cum Laude. So far, so good.
The mouse problem has been fixed. I received this great news while I was in a leadership class last night. We were in the middle of a team exercise when my phone began to vibrate. Upon seeing it was one of the developers, I just had to take it because I suspected it would be good news. The last hurdle for finishing the prototype had been overcome.
We now fast forward two hours later - another mouse problem. Crikey! The developer was pretty fed up by the time I got out of class and was taking a break to play Warcraft 3. I was very pumped about the original problem being fixed, but all the air was let out because of this other problem. Luckily, when I woke up this morning, the problem was discovered and fixed. The bad thing about an early adopter version of an engine is that documentation is sparse. This product is decently documented, and surrounded by a great community. But you have to really dig into some of the features to try to figure them out. So with the mouse issues out of the way, the developers can move forward and implement the last two items into the prototype. I'll probably post some screenshots (as retarded as they will look) after it's complete.
Things I'm currently working on:
Articles: Producing an Independent Game
So we're having issues but we're moving forward. We have a strange problem with mouse movement. We allow the player to move the ship with the mouse. But when we call a function to terminate the life of an effect like an explosion it moves the mouse up to the top left corner of the screen. We haven't yet determined if this is something we're doing in the scripting or if it's a problem with the engine. Either way we're moving forward. We're confident that a solution can be found in the next four months (length of our development cycle).
I've started laying out the re-design. Our brainstorm meeting went pretty well. There were some things we wanted to add but didn't think we could fit them in the development life cycle along with a major feature that we feel is a must have. I've set a deadline of Wednesday (10/19) for the first draft of the new design document. Then we'll go through and make any revisions and have the final draft finished by this weekend.
Once I get the entire art asset list together, I'm going to start looking for quotes from contract artists. It would be nice to find one looking for an indie team that would work for a back end piece like the rest of the team though. I'm almost afraid to see the cost of the artwork.
Let's do a quick status check. Because of some major meltdowns at work, one of our programmers was delayed in completing some code. This will push the prototype deadline to tomorrow. It's mostly done.
I've begun gathering a feature list for the redesign of the game. I began a thread over in the indie gamer in the game design forum on features for top-down shooters and the discussion has become quite lively. A lot of good ideas and excellent examples are being floated around.
We have a brainstorming session Sunday night. We'll conference in the out of state team member. Our sound guy won't be able to be involved though as it will be 1am in England and he has to work the next day. I'll begin putting together the design document as soon as I get home from the meeting.
The prototype is coming along quite nicely. I am confident that the team will make tomorrows deadline. The engine worked out better than anticipated. Since it is an Early Adopter release, a few bugs were expected. One of the bugs caused me to change the input model though. It seems that when calling a certain function to "kill" entities on the screen, the mouse position gets set to 0,0 every time. This creates a problem since your player will shoot to that position. So for now we will use keyboard input for the player. We'll try to work around this for both win32 and OSX as we work on the release version.
I am doing some research, and maybe all of you here can help me out. I'm looking for feedback on top-down shooters. More specifically, what features do you like, and what features do you dislike in top-down shooters? What, for you, would make a perfect top-down shooter? You can either leave a reply here or email me at email@example.com
So I've decided to pitch a book. This would be a huge undertaking on top of my already insane schedule. But after some consideration I figured why the hell not? I've always wanted to write a book, and now I have a subject that I'm passionate about (game production), and a possible opportunity to see this thing published. I don't want to hear myself say later "I wish I had written that book". Move forward and self develop. No regrets. I believe Nike had the best slogan ever conceived. "Just do it", says it all. So that's what I'm going to do. I'm going to "Just do it". I've already sent an email to a CEO of a company I know to publish books on game development regarding the type of book and the pitch format they like to see. I hope to hear something soon. I'll begin the outline this afternoon and then shortly after I'll draft the introduction and the first chapter.
In regard to the game, the deadline for the prototype is next Wednesday night. Once that is complete we'll have enough knowledge of the new engine to begin redesign, confident that our new ideas will work. Then I'll readjust the task list and development schedule to suit the new design. We're looking at a three to four month development cycle. That is our goal.
Well, I'm bored at work so I thought I would update my journal again. Waiting for other resources can be excruciating. Especially when you view yourself as a proactive person and you want to get things done.
I finally chose the topic of my compare and contrast essay. The topic will be "Would Breaking Up the Microsoft Monopoly Actually Harm the Consumer?" I have to find a few resources to build arguments for both sides, but since this is a hotly debated subject, that shouldn't be too much of a problem.
I've been thinking about writing an essay about the role of a producer and the importance of that role for small independent game shops. I hadn't decided until just now. I received a request earlier to provide exactly this information. So, I will oblige. It's also an added benefit that I'm taking a writing course this trimester and I'm sure I can use the essay at some point for that course.
As for the game, we're still learning about the features of the new game engine. All of us are extremely impressed thus far with its abilities. We're targeting a proof of concept by this weekend. Then we're going to do the redesign.
I would like to work on it tonight, but I have two papers due tomorrow. One is already written but I want to rewrite it. The other is a compare and contrast and I'm still debating the subject. The three ideas I have in my head to argue at the moment are, "Should P2P Network Hosts be Responsible for the Data Traded by its Software's Users?" "Has the Microsoft Monopoly Become Beneficial?" or "The Question of Open Source". I'm not too passionate about any of these subjects. Maybe I can come up with something new by 3:00 PM today. That is my cutoff for choosing a subject and writing on it.
Some initial testing has begun with the engine that we've chosen to make sure it's going to give us what we want. We're pretty sure we've chosen the right development kit for this project. I'll have a post mortem out about one month after product release. It will review not only the development process, but also the release plan and marketing schemes.
So we've decided that we're going to support the Mac. Not only support it, but "emphasize" it as someone else put it. We'll release on win32 as well, but our focus will be on pushing the OS X version of the game. That takes us form a production stage back to a preproduction stage. The programmers are currently learning the new engine and porting the existing code base over. It will set us back a little but it will be worth it in the end. I've begun reworking the task list and the milestone chart.
We added a new team member. We've brought in Dave Barraclough, a musician and sound guy from the U.K. to work on the sound design. I've known him for a number of years and I'm very happy to have him as part of the team for this project.