Advertisement

Is learning about Machine Learning relevant to getting a job as an AI Programmer in a game studio?

Started by November 12, 2021 02:32 AM
11 comments, last by hplus0603 3 years ago

Kylotan said:
The reason your ‘quick searching’ didn't turn up any others is because there are no other notable ones to speak of.

Okay, doing further searching, I see that The Sims 4 (from ~2015, six years ago) used Python.

(And a number of small projects, I see, but you did say “notable”.)

So, you are right that it doesn't seem to be commonly used in major projects these days, but it's not that uncommon in small ones, it seems. (For one thing, a vast number of visual novels are made in the language.)

Kylotan said:
Python became less viable as an in-engine scripting language as games came to depend more on efficient multi-core access.

And yet Panda3D, at least, offers things like threading within Python, and I think that it has at least some behind-the-scenes multi-core support. (I'll confess that I haven't much looked into it as I've felt little call for it in my own work.)

I also see that there's at least one Python module that allows multi-core code, although I can't speak to how good it is, not having used it myself: https://pypi.org/project/multicore/

Kylotan said:
Sorry, but you're misinformed.

… And yet some of what I gave there, as mentioned, was not from information but from actual personal experience. That said, as I mentioned before, it is somewhat-old experience now.

Now, regarding all of these points, if we're only talking about AAA development, then maybe. But we don't know whether the original poster is only looking at the AAA sector, as far as I recall.

That said, thinking about it, I don't want to argue further on this point--this has become a little more stressful and energy-intensive than I'd like. I've had my say, and I'd like to leave my part of the matter here. (To be clear, I'm not suggesting that you don't respond to the above, and nor am I saying that you're at fault in any of this. For one thing, my energy is a bit limited right now, I fear.)

MWAHAHAHAHAHAHA!!!

My Twitter Account: @EbornIan

Thaumaturge said:
yet Panda3D, at least, offers things like threading within Python

Because of the GIL, Python does not execute multiple threads concurrently – all threads except the one running, will be blocking. When some thread blocks (on I/O or whatever) then another thread can get scheduled and execute.

The only way you're going to run on more than one core at a time, is if the C++ code that actually interfaces with the hardware (sound mixer, GPU driver, etc) has its own threads. Which, at least for the graphics driver, is frequently the case, but you very seldom get to parallelize more than one thread that way.

This is one of the main reasons that the Civilization series moved away from Python, btw; Civ IV was famously written in Python with coroutines. Another reason is that the raw performance on the CPU when Python runs, is also really low (even if using an accelerator like PyPi,) compared to native and native-like approaches.

Python is great when you really just need to script a few things. When you need to do real computation, Python isn't the language to use.

Also: Most “normal” python modules are built for Cython, not PyPi. Panda3D I think does support PyPi now, though.

However, the reason I never liked Panda3D, was that their skinned character animation pipeline was quite unsophisticated, and the exporting pipeline from tools like 3ds Max was quite cumbersome. In my experience, the artist-to-game experience for animated, skinned-and-morphed, characters, is the part that's hardest to get right in a game engine, and the part that separates the really good ones, from the rest. (FWIW, Unreal Engine actually does a great job there!)

enum Bool { True, False, FileNotFound };

This topic is closed to new replies.

Advertisement