Search Unity

  1. Unity 6 Preview is now available. To find out what's new, have a look at our Unity 6 Preview blog post.
    Dismiss Notice
  2. Unity is excited to announce that we will be collaborating with TheXPlace for a summer game jam from June 13 - June 19. Learn more.
    Dismiss Notice

Starting out with C# and wanted to ask a few questions

Discussion in 'Getting Started' started by iSoloGaming, Feb 13, 2017.

  1. iSoloGaming

    iSoloGaming

    Joined:
    Jan 31, 2017
    Posts:
    28
    Hey everyone. I have a very basic understanding of programming and I am serious about starting a new hobby after mastering a couple others I started years ago. I want to start game dev and I want to start from a 2D game.

    Is C# good for 2D games? From what I know C# is good for pretty much anything...
    The infamous question: Is it recommended to start from C#? Not if it's possible, but is it a good idea...
    What tools would you recommend I download to study and work with C#?

    I currently have Unity 5 and Visual Studio 2015. I also have CodeBlocks which is what I used to study C but I didn't get too far. I am now at Arrays, Functions and Pointers.

    I just keep jumping from one language to another and I think C# has it all... Would be great to just start from this one and then once I have a year or two under my belt, I can move on to other languages. Just need to know if that's a good idea...

    From what I researched it looks like a lot of people are saying it's ok and even recommended but this one link I came across started comparing low level and high level programming languages and confused me completely because it made a lot of sense either way and I just want to know from a beginner point of view, what would be a smoother process.
     
    Last edited: Feb 13, 2017
  2. Bill_Martini

    Bill_Martini

    Joined:
    Apr 19, 2016
    Posts:
    445
    If you want to develop in Unity then use C#. It is the native language for Unity. Good luck with your projects.
     
    iSoloGaming, Ryiah and Kiwasi like this.
  3. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    Just run with C#. It has everything you need to make a game in Unity.

    C and C++ are related languages. It's certainly easier to learn C# if you have another language down.

    But if making games is your goal, you are going to be using Unity. And Unity means C#. So just jump straight to it without mucking around in C.
     
  4. iSoloGaming

    iSoloGaming

    Joined:
    Jan 31, 2017
    Posts:
    28
    Thank you Bill!!!

    Makes sense. I am also learning Python on Coursera right now. I also took Introduction to Programming which uses a drag and drop "compiler" but it is mainly to teach the concept of programming. I think with those two I should have some sort of intro knowledge which will help me understand C# better than someone who did nothing prior to starting.


    I am doing this tutorial right now but I can't figure which compiler he is using:


    I know it's not a 2D game but I was just wondering since I am already on the topic.

    AS FOR 2D:

    I wanted to start my first project making a 2D Space Shooter. Like this one:


    Although I was wondering if it's possible to make it "feel" more like this one:


    The camera is shaking and everything vibrates and overall the game feels a lot more responsive. Though the Unity one looks... Slicker...
     
  5. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,512
    There's nothing inherent in either the Unity or Unreal engines that would prevent you from recreating either game. Likewise, using either engine won't give you a boost towards making that game any easier.

    If you want to learn C#, Unity development is a great place to put what you learn into practice. Don't think of programming languages as if there's a perfect one that can do everything, though. If there were, other languages wouldn't exist. There's pros and cons, strengths and weaknesses, advantages and compromises for each. For me, I'm a web developer and have used and still use C# for my day job, so that gave me a small head start using Unity.

    Use whichever engine you think has the best benefit to you. Or learn and use both! And it certainly doesn't hurt to try -- once you're more familiar with both engines -- going through tutorials for either platform and use what's taught in one to improve a similar project in another (referring to the camera shake effects and such).
     
    Kiwasi, iSoloGaming and Dave-Carlile like this.
  6. iSoloGaming

    iSoloGaming

    Joined:
    Jan 31, 2017
    Posts:
    28

    I'm aware that neither will make stuff "easier" I meant it more like... Maybe each focuses on certain things in game dev... Every software has things it does a bit better than the other one. I started with FL Studio and moved to Ableton and Logic Pro and then for Sound Design mainly Pro Tools. You can do everything in each software but they all specialize in certain things... Also as a sound engineer I don't believe anything like programming or pretty much anything out there is... Easy. Saying that is ignorant and insults the people in the industry. But you don't know my background so I appreciate the comment. Same for languages. Just wanted to know which one kind of has an edge over others for game development. It looks like C# is usually what people rush to agree on (I kept researching all night) not just in Unity though Unity does it best.

    Messing with more than 1 engine at a time is definitely tempting me but I learned that it's better to start from one, not necessarily master it but understand it to a proper degree and then you can explore other options for fun and research.

    As someone who probably knows how to make the games I posted YouTube links for, could you get that same camera effect in the UE4 video within Unity? I imagine you can since it's probably something basic. The reason I am so fixated on that is because usually the examples I see for UE4 have all of those effects and "extras" but many Unity games didn't (Similar from the "Examples" Library).

    Anyway after a long night of researching, Unity is definitely friendlier to me but I was just curious so I decided to ask.
     
  7. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,512
    If you decide to go with Unity, C# is absolutely the way to go. Most tutorials are written in C# anymore, and it's a much more transferable skill than learning UnityScript or Boo (if Boo is even still supported?).

    In the games industry as a whole, I imagine C++ is still the leading language. Besides being the language Unreal uses in its scripts, it's pretty much the de facto standard for writing software from scratch. The Unity IDE, for example, was almost certainly created with C++. Others may have different experiences, but I struggled to learn C++ and abandoned it. C# -- and its cousin Java -- being a managed language was easier to wrap my head around.

    You're probably right. Starting out, focusing on one thing isn't a bad idea. I'm one of those people who, as I learn more, I just start seeing all the things I don't know yet. So I get easily distracted and chase a lot of strings at the same time.

    What I was trying to say before and probably didn't as clearly as I intended was: Yes.

    To do this, you just break things down into their simple components. What is a camera shake? It's really just a quick movement of the camera (a Transform component in Unity) over a short period of time with a return to the starting position at the end. I believe Unreal has a built-in node editing system that may allow you to quickly throw together these types of effects, while Unity doesn't have that out of the box. It can definitely be coded yourself, though, or added using an asset from the Asset Store.

    I'd wager the same goes for any of the end-level results in either engine. Unreal Engine has a reputation for having prettier graphics, but I think this is just because of all the flash that's included by default there. The same effects are possible in Unity, but you may just have to do a bit of work and configuring to pull it off.

    And don't forget: As long as you haven't given anybody any money (both engines have fantastic free licensing), if you start down one path and don't love what you're seeing, you can change courses at any time!
     
    iSoloGaming likes this.
  8. iSoloGaming

    iSoloGaming

    Joined:
    Jan 31, 2017
    Posts:
    28
    Ye I think knowing C# will be an asset, no matter what I am planning to do with it.

    I honestly prefer learning C++ first but it scared the SH*T out of me... I can do it but it's kinda intimidating. I will start with C#. Already halfway through a Python course.

    I am just like that, I am trying to stop doing it and try to concentrate on my main goal.

    Ye it definitely looks like Unreal has a lot of EXTRA features... Obviosuly everything is possible in either or. Unreal just seems to always look a lot more polished to me... But I prefer the Unity community and I love how it let's you code in C#.

    Thanks so much for clearing stuff up.
     
  9. SarfaraazAlladin

    SarfaraazAlladin

    Joined:
    Dec 20, 2013
    Posts:
    280
    Especially for a newbie, you should think of each game engine as a tool like photoshop or gimp. You can create the same level of painting in both programs, even if you have to take slightly different paths to get it done.

    It's only after you've got some mastery under your belt before you can really start comparing different engines and looking at their pros and cons - the reality is that you're going to be so far from needing to worry about the nuanced differences between tools until you can confidently make games in the first place.

    Goodluck on your journey!
     
    Ryiah and iSoloGaming like this.
  10. iSoloGaming

    iSoloGaming

    Joined:
    Jan 31, 2017
    Posts:
    28
    Thanks I completely agree!!!
     
    SarfaraazAlladin likes this.