Jump to content

  • Log In with Google      Sign In   
  • Create Account

Where To [Re]Start?


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
11 replies to this topic

#1 cherryWine   Members   -  Reputation: 120

Like
2Likes
Like

Posted 25 March 2014 - 07:25 PM

I realize that you all get this kind of question a lot. I should know, as I have been on these forums under a different account for
upwards of 2 years pretending to be a half-competent game developer. The truth is, I'm not. A little more than two years ago, I
realized that the games I was playing were corny and weren't fun and I wanted to make my own. The reason wasn't money or fame, and I knew making games wasn't a fun process of no work, and I knew that most games are highly unsuccessful. I just wanted to be the creator of a community like Notch (I wasn't expecting one millionth of his financial success, though). In college I had no friends, but that is a different topic. I, like so many people, thought I could jump right into 3D game development and "learn as I go." I thought the game idea was simple enough: a 3D island where players walk around designing concrete fountains that spew out viscous magic fluid. Armed with extensive math skills (linear algebra specifically), a pretty good handle on Newtonian physics, microcontroller programming, and having read K&R, I thought I could do it and that I was somehow exempt from the learning curve everyone faces. I thought that if I knew the math everything else would fall together easily.

I haven't written a single line of compilable code for my magic island project in the past two years I have been dedicated to it. I begin telling myself that "today I will make a working input/render loop that will move around a virtual camera and render the image to screen," just OpenGL and SDL/Xlib. I then get frustrated at the fact that I would have to spend the next few weeks just learning these API's and not actually implementing my systems that I have designed, and I quit.

I often read Nvidia's whitepapers and I really enjoy speculating about graphics programming (since I never learned OpenGL or DirectX I can't practically do any). I have learned a lot of theory, but have never practiced it.

I need to restart and do it right, starting from the beginning. My uncertainty is just that I am not sure if I should start at the base level (i.e. Tetris) or if I can start somewhere a little bit more advanced. What do you recommend I do now?

 

Thank you so much for any responses.

 

 

EDIT: I do know about how OpenGL and D3D work by an overview perspective, but I can't write a C program to do shit with it.


Edited by cherryWine, 25 March 2014 - 07:28 PM.


Sponsor:

#2 frob   Moderators   -  Reputation: 22732

Like
3Likes
Like

Posted 25 March 2014 - 07:34 PM

What is your goal? What is it you want to do?

 

Do you want to spend your days writing a game engine? Do you want to build everything from scratch? Do you need to build everything yourself in SDL in order to feel you met your goals? Would your goals be met using a system like GameMaker:Studio or GameSalad? 


Check out my book, Game Development with Unity, aimed at beginners who want to build fun games fast.

Also check out my personal website at bryanwagstaff.com, where I write about assorted stuff.


#3 Satharis   Members   -  Reputation: 1263

Like
4Likes
Like

Posted 25 March 2014 - 07:48 PM

Personally I found you learn a lot more than you think you would even from making a simple game. If you haven't made Tetris or something in that league before then it wouldn't be a horrible idea to start there. Finishing even a simple game takes a variety of skills you might think you already have, but you don't really -know- until you prove you can finish it.

I'd also say that finishing a game and getting it to a polished state is a skill unto itself and very worth learning.

#4 cherryWine   Members   -  Reputation: 120

Like
1Likes
Like

Posted 25 March 2014 - 09:01 PM

My end goal is to make the 3D game about the islands and magic fountains using an engine I wrote myself using only libraries such as OpenGL, SDL, etc. Why I can't just pick up UE4? I want to release a GPL game. Why I can't just pick up ID Tech 3? I don't know. So do you recommend I start with Tetris and go up the ladder from there?

 

By ladder, I mean what is typically the recommended progression in these forums.


Edited by cherryWine, 25 March 2014 - 09:01 PM.


#5 Satharis   Members   -  Reputation: 1263

Like
4Likes
Like

Posted 25 March 2014 - 10:36 PM

My end goal is to make the 3D game about the islands and magic fountains using an engine I wrote myself using only libraries such as OpenGL, SDL, etc. Why I can't just pick up UE4? I want to release a GPL game. Why I can't just pick up ID Tech 3? I don't know. So do you recommend I start with Tetris and go up the ladder from there?
 
By ladder, I mean what is typically the recommended progression in these forums.

You can.. but you're not going to learn OpenGL or DirectX or anything with an existing engine. Existing engines(particularly AAA ones like source, unreal, unity) are usually designed around the engine being self contained and you building your game on top of it using scripting, specific tools, etc. So you could go take unity and probably make something like the kind of game you want.

The catch? Well you're using someone else's engine so you're under their licenses, you're also limited to whatever customization the engine offers and things like that. If you just want to make a game and only learn the bare minimum programming required then theres not really a better tool than one of those engines.

However if you want to work from scratch someday you are going to need to know mountains of more information about how game engines work at their core, and games for that matter, if you ever want to code something like that. There's a lot of people out there that have made full on mods for engines like source, and have no idea how a basic game loop even works. Totally different fields.

The only reason people really recommend engines like that here are.. because if you just want to make a game, they are a reasonable tool. If you're trying to become a programmer as a career or something, you still might learn quite a bit by working with an existing engine, but you won't learn certain things, just by the nature of the beast.

#6 frob   Moderators   -  Reputation: 22732

Like
3Likes
Like

Posted 25 March 2014 - 11:39 PM


My end goal is to make the 3D game about the islands and magic fountains using an engine I wrote myself using only libraries such as OpenGL, SDL, etc.
It is an ambitious goal.

 

Beware of trying to make a one-man a AAA game.

 

Large games take many hundred work-years, some take thousands of work-years. Even small casual games frequently require multiple work-years to complete. Those are years of work from experienced developers, not from beginners.

 

Using an existing engine can reduce the required effort by many work-years. You start with a debugged pipeline, a debugged modeling and animation and scripting system, a debugged audio system that integrates with animation, a debugged graphics system, a debugged memory management system, and often much more.

 

Think carefully about how many years it would take you to build all the components. Think carefully about the modeling required, the animations required, the pipeline steps required, debugging everything, and polishing everything up to an acceptable level. Can it be done? Sure. Occasionally an industry veteran will have a big announcement of their one-person developed game that goes mainstream, then picks up a publisher to help polish it off.  It is rare, but it does happen.


Check out my book, Game Development with Unity, aimed at beginners who want to build fun games fast.

Also check out my personal website at bryanwagstaff.com, where I write about assorted stuff.


#7 ProtectedMode   Members   -  Reputation: 1284

Like
1Likes
Like

Posted 26 March 2014 - 12:39 AM


My end goal is to make the 3D game about the islands and magic fountains using an engine I wrote myself using only libraries such as OpenGL, SDL, etc. Why I can't just pick up UE4? I want to release a GPL game. Why I can't just pick up ID Tech 3? I don't know. So do you recommend I start with Tetris and go up the ladder from there?

Maybe take a look at Urho3D, a project like you're thinking about will still take a lot of time, but a lot less using an engine. Urho3D is licensed under the MIT license, so you can easily edit the lower-level source when you become ready for it. If you want more low-level than that, you should be looking at combining existing libraries, like Ogre and other libraries. I don't think starting developing by using OpenGL and C is a good choice...

I would advice on starting with small games like suggested, and after that choose an engine and slowly work on more advanced stuff.



#8 Kirkkaf13   Members   -  Reputation: 301

Like
1Likes
Like

Posted 26 March 2014 - 03:46 AM


My end goal is to make the 3D game about the islands and magic fountains using an engine I wrote myself using only libraries such as OpenGL, SDL, etc.

 

Your end goal is a 3D game, so it really does not matter whether you reach this goal by using an existing game engine developed by industry experts or you take the more complex and time consuming route by designing tools that are already available. 

 

Logically I know which route I would take. If your end goal was to have a better understand of graphical programming then the latter option is the way forward.

 

You should download a game engine start playing around designing some simple games and see if it is right for you, if not, you could always go down the other path but taking some game developing experience with you.



#9 Serapth   Crossbones+   -  Reputation: 5756

Like
6Likes
Like

Posted 27 March 2014 - 07:52 AM

My end goal is to make the 3D game about the islands and magic fountains using an engine I wrote myself using only libraries such as OpenGL, SDL, etc. Why I can't just pick up UE4? I want to release a GPL game. Why I can't just pick up ID Tech 3? I don't know. So do you recommend I start with Tetris and go up the ladder from there?

 

By ladder, I mean what is typically the recommended progression in these forums.

 

Here is a general piece of advice to everyone, not just you.

 

Don't ever, ever, attempt to create a game engine until you've used a game engine.  You will invariably end up making a shit product and waste an epic amount of time solving problems that were solved years earlier.

 

 

I wont even bother getting into the build engines not games argument.



#10 BCullis   Crossbones+   -  Reputation: 1813

Like
2Likes
Like

Posted 27 March 2014 - 01:55 PM

I want to piggyback on Serapth with an anecdote here:

 

In my signature you'll see a link to my personal game project, something that's been sitting dormant for the last year thanks to other projects and that whole "real life" thing I have to spend time maintaining.  I started with a specific game goal (so not just "I want to make a game engine for no specific game") and the side task of creating some editor tools to accompany that game.  

 

I began with XNA as a great starting point, and then when I heard that it was reaching end-of-life, I cranked up the difficulty and decided to learn DirectX fundamentals as implemented through SharpDX to replicate everything XNA had offered, but with complete control over how everything was implemented (I naively thought that this would mean I could write a lean, efficient framework that didn't spend any spare cycles on anything that wasn't necessary for my specific game project).  And I did, to a fair degree, learn all about the programmable graphics pipeline, become more familiar with content I/O, get practice designing useful interfaces for tools, etc.  But the project wasn't making much progress (hey, I have these great minimally-buggy tools that get me about ...1% closer to having an actual game) as I was learning and building every piece as I went.

 

Then I was picked up to work on Cryamore, where we quickly grabbed some Unity licenses.

 


Don't ever, ever, attempt to create a game engine until you've used a game engine.

 

This is SO AMAZINGLY TRUE that I'm sorry I took this long to get to reiterating it.  

 

After a few weeks learning how Unity went about their component-based approach to game object logic, their material-driven rendering system, the data-driven asset designs...I could see dozens of ways that my work on Hazard Pay was going to turn brittle and self-destructive as I continued to build on top of a framework I *thought* was stable and extensible.  And I could also tell how I was never going to get the game into anyone's hands if I kept on developing an entire game framework on my own from the ground up (at least, with the amount of time I have to devote to it).

 

Once Cryamore has been pushed out I might rehash my framework as a hobby project, having much more experience with a successfully built engine, but I'll likely just leverage UE4 to get the game made.

 

CherryWine:


My end goal is to make the 3D game about the islands and magic fountains

If this is doable in 1 time unit,


using an engine I wrote myself using only libraries such as OpenGL, SDL, etc.

This will turn that into 10 units, minimum.

I'm a huge fan of the learning process that I went through when I started implementing my own graphics and content framework, but it will inevitably slow your progress on the actual game to a disheartening crawl.  Learn the individual systems you want to know about with smaller projects, like learning SDL via a tetris-level game (or just learning it enough to have a rendering/input context that OpenGL can draw in) but if you have bigger (multi-A) title dreams, leverage anything you can to limit the number of wheels you need to reinvent.


Hazard Pay :: FPS/RTS in SharpDX
DeviantArt :: Because right-brain needs love too

#11 DekuTree64   Members   -  Reputation: 986

Like
0Likes
Like

Posted 28 March 2014 - 01:25 AM

OpenGL via SDL is pretty simple to get things rendering on the screen. What's difficult is the 3D model data... learning the general structure of 3D model files, and then designing your renderer (and collision) code and getting data from your 3D modeller loaded into whatever kind of structures you use. What is your favorite modeller, BTW?

 

Since you come from a microcontroller background, if you have any inclination toward console development, Nintendo DS might be a fun system to make your game on. It's also a good stepping stool toward OpenGL, because the overall structure of the 3D hardware is quite similar, but just a bit more specialized so there's less to worry about.

 

But either way, I'd be happy to help you get started translating those theories into code, especially if you like the C style of doing things smile.png I'm on MSN, Yahoo, and XMPP/Jabber.org with this username (except Yahoo is dekutree65), if you have any of those messengers. Or I can just post stuff here.



#12 cherryWine   Members   -  Reputation: 120

Like
0Likes
Like

Posted 02 April 2014 - 08:17 PM

Thank you, everybody for your advice.






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