Self-Taught Programmer Stuck in a Rut

Started by
6 comments, last by jmoak3 10 years, 3 months ago

About 2 years ago I bought McShaffry's Game Coding Complete, and it was too high level for me at the time. I bought Dr. Frank Luna's Intro to 3-D Game Programming with DirectX 9.0c, and it was perfect. It showed me how to do a simple game loop, and make some simple 2-D games.

So here I am now, looking to pick up the hobby again - where do I go from here?

I tried to get back into Game Coding Complete, and while I understand all the concepts he mentions - I just don't know where to start implementing it. Before I got bored and walked away a couple years ago, I tried to implement it but got stuck while trying to make some sort of omnipresent event manager/system.

I know I could make a game class, with a graphics object, a sound object, and an input object and from there make some blob-class game like I usually do, but I want to know how to make something with a bit more structure.

I've modded all over the source engine as practice, just to get more of a feel of what the implementation looks like. I'm just in this purgatory where I know exactly what is happening in Game Coding Complete, but I just don't know how to implement it on my own.

I'm going to spend the next few weeks examining source code from other engines (including the Game Coding Complete engine), but I'd really love it if there was a book that could pick up where Introduction to 3-D Game Programming with Direct X 9.0 left off.

Thanks in advance!

Advertisement

While programming can be enjoyable in its own right, its usually a means to an end. Focus on what kind of a project you want to create and let that project dictate the technical challenges that you will face. You should know that since you were able to disseminate and understand the concepts in Game Coding Complete, that is a very good indication that you will be able to overcome the new technical challenges you face while making a project that sparks your fancy.

For example, if you are interested in a 2-d platformer with good jump/attack physics like Mario, you may find yourself learning about sprite sheets and 2-d physics.

If you are more interested in a voxel world with an organic crafting system, you may start learning about procedural content generation with a focus on making voxel terrains.

Or you might get interested in old school roguelikes and just focus on cool and interesting game algorithms and AI/pathfinding code.

The point is you can be more directed and get out of your rut, if you focus on *MAKING* a complete finished game and not just learning one piece of tech after another in a vacuum.

I know exactly what is happening in Game Coding Complete, but I just don't know how to implement it on my own.

Well, like what specifically? We can probably help more with concrete examples than with abstract advice.

While programming can be enjoyable in its own right, its usually a means to an end. Focus on what kind of a project you want to create and let that project dictate the technical challenges that you will face. You should know that since you were able to disseminate and understand the concepts in Game Coding Complete, that is a very good indication that you will be able to overcome the new technical challenges you face while making a project that sparks your fancy.

For example, if you are interested in a 2-d platformer with good jump/attack physics like Mario, you may find yourself learning about sprite sheets and 2-d physics.

If you are more interested in a voxel world with an organic crafting system, you may start learning about procedural content generation with a focus on making voxel terrains.

Or you might get interested in old school roguelikes and just focus on cool and interesting game algorithms and AI/pathfinding code.

The point is you can be more directed and get out of your rut, if you focus on *MAKING* a complete finished game and not just learning one piece of tech after another in a vacuum.

I think you're right, I've learned more making my own projects than anything else.

I'll start doing that immediately, but in the mean time I really really REALLY want to be able to sit down and implement my own engine (that's the end goal here). To piece one together piece by piece through making more and more ambitious games will take forever.

I'm not shrugging off your advice, as soon as I finish typing this I'm going to get to work on it, but if there was a more direct method short of retyping engine code to learn explicitly how to make an engine that would be awesome.

EDIT: Nevermind, had an idea for something I want to build, so I'll see you all in like two weeks :)

To piece one together piece by piece through making more and more ambitious games will take forever.


That is the opposite of the truth. Trying to make an engine from scratch when you have no game you're making is a 100% sure fire way to sit around spinning your wheels in the mud getting nowhere. Even if you do make something like a game engine, it'll be close to useless for real projects. Take engines like id's or Source or Unreal or so on. Every single one of these started as a game. After a game was made it was then modified and adapted for a further game. Repeat until you have actually solved a number of real problems.

Compare then to Unity, which was useless for the first several versions. It had a huge checklist of features but was missing a few critical ones and most of the features there were incomplete or just off from what you'd want in an actual game engine. It took them years for Unity (with dozens of very competent engineers) to turn into anything you could use to make a reasonably involved game.

Nothing will drive feature development like an actual need for a feature in a game. Nothing will ensure a feature is complete and usable like someone actually trying to use that feature in a game. Nothing will bug test and stress a feature like use in a production game. Hence, nothing makes an engine like developing a game as the primary goal.

Take that as advice from an experienced engineer in the industry who has written more than a few engines from scratch and has first-hand experience of the difference in quality you get when you make tech for tech's sake or when you make tech for a end product's sake. smile.png

Besides, making games is more rewarding and motivating. The whole point of an engine is to see it do cool stuff. That means you need somebody (yourself or others) making great content to run off of the engine.

Sean Middleditch – Game Systems Engineer – Join my team!

Ok so it's been 10 days and not two weeks but I think it's ready to show :)

I wrote a crappy engine (doing that went waaaaaaay past my comfort zone - it was awesome) and in like no time at all I wrote this little Procedural City thing.

http://imgur.com/tvWyU1F,XDVZjZ5#1

There's a current screenshot of it, I have a lot of plans for it, and it's gonna be doing some cool things soon.

Anyway it had been about a year and a half since I programmed something like that, so I figure that's why I felt so stuck in a rut.

Thanks for the advice guys!

Ok so it's been 10 days and not two weeks but I think it's ready to show smile.png

I wrote a crappy engine (doing that went waaaaaaay past my comfort zone - it was awesome) and in like no time at all I wrote this little Procedural City thing.

http://imgur.com/tvWyU1F,XDVZjZ5#1

There's a current screenshot of it, I have a lot of plans for it, and it's gonna be doing some cool things soon.

Anyway it had been about a year and a half since I programmed something like that, so I figure that's why I felt so stuck in a rut.

Thanks for the advice guys!

Great work! Have a look at this great blog. http://www.shamusyoung.com/twentysidedtale/?p=2940

Haha when I was 15 I remember laying in bed and reading that, wishing I could do something as cool smile.png

That was partly my inspiration, to try to and do that on my own, which to me meant I couldn't look at that blog until I finished the first version of this thing.

Now I'm going to port it all to DirectX 11 (thank god for encapsulated graphics objects and vector data stuff, seriously thank god), and try to gleam what I can off that blog so it looks less lego and more good ;)

Reading it again now for the first time since I was 15, and damn he's good, only 30 hours too - I spent like 2 times that on mine, cause I was goofing around with all this engine stuff. Guess I have a ways to go.

If you all are curious here's my less incredible procedural city:

v0.1 - Overview of project:

v0.2 - Car + Performance Update:

Once again thanks for all the advice, feels good to be doing this stuff again!

This topic is closed to new replies.

Advertisement