• 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
tapir

Thinking about making video games, where do I start?

25 posts in this topic

Some time in my life I would like to make video games, because I enjoy playing them and am good at drawing and writing.

First question: In order to be a game programmer, do I need to learn a programming language first? If so, do you think C# or C++ is better?

Second question: Is it better to create a game engine or use a pre-existing one? The idea of creating a game engine seems overwhelming to me.

Third question: What is Blender? Is it a game engine, or graphics engine?

Forth question: Can the Havok physics engine be use with Blender?

Fifth question: Does blender have Maya (a 3D modeling software) support, because I'm used to using Maya?

Last question: should I start out with a simple game development program like Gamemaker?
0

Share this post


Link to post
Share on other sites
1) By definition, games programmers need to know programming languages. For beginners, C# is almost universally recommended over C++, because it's a lot easier to use correctly ([i]C++ is a dangerous language, for veterans and beginners alike[/i]).

2) If you've not used several game engines previously, then you will not be qualified to make your own.

3) Blender is a 3D modelling program just like Maya. There is also the "blender game engine", which is a game engine that is designed specifically for use with Blender.

Last Q) probably.
0

Share this post


Link to post
Share on other sites
[quote name='tapir' timestamp='1322713991' post='4889308']
Some time in my life I would like to make video games, because I enjoy playing them and am good at drawing and writing.

First question: In order to be a game programmer, do I need to learn a programming language first? If so, do you think C# or C++ is better?

Second question: Is it better to create a game engine or use a pre-existing one? The idea of creating a game engine seems overwhelming to me.

Third question: What is Blender? Is it a game engine, or graphics engine?

Forth question: Can the Havok physics engine be use with Blender?

Fifth question: Does blender have Maya (a 3D modeling software) support, because I'm used to using Maya?

Last question: should I start out with a simple game development program like Gamemaker?
[/quote]

1. Not necessarily. You can do a lot with scripting and pre-made game making programs and engines. If you want to learn to program, I would recommned C#. It's more forgiving for beginners than C++, and is easier to learn.

2. Depends on what you want to do. If you want to make a game, then an existing game engine is the way to go. If you want to learn a lot about coding without progressing on your project very quickly, then you can roll your own. Engines are indeed overwhelming to build on your own, and as a beginner I'd say it's out of reach.

3. Blender is a 3D modeling program which lets you create and animate 3D models for use in games, movies, or whatever else.

4. I don't know for sure (I don't do much with graphics), but I don't see why you wouldn't be able to.

5. I'm not sure what kind of support you mean, but I don't want to lead you astray. I'll leave this one to someone who can give an experience-based answer.

6. Again, depends on what you want. If your goal is to complete a game as soon as possible, then yes. If you are more interested in design than coding, then yes again. If you want to learn about computer programming and are more interested in developing that skill than in designing games, then you might like to jump straight into programming.

And there's no reason you can't do a bit of both if you want to, especially if you start learning a language like Python instead of C# to start. Python is great for scripting and easy to pick up, and also has good support libraries that you can use to make your own games if you choose.
0

Share this post


Link to post
Share on other sites
[quote name='tapir' timestamp='1322713991' post='4889308']
Some time in my life I would like to make video games, because I enjoy playing them and am good at drawing and writing.
[/quote]

May I suggest becoming an artist/designer instead? You need to realize that programming is ALL math, while subjects like English (I assume this is what you mean by 'writing') and drawing are less used, but still useful in basic engineering and team projects. So you need to take one of these options:

A) Go with your strengths and attempt art and design. You will most likely not be payed as much (disputed) if you try to get into the industry, but if you're visual then this is for you. Start making 3D models with Blender or create pixel art with MS Paint (it may sound primitive, but it's the best option for pixel art IMO).

B) Tough it out, work on your math skills and research math in your free time, and choose programming. This is the path I chose (I fit the exact criteria you described) and I am enjoying the challenges associated with it thus far. This path is extremely hard and stressing (you'll run into a lot of dead-ends, bugs, etc) but pays off eventually. This path also is 99% math, so prepare to take high level math courses in college if you wish to get a degree.
0

Share this post


Link to post
Share on other sites
Im not sure about the rest of the questions but for the first lots of people say to go with an easier language like c# or java before going to c++. however i am currently learning c++(with no prier knowladge to other languages) and its a bit of a challenge, but its really fun so i recommend going there.
0

Share this post


Link to post
Share on other sites
[quote name='Jungletoe' timestamp='1322716936' post='4889317']
[quote name='tapir' timestamp='1322713991' post='4889308']
Some time in my life I would like to make video games, because I enjoy playing them and am good at drawing and writing.
[/quote]

May I suggest becoming an artist/designer instead? You need to realize that programming is ALL math, while subjects like English (I assume this is what you mean by 'writing') and drawing are less used, but still useful in basic engineering and team projects. So you need to take one of these options:

A) Go with your strengths and attempt art and design. You will most likely not be payed as much (disputed) if you try to get into the industry, but if you're visual then this is for you. Start making 3D models with Blender or create pixel art with MS Paint (it may sound primitive, but it's the best option for pixel art IMO).

B) Tough it out, work on your math skills and research math in your free time, and choose programming. This is the path I chose (I fit the exact criteria you described) and I am enjoying the challenges associated with it thus far. This path is extremely hard and stressing (you'll run into a lot of dead-ends, bugs, etc) but pays off eventually. This path also is 99% math, so prepare to take high level math courses in college if you wish to get a degree.
[/quote]

I'm pretty good at math and it is one of the most fun subjects, but I usually practice art instead studying math work. Because of that, my (highschool) grades have suffered, but hopefully summer community college classes will help.

Have you ever heard a graphics gale? If not it's a pixel art/animation program. Here's what it looks like : [img]http://www.kopona.net/uploads/posts/2009-03/1236197975_graphicsgale_interface1.png[/img]

Based on the image, is it a better software for creating sprites?

Is 3D programming easier or more difficult?
0

Share this post


Link to post
Share on other sites
[quote name='Hodgman' timestamp='1322715052' post='4889312']
1) By definition, games programmers need to know programming languages. For beginners, C# is almost universally recommended over C++, because it's a lot easier to use correctly ([i]C++ is a dangerous language, for veterans and beginners alike[/i]).[/quote]

What do you mean by 'C++ is a dangerous language'? A lot of people seem to use it.
0

Share this post


Link to post
Share on other sites
[quote name='Hodgman' timestamp='1322715052' post='4889312']
2) If you've not used several game engines previously, then you will not be qualified to make your own.
[/quote]

I'd disagree slightly there, I'd say that if you havn't made several games previously then you will not be qualified to make an engine. You don't have to start by using third party engines, you could alsostart by making less complex games without any engine and build your skills from there. (Allthough the short term results will be far less impressive)

[quote name='tapir' timestamp='1322723379' post='4889330']
[quote name='Hodgman' timestamp='1322715052' post='4889312']
1) By definition, games programmers need to know programming languages. For beginners, C# is almost universally recommended over C++, because it's a lot easier to use correctly ([i]C++ is a dangerous language, for veterans and beginners alike[/i]).[/quote]

What do you mean by 'C++ is a dangerous language'? A lot of people seem to use it.
[/quote]

The language is full of undefined behaviour and some parts (especially the C legacy parts) of it is inherently unsafe, The situation is made worse by alot of internet tutorials essentially teaching C with classes rather than C++ (Thus using things like C style strings and memory management heavily which makes it extremely easy to write software that will crash, burn and possibly open up the users system to outside attacks).
0

Share this post


Link to post
Share on other sites
[quote name='tapir' timestamp='1322723379' post='4889330']What do you mean by 'C++ is a dangerous language'? A lot of people seem to use it.[/quote]This actually one of the reasons that a lot of people use it ;)

It's based upon C, which was created as a "portable version of assembly" -- it's a very low-level language that tries not to hold you hand. You can very easily write code that makes no sense and trashes the memory used by your program, causing crashes, leaks, etc...
C++ modernises C somewhat, making it much easier to write object-oriented code (and many other styles of programming), but it still keeps the lower-level abstractions of C.
As the saying goes, "[i]In C++ it's harder to shoot yourself in the foot.... but when you do, you blow off your whole leg[/i]."

E.g. C is renowned for not having a "string class", meaning that instead of thinking of it's basic text-handling as operating on "[i]text[/i]", you've got to remember that they actually operate on "[i]a memory address marking the beginning of stream of bytes, which terminates when a 0-byte is read[/i]"... If you want to modify text, you've got to manually allocate, deallocate portions of RAM ([i]while keeping track of which parts of the code 'own' which parts of RAM[/i]) and manually copy arrays of bytes around...
C++ tries to make this simpler by adding the [font="Courier New"]std::string[/font] class ([i]which handles all of the byte/RAM abstractions for you[/i]), however, you can still write dangerous code and circumvent these niceties, if you chose to -- all the tools to treat anything as a big pile of bytes are at your fingertips.
1

Share this post


Link to post
Share on other sites
[quote name='tapir' timestamp='1322723379' post='4889330']
[quote name='Hodgman' timestamp='1322715052' post='4889312']
1) By definition, games programmers need to know programming languages. For beginners, C# is almost universally recommended over C++, because it's a lot easier to use correctly ([i]C++ is a dangerous language, for veterans and beginners alike[/i]).[/quote]

What do you mean by 'C++ is a dangerous language'? A lot of people seem to use it.
[/quote]
A lot of people use guns. They're dangerous too.
0

Share this post


Link to post
Share on other sites
[quote name='DarklyDreaming' timestamp='1322744868' post='4889390']
[quote name='tapir' timestamp='1322723379' post='4889330']
[quote name='Hodgman' timestamp='1322715052' post='4889312']
1) By definition, games programmers need to know programming languages. For beginners, C# is almost universally recommended over C++, because it's a lot easier to use correctly ([i]C++ is a dangerous language, for veterans and beginners alike[/i]).[/quote]

What do you mean by 'C++ is a dangerous language'? A lot of people seem to use it.
[/quote]
A lot of people use guns. They're dangerous too.
[/quote]

Would you advise someone who's never seen a gun to buy one and start playing with it? Or, would you rather them understand what a gun is, the safety issues associated with it, and the ways you can harm yourself? If not, he's apt to shoot off his foot.

If the OP wants to learn what it means that C++ is "dangerous", then he can take the time to understand it, and, once he does, he's welcome to use it. If he just wants to jump in and make a game without knowing what C++ is, how it works, and the pit-falls associated with it, then he's apt to... "shoot off his foot.", so to speak.
0

Share this post


Link to post
Share on other sites
[quote name='tapir' timestamp='1322713991' post='4889308']
Last question: should I start out with a simple game development program like Gamemaker?
[/quote]

For what it's worth, when i started programming i just went straight to the task i wanted. No pong games or crappy platform games :) I set about making a huge terrain with a level of detail algorithm. I couldn't have done it any other way. I advise you to enjoy yourself. I didn't have anything to show for my work for ages, but to me it was immensely satisfying working on exactly what i had envisioned in my mind.
0

Share this post


Link to post
Share on other sites
[quote name='BeerNutts' timestamp='1322750189' post='4889414']
[quote name='DarklyDreaming' timestamp='1322744868' post='4889390']
[quote name='tapir' timestamp='1322723379' post='4889330']
[quote name='Hodgman' timestamp='1322715052' post='4889312']
1) By definition, games programmers need to know programming languages. For beginners, C# is almost universally recommended over C++, because it's a lot easier to use correctly ([i]C++ is a dangerous language, for veterans and beginners alike[/i]).[/quote]

What do you mean by 'C++ is a dangerous language'? A lot of people seem to use it.
[/quote]
A lot of people use guns. They're dangerous too.
[/quote]

Would you advise someone who's never seen a gun to buy one and start playing with it? Or, would you rather them understand what a gun is, the safety issues associated with it, and the ways you can harm yourself? If not, he's apt to shoot off his foot.

If the OP wants to learn what it means that C++ is "dangerous", then he can take the time to understand it, and, once he does, he's welcome to use it. If he just wants to jump in and make a game without knowing what C++ is, how it works, and the pit-falls associated with it, then he's apt to... "shoot off his foot.", so to speak.
[/quote]
I was underscoring how stupid it is to [i]start[/i] with C++.

As to your analogy, I'd rather hand him a handgun (C#) or hunting rifle (Python) than a bazooka (=C) or rocket launcher (C++) - yes. Don't get me wrong, you can start with the latter - but it's harder to do [i]right [/i]than the former and much [i]much [/i]easier to do [i]wrong [/i]unless you have a pretty damn good teacher! :)

EDIT: actually, scratch that analogy. I realized just how stupid it was after I wrote it -- having had some weapons training, rocket launchers aren't that high-tech compared to more regular weaponry. But I digress. C++ is still shitzels hard and easy to screw up - failed analogy or no.
0

Share this post


Link to post
Share on other sites
(though the analogy may be dropped it still has to be said)
C++ doesn't kill people, people kill people.

Maybe a better analogy might be like the difference between a radio and a professional recording studio. You can use both to play music but one has a lot more technical components that can take quite awhile to know what they're for and how to use them effectively. There may come a time that you may want to or should use the complicated technical equipment but it probably isn't the best choice for learning on.
0

Share this post


Link to post
Share on other sites
Im surprised everyone goes on about C++ being difficult and dangerous. It reminds me of the current state of aviation. Pilot's have lost their stick and rudder skills (akin to C++), and now rely on the flight computers. It leads to some truly un-believable accidents, that a Private license holder should not even make. Very sad. Either way, even when you are shooting your foot off, you are learning, and that's programming. C++ will make you stronger. I say.
0

Share this post


Link to post
Share on other sites
[quote name='EgoDeath' timestamp='1322759762' post='4889464']
Im surprised everyone goes on about C++ being difficult and dangerous. It reminds me of the current state of aviation. Pilot's have lost their stick and rudder skills (akin to C++), and now rely on the flight computers. It leads to some truly un-believable accidents, that a Private license holder should not even make. Very sad. Either way, even when you are shooting your foot off, you are learning, and that's programming. C++ will make you stronger. I say.
[/quote]

Do new pilots start on an Airbus A300?

No, they start on Cessnas. In programming though, people always want to skip the learning stage.
1

Share this post


Link to post
Share on other sites
C++ analogies are misleading. I use it because pretty much every class I took in college required us to work in C++ (except for a languages course that introduced a bunch of stuff like ADA and Lisp). It is not "hard to learn" and if you're scared of it you should be far more scared of game development in general, which itself in any language is more complicated and demanding to learn than c++.
0

Share this post


Link to post
Share on other sites
[quote name='Kobo' timestamp='1322762164' post='4889483']
C++ analogies are misleading. I use it because pretty much every class I took in college required us to work in C++ (except for a languages course that introduced a bunch of stuff like ADA and Lisp). It is not "hard to learn" and if you're scared of it you should be far more scared of game development in general, which itself in any language is more complicated and demanding to learn than c++.
[/quote]
[quote name='EgoDeath' timestamp='1322759762' post='4889464']
Im surprised everyone goes on about C++ being difficult and dangerous. It reminds me of the current state of aviation. Pilot's have lost their
stick and rudder skills (akin to C++), and now rely on the flight computers. It leads to some truly un-believable accidents, that a Private
license holder should not even make. Very sad. Either way, even when you are shooting your foot off, you are learning, and that's
programming. C++ will make you stronger. I say.
[/quote]
Will people for the [i]love of god drop this[/i]! Nobody (well, nobody [i]in their right mind[/i]) is saying "C++ is hard to learn; avoid at all cost!" -- we're saying "C++ is hard to learn [i]the right way[/i]; when used the [i]wrong way[/i] it will make for a [i]frustrating [b]laborious [/b]and quite frankly [b]horrid [/b]experience[/i]. You know, maybe wait with C++ until you've learnt to [i]program[/i]".

Programming has surprisingly little to do with C++, C#, Python, Boo, Java, Javascript, UnrealScript or <<Insert language here>> -- it has an ungodly lot more to do with variables, boolean logic, constants, data structures, value types, class design, operator logic etc.

Now stop perpetrating the myth that C++ is "easy" or "programmers shouldn't run scared" and start to get [i]why [/i]we are saying it instead of just being rebel against [i]what [/i]we are saying. Almost any other language aside from C or C++ will give you an easy time as a beginner and [i]allow [/i]you to focus on getting actual [i]programming [/i]in your head instead of "Oh, C++ throw invalid all over the floor because apparently floorca3k is undefined behaviour when used like this... oh, now I caused a memory leak that took me three days to fix. Hey, let's implement strings using char*!"

Ugh.
0

Share this post


Link to post
Share on other sites
[quote name='Serapth' timestamp='1322760950' post='4889473']
Do new pilots start on an Airbus A300?

No, they start on Cessnas. In programming though, people always want to skip the learning stage.
[/quote]



Yes on a Cessna well done. An aircraft with no bad habit's, a highly 'managed' airframe, flown in highly managed environments (training). That's the closest they get to hands-on.

From there it's all just monitoring an autopilot. By the time they are on an Airbus [i]A300[/i], they have forgotten how to fly. Sad but true.

Anyways seemed like a good analogy at the time.
0

Share this post


Link to post
Share on other sites
[quote name='EgoDeath' timestamp='1322766098' post='4889521']
[quote name='Serapth' timestamp='1322760950' post='4889473']
Do new pilots start on an Airbus A300?

No, they start on Cessnas. In programming though, people always want to skip the learning stage.
[/quote]



Yes on a Cessna well done. An aircraft with no bad habit's, a highly 'managed' airframe, flown in highly managed environments (training). That's the closest they get to hands-on.

From there it's all just monitoring an autopilot. By the time they are on an Airbus [i]A300[/i], they have forgotten how to fly. Sad but true.

Anyways seemed like a good analogy at the time.
[/quote]

Thanks for the replies, but all these different analogies about C++ are confusing.
0

Share this post


Link to post
Share on other sites
[quote name='tapir' timestamp='1322800613' post='4889675']
[quote name='EgoDeath' timestamp='1322766098' post='4889521']
[quote name='Serapth' timestamp='1322760950' post='4889473']
Do new pilots start on an Airbus A300?

No, they start on Cessnas. In programming though, people always want to skip the learning stage.
[/quote]



Yes on a Cessna well done. An aircraft with no bad habit's, a highly 'managed' airframe, flown in highly managed environments (training). That's the closest they get to hands-on.

From there it's all just monitoring an autopilot. By the time they are on an Airbus [i]A300[/i], they have forgotten how to fly. Sad but true.

Anyways seemed like a good analogy at the time.
[/quote]



Thanks for the replies, but all these different analogies about C++ are confusing.
[/quote]



Sorry i was de-railing the thread. The other people here know what they are talking about, (minus aviation lol). Really just dive in, you will need to learn a lot, and the only way to learn is by doing, so do. :)
0

Share this post


Link to post
Share on other sites
[quote name='tapir' timestamp='1322713991' post='4889308']
Last question: should I start out with a simple game development program like Gamemaker?
[/quote]

Just my two pence, I started games programming with C++ and Allegro (a 2D library, probably dead now) and made a load of rubbish 2D games to get my feet wet and I'd thoroughly recommend this approach!

Lolliver.
0

Share this post


Link to post
Share on other sites
[quote name='tapir' timestamp='1322713991' post='4889308']


First question: In order to be a game programmer, do I need to learn a programming language first? If so, do you think C# or C++ is better?


[/quote]
Please start with C#. It's a lot more easier than C++. You can now move ahead to C++ after you've grasped the concept of programming games to an extent. BTW, game programming doesn't entirely have to do with the language. It more about maths and problem solving!
0

Share this post


Link to post
Share on other sites
Sorry about the confusion with C++ analogies, it seems like they always pop up in threads like this. Any language you choose will be fine for programming games, but there are reasons that people are recommending against C++ for you as a beginner and the analogies can quickly make those reasons less apparent to a beginner.

Learning to program anything is a skill in itself. You will have to learn about data types, program structure, design practices, project management, and many other things regardless of the language you choose. That's not a trivial set of skills to pick up though, and so will require time and effort on your part.

C++ is finnicky in that while using it you have a large responsibility for a very broad and deep set of your program's functionality and use of computer resources. The tradeoff for that is a very precise level of control of those things. But it's very very easy to neglect some part of that reponsibility, and C++ will not protect you from the consequences at all. As a beginner, you would be contending with that at the same time as you are grasping general programming concepts which adds to the complexity and difficulty of your development all at once.

A language like C# is gentler in how it handles some of those things, which takes some of the responsibility off of your shoulders. This would let you focus on learning other basic skills without needing to learn some more technical and complicated things right away. Your coding will generally go more smoothly and more quickly, and at the beginner and intermediate levels you are unlikely to need the level of control that C++ forces you to have.

If you want to learn C++, you can. But there's no reason not to wait-- you will pick it up more quickly after you already have some programming ability, and what benefits it provides won't materialize for quite a while anyways. However, if you choose C++ anyhow you can still succeed, as other people have.

My opinion (experience based) is that you will gain nothing from starting with C++ as opposed to C#, and will make your development more complicated and slower besides. C# is absolutely sufficient for your goals at this time.
0

Share this post


Link to post
Share on other sites
[quote name='tapir' timestamp='1322800613' post='4889675']
[quote name='EgoDeath' timestamp='1322766098' post='4889521']
[quote name='Serapth' timestamp='1322760950' post='4889473']
Do new pilots start on an Airbus A300?

No, they start on Cessnas. In programming though, people always want to skip the learning stage.
[/quote]



Yes on a Cessna well done. An aircraft with no bad habit's, a highly 'managed' airframe, flown in highly managed environments (training). That's the closest they get to hands-on.

From there it's all just monitoring an autopilot. By the time they are on an Airbus [i]A300[/i], they have forgotten how to fly. Sad but true.

Anyways seemed like a good analogy at the time.
[/quote]

Thanks for the replies, but all these different analogies about C++ are confusing.
[/quote]
It's confusing because half of the people who have little experience are making recommendations above their level; in short, they don't have the experience required to make the necessary judgement calls for a rookie.

You can start with whatever, but know that starting with C++ is a magnitude harder and less rewarding; just as starting with COBOL would be frowned upon. :)

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