I am so grateful for technology and for the ability to communicate and collaborate with my teammates and clients. However, the fact of the matter is that most programmers don’t understand the importance of good programming practices, and many of us spend a lot of our time doing things that they consider to be the opposite of what we are teaching and learning.
Well, it always seems like I have to be constantly pointing out how much more we should be doing in programming these days. But the truth is that 99% of software developers are just as clueless as we are. This is why I make it a point to always check first before I jump into a project. The best developer I’ve worked with is a person who could never count to even 100. He had a very high IQ but just didn’t understand the value of good design.
That’s a good way to describe the developer you know. He was a super-smart engineer. The fact that he had such a high IQ isn’t the point. It was that he didn’t understand the value of good design. It’s the same with so many programmers who lack a basic understanding of software design and development. They tend to either do things the “wrong” way, or they’re just not the best at it.
The video game industry is still struggling with the lack of a high-level programmer who could help design games to fit within the framework of the game design itself. This is a difficult problem, but its not entirely a lack of people who are able to design games. There are plenty of talented people out there who are skilled in game design. But for the most part, it seems to be a problem in the design of the games themselves.
I don’t know about you guys, but it really bugs me when I see people who spend their entire careers designing and building games and still have no clue how to make a game fit within a game design framework. I’ve seen a few good examples of this, but mostly I’ve seen people who didn’t have a clue what they were doing, or were just so lazy that they didn’t really know what it takes to be a programmer.
Well, we just came off of the release of Star Citizen, a game that had a huge game design challenge that was designed (and paid) to be a completely open-source, community-driven, truly community-driven game. To not have had this challenge is a huge missed opportunity. In our time at GDC we’ve been working with the community to design a game that can be played by and for the community. I think we achieved just that.
In our work with the Star Citizen community we have learned a lot about how to write open-source code. One thing we learned very early on is how to take a problem, and make it into a game. One of the biggest challenges we faced was figuring out how to take a “problem” and make it playable on the web. It was very challenging to get the community to agree to our design and then make that happen.
The first thing that we do when we get an idea is to make a vision board. The vision board is basically a list of things we want the game to achieve. The more clearly specified we can make our vision board, the easier it is for the community to agree to what we want to do. We also have some very high-level guidelines to keep in mind. We are looking for a game that is easy to play and easy to modify.
In our vision board we included various powers, weapons, and abilities that we would want to see in the game. However, we made sure that there were no limits on the types of powers we wanted to see in the game, so we were able to change them later when we wanted to.
As a power programmer we tend to do things a little differently than most people. Our first goal is to make something that is hard to use, but also very strong. We don’t want a power that is too powerful, but we also don’t want a power that is too weak. We would also want to prevent our players from completely blowing up the game. The goal is not to be super efficient, but to make the game as hard as possible for our players.