Nowadays I hear a lot about graphics engines, game engines, physics engines etc. but don't remember the term being used much, if at all, back in the 80s and the 8-bit era. I'm not including Charles Babbage's Difference Engine or Analytical Engine, since those were hardware machines. Where and when did this term originate?
While I don't know the first software to be referred to as an engine, it seemed useful to check Google's Ngram Viewer:
As can be seen, database engine slowly began being to be used around 1979, while game engine took another decade to begin catching on. Checking a few books using software engine, they were using the phrase generally, in titles like Best Practices in Software Measurement and Practical Biometrics: From Aspiration to Implementation.
Darn, I left out graphics engine. Regraphing, I see it began around 1982 and in in 2008 shows about three times the usage of software engine, but still well below game engine.
I checked links and found results for:
- 1982: A 6809 based graphics engine used in Electrical Design News
- 1983: The inference engine is an interpreter of the facts and the rules. used in The Journal of Forth Application and Research - Volume 1
- 1987: Relational Database Engine used in Computer Architecture, Tutorial
- 1995: Wolfenstein 3-D game engine used in Game Developer magazine
(Be careful if you want most recent results with the Ngram Viewer. By default, it cuts off at 2000, which in this case misses the recent drop-off in usage.)
Stephen Kitt pointed out that inference engine peaks higher than everything else, and he is right. So I'm adding a 2nd graph with both that term and graphics engine. The phrase software engine was so minor I took it out.
"Everybody" was using inference engine in 1990, but the drop off from that year is dramatic. It must not have been cool any more.
The word "engine", applied to game development software platforms, came into common usage in the mid-1990's and is mostly applied to that category of software today. While there is history of using "engine" to describe database and AI platforms too, it is the "Game Engine" that is commonly recognized by the non-technical public as a special class of commercial software, utilized by commercial game developers.
As evidence of the recent trend in using the term "engine" more in connection to game engines, and less in reference to database engines, please see the Google search trends comparing the two below. This is the trend in very recent years and months. "Game engine" is the search term represented in blue, and "Database engine" is red.
The key attribute for these game engines, or any software engine, is that they are data-driven. The game content itself is represented as data entities, not as native code. In more sophisticated systems, event actions are also created using some form of high-level, portable scripting capability. The game engine is the software that can execute this data and script. Thus, the game engine can be utilized for the creation of many different games. Depending on the flexibility of the game engine, even games of differing genres may be created; however, the game engines are commonly limited to one basic genre.
Since script execution is a common features of most game engines, there is an intersection with the concept of a Virtual Machine. For efficiency, game engine script is commonly "compiled" into some form of efficient byte-oriented code, or "byte code". Since the game engine runs this proprietary byte-code, the term virtual machine also makes sense when applied to these engines.
As the term "Game Engine" came into common use, it was also retroactively applied to older game platforms that met the basic requirements for the term. For example, SCUMM, first used in 1987 by LucasArts for Maniac Mansion, would commonly be called an early game engine today. Interestingly, the modern reverse-engineered SCUMM system is called "ScummVM", emphasizing the point of interchangeability of "VM" and "engine".
To my knowledge, the two earliest game engines, used for the production of many commercial retrocomputer games, were both developed in 1979. The "Z-Machine" was developed by Infocom and used in the creation of their many famous text-based adventure games throughout the 1980's. Also in 1979, Automated Simulations, which would later become Epyx, created a game engine for the Dunjonquest series of games. These games were originally released for the Commodore PET, and later ported to other retrocomputer platforms. The most famous games of this series was the Temple of Apshai trilogy.
The first Game Engine that literally used the term Engine was, to my knowledge, the Doom Engine by id Software in 1993.
Database Engines, however, used this term much earlier. dBase and, especially Foxpro, later also Borland, used the term Database Engine in their advertisements basically all through the 80ies.
Actually, I was trying to find Software ads and marketing material before 1980 and failed - interestingly, nobody seemed to see the need for software ads before the 1980ies. All the computer-related ads I found preceeding 1980 were advertising hardware only...
As an addendum to tofro's anwswer, many years ago I read somewhere about when id Software would license the Wolfenstein 3D Engine (which would predate the DOOM Engine) for $50,000, which may have put them in the position of being amongst the first game developers to license out game engines. I found the passage on the Internet but it's on a web page with pirated software so I'll just paste the relevant text here (emphasis mine)
Great enough that many companies started requesting licenses for the Wolf3D engine for their games. This happened enough times that it became an inside joke at id and "Let's do another $50k xcopy" was John Romero's response to any new requests.
Granted, the story is ambiguous enough that it's not clear if id Software thought of it as an "engine" yet or if they just thought it was awesome to be able to make $50k just for copying some code to a disk.
In the years since they've retronymed the DOOM engine to be "id Tech 1" (2 is Quake/Quake 2, 3 is Quake 3, 4 is DOOM 3, 5 is RAGE, 6 is DOOM 2016), but no such designation for Wolfenstein 3D. In addition, the hacking tools for Wolfenstein 3D were clunky and discouraged, whereas modding DOOM was absolutely fine with id.
So while they licensed out Wolf3D's engine they may not have called it an engine yet. Same way FPS games were called "DOOM Clones" before the other term stuck.