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?
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.
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.
As it happens, I am in the process of making a documentation language with equation and graph support, taking hints from GraphViz, and initially targets PostScript. Structurally, I know how DAGs work. I have used DAGs in this abandoned compiler I was working on:
https://github.com/Chubek/Batmite
dag.c
It also has a graph coloring code.
I stopped working on it. I also learned about graphs in HS and first semester of college at DiscMath class, but they were basic info. I then learned about graphs by reading Rosen’s discmath. I wanna read 7th edition. But ChatGPT has made me lazy. Why read a book fully when I can make a model, tell it to absorb the book (I think they have downloaded the entire libgen into their model? Am I wrong here? Why does it know every book libgen has, and does not know every book ligen does NOT have?) and then quiz it? haha.
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.