Would you choose .NET or Python to supplement your Unity Career?

I’ve been a professional Unity Developer for about 6 years now, currently working as an XR developer. The job marketing is not looking very promising though, there’s not a single Unity Game Developer role in my entire country that has been posted in the last 20 days.

So I have a choice of spending the next 6 months upskilling in Python or .NET, and wanted to get people’s thoughts on which best suites a Unity Developer?

.NET

It’s pros are that it’s C#, and Unity will eventually move to modern .NET, which might provide many beneficial cross overs.

It’s cons is that what you’re building is usually big corporate software backends, with little cross over with what game developers like to make. There will also be a decent amount of web development involved.

Python

It’s not C#, but probably more intuitive to a Unity Developer than .NET (as crazy as that sounds).

I also think it has more flexibility in types of Jobs, more startups, hackie stuff, interesting technologies. It’s not all backend webdev.

For clarity I would still prioritize Unity, and will always do it in my personal time, but I can’t put myself in a situation where I wouldn’t have a job.

1 Like
  1. Are there not a lot of Unity jobs posted, or not a lot of games jobs in general posted?
  2. If there are games jobs in general posted, then they’re probably just assuming Unity experience in the first place, or
  3. You should supplement your skillset with Unreal, since that’s the next most likely engine people will be expecting experience with
  4. If there’s no jobs in games in general being posted, you’ll do fine with C# because that’s what you’ll be seeing the most in a lot of general enterprise positions, which is where you’ll make better money and have more job security anyway
1 Like

Right now there are:

  • 2 slot machine developer jobs (typically unity) although slot machines is the dark side of unity development.

  • one lead position at GameLoft, C++ (assuming proprietary engine)

  • one 30 day old unity developer advertisement asking for backend experience with .Net

I’m not currently looking for work, but if I was, it’s slim pickings.

1 Like

Yeah, this is just “if you want to find work, look into enterprise” situation.

1 Like

Well, I was looking for a Unity job in 2014, and I found a .NET position instead.

It’s really areas with a single knowledge base regarding the programming language, which is helpful and big advantage.

1 Like

TL;DR
both … both is good, C# would be my 1st pick though.

I have been a professional software engineer for around 20 years, just setting the stage of where I am speaking from.

So in my career, I have worked with C, C++ and C# which has been the core of what I have worked with over that period. That work has been in “life critical” software in the medical industry, data integrations, resource planning and relationship management software in the enterprise software side of life and then in game dev tools, integrations, systems and even a bit of shader work done in shader assembly.

as far as scripting languages like Python, JS, Ruby, etc. I have never bothered to dedicate study time to them no need to they are by design friendly and easy to pick up as needed. As far as there use in the work I have done over the past 20 years … they are filler … the core of the work has been in C/C++ or C# scripting is always there but its always just filler things here and there not the core or crux of the work.

That of course is based on the type of work I have done, which has mostly been systems and applications stuff and tools and integrations stuff. Very little web basically none at all, very little mobile and of the apps I have done they have been enterprise apps.

Depending on what kind of work you want to do your millage will very. I can say there is ALWAYS a demand for C# devs in the enterprise software dev area MS gold partners and similar grind them up at a terrifying rate :smiley: … course that might be a good reason to avoid that :wink: unless you LOVE this kind of work it will destroy your soul.

As for game dev in my experience, its all been C/C++ with a bit of C# here and there but mostly C/C++
The nature of the C++ you work within the game though is VERY MUCH like the nature of C# you work with in Unity. Its not the C/C++ your CS instructor gave you PTSD about. C++ in game for example Unreal is running on a framework its largely managed just like C#, existing systems, modules, etc. make it in many ways easier to work with… yes I said it … for a LOT of things its easier to and less code to type to create things for Unreal C++ than it is Unity C# stop being terrified of C++

My final bit of advice … stop thinking in terms of language … a language is a tool, you should learn many of them, a job calling for X language should be a meh thing you should have no issues picking up a new language and working professionally in it very quickly on demand. This has been my personal professional experience for 2 decades. I have ran into untold number of scripting languages and all over the ages and even when it is a general language I have used before the framework or whatever it is we are working on is new to me … so rarely are you going in to any project a seasoned dev on that specific environment unless you have been living with that single environment for years … which yes I have done that as well … living in X tech for 5+ years at a time its comfy but also gets boring.

1 Like

Thank you for the answer.

While I agree that the language doesn’t matter so long as it’s C Based. I.e. Java, C, C#, C++, Python, Javascript etc.

However these jobs don’t really require a language knowledge they’re looking for package experience.

Python Developer with 5 years in django + SQL.
Javascript expert in React.
C# Developer in ASP.NET
etc.

So while a python dev can pick up C# easy, It doesn’t seem so obvious that they could just integrate into an Azure backend end environment that uses razor or blazor etc.

So I guess that’s more my worry.

C# Focus means:

  • ASP.NET
  • JS/HTML/CSS/React/Angular
  • Razor/Blazor
  • Azure
  • SQL

Python means:

  • Django
  • Flask
  • ML libraries
  • S3

I will avoid enterprise software, I hear terrible things for .NET Framework and older .NET versions.

1 Like

All “frameworks”/“platforms”/“packages” will have terrible things I wouldn’t avoid anything based on some prejudice against some tech stack. In fact once you get your foot in the door and your looking to expand your toolkit … look for those bits and bobs no one else wants to touch. Once you have your foot in the door a diverse range of experiences is FAR more valuable than 137 years of experience writing hello world in COBAL or whatever.

As to Enterprise Software Engineering, it always has a demand for more bodies, and if you enjoy software engineering … and I mean software engineering not nessisarly programming, or any given single aspect of “development” but the whole kit from requirements gathering, through design and development, into delivery, support and even “sunset” … well then its a great path because you can definitely always find a job that will pay well and you will get LOTS of experience in the full lifecycle of software and diverse ranges of clients/users/projects.

In that world your going to be working with everything and I do mean everything including proprietary stuff you have never heard of and will never hear of again after that project. The core of it will offten be C# or something similar but writing code is just a small part.

Also no matter what skill you have taken a course on or worked in, etc. if you see a tech job you think you want to try … apply for it.

99% of the time HR or some 3rd party agency craped out that job listing with zero understanding of what the team who asked for the resource actually wants. Most of that listing is nothing more than a determination filter and it really shows a lot of time when they ask for 10 years of experience on a technology that is only 5 years old and its a entry-level position lol

my general point here is dont be hung up so much on what you are studying unless you have some very specific niche in mind you are almost certainly going to be working in a broad range of crap.

If you do have a niche in mind … well then why ask, focus on that niche’s most common stack. So back to my original recommendation … both … do both. As to which first, .NET for most things frankly so unless you have something specific in mind IMO and in my experience it (.NET and C# in particular) would be the broadest swing (most applicable to the majority of real work you are likely to land).

1 Like

That’s good advice, thanks.

To be honest I probably enjoy coding too much to be an effective game developer :laughing:

I love optimization, systems, clean code, following SOLID, ensuring my project is set up with code coverage, tests, automation, tooling etc.

Spending 10 hours to automate a 5 minute task is my jam.

Kind of bad when you’re goal should be pumping out as many games as possible until one hits.

My wife did have a good point, I probably shouldn’t be making conclusion about the job market when it’s 2 weeks out until Christmas…

…if you consider lots of job opportunities a con.

Remember that there’s also the path of getting an enterprise day job and doing game development in your spare time. :grin:

:slight_smile: yep that was the transition I had to go through

In enterprise that is gold they would love you there

In game dev that is death, You are not creating a life-critical system you simply need it to be literally “good enough”

where good enough is doesn’t crash, hits the framerate target … that is it, any optimization beyond that is a waste of time and your team lead will be doing the “cost-benefit” check on everything

Meaning I could further optimize the combat system … that will take 2 days
Or
I could spend that 2 days implementing this other system that will make the game more fun

So you know which they are going to choose

Now tools development which is what I do a lot of its a nice mix of the two worlds, like enterprise making a very robust, well-tested, efficient system is key, and its game related assuming your building tools for game devs. So if your a code monkey like me Tools dev can be a great gateway drug to help ease you into the fast and loss (by enterprise comparison) world of game dev

1 Like

Want to get better at unity? .NET

Want to get jobs in stuff like AI, data analysis, some forms of web/backend etc ? Python

1 Like

This still makes it a tough call!

Data Analysis and AI sounds more interesting if making games is not option.

Also the better I get at coding, the worse I get at making (releasing) games!

1 Like

AI is also the current trend so there’s a bunch of work in that.

1 Like

AI is also a field where most of the jobs will be going to people with a significant amount of knowledge in how it works; python skills beyond just entry level; and the only work you’ll be able to get reliably at the entry level will likely be with startups, which offer less job security than games do.

1 Like

LLMs are pretty focused unlike video games that involve most creative disciplines known to man, most things can be probably picked up in 3-6 months from that tech stack.

And looking at games from past two years, I’m not entirely sure I buy into the idea that startups are less reliable than this industry. And there are many AI related jobs in my country and 0 Unity jobs. Albeit, it’s a small country with no games industry to speak of besides a couple of high caliber indie successes from a solo developer and a team of less than 5 people, and a few mobile studios doing their thing, which I’d prefer not to touch anymore.