Jump to content

  • Log In with Google      Sign In   
  • Create Account

Moving into the real world....


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 Astralking   Members   -  Reputation: 111

Like
0Likes
Like

Posted 21 August 2012 - 09:03 AM

Hi all.

Just finished uni and managed to land a job in .Net, mainly C# and SQL, but for as long as I can remember I've wanted to make games. For my final year project I made a 2D platformer in XNA + the farseer physics engine which went pretty well but because I wanted some sort of final product to show so alot of my time was spent gathering sounds and graphics etc.

Now I want to start branching into C++. Slightly later than I would have liked but the software development on my course was mainly Java/C# so didn't get much chance. The game for my final year project had a tile based system where different letters represent different tiles (X was ground, x was ground with no friction etc etc).

My questions are, do you think my knowledge of C# would be enough for me to jump straight into some form of simple C++ games development (I do know some aspects of C++), or should I start from scratch reading a C++ book. I know which one I'd prefer but thought I'd ask :P

I also wouldn't mind some one to give me some opinions on Unity? I don't know too much about it. Is it worth learning from a job perspective/hobby perspective? As worst comes to worst, i'll be making games as a hobby as opposed to a full time job.

Sponsor:

#2 CryoGenesis   Members   -  Reputation: 499

Like
0Likes
Like

Posted 21 August 2012 - 10:58 AM

I don't think you should jump straight in to c++. You should read books on the language first. C# and Java are a bit similar to c++ but there are lots of concepts and new things which are a bit confusing if you've been programming in Java or C# for a long time.
I wanted to start programming 3D with directX so I decided to learn C++. I thought I would get it straight away and I kind of did because I spent the whole night trying to learn the new concepts the rest is practically the same as any other language. It's more of becoming comfortable and confident with the language's techniques. I for one decided not to program games in C++ just because the new concepts seemed more of a pain in the ass. Decided to use OpenGL in Java instead. No idea why people say Java is bad for game programming. It's just as good as any other language.
Although, if you are thinking of going to professional game programming then you should learn C++ and directX just because it's industry standard. I'm going to learn C++ and DirectX at some point but at the moment I just can't be arsed.

#3 Telastyn   Crossbones+   -  Reputation: 3730

Like
0Likes
Like

Posted 21 August 2012 - 11:05 AM

My questions are, do you think my knowledge of C# would be enough for me to jump straight into some form of simple C++ games development


No.

Focus on one thing at a time. Learn C++ syntax, then standard library, then how program design differs due to language details, then library X, then Y and so on.

#4 Rld_   Members   -  Reputation: 1526

Like
0Likes
Like

Posted 21 August 2012 - 11:53 AM

It's probably better to start from scratch. You might go through all the stuff a little faster as you will probably understand the basic principles of shared similarities of C# and C++, but you might break you head over stuff you are used to in C# that isn't in C++ (and vice versa) and as Telastyn suggested, just take one step at a time.

As for unity. You have C# knowledge which is a good start as that is one of the three scripting languages Unity uses. Unity is pretty easy in my opinion, it has this great simplicity in it, but this can also be your downfall when you tend to do more complex stuff. It is than you notice that the simplicity can halt your progress, but so far I always managed to find workarounds (although my problems weren't all that difficult). It's a fun engine to work with, just try it out sometime.

#5 sneakysebastian   Members   -  Reputation: 102

Like
0Likes
Like

Posted 21 August 2012 - 12:28 PM

What are your current programming skills Astralking?

I'm no programmer, but I used to study it at university. I've never heard anybody agree with me on this, so take this with a grain of salt, but I found it very difficult to start at one university teaching C++ to another teaching Java. I just couldn't unlearn the habits I'd picked up with C++.

Not sure if that means you should just start with C++ and learn it in its entirity, or means you should learn other (easier) languages first then get to C++ eventually.

#6 Lightness1024   Members   -  Reputation: 739

Like
0Likes
Like

Posted 21 August 2012 - 03:19 PM

A lot of people on internet who have experience have a tendency to advice to "do things in order".
but frankly, I didn't do things in order, of course it resulted in early projects being BADLY written. but they worked.
How the man will learn without going for it ?
Will you really learn C++ doing some academical stupid exercise with no purpose ?
"make a class car that Client that heritates from Person..." come on ! everybody hates that. it is no way to learn.
My advice is the opposite: you want to make a game in C++ but you don't know the language too good ? what the hell... just go for it damnit :)
it WILL make you learn it the hard way, and that is NOT a problem !

there, I said it :)

#7 Telastyn   Crossbones+   -  Reputation: 3730

Like
0Likes
Like

Posted 21 August 2012 - 08:48 PM

Will you really learn C++ doing some academical stupid exercise with no purpose ?


Just because you're focusing on one item means you only work on boring stuff. But yeah, you should maybe make a chat server/client before making a multiplayer game. You maybe should make a flocking screensaver before designing a scripted particle system.

it WILL make you learn it the hard way, and that is NOT a problem !


That depends on if you think that it is not a problem to waste your time doing things the hard way for a while until you realize that those 'lot of people on the internet' were right and go back to focused learning.

'Practice does not make perfect. Perfect practice makes perfect.'

#8 Astralking   Members   -  Reputation: 111

Like
0Likes
Like

Posted 22 August 2012 - 05:09 AM

"make a class car that Client that heritates from Person..."


I've written object oriented programs before and now I've been working in my new job with a huge piece of software and many modules for the past two months my general programming knowledge is loads better.

Decided to use OpenGL in Java instead. No idea why people say Java is bad for game programming. It's just as good as any other language.
Although, if you are thinking of going to professional game programming then you should learn C++ and directX just because it's industry standard. I'm going to learn C++ and DirectX at some point but at the moment I just can't be arsed.


I think this may be the way I'm gonna go. For general concepts, is OpenGL similar to directx? I have virtually no knowledge of either! I think I will start learning the concepts in C++ from a none gaming perspective as well as starting on OpenGL in Java. My knowledge is mainly in C# but Java and C# are so similar that I don't think that should be an issue as I have done some Java before.

I realise this is probably in other places but while i'm here I may as well ask! Wheres the best place to start OpenGL i.e. book/online tutorial? and any reccomendations on C++ books for people who have a good grasp of normal object oriented programming concepts?

#9 Legendre   Members   -  Reputation: 966

Like
0Likes
Like

Posted 22 August 2012 - 06:54 AM


Will you really learn C++ doing some academical stupid exercise with no purpose ?


Just because you're focusing on one item means you only work on boring stuff. But yeah, you should maybe make a chat server/client before making a multiplayer game. You maybe should make a flocking screensaver before designing a scripted particle system.

it WILL make you learn it the hard way, and that is NOT a problem !


That depends on if you think that it is not a problem to waste your time doing things the hard way for a while until you realize that those 'lot of people on the internet' were right and go back to focused learning.


IMHO, from personal experience trying to learn serious programming, you are both correct. That is,

1. Doing academic exercises with no purpose is not the way to learn programming.

2. Still, focused learning with small objectives is the best way to go. I highly recommend figuring out the game you'll like to make, and what kind of features does it consist of. Then make tech demos related to those features.

E.g. I wanted to make a multiplayer HTML5 RPG. Parts: web chat, web server to receive/send data, client for browser, log-in system. So, I started by making small "tech demos" or applications for each of those parts, using various technology/languages because I haven't decided on a framework.

After that, I decided on javascript as the language I want to use. So I start over, making a single application with the capabilities of those parts. Because I went through the "tech demo" process, I have old codes to reuse, and knowledge of how to make each part. And I am motivated to do all these because I know everything will add up in the end to become the game I want to make.

P.S.
My programming experience is limited to "soft languages": scientific computing with python, server + client-side javascript (html5 games etc), and flash actionscript. So I could be wrong when it comes to the various incarnation of C.

#10 nfries88   Members   -  Reputation: 259

Like
0Likes
Like

Posted 22 August 2012 - 01:52 PM

Ah, C++, still my favorite programming language.

It's pretty easy to learn if you're willing to devote the time to learning it. I would try C++/CLI first, since it will be more familiar to you.
Probably the hardest part of going to C++, from a higher-level language like Java/C#/VB/etc, is memory management. Once you get it down pretty well, you'll feel like an idiot for ever having struggled with it, but you're going to struggle with it.

Edited by nfries88, 22 August 2012 - 01:52 PM.

Looking for paid or open-source C++ programming work. Been programming since 2005. No degree.

#11 Lightness1024   Members   -  Reputation: 739

Like
0Likes
Like

Posted 24 August 2012 - 04:22 AM

Telastyn: I think you recalled only a part of what I said, because while I agree with your answer, I think it is not a correct answer for what I was saying.
I only meant to say: "practice doing something interesting, don't wait to have finished reading 3 books from A to Z before starting".
It is not lost time to make a screensaver that has shitty code because you jumped in too fast. But at least your are learning how to improve your style for the next project.
We definitely all agree on that thread: "practice makes better' (I just deviated from your more complicated quote, which is true but only relevent in an advanced state of knowledge)

#12 BCullis   Crossbones+   -  Reputation: 1813

Like
0Likes
Like

Posted 24 August 2012 - 08:10 AM

Unity is a great tool for hobbyists, if for no other reason than it saves you from having to build the framework for your projects, and lets you start making the game itself. I'm picky in that I want to have only and specifically what I think my game needs to be part of the framework, (and I wanted to learn DX11) so I've been working from the ground up, and I can guarantee someone working in Unity would have a lot more to show for their time compared to where I'm at.

As for C++: you've already made the biggest step (learning how to program) and have flexed those skills to great effect in your final project. I think you're in a prime position to use one of the "learn C++ through game programming" books, maybe keep "Accelerated C++" handy so you have a second opinion on how to handle certain things (since C++ has a lot of leftovers from original C, there are better and worse ways to do the same thing, like the ol' char* vs std::string problem). I wouldn't recommend trying to program games in C++ to a complete novice, but since you have several years experience with programming, it's really just going to be an issue of learning syntax and memory management. Having a few small games as testbeds for the language would be a great motivator for continuing to learn. I've made a lot more progress understanding C# while trying to make my framework do something specific compared to the sterile academic examples that books cook up for you.

As a side note: if you want to learn C++ because you want to learn it, by all means go for it. If you think it's what you need to learn to be a "real" game programmer...I'd suggest continuing on with the language you already have a couple years' experience with and look into some additional libraries if you want to add on to current projects. There's a .NET wrapper around almost anything these days.
Hazard Pay :: FPS/RTS in SharpDX
DeviantArt :: Because right-brain needs love too




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