• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
James Miller

How long would it take to...

22 posts in this topic

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

1

Share this post


Link to post
Share on other sites

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. Edited by ic0de
0

Share this post


Link to post
Share on other sites

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

Edited by James Miller
1

Share this post


Link to post
Share on other sites



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


To tell you how long it took me specifically to become good at C++ it was about a year and a half but you will end up with numerous completed projects before then. To make a 3d engine it takes as long as it takes, I'm almost done mine and I've been working on it for a little over a year. To answer your question I would say it is possible but obviously the more experience you have the more solid your engine is likely to be. Edited by ic0de
0

Share this post


Link to post
Share on other sites

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

3-5 years, or more, depending on how much effort you expend on learning every nook and cranny of the language. That said, read on...
 

I'm just talking, to the point where they could create anything they're asked, even if it's primitive.

That's a completely different question. You don't need to know the whole of C++ to write programs with it - I'll go out on a limb and say that most people who use C++ don't know everything about it.
 
6 months to a year ought to do it, if you are fairly diligent about continually writing programs to expand your abilities.
 

how long would it take our average Joe... a primitive, but functional 3d engine

A lot longer. You need to learn a 3D API and a bunch of math, in addition to your programming language.

That said, write games, not engines is required reading. A "3D engine" should probably never be your ultimate goal, and it certainly shouldn't be your first goal.

1

Share this post


Link to post
Share on other sites

I don't think this article should be used to smack people in the face who want to write an engine and I don't think it should be put on any kind of game development pedestal.

That's not what I use it for (nor what the article actually says, if you ignore your knee-jerk reaction to the title and really read it).

 

I'm merely pointing out a trap a lot of newcomers fall into, and sure, if the OP is purely looking for a learning exercise, then no one will stop him, but it never hurts to inform. If the OP had asked about "a primitive, but functional 3d game, something on par with say, the original QUAKE or Half-Life 1" I wouldn't have mentioned it at all...

0

Share this post


Link to post
Share on other sites

That's not what I use it for (nor what the article actually says, if you ignore your knee-jerk reaction to the title and really read it).

 

I don't think this article should be used to smack people in the face who want to write an engine and I don't think it should be put on any kind of game development pedestal.

 

I'm merely pointing out a trap a lot of newcomers fall into, and sure, if the OP is purely looking for a learning exercise, then no one will stop him, but it never hurts to inform. If the OP had asked about "a primitive, but functional 3d game, something on par with say, the original QUAKE or Half-Life 1" I wouldn't have mentioned it at all...

 

I have to agree with you on this one swift coder.  People need to be made aware of complications and heart aches of what they are getting in to and they need to weigh those equally or even more so critically than the idea that things are easy.  I seem to have been on a rampage of "Game Development is hard!" today (probably just gripes coming up from a difficult week) but it's still something VERY valid to say.

 

Engines power games yes, games can get very complex and time consuming yes.  This is my big argument when it comes to building games and engines together.  Simply put engines are extremely complicated maybe even the most complicated things that are ever coded.  Games can also be complicated and in some cases just as complicated as building the engine they are powered by.  This is why to me it's NEVER a good idea to do both.  If you want to make an engine just to learn things and your making a game using it just to see how it all ties together, great!  If you want to make an engine that other people may actually use is another story all together.  You will need to invest LOT's of time on making it high performance, easy and providing a wide range of tools.

 

Game content, development, coding and logic are also complicated and at times can take quite a large time investment.  Same as with the engine if your just doing the game to learn how things work and your coupling it with the development of a simple engine GREAT!  However if you want to get other people to actually play your game (not just test it for you but actually play it) you need to put in some effort and make it worth playing (keep in mind there is a lot of competition out there and tons of really good games).

 

So here's where I jump in on the argument between making engines and making games.  Both are required and both have nearly equal importance to each other.  That is to say without better engines we don't get better games.  Without better games we don't advance the engines to power them.  However when we get into the world where everyone builds their own engine and their own game at the same time we completely negate the first statement of this paragraph.  You build the engine to power your game and you build your game to run well on your engine and neither receive the proper attention that they deserve!  So my opinion on this whole thing is the more people try to do everything the more nothing gets advanced.  To me the argument isn't saying you can't build an engine it's that it requires just as much if not more dedication than the game itself.  As independent and or a small game studios we simply can't afford to take a year and a half to make a half way decent engine followed by another year and a half to complete the game itself and by the time we hit the shelves we're 2 - 3 years behind all the competition in performance and quality!  Even the larger studios that do build their own in house engines to go with their games have two different departments.  One focused entirely on the engine itself and another focused entirely on the game itself.

 

So if it's just for hobby then writing an engine is perfectly fine.  If there's any concern for profit you need to compete with the big boys who are dumping money into the development of their engines by the truck load.  Your one or two people working in your spare time you'r not likely to ever get on par with them.  However making a game with two or three people can be profitable...  Make a few games and get some money coming in first then take your experience and knowledge from making games and apply it to making the engine that powers them.  When you do make that leap into making the engines make sure that those involved are dedicated to just that and not the both at the same time (otherwise you will end up cutting corners and sacrificing performance and tools that will lead to loss of money and less chance or sales).

2

Share this post


Link to post
Share on other sites

Its not a question of "how long" but "how to go about it".  You'll find your own pace, and if you are smart about which areas you choose to tackle first, it might only take two or three years.

 

The "Quake" engine is certainly not a terrible long-term goal, but I'd recommend looking at the goal of making a Wolfenstein3D style ray-caster engine before even thinking about a full 3D engine. All you need is the ability to draw a pixel on the screen and obtain keyboard(possibly mouse) input.  The maths and programming skill required is slim and is a much more manageable project.

 

I'd learn(in order) C++, Software Development/Engineering, Maths(Trig & Algebra) and WindowsAPI(if you are using Windows).

0

Share this post


Link to post
Share on other sites

Its not a question of "how long" but "how to go about it".  You'll find your own pace, and if you are smart about which areas you choose to tackle first, it might only take two or three years.

 

The "Quake" engine is certainly not a terrible long-term goal, but I'd recommend looking at the goal of making a Wolfenstein3D style ray-caster engine before even thinking about a full 3D engine. All you need is the ability to draw a pixel on the screen and obtain keyboard(possibly mouse) input.  The maths and programming skill required is slim and is a much more manageable project.

 

I'd learn(in order) C++, Software Development/Engineering, Maths(Trig & Algebra) and WindowsAPI(if you are using Windows).

 

Thanks for the response, that's very useful to me and has helped me a lot.

 

I guess I messed up my initial terminology in my earlier posts, I guess I was, in my head, referring to a "Game engine", not a generic 3d engine. A game engine being something like Shadowcaster, Source Engine, etc.

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.com/rott/originalspec.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.

0

Share this post


Link to post
Share on other sites

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.

Edited by alnite
0

Share this post


Link to post
Share on other sites

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.

1

Share this post


Link to post
Share on other sites

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.

C++ is purely a programming language - it knows nothing about abstract constructs like 'screens' or 'pixels'.

 

You will need to use a library that exposes such functionality (something like SDL or pixeltoaster)

1

Share this post


Link to post
Share on other sites

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.

C++ is purely a programming language - it knows nothing about abstract constructs like 'screens' or 'pixels'.

 

You will need to use a library that exposes such functionality (something like SDL or pixeltoaster)

 

So what would've the early 3d game developers (ie again, Carmack working on Wolf3d) have used? Did they write their own libraries or were these kinds of resources available back then?

0

Share this post


Link to post
Share on other sites

If you really want to do it from zero, then it will be rather a long journey than a simple "project". If you have plenty of time and motivation then you`ll have nice results in 2-3 years(depending on how good you are at maths/3D maths.)

 

-You not just have to learn C++ ...but OOP prorgramming itself, lots of maths, 3D maths, physics, directX / openGL, (a sound API and networking ...optionally) etc.

If you dont wanna create your own 3D models ....just import them from an other program ...thats saves a lot of time. 

 

-It makes more sense to build up your engine incrementally and create actual games along the way, ....cause you can spend months with working on things that make your engine more solid but dont add anything to the graphics. .....it can be quite demotivating.

 

-And you need to have 2D projects too. ....with many things its better to have a good understanding of them in 2D before doing the dimension jump:)

 

....anyway Wolf 3D and Doom1 are not really 3D games, but 2D games with 3D(ish) graphics.

0

Share this post


Link to post
Share on other sites

So what would've the early 3d game developers (ie again, Carmack working on Wolf3d) have used? Did they write their own libraries or were these kinds of resources available back then?

Back in the days of DOS, the hardware was a lot simpler, and the OS didn't prevent user code from accessing the hardware directly. You could map the framebuffer into memory and write directly to it.

 

These days the hardware is infinitely more complex, and hundreds of processes may need to be drawing to the screen at the same time, so the OS and graphics drivers work very hard to insulate you from all that. You can't get any lower-level than the OS-specific drawing or 3D API - libraries like SDL just abstract across the many different OS-specific APIs that accomplish the same thing.

0

Share this post


Link to post
Share on other sites

If you really want to do it from zero, then it will be rather a long journey than a simple "project". If you have plenty of time and motivation then you`ll have nice results in 2-3 years(depending on how good you are at maths/3D maths.)

 

-You not just have to learn C++ ...but OOP prorgramming itself, lots of maths, 3D maths, physics, directX / openGL, (a sound API and networking ...optionally) etc.

If you dont wanna create your own 3D models ....just import them from an other program ...thats saves a lot of time. 

 

-It makes more sense to build up your engine incrementally and create actual games along the way, ....cause you can spend months with working on things that make your engine more solid but dont add anything to the graphics. .....it can be quite demotivating.

 

-And you need to have 2D projects too. ....with many things its better to have a good understanding of them in 2D before doing the dimension jump:)

 

....anyway Wolf 3D and Doom1 are not really 3D games, but 2D games with 3D(ish) graphics.

 

Sounds like an ideal plan, and yeah I'd begin with simple 2d engines, games etc at first, learn how it all slots together etc. I guess I wouldn't expect to be able to make a Wolf3d clone for a few years yet, but it's my goal. I dream of being able to make just some kind of generic 3d fps engine, even if it was never good enough to be sold or used commercially, just something to toy with and use to learn, but it's one of the things that's on the cards for the next decade of my life, or optimistically, 5 years.

 

As for 3d models, I should be able to build most of them myself, I've done a level design, 3d modeling and 3d animation before. I've done a bucketload of mod work over the last 10 years in Doom/2, Build engine, Source Engine and Unreal. Have also built a lot of special effects, so it would be fun to play around with some of these aspects from the coding side of things once I get the hang of it.

 

2-3 years sounds good, nothing good comes easy or fast, it just relieves me to know that it's not some 10 year endeavour, I don't want to end up making something half decent by the time my life is already more than halfway over.

Still, thanks for all the answers guys! I know I haven't replied to all of them but I've read all your responses.

Edited by James Miller
0

Share this post


Link to post
Share on other sites

I've been trying to follow tutorials for a good week now, but I'm finding myself frustrated at the fact that, when someone provides a tutorial code and basically says "just throw this in your compiler and run it", it can't just be entered into any C++ compiler. I'm finding myself lost with the fact that one has to go and, (if I've got this right), hunt down random libraries, headers etc, or compile their own. I guess that's one thing that programming in the QBASIC environment never taught me, and is one of my shortfalls in making the jump to C++. You could take code from anywhere and slap it in, compile it and run it, but as far as C++ goes, I feel like I'm going way too slow. When I was doing my games programming diploma at TAFE, they never even bothered to cover anything past making a simple real time strategy in C, never taught us how to make headers, or utilize custom libraries.

At the moment for example, I'm following Lode V's Raycasting tutorial -> http://lodev.org/cgtutor/raycasting.html and Codeblocks with the GNU C++ compiler. I would love to know what I need to be able to do to take the code he's provided and compile it successfully, have it spit out a .EXE I can run.

However, I'm finding that even after popping the appropriate libraries into their respective directories, (the SDL referred to in his tutorials) I'm running into compiler-killing errors. So I guess my next question is, given that there's no striaghtforward tutorial to setting up up library X with compiler Z, what would you guys recommend I use? Should I abandon codeblocks for another compiler and set of libraries that seem to be the standard? Every tutorial I find seems to always branch off into different directions and this is the one thing that tended to lose me; some will say to use Visual Studio, others will say use DevC++, etc, but often the codes don't seem to be interchangeable.

 

I would search before posting again, but I'm not quite sure what terms one would search for in regards to my question, but then again, I'm posting because I'm really keen, I really do want to learn, and I don't care how long it takes. I've spent the last week also touching up and studying maths furiously, have torn through a considerable amount of Khan Academy videos and begun quizzing myself, and making simple C++ programs to try and push what I've learnt as I guess this would be a good way to learn, by experimenting.

I know my posts are dead long, but anyone who has the time to respond, it would be mega appreciated, and when the day comes that I become an evil Russian billionaire, I'll happily pay the favor back however you like.

Edited by James Miller
0

Share this post


Link to post
Share on other sites

I've been trying to follow tutorials for a good week now, but I'm finding myself frustrated at the fact that, when someone provides a tutorial code and basically says "just throw this in your compiler and run it", it can't just be entered into any C++ compiler. I'm finding myself lost with the fact that one has to go and, (if I've got this right), hunt down random libraries, headers etc, or compile their own. I guess that's one thing that programming in the QBASIC environment never taught me, and is one of my shortfalls in making the jump to C++. You could take code from anywhere and slap it in, compile it and run it, but as far as C++ goes, I feel like I'm going way too slow.

<somewhat offtopic>

This is one of the many, many reasons that we don't recommend C++ as an early language. The number of pitfalls is ridiculous - a language like C#, Java or Python insulates you from most of this type of concern.

</somewhat offtopic>

 

More relevantly, perhaps: start small. Work your way up from "Hello, World!", learning all the basics along the way - source/header files, makefiles, static versus dynamic linking. C++ isn't the language to use if you want to go off half-baked.

0

Share this post


Link to post
Share on other sites

I've been trying to follow tutorials for a good week now, but I'm finding myself frustrated at the fact that, when someone provides a tutorial code and basically says "just throw this in your compiler and run it", it can't just be entered into any C++ compiler. I'm finding myself lost with the fact that one has to go and, (if I've got this right), hunt down random libraries, headers etc, or compile their own. I guess that's one thing that programming in the QBASIC environment never taught me, and is one of my shortfalls in making the jump to C++. You could take code from anywhere and slap it in, compile it and run it, but as far as C++ goes, I feel like I'm going way too slow.

<somewhat offtopic>

This is one of the many, many reasons that we don't recommend C++ as an early language. The number of pitfalls is ridiculous - a language like C#, Java or Python insulates you from most of this type of concern.

</somewhat offtopic>

 

More relevantly, perhaps: start small. Work your way up from "Hello, World!", learning all the basics along the way - source/header files, makefiles, static versus dynamic linking. C++ isn't the language to use if you want to go off half-baked.

 

Well, I've been reading through a book (C++ For Dummies. I also have Accelerated C++ and C++ The Complete Reference for later), although I'm learning how to code without any major issues, it's a matter of compiler compliance. (ie the tutorials in my book, oddly enough, use printf instead of cout, despite being a c++ book). Problem is, if I try tutorials online, I end up on the same problem; tutorials written by a group of different people, with vague areas such as "oh if you need this header, just make one yourself" etc. You need to already be able to professionally code, in order to learn to code it seems.

What I would love is to be able to pay for a digital tutor of sorts, someone I could ask questions to etc. The downfalls of tutorials are that they sadly, do not talk back whereas a tutor would be infinitely useful, especially one who has been involved in some form of either games programming or game engine programming (I'm curious and keen to try out both at some point). I've done Java and C in college, but it didn't really help me learn about how to tackle C++, especially game-related aspects, then again, my games development teacher consisted of a guy whos only programming experience consisted of a DOS style interface for a bank that he built.

 

I will take myself back a few steps though, I'm going to give myself at least 3 years max to try and get a basic Raycaster out there. If 7 year old youtube kiddies with ADD can do it, I don't see why I shouldn't be able to. I'll look up some tutorials on headers, makefiles, and linking, as it sounds like the kind of thing that has me a bit stumped at the moment. Thanks for your response by the way!

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0