Skip Navigation

Is there any demand left for 'game systems developers'? As in, people knowledgeable on Win32 or POSIX API, PE/ELF, Compilers and Interpreters, etc, when it concerns games exclusively? (+UNIX engine?)

I don't think my knowledge is complete about Windows side of things (PE and Win32 API, MASM, VC++ etc) so I never dared apply for such jobs. But I have never seen one either. I think it theoretically should exist. The systems side of gaming, especially developing a portable framework, developing retargetable, optimizing compilers which prioritize game dev, these are all roles that should potentially exist. I was wondering, if they exist, is it worth building up exclusive skills that would attract recruiters? Mind you that I live in a country that is adversary to the US (very much so) and a US company is not going to hire me for remote development, rather, all I can wish for are smaller developers, indies and European (especially Eastern European) developers. Local developers are another issue, I am a college dropout and I get a feeling that local developers (who mostly make shitty phone games, similar to South Koreans and the Chinese) would not wish to hire a college dropout for such critical task.

That is, if any of these local, or European, or East Asian developers even need someone of this skillset. I once went to interview for a local game dev, and that was back in 2015-2016, I saw a bunch of young men and women (much older at me at the time, not so much now!) sat around this large table, with workstations in front of them. The owner gave me a tour of 'the office' (aka the room) and most of them were running Android Studio on Windows. There was another group running Unity. Another group had a 3D software open. I did not recognize the rest of the toolchain people were using.

All I know is, unless for a large gaming conglomerate that builds its own engine, there's no need for a systems developer in the gaming space.

Correct me if I am wrong here. I have been jumping from discipline to discipline ever since I dropped out due to bipolarity (I gave a girl a flower, she mocked me, I got embarrassed and dropped out, true story). I have managed to learn a 'good' amount of POSIX API. You can see my works here.

TL;DR: (apologies if it got long)

Do smaller devs need systems experts, and is it worth investing time in learning Win32 API and how PE works and learn MASM dialect of x86-64 Assembly (I know AT&T)? Would I be able to find a job in the discipline --- as someone who is extremely untalated in graphic and sound design etc?

Apologies if this question gets asked a lot (if it gets asked).

PS: I was reading 'Game Engine Architecture' by Jason Gregory, and I realized it is completely within my power to cook up an engine that targets Direct Media Layer using LibMesaGL (OpenGL for Direct Media Layer). Do you think it's worth doing it? Does the world need another engine, this time targeted at UNIX systems like Linux, MacOS and BSD?

15
15 comments
  • "Where there's muck, there's brass"

    In general, if you can do the more difficult aspects, then you'll be more in demand (both because people need them done, and because it'll serve as a badge that yes you know what you're doing in a general sense).

    In games specifically, it's more likely that you'd find yourself doing optimization, or the low levels of porting a game from one system to another, as opposed to writing an engine from scratch. If it were me, I would probably get involved in some existing project and try to write a new low-level system (e.g. a Gaussian splatting renderer for Unity or something) as opposed to just reinventing a new engine of my own. But absolutely, if you're skilled with the deeper systems aspects as opposed to just using the existing tools, it'll help you generally speaking.

    • I was invited to a FLOSS engine project, I think it was Piston. I did not know much so I just bailed. I usually prefer making stuff from scratch because my aim is to learn, I know the software I write has no use. Like rn I am writing a UNIX shell. Just to learn (I just remoted it, see my profile).

      Still, I doubt I will ever get a systems job. I don't have a degree. I dropped out. I will get one eventually, but I doubt the shirtty thirdie for-profit college I can afford is going to be attractive to recruiters.

      I do have a job currently, it pays enough for thirdie living especially given the devaluation of currency here. I just want to have a job where I am not ignored for days by my client, like the job I have now.

      I think it's everyone's dream to make a FLOSS that attracts pay piggies, I would like that too but I don't put much stonk on it. It's as delusional as people who clone a Todo app and expect to get hired by anyone.

      Delusions run rampant in this discipline sadly. People are entitled. I think a degree is important because I would personally not entrust a non-degree holder with the stuff I personally like.

      I try not to be entitled but I need to eat.

      Anyways sorry if I am rambling.

      • You are right that having a shiny education gives people a huge advantage. It's not everything though.

        For example, I have a friend who makes 6 figures in europe doing performance-oriented C++ work, with no degree. Once you get the first job it becomes far easier.

        Getting the first job is tough, but having personal projects really helps. Don't undersell yourself. You need to give people the impression that you dropped out due to pure happenstance (e.g. health or family issues that are now resolved). Make them think that you are a lucky find; if you had finished the degree you'd already be at a bigger company with a bigger salary.

      • I'll be honest, and sorry in advance, but it'll help you more. Your cynicism is probably the thing getting in the way. I understand it's rough and not fun, but you've got to avoid it grinding you down.

        You need to give yourself reasons to stand out. Making a half baked unfinished engine that no one uses isn't as impresive as improving an existing one that people use. Greenfield projects are rare and you probably not going to get that as a first role. So you need to prove to employers you can take legacy code, learn it, understand it, improve it and get it live. Demonstrating you have the capability to do that on a FOSS project demonstrates you may be able to do that on an in-house engine. You also learn from the code others write. Why did they do it this way? Is it better? What are the pros and cons? Degrees differentiate, yes, but a green person out of uni vs someone who has proven they can do a similar job, you have an advantage. Plus, 5 PRS is probably easier than a new engine. Making one from scratch cannot hurt, but it doesn't prove everything they need to know. Businesses hire because they have a problem and need someone competent to solve that problem. Tick those boxes and remove the risk and you have reasonable chances.

        If you only demonstrate you're not comfortable going out of your comfort zone and getting your hands dirty, you are not helping yourself.

        So give them reasons to hire you, give yourself a chance, and keep applying. Give yourself a 2% chance, apply to 50 jobs, give yourself a 10% chance, apply for 10, but always go over the odds.

        Remember, industry is rough right now. A lot of experienced proven folk got let go in last year. Might need to improve your odds and bide your time.

  • In my experience, they are hiring programmers with broad capabilities and not people with laser focused specialities. (Even in game design)

    Although, being able to offer the ability to properly port a game to the steam deck and switch would be valuable assets.

    Knowledge in how to build and deploy soak/smoke farms and make meaningful use of them is a valuable skill.

    Experience with anticheat software development is a helpful unicorn skill. (This is where assembly knowledge is essential)

    Being comfortable with the major engines and design tools such as unreal and blender.

    You probably won't get a interview unless you've expressed core competencies in C++, Lua and 3D environments.

    • Does one have to specialize in proprietary engines (unreal and unity) or do you mean general knowledge of how things work in these engines (I'm a Godot person, that's why I'm asking).

      • Just wanted to give examples of popular tools.

        Familiarity with different tools is helpful.

    • Most of my programs are in C Link. Would this turn them off? I have no issue learning a new language mind you, let alone, superset of one I know. What worries me is the standard library. It's not hard to learn a language, it's hard to learn its standard library. For example, Rust has an extremely non-POSIX-ly STD. It really turns me off. To this day I have no clue how to close a file in Rust. I am implementing AWK in Rust, since there's already an AWK in Go and I think there must be one in Rust. However there's no damn close function! There's no file descriptors. I know Rust does most of its shit during compile-time and it's mostly a meta language with focus on denotational semantics (which I just happen to write a Gist document about here) so I finally had to make a ChatGPT model to explain Rust to me. I have a ChatGPT model for most languages, just to look them up.

      I am also making a Ruby script to create manpages for Rust. Based on the JSON files that come with Rust-Doc package on Pop_OS!. If anyone wants to help me with those. that would be great. Thanks.

      • Honestly that all looks good, if you were able to demonstrate graph theory, with something like a-star and some game mods you would probably be able to bust into the industry.

        Just keep in mind you'll probably need to start out in a junior role first.

You've viewed 15 comments.