Home Technical Talk

Learning to code.. C++ or Python?

Sear
polycounter lvl 7
Offline / Send Message
Pinned
Sear polycounter lvl 7
Hi everyone. after trying to make it in the game industry as an artist for 4 years with no success I am heavily considering learning to code. I want to make games, however I haven't coded anything in 10 years and that was in Visual Basic. If I want to learn am I better off jumping straight into a language like C++ or should I start with an easier language like python (not saying python is easy :D).

As a side note I am hoping learning to code will allow me to develop my own games, or at the very least give me that 'technical artist' title :D. Hell, it might lead to a different career altogether.

Thanks for your opinions in advance.

Replies

  • Alex_J
    Options
    Online / Send Message
    Alex_J grand marshal polycounter
    Will probably take you long just to get merely proficient with coding. Probably c# geared towards Unity engine would be the easiest transition -- but that's just my speculation based on what I hear from people.



  • Brian "Panda" Choi
    Options
    Offline / Send Message
    Brian "Panda" Choi high dynamic range
    C++.

    Unreal is a C++ codebase.

    To my knowledge, no popular game engine runs off of a Python foundation.

    You're going to want to ask this question on TIGsource, Unreal, and Unity forums as well.
  • pangaea
    Options
    Offline / Send Message
    pangaea polycounter lvl 5
    https://www.edx.org/course/cs50s-introduction-computer-science-harvardx-cs50x
    =>
    https://www.edx.org/course/cs50s-introduction-to-game-development
    =>
    http://rogueliketutorials.com/
    =>
    https://unity3d.com/learn
    http://roguebasin.com/index.php?title=Articles

    Good luck through. If your not had much success with art and you been doing it long, then maybe your approach is the problem in which case you might get stuck like that in programming.

  • Sear
    Options
    Offline / Send Message
    Sear polycounter lvl 7
    Thank you for the advice, and thanks for all those links pangaea I am sure they will come in handly :) I can promise you I will use them.

    My issue with becoming a professional 3D artist I feel is this (a message i received today from a job application)- 
    Unfortunately, in the current climate most studios require candidates from us with current studio experience in the games industry with high profile titles to your name, and therefore it is unlikely we will be able to assist in your search for a suitable position.

    I am sure if I was absolutely incredible like some of the folks on here I would find work no problem, but I am just 'good'. Which at the moment is not good enough. I have done several art tests where I am told my model is very good but I still don't get the job. It is true I have hit a roadblock with improving my art however with no clear way to improve I am looking elsewhere (coding for example).

    This does not mean I will stop doing art of course. This forum might actually be the best way to improve but I get nervous about showing my work here with how many of you are just so frikkin good.. XD.
  • sacboi
    Options
    Offline / Send Message
    sacboi high dynamic range

    If you're not short on perseverance and a bit of a social introvert :) I'd say from experience acquiring a 'workable' knowledge base can accrue positive results in the short term but of course relative too one's circumstance setting aside requisite time also previous programming exposure will definitely come in handy.

    That said I'd principally recommend the online resource GameDev.net also a few others I've referenced...plus up close in your face applying what you've learned which looks like fun:

    - CodeInGame

  • poopipe
    Options
    Offline / Send Message
    poopipe grand marshal polycounter
    Python and c# are good ways to learn about OO programming, they're easy and you'll find that anything you learn is almost immediately transferable between them.

    C++ is hard work and while it's the only way to mess with ue4 you have to ask yourself if you really want to mess with ue4 (certainly not as a beginner) 


    C# is easier to set up (get free visual studio or unity and you're set)  than python (lots of versions in active use,  command line installers, third party libraries, various IDEs etc) 

    (for clarity - I'm a tech artist) 
  • RyanB
    Options
    Offline / Send Message
    Concentrate on learning algorithms, data structures and design patterns.  Practice those in whatever language you choose.  In the next five years the industry might move on to Rust or another language better-suited to data-driven programming.
  • sprunghunt
    Options
    Offline / Send Message
    sprunghunt polycounter
    Python is has a lot of unique features compared to other programming languages. A lot of people claim that this makes python ideal to learn as a beginner. However I feel that it doesn't teach you the basic style used in other languages. 

    On the other hand python is basically the standard for scripting 3d programs. Maya, Max, blender, Modo, and substance, all use it for scripting. 
  • kio
    Options
    Offline / Send Message
    kio polycounter lvl 15
    Don't go for c++ for now, it's just too complicated and complex.

    Python is very nice learn it.
    C# is also very nice.
  • Farfarer
    Options
    Offline / Send Message
    I'd recommend learning both. They're different things for different purposes and both are useful.

    Python is relatively flexible, cross-platform, libraries are easy enough to install. However, it has a fairly unique syntactic style that can be at odds with other languages. Garbage collection is all handled for you, too. But to some extent, you'll pay that cost in raw speed. There's no compilation required, it just runs, so it's great for trying stuff out.

    C++ on the other hand is a pain to be cross-platform, libraries can really suck. You might need to pay attention to data layouts, allocating and freeing memory, pointers and references, etc. But generally will be much faster at the expense of flexibility*. You need to compile it to try it out.

    If you want to develop your own games and are thinking Unity, I'd maybe recommend C# over C++. A lot of the same observations apply although it's a bit kinder on garbage collection and features far fewer pointers.



    *That's not to say you can write stuff in Python that you couldn't do in C++, but in C++ you need to plan ahead a bit more which can be a pain if you're still prototyping.
  • goekbenjamin
    Options
    Offline / Send Message
    goekbenjamin polycounter lvl 6
    Dont you just want to "break the wall" and make it into the industry? after all this years? 4 years is alot of time!
    I am curious if you still have your portfolio online and want to show it to us?
  • Linko
    Options
    Offline / Send Message
    Linko polycounter lvl 7
    I recommend you Python, I am not a programmer and I am much more comfortable with this language, the C++ generates more lines of code, it requires more syntax and variable type specification. If you do not program regularly as a beginner you will quickly forget the syntax and it will be harder to get back into your code.
    Like mentioned Python or Python like languages are also the scripting language in 3D programs.

    - Tutorial to learn a Python like language, Godot is used (I have discovered programming with it), it is a recent free and open source engine with a community growing and the software improving very quickly. It supports PBR and almost all the modern rendering techniques. It has a built-in offline documentation and the nodes in the Scene Tree are Classes so you will get a clear visual representation of how OOP works. The tutorial quickly starts to teach programming while making 2D games so it is very motivating and they will soon add 3D game projects at no extra cost: https://www.udemy.com/godot/

    - C++ programming in Unreal but more difficult, I don't think discovering programming in Unreal + C++ is doable or motivating since you will spend a lot of time in the console (6 hours in the console for this tutorial..): https://www.udemy.com/unrealcourse/

    Udemy does regularly promotions, both tutorials are often at 11.99 euros and sometimes at 9.99, so don't buy them at the moment I am posting unless you can't wait. ;)
  • Sear
    Options
    Offline / Send Message
    Sear polycounter lvl 7
    @sacboi I am definitely a social introvert :D those links look cool. I will definitely try code combat :dizzy:

    @poopipe I get what you mean about c++, I have tried some c# by following along with a book about learning how to code in Unity and I am liking it so far :)

    @RyanB I will definitely keep that in mind thank you

    @sprunghunt Yeah I have seen python used in Maya so I am guessing it is important to tech artists

    @Farfarer based on what you have said and some other comments I think I will learn both. I am gonna start with C# though as it is appliable in Unity immediately.

    @goekbenjamin I would love to break the wall man, I really would. My portfolio is in a link at the bottom of my comment (the footer?) if you want to check it out. I am not gonna give up art but I really want to learn something new. I feel like I am not gonna break the wall but maybe if I develop my own game I can get something done (even if that takes another 4 years).

    @Linko I will definitely check out that udemy godot as a 2d game is what I want to make :D  thank you

    To everyone, thank you very much I am amazed I got this many replies so quickly. Your advice is very much appreciated. Suddenly I feel less alone :dizzy:

    my portfolio is here www.tony3d.carbonmade.com
    I am not confident in it anymore but... if I can start making my own game I will also do my own art and maybe have a portfolio worth a shit lol.

    Thank you

    EDIT: @sacboi I just tried Code Combat and it is awesome. Thanks so much man this seems like a great way to learn Python alongside C# (which I am using books + Unity to learn)
  • neilberard
    Options
    Offline / Send Message
    neilberard polycounter lvl 17
    As someone who started with Python and slowly learning C++ in UE4, I agree, Python is much easier to start with! It might be good to use C# as well just to get used to working with a strongly typed language.
Sign In or Register to comment.