I switched from software engineering to game development, ask me anything.

rapidnerd profile image George Marr ・1 min read

About a year ago I decided to make one of the biggest choices of my career. I started out as a software egineer working in C# and C++ and now I'm working as a game developer in Java.

Feel free to Ask Me Anything


markdown guide

What were the steps for transitioning?
I'm a web developer at the moment and want to become a game developer. My assumptions are that I need to work on my own projects so I have something to show since I have no professional experience. What did you do to get there?


You're 100% correct. There was a few things that I had taken into consideration before doing this. There is many different types of games around, whether it be Sandbox, MMO-RPG, Indie Games and all sorts. There is also a lot of different languages used within game development. I wanted to develop Indie games & phone games so I started learning Java and used some sprites that a friend of mine had made.

I found it important to familiarise yourself with all the big platforms and utilities used within the industry. Even if you're not going to use them straight away it will be good to get a feel on how they work and what language they're using incase you need it in the future.

Software such as Unity and Unreal Engine are both brilliant engines that are heavily used in all sorts of games.

Getting to where I am now took a lot of work, learning an entire new language, I spent a lot of time around gaming communities to get a feel of how the people behind them interacted with their community. At the start I knew that I had to show off what I could do, so I made a couple of small games, provided the code and sent them off in my portfolio.


Thanks! I had made that assumption without a lot of data, it is very reassuring to hear that was the same road you took :) Thank you for sharing knowledge!


Switching in general took me a good few months to do, with learning everything I felt was necessary, I had a portfolio built around software engineering. While that was good to have on there I wanted to be able to provide some stuff around game development in order to show off what I could do in that field.

Did you explore the idea of developing games for VR?

Not really, I focused more on indie games.


Would My Roblox games be approved in the portfolio? They are scripted In lua so that works right?


For money and visa,
Which is best career
(Java) applications vs android vs (JavaScript &php)web vs games development


Did you apply for Senior roles or more "Junior" roles? How did you start and was it a problem that you wanted to switch? Some companies expect you to already have knowledge in the field or in your case Java. What I mean is more like, did you e.g. get many rejections or how was the general reaction to you wanting to switch?


The general reaction from my friends were they were kinda shocked but did support me from the decision, they all come from many different backgrounds of development. I mainly applied for Junior roles seeing as this would be the first time I would be working for a games development company, I didn't want to throw myself into the deep end.

The companies I applied for did want me to have experience with the games, but with the knowledge of C# (which is very similar to Java) I was able to learn Java a lot easier then I had expected.

I got a fair few rejections from companies for a variety of reasons, I didn't see this as a bad thing I saw the rejections as a learning curve, I asked the companies what they wanted different or what else I could've done and they gave me some amazing feedback.

  1. Do you work for a big gamedev company or in a small team?

  2. Do you have any influence on game-design or you just work on technical tasks?

  3. What exactly are you coding? For which platform? (desktop, mobile, backend etc.)
    (I'm asking this question because Java is an unusual choice for a desktop game, AFAIK)

  4. (many people are not very comfortable when talking about money, so you can just ignore this question if you want)
    How did this choice influence your income? Do you earn less or more money than before? Or about the same?



Currently a small phone development company that is ran by a very good friend of mine.


In school I took a brief module on games design which had helped me a lot when creating my first game to bring into my portfolio.

Currently mobile games, I've worked on desktop games before but found mobile games to be more fun. I'm using Java because I work on the Android platform which uses Java.


I earned more as a software engineer. But I found myself to be more happy as a games developer. I wrote a little bit more on this topic above.


Pertaining to the Java language what are you using Unity?


Hi, same situation here, just with iOS instead of Android. Currently creating games for PS4. I wanted to ask:

Is it normal for most game companies (employers) to hire you while working at home? Meaning they don't care if you live in the other side of the globe, as long as you deliver the assets/work (as employee, not freelance).

If only few work this way. Which companies are those?


It really depends on the company itself and the size of it. Some of the major companies I applied team wanted me to relocate so I would be able to work in their office, I can see why as it's easier to do team work in an office. However this is something they would normally specify on their jobs page when looking. I personally work for my friends company, although we both live in the same city we're currently working remotely with people that are from all over the globe also.


I see. Finally, a couple of questions:

  1. Where do you guys look for work and talent?

  2. Which websites would you recommend for Devs looking to reach game companies for permanent / temporary work?


  1. I've read lots of stories about "endless death marches" in game development. Have you experienced this or heard about it? Is it any worse than any other software jobs.

  2. Something that has made me shy away from game development is that I'm not a big gamer myself and it seems like there are enough diehards that a fairly casual gamer like myself just wouldn't find the commitment to follow through. What would you say to that, and it's okay if the answer is "yeah, you should probably be a gamer".


Ah yes the endless death machines they're a bit of a pain. I find in general development there can be these but in game development it's a whole lot worse. With working in games editing one value can sometimes change more than one thing in the game itself so fixing a bug has to be done very carefully.


I say to people it's okay to not be a die hard gamer if you're a game developer. It's obviously great if you are but developing a game I find is more community based seeing as they're the ones that are going to be the ones playing it the most.

In addition research into the type of game you're going to be making will always be an essential part it of it. If you're working on a game that is somewhat similar to lets say overwatch your employer would be expecting you to play a fair bit of overwatch to see how the game works, get a feeling of the mechanics, see how players interact with one another.

Personally I don't think you'd need to be a massive gamer, as long as you're willing to learn about different games cultures, different communities and interact with the community you're in you should be fine.


While you were working in your old job:

  • Did you create some games?

Create video games is something (I believe it is) super cool. You were working with C++ and C# but switched to Java. Why? Some courses I see offer also work with Python. Why not choose Python or even still working with C++ or C#?


I didn't create games while working in my old job. I found myself far too busy to be doing that, I did create a lot of them in my head though.

I switched to Java because I wanted to work on phone games, as I use an Android phone the Android operating system uses Java for it's application framework. Python is one of the languages that could be used for pretty much anything you want it to be used, but when using it for games it's not really ideal.

Working in C# and C++ is amazing but it's only really designed for desktop games. You'll see big games such as Playerunknown's Battlegrounds and Overwatch using these two languages for them, but seeing as I did phone development I stuck with Java because that's what Android supports.


Working in C# and C++ is amazing but it's only really designed for desktop games. You'll see big games such as Playerunknown's Battlegrounds and Overwatch using these two languages for them, but seeing as I did phone development I stuck with Java because that's what Android supports.

Sorry, but this is just plain wrong. First, because you need to squeeze the most out of the hardware available on a phone without wasting resources, C++ is the choice for high-performant games (not talking about flappy birds here, obviously).
Unity3D for example, which is written in C++, can be used in Android.
And second, because Android itself provides an NDK to allow developers to easily implement part of their app in C/C++ .


Can a Game developer switch to become a software developer. I have already received a job as a Game Developer from one a reputed company. If any point of time I feel like switch to Software Development, would there be any problem?


-DO you do a lot of graphics work (modeling, animation, sculpting, rigging, etc)?

-Have you worked with any open source software to learn if so?

-I started learning blender as a way to get into animation and possibly games, what do you use as an engine mainly?

-Are you working on any cool person game projects?


I don't really do much graphics work, I'm mainly responsible for making the actual gameplay features, and making it functional.

Most I've my work is not open source, mainly because it's either old code which is very bad or it's work that I'm not allowed to make public.

As an engine the company I work for has a custom one. For engines I'd suggest looking at Unreal Engine and Unity. If you're looking at using Java I'd suggest looking at LWJGL first then perhaps move onto something like jMonkey.

I am currently working on a game yes, but at this time it's not released. Will hopefully be released very soon.


I look forward to it. Blender has a built in engine however I've played with Unity before so I may take that up again at some point. Thanks for the response and the cool thread.


There's also libGDX for Java.


That's awesome. Congrats on the switch. One problem I could forsee if I were to attempt to make such a change would be compensation. I'm in a senior dev position making line of business web applications by day and dabble in game development in the evenings. Given my circumstances, I don't think I would be willing to make that leap. Was this an issue for you? Did you have to take a compensation hit to make the switch or was it as easy as just learning a new framework/library set?


There was some backlash from the company I worked for, understandably they weren't at all happy that I was leaving them to follow something else. I ended up leaving on good terms by helping them find a replacement in my field, it was the least I could do for the company.

For me it wasn't just as easy as learning a new framework/library I had to do a lot of research in the gaming industry as well as the code side of things. It took up to a year for me to make this switch, but in the end was worth it.


How did the patterns and practices that you used for software development vary, when you switched away from developing payment systems?


The patterns completely changed for me, a lot of what I did originally was designed around desktop apps and very rarely did phone apps (if ever). It felt like I had to re-learn what I had taught myself over. However I felt the transition was very smooth, thankfully I have a lot of friends that are in all areas of development that gave me some advice on where to start and how to proceed from there.


What did you originally develop while you were worked with C# or C++?

Also, perhaps the biggest question in the room, why switch? :)


I mainly developed software that allowed companies to do their jobs easier. A lot of the projects I was handed were ones that actually had to do with Payment. My last project was actually creating an artists panel where they could manage payments, contact the customer and send the art out within a single panel.

I switched because I was honestly getting bored of it. No matter what the project was there was always this mind state of me having done this before, used that before. I wanted a new challenge, something that I had never done, something that would bring me some new creativity.


Awesome, game development definitely sounds like the right place for creativity.

it certainly is, allows your imagination to go complete wild!


I'm just beginning to realize how much I prefer programming games over programming for embedded engineering applications. I'm not sure how to make the leap, however, since I'm doing quite well in my current role. I hear that game dev is highly sought and therefore low pay with many hours and I'm not sure I could make such a sacrifice if it's not comparably competitive. Would I be taking a huge hit to the wallet? Would the long hours be mitigated if I'm particularly competent? And any idea how to get someone to take me seriously? Should I just flash around my work like this link? youtube.com/watch?v=Oh2z2e_96Sw


Leaping from one industry to another in development terms if always got to set you back. While game development is fun it will take a hit to your currently pay, when I originally started I was on a lot less due to being classed as a junior dev, whereas the senior devs were on similar to my original pay. Its what you feel is right, if you want to take the leap and switch fields than go ahead but prepare yourself for the risks.

As for how to make the leaps there's a few things in another reply I posted that I'll put here.


Build up a personal knowledge base of the field. As you've mentioned Game Development start looking into what languages the field uses primarily, and more specifically around the platform you want to develop for. A lot of PC games tend to use C# or Java, whereas console platforms (Xbox, PlayStation etc) are developed in C/C++.


Cannot stress this enough but your portfolio is vital when applying for any developer job. Outlining some projects that show off your skills and what you've done in the past (or currently) will show future employers what you can do.

Be prepared

Be prepared to enter the field and have the amount of work being given to you, its different for every industry. If you get a interview with a company research them, find out what they do, what technology they use and any other vital information that can benefit you. Remember its okay to fail, its okay not to get a job, use any negatives that the interviewer provides and use them to benefit yourself for the future.


How do I go about building a good portfolio?

Always make your portfolio unique to yourself and your style, every game dev has their own style of games they prefer to work on. Whether it be indie, action, MMO-RPG etc whichever you're most passionate about is what you should focus on.

How many quality games should be put on there?

Always remember quality over quantity. I've seen people hired with two incredibly good games over people with eight crappy games. I'd suggest having a medium of 3 games that show off your skill set, how you work, and most importantly your creative mind. Remember in game development you can make your imagination go wild, especially with Unity and Unreal frameworks your possibility is endless.


I'd always have a variety on your resume, having a lot dedicated towards the field you wish to go in is very important to an employer, however showing that you're able to work with other libraries, APIs and such is also essential. I'd say have something that is unique that can be used in multiple areas of development (Software, games, web etc). Remember the first thing that most employers look at in a developer application is what you've done and what you can do, having extra extra open source content that isn't specifically tied to one area will always be a bonus.


How much Your experience as a software engineer helped you to go through learning game development?
I mean is it a waste of time if you first try to be software engineer and then try game development or it's like you can transit most of your skills with yourself into game development?


It's certainly not a waste of time to be a software engineer then switch. When I worked as a software engineer I felt that having the knowledge helped a lot when making the transition. Game development and software engineering are near enough similar, they're both software at the end of the day but they're performing different tasks. In my case it was having to work with models, sound files and a lot more math.


so let me take another step! do you actually think it's a valid way to start
even if i already know that i wanted to be a game programmer.
cause i'm college student and i kinda have to learn software engineering principles like about methodologies, databases and... should i take them serious or just pass them and take the numbers and try to learn more related subjects by my own?
Note that i wanted to be PC game programmer.


I'm curious about the money (which I know can be awkward to talk about). Do you feel well compensated? Any comparisons to traditional software development in terms of hours work and amount paid?

I originally went to school for game development and while it was fun many of the developers I talked to mentioned that they get paid much less and work a lot more in the business which sorta turned me off to it (even though it's a passion of mine and I'm currently in the gaming industry just not a game developer).

My experience was about a decade ago. Looking to see what changed, if anything :)

Also congrats!


I found that payment was more about the size of the company and the size of the game that was being made. There was definitely a big difference between the amount that I was earning as a software engineer than I am earning now. As a software engineer I was being paid a lot more than I am currently, but the way I saw it as long as I could live off my current salary, pay my bills, eat and have a roof over my head I didn't mind. I've found myself to be more happy in this area of development than my previous one.


I know this is a bit of an older post but hopefully you'll still be able to answer my questions. First, for context:

I'm a web/mobile developer right now. I've pretty much survived on contracts but the barrier-to-entry is really high for web/mobile, especially if you're JavaScript-centric (ie: React/React Native, etc). I've spent the past year applying to over 100 jobs and only come close to being hired a couple of times. From other developers, I've been consistently told that I'm a mid-level.

With that context, here are my questions?

  1. How open are game dev companies (indie, small, medium, big) to hiring entry-level / junior game devs?

  2. Should I go to college? I've gotten really good at teaching myself skills I need. I know a little C++ and some Go/Rust + pretty competent with JavaScript. I'm not good with data structures / algorithms, which is why I'm thinking I probably should go to college.

  3. As a junior game dev, what were the expectations? Mainly contracting with startups, it's usually "make immediate and large contributions from day one and on". I'm not afraid to make decent sized contributions but being new to game dev could be slow for me in the beginning. (things will become more common and I'll be able to do things faster from previous repetition, I assume)

  4. How is fatigue? I have a love-hate relationship with JS. (For accuracy, I prefer typed languages so I actually use TypeScript 90% of the time). One of my biggest problems with JS, and web specifically, is the amount of changing ground. Today it's X framework/tool, tomorrow it's Y framework/tool. If you didn't hear about the new one or you're not trying it, you're lame and no one wants to work with you. I can deal with things changing every so often but having major changes on a regular basis can be tiring, feeling like you have to learn a framework/tool/etc per week. How does game dev compare to web in this context?

As a side note, I know most people hate JS. I'm trying to avoid a debate on it. So just putting it out there, I know... it sucks.


Woah a lot of questions there, and all good ones!

1: It generally depends on the company and the kind of games they develop, some games that are in VR, for example, will require a lot more expertise to work with compared to something, for example, an indie game. When I first joined I was at entry level and the company knew this, so I was put in a lower end part of the development and gradually started working my way up. Nowadays I'm no longer working on the games themselves but working on the networking infrastructure side of things. If you find a job you'd want to work at definitely speak to the company, ask them to call you or ring you so you can figure everything out from someone who already works there first hand.

2: College is always going to dependant on you and I tend to stay away from telling people to go or not to go however for this I'd say take a step back and look at yourself and how you learn. If you prefer someone speaking to you in person, giving challenges in a class etc as a learning environment then I'd suggest going to college. If you want to learn everything yourself and be independent then I wouldn't be suggesting it. But it's all about your learning style. And just remember to get a dev job you don't always need a degree, they want to know what you can/have done.

3: I made 0 large contributions for a number of weeks, I knew what they wanted but had an entirely new framework to learn from the company so I started off small, attending planning meetings on how things were going to be executed. Bug fixing, small features such as making a light change its state dependant on whether or not it's been shot. It was all small things for about 2 months until I felt comfortable with the infrastructure then I just gradually made my way up.

4: Normally when you're working in web dev you will stick to one scheme of things so for example for the front end of the game you'll use C# and Unreal Engine and for the backend maybe C++ and Redis with MongoDB (all examples btw). Game devs don't tend to overcomplicate with a stupid amount of libraries or sources from 3rd parties, from what I've found if they need something done they'll make it.


My brother is starting college and decided to get an associate first in game design. How can I help him achieve his dreams? It seems you did software engineer and then went into game developing, do you recommend for him to do his bachelors in software engineer?


I wouldn't say he would need a degree in software engineering to become a game dev, it's important that he understands the fundamentals which he is able to do online and will very likely be taught in college. As for helping him college is obviously very hard at times and the support family can provide can be very helpful, such as just cheering him up when he's finding times rough, making suggestions for coursework that could help and just spending time with him can certainly help a lot during college.


Well, you say that you have switched from C# developer to Game developer in Java.
I also want to switch to game developer from Java developer.
My question is I have read about it, the game engine's like unity use C#, so I was thinking, I should learn C#. But since you said you were already a C# developer before, why can't you become a game developer using that itself.

  1. Is it possible to become a game developer using Java as the language for developing? (I know, we can develop games using Java, but in the latest trend they use C# to develop).
  2. This one is not a question, more like a request. I want to become a VR developer, could you please shread some your knowledge regarding it.

Thanks & Regards,
Dinesh Kumar


Can you tell about how much of maths is involved? Any specific areas?


There is a lot of maths involved in games development. You will use it in all different areas from moving an entity to working out view matrices. Personally I am terrible at maths, I spent a lot of time teaching myself on what I would need to know for when I went further with this job. The kind of maths you'd be expected to use would be: Geometry, Vectors, Transformations, 3D Graphics plotting, Nodes, Edges, Path Finding, Physics and a few more.


Hi, I have been a software developer in India using C#, .NET for nearly 2 and a half years now. I somewhere ended up developing a deep passion for wanting to create games and I am considering if I should actually try taking up a masters course on game development in the US or UK..
Is this a good route into the industry? Or would learning & actually trying to create a few games & building a profile would benefit better?


Either of these options are great, its all going to come down to your personal preference of learning. If you prefer to self learn then I'd say teach yourself, build up that portfolio and jump into game development. However if you're like me and you prefer someone to teach it to you then studying abroad is an amazing experience that I've heard. Just remember that it's going to take a while either way, and that your software development background is going to help you a lot.


Do you find software engineering or game development more rewarding when you finish a task


Good question, they both were very rewarding in the fields. However I found game development to be more rewarding, adding something new to the game, or fixing something VERY annoying and seeing the reaction from the players is a beautiful sight. Where as I found with software that it would a lot of the time go unnoticed unless it was something that changed it completely.


I'm currently leaving the IT Specialist world and want to enter the software development field. My plan is to create a virtual experience integrating licensing where people can purchase fashion or visit wonders of the world from the comfort of their own home (ex: Bali or the Louvre in Paris), but first I'm going to start with a smaller project like The Forum Shops in Caesars lol.

This overall process will integrate architecture and fashion design into a virtual reality experience.

My question is, where do I start schooling wise as a person leaving the IT field entering software development. Also, would this be considered software engineer in game development and are there any certs I should I pick up on the way for good measures.


Hey buddy i'm web developer approximately for 4 years. and had some basic knowledge about c++ . but 1 month ago i started to upgrade myself around c++ and game programming . now i know about oop of c++ , references , pointers and i created RPG console game on c++ but i want start to learning more about web development too .
i know this two filed is a little different but i wanna handle this two together , wanna have my cake and eat it too . i worked on php , js , ruby , python , java but for now in web i focused on js and php , actually laravel and vue and react , and c++ for game development


Not a constructive comment. No need to be disrespectful.


I've always been weird.


I appreciate your perspective. Now that it is several years since your post, I wonder if you see the move as a long-term positive decision.

I teach university students who are facing career decisions in a short time when they graduate. Would you be willing to do a zoom call and answer some of the same questions people asked you here on the forum? I think your perspective would be interesting to them.


hey marr,
I want to learn how to program game servers ( using udp protocol ) and host it on cloud (aws or gcp). I want to make sports multiplayer ( using client - server architecture ).

How should I proceed gathering information on creating game servers?


If I know Java (Basically I know C#) how easy is it to learn Game Development? And where would you recommend starting?


I would recommend learning the core basics of Java first, there is some big differences between Java and C#. From there I'd start off small make something like a little snake game or something on those lines. Once you feel comfortable learning the basics of game development move onto something with a game engine. I'd suggest starting off with LWJGL or jMonkey


How long was your transition process? And do you currently find yourself working much longer hours?


The transition process didn't take as long as I had thought. Because I had chosen Java as the main language for games it was fairly easy to learn as C# and Java are very similar. I made a couple of games to show them what I could do and within about 7 months I had found myself working alongside some very nice people on a small game.

The hours is a little bit complicated, I've always worked remotely (apart from one time) and usually scheduled to a certain amount of hours per week. This meant that I could do 2 hours one day then 12 the other day. As long as I was meeting the requirements per week everything was all good to go.


what is so good about game development? Is it that easy to learn it? What games did you develop? I would like to know how to learn as a beginner!!!


It all depends on your own preference and what you want to make. If you want to make phone, pc or console games they're all very different routes. The games I made I'm not able to mention due to NDAs. If you're looking to start I'd suggest do some research on the types of games you want to make. For example like a PC battle royale game similar to fortnite I'd suggest learn C# alongside Unity or UnrealEngine


my ambition is to become a game programmer/ developer. Now i have completed my schools and going to join for software engineering. Can i become a game developer after software engineering or not?


You can become a developer and start working for people when you feel you're ready, there really is no set line you have to get to start at. However there is some crucial aspects I'd suggest having before going into the field of your choice:


Build up a personal knowledge base of the field. As you've mentioned Game Development start looking into what languages the field uses primarily, and more specifically around the platform you want to develop for. A lot of PC games tend to use C# or Java, whereas console platforms (Xbox, PlayStation etc) are developed in C/C++.


Cannot stress this enough but your portfolio is vital when applying for any developer job. Outlining some projects that show off your skills and what you've done in the past (or currently) will show future employers what you can do.

Be prepared

Be prepared to enter the field and have the amount of work being given to you, its different for every industry. If you get a interview with a company research them, find out what they do, what technology they use and any other vital information that can benefit you. Remember its okay to fail, its okay not to get a job, use any negatives that the interviewer provides and use them to benefit yourself for the future.

Good luck!