Monday, December 12, 2011

Starting Over

Nix that. Repellant is harder than Sever (if I put the AI on the back-burner; I have no idea how I would implement that). I mentioned in my last post that my programming skills are rusty, but that was a while ago. I'm back in the groove again.

I tried to create a physics engine for Repellant, but that proved to be beyond my current skillset. Sever, on the other hand, just needed some real fleshing out in order to work. Lately, I've been thinking hard about Sever and how I would make it work. I began to realize that it was very doable as long as I did it right.

Jonathan Blow says that an indie developer should avoid optimization, which is a total paradigm change for me. Optimization used to be my top priority, and my code would become really complicated and long just to save a couple cycles. I started over on Sever with this new paradigm, and the code is much simpler. Plus, I imagine that, given how simple Sever is, the inefficiency won't be noticeable. Honestly, the task is much less daunting when I can program this way. It feels much more organized and intuitive.

I'm making fast progress. Over my two-year hiatus, I came up with some good ideas for the game that I'm excited about. One of those is flow control. A segment can have a preferred density of people and people will come and go until that level is reached. Now, if people really need to go through that segment to get to the other side, they will. With only a few rules and a simple formula, it would work beautifully. I'm still not sure how the player would use this, but I think it would work well if automated. When a segment is being retracted, it will set its preferred density at zero, and all the people will try to escape. A building segment, on the other hand, will set its preferred density at one-hundred percent, which will draw people in, accelerating the building process.

This new feature will conserve people and speed up building, eliminating two of the game's original weaknesses. However, that's only one of many little details I'm adding to the game.

I'm trying to add variety while keeping it intuitive. I figure that features get complicated and confusing when they aren't intuitive. As long as they feel natural, fit the feel of the game, actually make a difference, and are fun, then by all means, use them.

Anyway, I'm back. Let's hope it sticks this time.

clevceo

Thursday, February 17, 2011

Repellant

I have put Sever on hold. Right now, with my rusty skills, Sever is a little too much...at least with how complex it was two and a half years ago. I could pick it back up from scratch, but that would be discouraging, so I decided to start a different game from scratch and build up my game-making skills from that, and then use those skills to give me a head-start on Sever when I eventually come back to it.

The new game is called (for now) Repellant. It's not your typical sidescroller. There's no jumping on your enemies' heads or shooting them with a gun. The gameplay introduces an element that resembles a Jedi's telekinesis. You use it to levitate, push, pull, etc. The challenge for me in this game is creating a working physics engine. Read about it here.

Now, don't think I've given up on Sever. I am still excited about Sever, but I want it to be good. Therefore, I need to be a good programmer. I need to know what I am doing, and I can learn that by creating Repellant.

clevceo

Saturday, January 8, 2011

Skipping Ahead

I started out basically retyping all my old GUI code. Of course, that is a really inefficient way to go about things when I could easily copy all the old code files into a new project and build them under the new version of XNA, but I thought that I would get to know the code if I did it this way. However, as time passes and I realized that it would take forever and by the time I was done, I would probably only remember the few things I had just copied and forget the rest, I decided to just do it the efficient way. I did the same for my input library.

Since I was on a roll, I started to copy old game files into my new project, like the state machine, the grid system, the camera, etc. Basically all the stuff I did not think about for the last two years so that I would be able to skip ahead to the stuff I did think about. Frankly, I am a bit rusty and I do not think I am ready to start over completely yet. Right now, I am going to focus mostly on gameplay. Of course, if I run into something I want to change or add with the other code, I will, but that will be the exception.

Honestly, with how rusty I am now, having not programmed for two straight years, I do not think I could write that code any better than it already was. Maybe later when I get my groove back. Then again, I think it is plenty good for what I need anyway. It is decent code. I am proud of it. It is fun skimming through it and admiring my work.

There you go. I am skipping ahead, which is a good sign that this build will not be my last. I will not do any skipping on my last build.

One thing that is daunting is networking. For all I know, it will be easy, but I would not know. I started coding it in my last iteration, but I did not complete it. I was never even able to test it. But I will figure it out. I know I will. It is not impossible. AI, however, may be out of my range of skills.

Thanks for reading,
clevceo

Wednesday, January 5, 2011

I'm Back

I'm back and I can continue work on Sever. When I got back, I bought a new laptop, a Pavilion dm4, which, despite the integrated graphics, has decent hardware for its modest price. I tried to pick back up on Sever, but when I tried to run the build, it gave me an error "No suitable graphics card found." I stopped breathing for a moment. For a few days, I didn't touch Sever and wondered if I'd just drop it or if I'd just go straight to C++. However, I'm taking a Java course (I haven't fiddled around with Java in years) this semester and I don't think it would be very fun juggling those two different languages. It would be much easier to juggle C# and Java because they are fraternal twins.

Just now, as I was writing a post about how I wasn't sure how I'd proceed, I had the wild idea to google the error and see if there's a way around it. Hip hip hooray, I found it. Basically, I change the project from a HiDef profile to a Reach profile, which is more limited, but can run on lower-end hardware, including phones. Since Sever is fairly simple graphics and input-wise, I don't find this a problem. And besides, by the time I get skilled enough that those limits get in the way, I'll probably have a better computer.

So there it is. I'm back and I'm ready to get started. But first, I have to re-familiarize myself with C#, XNA, and my code. That will take a little time. I'm basically running through all the code from my last build so that I can remember what it is, and I'm revising it as I go. I have some changes to the gameplay code that I'm looking forward to trying out.

I'll tell you what happens.

clevceo