Jump to content

  • Log In with Google      Sign In   
  • Create Account


Self-Taught Programmer Stuck in a Rut


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
7 replies to this topic

#1 jmoak3   Members   -  Reputation: 126

Like
0Likes
Like

Posted 14 December 2013 - 01:20 PM

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!

 



Sponsor:

#2 Steve_Segreto   Crossbones+   -  Reputation: 1483

Like
5Likes
Like

Posted 14 December 2013 - 01:55 PM

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.



#3 Funkymunky   Members   -  Reputation: 608

Like
0Likes
Like

Posted 14 December 2013 - 02:01 PM

 

 

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.



#4 jmoak3   Members   -  Reputation: 126

Like
1Likes
Like

Posted 14 December 2013 - 02:11 PM

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 :)


Edited by jmoak3, 14 December 2013 - 02:24 PM.


#5 SeanMiddleditch   Members   -  Reputation: 4605

Like
4Likes
Like

Posted 14 December 2013 - 03:14 PM

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.

#6 jmoak3   Members   -  Reputation: 126

Like
1Likes
Like

Posted 24 December 2013 - 09:36 AM

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!



#7 Steve_Segreto   Crossbones+   -  Reputation: 1483

Like
2Likes
Like

Posted 30 December 2013 - 09:52 PM

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



#8 jmoak3   Members   -  Reputation: 126

Like
1Likes
Like

Posted 07 January 2014 - 08:33 PM

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!


Edited by jmoak3, 07 January 2014 - 08:58 PM.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS