Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411283 Posts in 69325 Topics- by 58380 Members - Latest Member: bob1029

March 29, 2024, 04:39:13 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)Good way to start Game Development (maybe professionally)
Pages: [1]
Print
Author Topic: Good way to start Game Development (maybe professionally)  (Read 1399 times)
chrYlag
Level 0
*


View Profile
« on: September 02, 2015, 03:02:31 AM »

Hey there,

I already asked this in another Forum but since there were no answers, I decided to give it a go over here.

I am 25 years old and about to start studying Computer Science in October. I have beginner-level knowledge of programming and computers in general.
I want to go for game programming. Firstly as a hobbyist but mayber later on (after finishing my studies) in a professional manner.

First of all: I don't want to go for quick results, I want to go for game development in the long run.

I thought of going for pure C++ first and grasp the basics of (OOP-) programming. After that I wanted to go for SFML, DirectX and maybe Unreal Engine.

Now I heard alot about learning C Sharp and Unity, but I think in the game industry mostly CPP is used, like i read.
But about CPP: Is it better to learn pure CPP first and engine programming - like Unreal Engine 4 - afterwards or learn CPP while experimenting with an Engine?
Some say it would be better to go for C++ first, because if you don't have any basics you will get lost very fast while others say if you want to go for gamedev, go for it directly as you will not earn anything from learning "hello world".

Thanks in advance!
Logged
Layl
Level 3
***

professional jerkface


View Profile WWW
« Reply #1 on: September 02, 2015, 03:11:18 AM »

C++ is only the industry standard in the top of the line triple A engine development. Mostly for your own games or for smaller teams it is likely to slow you down. For UE4 it is still needed and they have done a lot of work to make it more accessible, but it still can be quite a pain. The main gist of it is, at this point if you get to choose there's better options for any purpose you would want to use C++ for.
Logged
Cheesegrater
Level 1
*



View Profile
« Reply #2 on: September 02, 2015, 03:33:44 AM »

As a beginner developing the skill of programming is more important than the details of any particular language. Use whatever you feel most motivated in to start - your skills will transfer to other languages once you have a firm understanding of the fundamentals.
Logged
Halogen
Level 0
**



View Profile WWW
« Reply #3 on: September 02, 2015, 04:48:08 AM »

I'm sort of in the same boat- wanting to expand to programming for a more universal standard while also knowing none at all.  I actually chose to start on java for that reason: it doesn't have such a steep learning curve, is easy for beginners to the programing world to pick up and understand, and is an object oriented language, same as C++ so thr switchover is easy and quick.

This article is very good at highlighting how to make a decision and what to look for in a language. It also provides some visuals to showcase what is said.

http://lifehacker.com/which-programming-language-should-i-learn-first-1477153665?commerce_insets_disclosure=off&utm_expid=66866090-48.Ej9760cOTJCPS_Bq4mjoww.1



Logged
Mariofan0
Level 0
***


Your Local Nintendo Fanatic


View Profile
« Reply #4 on: September 02, 2015, 05:14:11 AM »

I'm sort of in the same boat- wanting to expand to programming for a more universal standard while also knowing none at all.  I actually chose to start on java for that reason: it doesn't have such a steep learning curve, is easy for beginners to the programing world to pick up and understand, and is an object oriented language, same as C++ so thr switchover is easy and quick.

I too am in a similar boat, having very limited programming experience, and yet the desire to learn. I've messed with GML (Gamemaker Language), HTML, and Put effort into learning PHP, none of which really do me any good for what I want to do at the moment. My problem at the present is figuring out what type of programming language is right for what I want to do, is easy enough for me to learn, and has a great number of free Tutorials Online to help me get started.

My suggestion would be tring to learn something easier to grasp, that still may be useful in the long term, sadly I can't really point in any real direction in regards to what that might be.
Logged

You wanted a signature? Boy I bet you're dissapointed.
Layl
Level 3
***

professional jerkface


View Profile WWW
« Reply #5 on: September 02, 2015, 05:18:48 AM »

If you don't want to limit yourself to starting with C++, I would actually advice going for a functional language, Haskell perhaps, or a more conservative functional-ish language like Rust. The reasoning for this is that it tends to be harder to learn a functional language when you already know another language than it is learning it from a clean slate.

The disadvantage with these languages however is that they tend to not have an as good ecosystem for games. I had a very hard time finding game programming libraries for Haskell, and while Rust as a language is extremely good for game development, its young ecosystem while strong has not yet developed anything that's that good to use for beginner game development. [shameless plug]Though I've made an attempt to make something that lets you draw easily in a way similar to SDL. It's called jamkit and is available on crates.io.[/shameless plug]

As well, the mathematical concepts of a functional language can be very daunting. *cough*monads*cough*

A side-note to all of this, while it's easy to transition from one language to another in theory, in practice it's a lot harder once you go further than the surface. It's easy to pick up another language's basics but a lot harder to learn the way the ecosystem works. (cargo, nuget, npm, gems, etc...)

As well, a language like C++ makes you work a lot differently with memory than a language like Java or C# will. It's not as straightforward going from a garbage collected language to a manual memory management language as it may seem.
Logged
Cheesegrater
Level 1
*



View Profile
« Reply #6 on: September 02, 2015, 07:53:43 AM »

Agreed, moving from one language to another isn't zero work.

But it is a small enough fraction of the work of learning the core concepts that a beginner shouldn't worry about selecting the perfect starting language.

Just pick something you like and go with it. In the earliest stages the most important thing is to keep yourself from getting discouraged. Program something small every day.
Logged
Mariofan0
Level 0
***


Your Local Nintendo Fanatic


View Profile
« Reply #7 on: September 02, 2015, 08:13:11 AM »

Program something small every day.

Pretty much the key to learning right here, its all about doing, a good Tutorial isn't going to get you far on its own, you'll need to actually do some programming during the study for it to be a good learning experience.

Another thing to note is for some, like myself having a Mentor to fall back on if you ever find yourself stumpped on something can really pay off. That said I think that asking a Mentor for help is something you use as more a last resort, as to not be too demanding of someone who might not be very invested in working with you.
Logged

You wanted a signature? Boy I bet you're dissapointed.
lithander
Level 3
***


View Profile WWW
« Reply #8 on: September 03, 2015, 06:14:54 AM »

I thought of going for pure C++ first and grasp the basics of (OOP-) programming. After that I wanted to go for SFML, DirectX and maybe Unreal Engine.

Now I heard alot about learning C Sharp and Unity, but I think in the game industry mostly CPP is used, like i read.

SFML is good to get started. Doesn't matter too much if you start in C, C++ or C#. I was teaching students (6th term) on C# and SFML lately and they enjoyed working on their little game engines a lot. I was positively surprised by the dedication and final results. They had no prior C# experience but knew a little Java & C++. Those languages are all very similar and it's not so much about the language but about what you do with it. There are a couple of gamedev specific patterns. I'd share my slides & assignments but they are probably not much use without the lecture accompanying them.
Logged

chrYlag
Level 0
*


View Profile
« Reply #9 on: September 05, 2015, 12:36:49 AM »

I'm sort of in the same boat- wanting to expand to programming for a more universal standard while also knowing none at all.  I actually chose to start on java for that reason: it doesn't have such a steep learning curve, is easy for beginners to the programing world to pick up and understand, and is an object oriented language, same as C++ so thr switchover is easy and quick.

This article is very good at highlighting how to make a decision and what to look for in a language. It also provides some visuals to showcase what is said.

http://lifehacker.com/which-programming-language-should-i-learn-first-1477153665?commerce_insets_disclosure=off&utm_expid=66866090-48.Ej9760cOTJCPS_Bq4mjoww.1





I was thinking of Java too.
The Problem is, I'm not sure wether it's easier to make the switch from Java to C++ or the other way around.

While Java is said to be the easier choice
for beginners, many say that learning C++ first will make learning Java like walking down the Hill.

While -vice versa- C++ After Java will be a harder one.
Logged
kirennian
Level 0
*



View Profile WWW
« Reply #10 on: September 05, 2015, 11:51:29 AM »

I'd highly recommend starting with C# to learn programming before finally moving to C++ when you feel devilish enough to want to move to programming something complex enough where performance would actually be important.

C# is massively documented, sets you up extremely well for a programming career in general (we can't all end up in the games industry after all and you never know what the future may bring) and to be honest, it's actually quite a simple language.  It is extremely powerful and there are many game engines which are built off of it so you can make simpler games with it quite happily.  In fact, you could make very complex games with it but by the time you're talking about complex games, you're more likely to be moving into a team in the industry where C++ would be more prevalent.

The reason I'd recommend not jumping directly into C++ is that it's a language whereby you can learn bad habits, very quickly and it's a more challenging language to learn.  It's much more placed as a second language and really, if you were to try and code your first 5 games in C++ vs C#, they'd probably end up running less reliably and slower, purely because of the bad habits and hidden complexities I mentioned earlier.  By the time you've worked with C# for a while and got core programming concepts down, then you can start exposing yourself to more challenging, lower level concepts and tackle them more in isolation.  Probably a bad example but I'm sure bricklayers learn how to place bricks before learning how to properly mix cement...

As for other languages, many people will disagree with me but in the current programming market, I don't really see them as having larger benefits.  Okay so looking at isolated aspects there may be slight advantages other either C# or C++ but the wider picture would tell a different story.  Nothing these days has better documentation or help available than C# (C++ tutorials don't count because for every good one, there are 9 bad), C++ is extremely quick (Okay you could code in machine code and be faster but spend 10x as long developing) and the combination of these would set you up in the industry for both commercial non-gaming development as well as game programming.

As for java specifically mentioned here, it's a decent starting language and the core of it equals c# for a first language but for multi-year learning, it doesn't have as many strong concepts for cutting edge, it doesn't have as many easily usable libraries and any gaming engines built on it just won't perform as well...
Logged

saturdaymorning
Level 5
*****



View Profile
« Reply #11 on: September 05, 2015, 01:35:07 PM »

It depends largely on what you want to be doing in the long run. If you really wanna get your hands dirty with the innards of engines, then you're definitely on the right track tackling low level C++ stuff.

I'm not too into tech, but I like interactive things. I started off doing web development before transitioning to games. I'm making a small living out of it, and I'm primarily building content while scripting in Python. If I could tell past me what to start with, I'd go with something like GameMaker or HaxePunk. Unity if I wanted to do 3D.
Logged
JWki
Level 4
****


View Profile
« Reply #12 on: September 06, 2015, 11:36:36 AM »

There's a reason baseball players practice with bats that are heavier than what they have to use in a game.

If you know C++, you'll be able to learn most other imparative languages easily because they share most concepts, but C++ is "harder" in a way than all of them because the level of control it offers makes it easy to mess up big time. C offers a similiar level of control, but has a much tighter specification which makes the "right" way to do things easier to see compared to the multi-paradigm mess that C++ can be.
Plus, if you want to get into game programming professionally, learning C++ should be a no-brainer because AAA companies require it in any case, and even if you're not going to work in AAA, it will be invaluable because a) to write really optimized, well-performing games you're better off using C++ and b) your knowledge will help you even if you're using C# or another more high-level language.
That's only my two cents though. I might be biased, but I think learning the difficult stuff first makes learning the easier stuff trivial.
Logged
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic