I need some goals for this summer

Started by
8 comments, last by sam051 11 years, 10 months ago
Hey guys,

I've been working around game development forums and creating games for about 4 years. During the first 3 years, I used the Eclipse Engine to prototype some multiplayer games, although I never finished any of them. A year ago, I decided to learn C++ instead of relying on an outdated VB6 engine. I've gotten to the point now where I feel extremely comfortable in C++ (I still have to look stuff up occasionally) and moderately comfortable in SFML and SDL. During the past week I've cranked out 2 simple, stupid games in 24-hours for practice.

My ultimate goal is to create an isometric survival ORPG similar to Dwarf Fortress within 2 or so years. I've had this same goal in mind for about a year now. I do not, however, want to begin this project unprepared.

It seems that everyone else here has been around their programming language of choice for about 6+ years and has had game development experience for around 4+ years before starting a major project like this. I feel like I'm jumping into this too early, but at the same time I feel fairly comfortable. I want to spend at least half of my time this summer focused on learning and experimenting.

I have some questions about what I should do this summer:

1) Should I immediately begin to learn networking ASAP? Or should I focus more on making more complex graphical single-player games first, even though that's not my goal.

2) Is it too soon to begin my "dream project" after having only 1 year of C++ practice and a half year of SFML/SDL practice? What is a reasonable goal to begin my project? (remember, GOAL not deadline)

3) Is it bad to have a goal like this? It seems like everyone else fails when they try to make a complex dream project by themselves instead of making simpler games. Then again, most of these people have no idea how hard it is to coordinate a project like this-- I do.

4) I'm only 16. Is it unreasonable for me to start a huge project at this time, or should I just spend the rest of my teen years learning? It seems like everyone does their dream project in college, not high school.

Thanks,
Jungle
Advertisement
I'm going to answer your questions in reverse order...

4)

[background=rgb(250, 251, 252)]I'm only 16. Is it unreasonable for me to start a huge project at this time, or should I just spend the rest of my teen years learning? It seems like everyone does their dream project in college, not high school.[/background]


[/quote]
I think the biggest problem that people encounter when they take on large projects beyond their experience/ability is you'll make some bad design decisions at some point, and you won't have the experience to spot them early on. Then sometime after that you'll start running into road blocks where your code is just getting messier and messier and you're having to code all sorts of work around's, abusing goto statements or whatever "cheats" your language of choice provides. At that point object oriented design (or functional, or whatever other approach you were using) is just another obstacle now. Suddenly things will stop behaving or they work 99% of the time but everything breaks that 1% of the time and nothing seems to make sense and when you start digging into it... You end up realizing that you have to redo everything and then you get discouraged and your project dies without having achieved anything.

At least that's my personal experience :P

Note: Just to clarify - Nothing against goto's and other "cheats" just - they should never be used to dig yourself out of a hole.

3)

[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]

[background=rgb(250, 251, 252)]Is it bad to have a goal like this? It seems like everyone else fails when they try to make a complex dream project by themselves instead of making simpler games. Then again, most of these people have no idea how hard it is to coordinate a project like this-- I do.[/background][/font]


[/quote]
Its always good to dream big as long as you keep the resource and time commitment requirement in mind. And don't forget - we're always biased one way or another towards our own abilities.


2)

[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]

[background=rgb(250, 251, 252)]Is it too soon to begin my "dream project" after having only 1 year of C++ practice and a half year of SFML/SDL practice? What is a reasonable goal to begin my project? (remember, GOAL not deadline)[/background][/font]


[/quote]
I'd say its never too soon to begin your dream project as long as you accept that there will be a lot of detours along the way. No one ever enters any project with all the knowledge they'll need to finish it, they will always have to stop and learn something along the way. With your experience - you might have to make a lot of detours to learn various things.

1)

[color=#282828][font=helvetica, arial, verdana, tahoma, sans-serif]

[background=rgb(250, 251, 252)]Should I immediately begin to learn networking ASAP? Or should I focus more on making more complex graphical single-player games first, even though that's not my goal.[/background][/font]


[/quote]
I'd suggest that you should write down a basic design document for your dream project. Figure out the overall requirements don't worry about any specific details just yet. Then work on simple projects which share just one of those requirements. You can't avoid the experience requirement for big projects but working on silly little projects which you don't care about can be pretty discouraging - so try to focus your time on smaller projects which you can see clear benefits towards your dream project.
Thanks! All of your information was extremely helpful. I've been using the "detour method" for a while now, and it's worked quite nicely. It works even more nicely once I scrap a project and start it all again with a different goal.


I'd suggest that you should write down a basic design document for your dream project. Figure out the overall requirements don't worry about any specific details just yet. Then work on simple projects which share just one of those requirements. You can't avoid the experience requirement for big projects but working on silly little projects which you don't care about can be pretty discouraging - so try to focus your time on smaller projects which you can see clear benefits towards your dream project.


Hmm... so if I want my project to be 2D isometric (don't ask-- I actually have reasons to do 2D vs 3D), multiplayer, and have creative/random gameplay, then I should make only 1 individual game each focusing on those core aspects? A few months back, I found a designer who had the same goals as me for this project (along with financial backing). We put together a HUGE design document, but I don't think we ever focused on the actual details. I guess we'll go back and do that now.

To be honest, I'm perfectly okay with starting my dream project and scrapping it a few times if I feel that it's becoming unbearable-- although I did hear that scrapping a project's code too many times is a bad practice since you'll never get anywhere. I guess it all comes down to production speed vs performance. I'm more of a performance guy (hence C++ and SFML).

I'm going to answer your questions in reverse order...

4)

[background=rgb(250, 251, 252)]I'm only 16. Is it unreasonable for me to start a huge project at this time, or should I just spend the rest of my teen years learning? It seems like everyone does their dream project in college, not high school.[/background]



I think the biggest problem that people encounter when they take on large projects beyond their experience/ability is you'll make some bad design decisions at some point, and you won't have the experience to spot them early on. Then sometime after that you'll start running into road blocks where your code is just getting messier and messier and you're having to code all sorts of work around's, abusing goto statements or whatever "cheats" your language of choice provides. At that point object oriented design (or functional, or whatever other approach you were using) is just another obstacle now. Suddenly things will stop behaving or they work 99% of the time but everything breaks that 1% of the time and nothing seems to make sense and when you start digging into it... You end up realizing that you have to redo everything and then you get discouraged and your project dies without having achieved anything.

[/quote]

Ditto.. I remember trying to make a tower defense game back when XNA 2.0 first came out and I only had like 6 months of programming experience. Needless to say it crashed and burned.

I think that the most important factor in the success of a large project is to go forward pragmatically and carefully think through every feature you wish to add. It also helps to get your head around some design patterns and principles as that is what most people with 6+ years of programming experience really develop, the ability to identify when and where to apply techniques and strategies effectively.

One other thing that orizvi kinda made me realize is that software development kind of ends up being a huge battle with entropy. If you aren't mindful or aware of the effects your changes have then it quickly catches up with you.
Are there any good articles about code organization with games? The project I hope to create will be tile-based, and I have no idea about how to handle the hierarchy of classes and objects on a tile-based grid. I realize that I'm terrible at organization, so how do I get better? What do I read? I already plan out all my ideas on paper beforehand, but oftentimes that isn't enough.
I can't say I've ever found any good articles or books that spend any significant amount of time covering code organization (in games anyways).

What I'd suggest is try looking at some large open source projects and see how they've structured their code. While the code itself might not make much sense, the overall structure is usually quite easy to understand. I think one of the Quake engines were open sourced? Ogre would be another good one.

I can't say I've ever found any good articles or books that spend any significant amount of time covering code organization (in games anyways).

What I'd suggest is try looking at some large open source projects and see how they've structured their code. While the code itself might not make much sense, the overall structure is usually quite easy to understand. I think one of the Quake engines were open sourced? Ogre would be another good one.


Yeah, that's a good idea. I probably should look for something that's heavily documented as well. Thanks!
http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135

This book has some good insights into how game engines are structured and the motivations behind them. My favorite part of the book is the visualization of all the components in a typical AAA game engine, here is the link to it:
http://www.bennychen.cn/wp-content/uploads/2011/03/RuntimeGameEngineArchitecture.png

http://www.amazon.co...y/dp/1568814135

This book has some good insights into how game engines are structured and the motivations behind them. My favorite part of the book is the visualization of all the components in a typical AAA game engine, here is the link to it:
http://www.bennychen...rchitecture.png


Thanks! I'll buy it when I get some cash, but I saved that image.
I really like this tool to check pixel perfect code for my design. I found one of the useful free online tool (http://www.cssprecise.csschopper.com/) to check pixel perfect code for design with great features.

This topic is closed to new replies.

Advertisement