A summary over whats happened over the course of my indie project, common mis-conceptions of modding, and what to avoid or do during development.
Posted by ninjadave on Mar 3rd, 2009
Basic Starting a mod.
My project (almost) died a week ago. Luckily things are 'finally' getting back on track, but looking back at it all I've realized I've come a long ways. I've even managed to successfully hit some of the pitfalls of development and managed to go on to tell about it.
I'll even let you into some of my projects secrets.
I thought this would be interesting read for any 'getting started' developers.
I started independent game development when I was around 14. Me and my friends started a comic which we thought was decently funny at the time about two warring factions. This ultimately became the center piece of my future project. I was at the time very much interested in game development as one of my friends was a Half-life 2 modder. I made SEVERAL very bad mistakes with the start up of my project, and it ultimately hit me back pretty hard. After following my friends advice I decided to pick up game design. My friend told me to get a bunch of online people to do all the 'actual' work of making a mod while I supposedly sit back and watch my project be created.
I joined his project to learn a little on how things work. Amazingly, the project died in literally a few days after I joined. Most of the team left because of (surprise) poor leadership.
After listening to this, I should have gotten the hint. But I did not.
I began my own project (currently Crimson Crow, Cc for short.). Originally based on the comic me and my friends started, I began to look at engines to use, hoping to find something a bit more suitable
for what I wanted to create. At the time, I was dead set on making Cc a MMO-FPS-RTS-RPG. I was more
or less interested in cramming features in than actually knowing how much work that is.
After looking at a large variety of engines, I 'finally' found something worth-while. Torque (Torque-Game-Engine). However there was two problems.
I couldn't possibly see any sort of demo, barely even a video. So I took the chance. I sold some junk, and let the download go all night (and the next day.) I had never even SEEN the engine in action, yet here I was already buying a license and downloading it.
As soon as I got the engine set up, I began to post online that I'm looking for a large team. Don't forget, at this time I barely had a few concepts, a make-shift comic to base everything off of, and no prior knowledge to game development.
After some persistence, I gained a 12 person team (amazingly.) I was thrilled. After we had character models, sketches, and gun models rolling in, my team (very quickly I might add) saw that I really didn't know what I was doing. Suddenly realizing the project was a death-trap of certain failure, the entire team left within a month. I didn't know what to do. Everyone around me said, "Just give up." I was hesitant. I couldn't just 'give up'. Instead I attempted to learn everything I could about game design. Coding, modeling, everything. I spent months grinding through books, hours of code projects, and trying anything and everything to make Cc work. This was a great learning experience as I had to learn everything from the ground up. I really learned out to get work done in a pipeline, as well as plan for certain features in-game.
I came onto Moddb as ambitious as ever still aiming for an MMO- with too many features- project.
After a few weeks I took a few steps back and changed the game from everything in one to RTS-FPS-RPG. Mostly because of the critical comments I quickly found when I mentioned me creating an MMO. Most of which we're correct. People might not like it, but the cold heartless answers you get from various people online is sometimes the brutal truth. I support 'constructive criticism, but crazy ideas (like mine) really needed to be torn down.
At this point, I began attracting a few members that are on the team today. They saw something in my project. At the time, I really didn't know what. Also at this time, the comic me and my friends originally started was on a roll. On its 3rd issue, it was very popular and had over 7
artists all wanting to add even a picture of their work in it.
We also began alpha testing. We had our first official alpha match with 4 members. It was decently glitchy, but a fun experience to play all that hard work in action. Alpha matches, as I've learned, are a great way to get some intense feedback on the way things are going. We had many comments which to-this-day we still remember and work on. Some of them were petty fixes. Others were major ordeals that we soon learned to deal with. As time progressed and I began to learn 'so' much more, we eventually saw the name of 'TGEA'. Torque Game Engine Advanced. It allowed more polys, normal maps, and much more.
So, learning from a previous mistake, I did my homework and got some demos. Pre-tested and stress tested the engine. I also took in the consideration of the extra time a more detailed engine would take. Something most developers sort of 'skip' over. It worked great. We took the jump to TGEA, in which we began to unleash our ambitious ideas into. 4K poly characters, normal maps on everything, over-doing the bloom.
We were living the good life...and then things took a turn for the worse. One of the team's modelers said he couldn't get the spec map working. Weird. After hours and hours of attempts, it turns out, TGEA didn't support spec maps yet.
I sadly told the team that spec maps were out, but I happily noted that I was going to do a preview for an audience sometime that week. It was a random tech demo that I thought showing my project for the first time in action to the public would do some good. The mapper was thrilled, so he updated one of his showcase maps and made sure the map was 'overly-detailed' before I showed it off. I didn't have time to check the map out, so I headed to the tech demo with a surprise waiting for me.
I told the group (20-30 people) a little about my project, what it was aimed for, and then launched the demo.
The demo wouldn't start. Weird. I told the group I had a technical difficulty and went to a backroom. I googled up TGEA launching errors, only to find the current version didn't run on VISTA!! (At least, the earlier version I was using didn't.)
I came back to the group with an XP machine. Great, I thought. I launched the project. This time it worked. I talked a little then started the (previously un-seen) mapper's new show-case map.
Only...the map had to load....and load....and load. I counted 7 minutes before the map finally loaded. With a horrible frame-rate I might add. The group was un-impressed. I was un-impressed. The mapper went ballistic with the BSP shapes, and over-complicated every shadow known to TGEA. I left the tech demo angry.
The only good that came from it was the harsh reviews I got over the maps that I displayed. There was some very critical remarks, and I personally ended up fixing up some map sections and models. Although the tech demo was more of an embarrassment, it certainly set up some knowledge on what to do next time, and what not to do.
We quickly got rid of TGEA and skipped back to (What I knew very well now) TGE. This transition made the modelers, who now couldn't use normal maps, very unhappy. But we moved on anyways hoping to see another alpha. Cc also turned from a RTS-FPS-RPG to a RTS-FPS. Only. RTS was also annoying so we threw that away too. We re-named it a 'tactical shooter.' Aka, 100% FPS.
At this time we had our own personal and private forum set up. By far this was THE most helpful thing we've ever had. If you do not have a forum or 'some' sort of communications set up, you really need to. This way you can type down every detail of your project and get the entire team on the same page all the time, and have it for reference. If you are a manager, your job should be to also organize 'everything' so that the team will not stumble trying to find anything, if even a little. Eventually I even created a wiki to get every detail jotted down into text. In the long run, this saved many hours of possible problems and really made collaborating work. Our personal forum alone had over 4000+ posts (From the team alone) until I recently cleared out dead threads.
Things were going well until we ran into another problem. We had a very unhappy team member. I won't say his name so I'll call him Jack. Jack was a part of the comic, and therefore saw himself as a large part to Crimson Crow. Jack decided his opinion was better than anyone else on the teams (even mine) and made sure everyone knew it. Now here was the real problem. I knew Jack in real life. Not just some online friend thing. Anything I said or did to him could drastically affect my social life as I knew it, and the entire comic Cc was based on. Instead of firing him, I let him continue on. He soon began heavily criticizing the modeler's work. Ultimately making that 3D artist quit. I was very irritated. I told him in person of how he was disrupting the team.
He saw this as threatening. So he decided to tear down everything Cc was as a project. He viciously argued that everything I had done was ruining Cc as a project.The worst part was, he was winning some of the team over. I finally did what I should have done. I fired him. In person. Straight up. I said it so he knew I really meant it.
The team went on to a slow-ish restart. At this point, Cc began to change so much that it took an entirely new role. We re-wrote story-lines, characters, weapons, EVERYTHING. It was just about a new beginning. We did so much work within this time, the mapper even began making real-world maps. In fact, he made 4 Square miles of central Chicago. Looking back at this section, we made some great successful plans for this map, but we also made some major mistakes. On the bright side, we learned how to manage a 'large' scale map project such as this, and how to get a work flow working for something this intensely detailed. On the down-side, we didn't think out "why we were making the map in the first place." Ultimately the map was dropped because it was too big, and we found that players could not find each other easily.
I began coding a dynamic camouflage feature for all players to use in-game. (Sorry, no pic) Once again, we had this planned out. Unfortunately, as I was creating this, we ran into a fundamental flaw. It turns out the human eye perceives shape better than color. So essentially... making dynamic camo did little to help the player. The feature was dropped about 75% of the way through.
Things were going well. Then we ran into another issue.
Our previous member, Jack, was very apologetic for what he did. But instead of telling me much about this, he convinced another team member to put him back on the forum so he could apologize.
Well, he did just that. He apologizes and promised to make it up to the team. We were skeptical, but he held true to his word... for a month. Then he began to 'note' a few things we 'needed to change.'
After months of Jack not doing anything and him eventually just remarking on almost everything we did, a few members asked me to fire him again.
Instead of firing him, I wanted to point out his critical remarks made no sense. I attempted to use some logic against his ideas. It backfired. He soon began page long rants over how everything we did was wrong, and used 'statistics' to 'prove' he was right. More of the team quit. They were just fed up. Cc was grinding on at this point. No one wanted to make anything as we'd just be criticized, and our team was too small to make any real progress. Once again, I decided not to fire him. I gave him a "Straighten up or GTFO" message. He replied with a very long and harsh message. I can't even begin to include what he said. After that, I made sure he was fired. For good.
This is when I learned being the 'boss' around the development team means you have to be heartless at some points. You must work for the better of the project. People may disagree, people may argue, but if its better for the project it should be done. I should have done it the first second I saw trouble, but I was too late. The damage had been done. Me and the few remaining developers sat around. No one wanted to do anything anymore. I was sure Cc was dead. After a few days on being unresponsive, I logged onto the forum to announce Cc was forever gone.
...but before I added the thread, I saw that the prop modeler added a new post. He mentioned an episode release. In which we make a short and sweet release to make things work. I was thrilled! I jumped onto the idea, making who-knows-how-many props and concept sketches. Soon everyone began to join in, and somehow our small, meager team began working as a team again. Somehow, looking back at this, I realize that starting with a small episode style project, would have saved us HOURS and pains and headaches in the first place.
So obviously my project has gone through some big twists and turns. I'm posting this to show some 'obvious' mistakes I made. Most of which are avoidable, and by all means avoid them. Well thanks for reading. I hope any up-and-coming developers have a good idea on what to do and what to steer clear on. I can't stress how important some of these are. More importantly, you should not give up a project. Projects can get tough. They can be daunting. As long as you keep the ideas simple, and stay dedicated, you will go far. Most developers run into major problems first starting up. (Like me.) I'm not the first and certainly not the last.
I hope this helps.
- Dave (Ninjadave)