Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

How useful is C#? Couple questions

Discussion in 'General Discussion' started by sumusiko, Sep 25, 2015.

  1. sumusiko

    sumusiko

    Joined:
    Feb 13, 2014
    Posts:
    37
    I have to make a project for my programming course and I was thinking about doing a game in unity but Id have to learn C# from scratch ehich is fine since im a quick learner the problem is how useful would C# be when looking for a job. I mean is it generally looked for outside gaming market?

    Also if you dont mind what kind of game would you suggest me to make to start with in unity? Although i dont mind a challenging project since im aiming for max grades
     
  2. JasonBricco

    JasonBricco

    Joined:
    Jul 15, 2013
    Posts:
    956
    Programming is programming. If you learn C#, you'll be able to learn many others without much trouble because they are quite similar. And C# is especially similar to languages typically required such as C++, syntactically. I say learn whichever language will get the job done right now, and if that's C# then that's fine.
     
    angrypenguin and ShilohGames like this.
  3. sumusiko

    sumusiko

    Joined:
    Feb 13, 2014
    Posts:
    37
    Honestly im not sure which language would be better to learn now though. Any ideas or tipa for the kind of project explained above
     
  4. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    Programming is a a valuable skill outside of programming jobs too. It doesn't take much programming knowledge to be able to put together a quick VBA macro in excel or an access data base. But all of the employers I've had have found these skills more impressive then the ones I actually studied for.

    In my industry everyone knows how to fix a pump. Very few know how to automatically search a workbook for downtime codes and make it into a pretty graph.
     
    dogzerx2 likes this.
  5. sumusiko

    sumusiko

    Joined:
    Feb 13, 2014
    Posts:
    37
    I guess ill go with C# however i wonder if ill have enough time to learn C# qnd put together a decent project in 5 months
     
  6. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    Scope small. Do something that doesn't require much art. Go 2D. Five months is tons of time to learn C# and get a small game out.
     
  7. sumusiko

    sumusiko

    Joined:
    Feb 13, 2014
    Posts:
    37
    5 months but 3 of them ill be working 8 hrs game ill be ired and wont have much time to work but yea. I will probably go with 2D although i wonder how muxh harder 3D games would be to make or is it jus because its harder to get the art for 3D?
     
  8. Samuel411

    Samuel411

    Joined:
    Dec 20, 2012
    Posts:
    646
    2d is easier because you don't deal with the 3rd dimension. Instead of rotating objects in the x y and z axis you only need to rotate in z for most projects. Instead of moving characters and AI in the x y and z axis its only in the x and y axis. It just makes programming game s a little less difficult. I have no problem shifting from the 2nd or the 3rd dimension or even the 4th dimension :p while programming myself.

    As for how important c# is... Its a really powerful language used for programming apps and websites as well as games. The thing with programming is, once you've learned one you're going to have an easier time learning the next, then the next will be easier, etc. Its because you've already learned a lot of programming techniques from the first one and know the syntax of it, next you just need to learn the syntax of the next and a few techniques or concepts that come in that language. I started off with Java then went into Unity with JavaScript. It was a small learning curve but I overcame it then started c#. I figured it out after a weekend since it was so similar to Java.
     
  9. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    Another n-dimensionalist! Yippee. We should talk about my idea for a 4D game. It feels like it's been a while since I derailed a thread.
     
    Schneider21 and Samuel411 like this.
  10. Samuel411

    Samuel411

    Joined:
    Dec 20, 2012
    Posts:
    646
    Is it anything like this, http://miegakure.com? I don't think I ever saw you discuss your 4d idea, I'm kind of interested :p
     
    Kiwasi likes this.
  11. sumusiko

    sumusiko

    Joined:
    Feb 13, 2014
    Posts:
    37
    Thanks for this detailed answer! I see. I would love to make a 3D game since itd be more impressive to the people judging my project. However i dobt think i have te time to make a 2D game to learn and then the game for my project because id lose too much time inthe 2D project. Hoe much harder is 3D for someone learning C#?
     
  12. Samuel411

    Samuel411

    Joined:
    Dec 20, 2012
    Posts:
    646
    Depends on the person and their learning speed. If you can understand/learn how 3d vectors work you'll be okay. I'd say maybe 1-2 months of actually learning the engine and C# then 3 months making your game project. Start with a small and realistic scope, it will be easier to actually finish the project. For example, you might want to make a mmo RPG, while you may get far, you probably wont finish it.
     
  13. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    That looks like a pretty good implementation of what I was thinking. It's kind of like KSP for me. A game I would love to play more then I would like to program.

    My idea was along the lines of a planes walker type system. The fourth dimension would be represented by planes you could phase shift through. One extreme would be heaven, the other hell. Angels and demons couldn't directly approach each other, but both could interact with the human plane in the middle. The PC of course would be special and end up travelling everywhere.

    I might even attempt to code it one day when I'm feeling ambitious. But for now a full blown 4D physics engine is more then I have time to tackle. I've considered trying to force it on top of PhysX in Unity, but that might be just as challenging.

    You can build a basic flappy bird clone in a couple of hours. I think there is a video on my YouTube channel. (Maybe, I know I intended to make one, it's late and I can't remember). That should start to give you a feel for how fast you can move and what is possible.
     
  14. sumusiko

    sumusiko

    Joined:
    Feb 13, 2014
    Posts:
    37
    I generally am a quick learner however i dont wanna mess up and deliver an unfinished product. Anyone knows if theres a video or tutorial that shows an example of how you would do things in a 2D game and in a 3D game? Just wanna check the complexity once im finished learnin c# and the engines stuff so that i can properly decide what to do
     
  15. darkhog

    darkhog

    Joined:
    Dec 4, 2012
    Posts:
    2,218
    If you know any language from the C syntax family (c/c++, java, maybe others), C# should be just as easy to learn, because syntax is pretty much the same. There are few differences, esp. when you come from C/C++ as C# is more like Java syntax-wise, but nothing big and you should be good to go.

    C# is pretty powerful as well, no matter if you use Mono (which was designed to be .NET-compatible) or .NET runtime. Standard library will provide you with anything you need and something extra.
     
  16. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,555
    There are wayyyyy more C# jobs where I live than Java, and especially way more than C++. I live in Seattle. Can't speak for other locations.

    Microsoft HQ is here, so C# dominates the job market. I would check job websites and see what gets you more hits. Pretty sure it won't be C++.
     
    Ryiah and Schneider21 like this.
  17. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,510
    Central Pennsylvania is like that, too. Handful of Java offerings, bit more Ruby on Rails or other crazy web crap, and then a ton of various .NET positions.

    Advice to OP: C# is a great programming language to learn with. Learn it, master it, and then learn every other language, too.
     
  18. ShilohGames

    ShilohGames

    Joined:
    Mar 24, 2014
    Posts:
    2,985
    C# absolutely rocks. With C#, you can program for Unity. With C#, you can develop ASP.NET applications. With C#, you can write Windows applications. You can do a lot of things with C#. It is one of the best all around languages for many tasks. C# is modern, easy to use, and very full featured. It is a fantastic language for a modern programmer.

    Eventually, you want to learn multiple languages. Programming is programming. Once you learn several different languages, you realize that the differences are not that big of a deal. Individual languages are simply tools to choose from when building a solution to a problem.

    No single language is perfect for everything. If you wanted to write a game engine, C++ is a better choice. Even though game developers get to code in C# when using Unity, the Unity engine itself is actually written in C++. And if you ever dig into embedded circuit design using low cost microcontrollers, you'll want to use C. For example, I have designed some embedded devices around 8 bit microcontrollers with 2KB of RAM. With those tiny solutions, I always use C. Languages like C#, and even C++, would be too bloated for a really tiny 8 bit microcontroller. But when I write games, I love using C# and Unity. It is all about picking the right tool for the task at hand.
     
    Kiwasi and Samuel411 like this.
  19. Samuel411

    Samuel411

    Joined:
    Dec 20, 2012
    Posts:
    646
    Neat idea. I feel you on the time part. I actually want to make an attempt at constructing a physics engine in unity just as a learning experience, but I can never find the time. With school work and my current independent project and freelance work plus awesome video games are released during this time it gets difficult to find time to work on cool stuff like AI solutions for fun and procedural generation for fun or physics engines for fun. If you ever end up going with the 4d game idea hit me up I'd love to see some demos or help. I'm probably derailing this thread though :p sorry op
     
    Kiwasi likes this.
  20. sumusiko

    sumusiko

    Joined:
    Feb 13, 2014
    Posts:
    37
    Thanks guys, I've decided to go with C# and make a game on unity however anyone knows if theres a video or tutorial that shows an example of how you would do things in a 2D game and in a 3D game? So I can see the complexity between 2d and 3d, if I think I'll be able to handle 3d ill go with it.


    Also would you recommend me to first learn C# standalone (non related to unity) or through unity tutorials?
     
  21. sumusiko

    sumusiko

    Joined:
    Feb 13, 2014
    Posts:
    37
    I started learning the UI, and how to code in C#, it's a lot easier than I expected, the syntax isn't that different from most languages, It's easy to understand and remember, only thing different is understanding & knowing the unique methods of unity and stuff.

    Was thinking about doing a game where you start with a knife or something and you go through maps where you kill zombies, you gain money & xp per zombie kills, they keep spawning, etc etc, when you're done "farming" or perhaps "clearing the map" you go back to a certain part of the map and it'll get you back to the menu where you can use the money to buy new guns, experience to level up your life, accuracy, damage, etc. Typical zombie game you know?

    Just need to find an "excuse" for the maps to change radically (since I won't be doing them all, I'll use some from the asset store and they'll be quite different) & find something that would keep the player engaged