Jump to content

  • Log In with Google      Sign In   
  • Create Account


James Miller

Member Since 14 Mar 2009
Offline Last Active Apr 01 2014 02:39 PM

#5025776 How long would it take to...

Posted by James Miller on 26 January 2013 - 09:48 AM

But I'd love to try what you suggested. My first game goal would be to make the unfinished Wolfenstein 3d sequel "Rise of the Triad" -> http://www.3drealms....iginalspec.html

In looking at the source code for wolf3d, Carmack notes some interesting areas I'd love to explore, such as variable wall heights etc.

 

I'm not sure where you are in your learning, but I think this is too much of a goal if you just started.  Here's my two cents about the whole questions about learning programming.

 

Learning programming up to the point of mastery can be divided into four major parts:

  1. The first part for the Average Joe is to learn the actual programming.  For people who have never programmed in their life before, it actually is hard for them to grasp the concept of writing instructions.  Computers follow instructions down to the exact steps.  It doesn't question, it doesn't disobey.  So programmers, must write the instructions correctly, line by line, and this is hard for Joe.  If you ask Joe to write a code that "Ask for a number and print that number.", don't be surprised if Joe asked back "Shall I use for-loop?"  I have experienced this first-hand teaching newbies programming.

    Programming is a weird concept for Average Joe.  Being able to compose instructions together that make sense, and make up a usable program, actually takes time to learn and master.  Actually, I have observed that some Computer Science graduates can't still write a program from scratch.  They can read code, they can change code, but they can't write it from scratch.  Yes, the so-called programmers can't program.
     
  2. Joe's next hurdle is to master programming languages.  This is all about "learning C++/Java/C/Python" and all that stuff.  Knowing the syntax, what they do, and when to use them is no easy feat.  This, by itself, may take a year or two for any programmer to master a language.  Over the course of Joe's career as a programmer, Joe will find himself learning multiple programming languages.
     
  3. Then there's the third part, the library/API part.  Learning this is similar to learning a programming language.  As a matter of fact, some programming languages come with extensive range of API.  Some others (like C/C++) don't.  This is where Joe learns how to draw stuff on screen, how to play audio files, etc.
     
  4. The fourth part is to master software architecture.  This require considerable amount of experience, and I'm pretty sure vary by person and experience.  I have programmed for more than 20 years, and it's only just recently that I got *it*.  By the time I got that "aha" moment, I have learned about 8 different programming languages, completed about a dozen personal games, and released about two-three commercial games.

Obviously, these four parts don't necessarily have to happen before one another.  They are all learned simultaneously.  You could go back to part 2 if you just picked up a new language, for example.

 

I think, only after you have mastered all four, of a particular programming language of a particular API, you are qualified to make an "engine".  Knowing C++ inside out doesn't not make you qualified to make an engine in Java.  I'm not saying you shouldn't make one.  I'm not stopping you from making one as long as it's for your own personal use and learning purposes.  It's a great learning experience.  Just keep in mind that whether it's a "game engine" or a "3d engine", making it is no easy task, especially for the Average Joe.

 

As for prior knowledge, I've got a working knowledge and understanding of BASIC, and C. I designed and programmed the Command Line Interface of East-NSW TAFE college, and built a very very basic DOOM clone in QBASIC. The fourth image isn't my own work however, but that of Ken Silverman. I was toying around with his 3d engine written entirely in QBASIC which was quite fun to toy with, similar to the Wolf3d engine. Mind, the BASIC stuff like the Doom engine was done years ago when I was nearly a toddler so it's not fantastic, but I've re-invigorated my love for wanting to make an engine.

 

gsZ4J1l.png

buBO2pR.png

hZfYaGV.png
ARGRWM4.png

DKnvvAk.png

 

The API part is what I was curious about, that's what I always wondered about, as I never found anything in all of my C++ textbooks about how to actually *draw something* on the screen, even a single pixel. Regardless, I'm curious and eager to delve into it and see what I can come up with, but I'll be happy with getting one good solid program done, even if it's no more than a simple calculator. Progress motivates me, and getting started was always the hard part for me, but once I start making even a slight tinge of progress (ie, something actually works when I compile it!) then I tend to just steam along after that.




#5025552 How long would it take to...

Posted by James Miller on 25 January 2013 - 03:34 PM

I know there's been threads about this strewn all over the net, with the question "How long does it take to learn C++", with the answer pretty much being "You never stop learning", however, I have a few questions I'll put out here as specifically as I can, as I'm curious.

1: How long would it take the average person learn C++ to the point where they can confidently and reasonably use all C++ commands/functions etc (even if they're not quite at the John Carmack skill level). I'm just talking, to the point where they could create anything they're asked, even if it's primitive.
 
2: Continuing on from Q1, how long would it take our average Joe to go from making their first Hello World, to a primitive, but functional 3d engine, something on par with say, the original QUAKE or Half-Life 1 engine in terms of functionality, graphics etc (nothing next gen, just simple but functional).

No one will be able to approximate the amount of time required for any given project. It entirely depends on the person. My suggestion is just try it and see. Just don't let people tell you that "C++ is too hard". You don't need to learn everything in C++ to make a 3d engine seeing as it's been done in C many times before.

 

Fair enough, thanks for clarifying that.

 

With that being said, I have another annoying question in relation to the above, is creating a simple 3d game engine something that could be achieved with a good solid year of studying (or less?) or is it one of those things that takes many many many years to learn (like 5-10 years?)




#5025537 How long would it take to...

Posted by James Miller on 25 January 2013 - 02:51 PM

I know there's been threads about this strewn all over the net, with the question "How long does it take to learn C++", with the answer pretty much being "You never stop learning", however, I have a few questions I'll put out here as specifically as I can, as I'm curious.

1: How long would it take the average person learn C++ to the point where they can confidently and reasonably use all C++ commands/functions etc (even if they're not quite at the John Carmack skill level). I'm just talking, to the point where they could create anything they're asked, even if it's primitive.

 

2: Continuing on from Q1, how long would it take our average Joe to go from making their first Hello World, to a primitive, but functional 3d engine, something on par with say, the original QUAKE or Half-Life 1 engine in terms of functionality, graphics etc (nothing next gen, just simple but functional).




PARTNERS