Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
MaxLimitz

Programming language

Recommended Posts

I was making a list of programming languages games use. Without opening any of the .lmp files and finding out which software opens that kind of files, according to GitHub, Freedoom is made with Python according to the automatic language categorization, but on the other hand, Doom from 1993 is made with C, so maybe Freedoom is also made with C? On the other hand, you need a game engine, so it depends on the game engine, which programming language Freedoom uses?

 

Share this post


Link to post

Most Doom engines are C, but some have either been shifted into C++ or, occasionally, translated into other languages entirely.

 

The Freedoom project specifically is probably marked as Python because of its build scripts, not what the game itself runs on, since a specific "Freedoom engine" isn't included.

Share this post


Link to post

lua was used in many games in the 00’s (Serious Sam for example).

Share this post


Link to post

Freedoom is not really a complete game in itself, it's just the game data. Not the engine. You need to run Freedoom with a Doom exe or source port.

 

This game data is a set of files (e.g. graphics, sounds, music tracks, and miscellaneous other things, plus the maps obviously) and all that stuff needs to be converted to a format that can be used by Doom, which has its own custom formats for archive, image, sound, music... That's where the Python language enters the picture: Freedoom largely relies on Python scripts to handle automatically all the tedious parts of building a usable IWAD. But outside of this, Python is not used in Freedoom itself -- there's no Python code running when you play the game. (Unless you're using a Doom port that itself uses Python, I guess. But the only example I know of was left unfinished due to the untimely death of its author.)

Share this post


Link to post

Generally speaking there are two parts to any game: the artwork (graphics etc. but also things like sound effects and music) and the "engine" (program code that makes it into a game you can actually play). Each is useless without the other. Doom's engine is written in C although some source ports have switched to C++ nowadays.

 

Freedoom is just artwork. So in that sense there isn't any "code" - it's the job of the source port to turn that artwork into something you can really play. However, there's a lot of stuff in Freedoom, and building the Freedoom IWAD files that we distribute is a whole complicated task in itself. Because of that we have code that's run as part of the build process. As a simple example: when you open the main menu you see different graphics saying "New Game", "Load Game", etc. There's a program in Freedoom's build process that generates those graphics automatically from individual letters. There are a number of similar programs that build different parts of Freedoom, some of which are quite technically obscure. We standardized on Python some time back as it makes for a very good fit for this kind of task. But by the time Freedoom's on your computer being played, all that code has already been run far away on someone else's computer. As a player it's not code that's ever being run on your computer.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×