Dagor Engine and Tools source code from Gaijin Games KFT
github.com
github.com
For those new: the engine of popular game War Thunder has been open sourced under the BSD license.
A lot of people know War Thunder itself though.
Also, posting a descriptive title isn't "editorializing." It's exactly what should be expected (if not required) of any post here.
Possibly more, depending on how wrong the wrong one is.
The benchmark must be 2019-2020, but thats still very interesting.
I'm intrigued that the 11th highest current player count on steam has native linux support and open sourced their engine?
They provide sample files too, I'm not saying they have bad motivations in any way, I'm just curious as to why they decided to do this now. Either way I applaud it!
I can guess that Gaijin Entertainment had some contracts with companies in Russia, but after moving their business out of Russia it's now easiest way to fulfill the terms of some IP licensing deal.
Yandex is doing the same thing, but other way around by releasing more and more of their code as open source. It let them to cleanly trasfer IP from Russia-poisoned company to their Israel company.
https://play.google.com/store/apps/details?id=com.vkontakte....
https://apps.apple.com/us/app/vk-social-network-messenger/id...
https://sanctionssearch.ofac.treas.gov/Details.aspx?id=34596
And you can also transfer bunch of other currencies much much cheaper. It's mostly question on whatever you have paperwork for bank outside of Russia to accept that payment.
PS: Only normal people are affected by those restrictions. Companies and super-rich cronies can still move their money freely and pay for whatever military components they want from EU / US:
From legal standpoint 99.9% of game development companies originated from Russia never held any IP within the country legal framework to begin with. It was a rule of a thumb of doing any IT business: register everything on Cyprus or in other functioning country. Usually regional office is only received money from holding company to pay for ads, pay salaries and minimal taxes.
So unlike giants like Yandex they were never under Kremlin direct control and could withdraw out of country rapidly without any losses.
For game development companies like Gajin it was always just one of the markets even if important one.
That sounds really offensive, and not to the companies.
It does, a game or two of Warthunder are my guilty pleasure while waiting for some CI pipelines to finish.
//
// Dagor Engine 6.5
// Copyright (C) 2023 Gaijin Games KFT. All rights reserved
// (for conditions of use see prog/license.txt)
//
Which suggests the repo is just misnamed... which really isn't uncommon.Also seems unlikely there would be active work if this was an old version of the engine, and a lot changed between the 2023-09-15 import and the 2023-10-22 update.
At previous companies where we developed a game engine at the same time as the game we were building it for; after releasing the 4th game on that engine it still had the binaries named the codename of the original first game.
So, renaming things can be hard or overlooked.
This is a bid for that piece of government sponsorship.
The recursive acronym name was chosen first and foremost because it's funny, but also to make the point that it's not emulating all of Windows, and definitely isn't something like dosbox or Dolphin in terms of implementation strategy. This is true, but we shouldn't allow it to break our language, no matter how much we love the clever meme!
Carmack always (ab)used the hardware to the highest level in its code to get that performance/quality ratio and this is why he always kept the latest engine closed.
Unreal engine also had tricks up on its sleeve since Unreal Tournament days, however I don’t know the exact details. IIRC, it was about lighting and shadows mostly.
I had two friends who wrote their own engines. One built a company around that. Other one did visual simulations. Former one told me about the war stories which he battled against NVIDIA drivers, how driver behave the way it wanted, and how he had to abuse it to get the performance it wants. Also both AMD and NVIDIA drivers sometimes implement alternate paths to fix some engines’ performance and artifacts.
He also told how some big studios’ developers abused the driver in a way which can be only defined as “hacking”. I don’t remember the details, but they modified some data in place to bypass the graphics APIs to gain performance. Of course that is pretty brittle.
Latter friend told me how he had to optimize calculations, do great yet cheap approximations and abuse the strong parts of a GPU to get the performance he wanted.
So, a lot. All of these are considered black art and trade secret. Crytek should have some patents about some of the rendering methods they have developed even. They stopped sharing tech demos to prevent being copied, too.
static uint8_t data[1048576]; /* IMPORTANT: ASK LEAD WHEN FAILING CERT DUE TO MEMORY */Nvidia moreso than AMD. An interesting artefact of this (or maybe the specific tricks that Nvidia chooses) is that Nvidia's cards need to be paired with a strong CPU, or you can suffer a performance penalty of up to 25%.
So, you need a fast CPU to keep data flowing to the GPU at the correct rate, without much hindering.
The driver detected the game (possibly via checksum of the executable), and ignored that function call (while returning success to the game engine), and only executed the function in full, if there's a necessity to do so.
Back in the day, ATI's drivers used shading and texturing optimizations in Need for Speed series to reduce the load on the card for faster frame rates for very minor visual changes.
Do these kinds of optimizations for tens of games, and things get complicated. I remember these optimizations are done for Need for Speed III, Quake 3, Far Cry series, GTA3 (nVidia's budget cards ran the game better than ATI's faster cards at that time), etc.
Since these drivers bent a lot of corners for specific games and made things very complicated, an embedded platform provider decided to re-fork AMD's Open Linux drivers to Windows (IIRC) since they were vanilla, honest to spec drivers with no convoluted pipelines.
A cutting edge graphics card driver is possibly one of the most complex software in today's software ecosystem, IMHO.
Games with modding in mind often do open source relevant bits to make modding easier.
While, if you have a successful game, there will undoubtedly be clones, you don't have to make it easy for them.
Another reason: you are now much more vulnerable to patent trolls.
- Hackers finding exploits easier when they have the source and can run a debugger on real variable names - Companies from countries with less respect of copyright can create clones of your game and might outearn you
As a developer I'm welcoming this move though
and there there is the problem of engine using many midllewares : https://news.ycombinator.com/item?id=3186440
This has also been my experience.
Similarly, even most popular game mod projects don't release source code, even though they are volunteer/community efforts who you would think would act like a FOSS project.
But I find that a lot of the people who work on games have more of that artist mindset where they feel a type of ownership over the creation that to them is at odds with just giving it away "for free". This branch of SW just hasn't been socialized the same way.
I don't know where on the spectrum from casual to enthusiast sim War Thunder is. I looked at YouTube and the game looks graphically primitive, so the engine would have to do something else that's impressive.
You can't even necessarily fight it legally if the clone is "distinct."
That being said, I think there's less risk once your game "takes off" like WarThunder. Barotrauma is another good example where a clone is unlikely now.
I remember a game called Armored Warfare, that was like a mashup of World of Tanks and War Thunder, with modern vehicles, upgrades, multiple factions, more PvE focus and actual story missions (with sci-fi elements and cheesy voice acting).
It played well and looked nicely, too, though for whatever reason it never took off. If a game that well put together didn't attract a notable following, I doubt any others will either.
Game engine creator studios, like unity or unreal, have vastly different objectives than a game company. Releasing and being required to maintain a public game engine costs resources. Where game devs are always crunching.
Even then, look at the state of Unity, hardly profitable. Unreal was cruising on Fortnite cash so they don't care too much. More interested in setting themselves up to be the top dog first. This isn't exactly a money making situation.
https://github.com/GaijinEntertainment/DagorEngine/blob/main...
https://github.com/GaijinEntertainment/DagorEngine/blob/main...
When I said "There are many ways that this code could be made faster", I meant it :P A good start would be to use Surface Nets instead https://0fps.net/2012/07/12/smooth-voxel-terrain-part-2/
Note that Quirrel is a fork of Squirrel (in early 2019), which is a language very heavily inspired by Lua (you could say Lua-done-over) with a very similar embedding API, but much more like a typical OO language rather than quirky (which makes it very similar to Javascript). Squirrel was most famous used by many Valve games like Portal 2 and L4D2, and I recommend it. Quirrel attempts to make Squirrel more Python-like, easier, add tooling like static analysis and tests, and to continue development, as Squirrel has only received the odd bugfix for years and been neglected. I've been watching Quirrel for years, and development has been picking up. They seem to have about 1.5-2 people working on it fulltime. The language is diverging more and more from Squirrel (and further towards Python) and getting bigger.
I am thankful for every piece of code that is opened up, especially when it's published under a permissive license.
The devs likely don't have any intentions to build / support a community around this release, which is perfectly fine. No one is stopping you from building your project / community around it either.
Think about it like Doom / Quake engines, they are pretty popular as well, but didn't come with a lot of documentation or support from id software.
There are also a couple of folders non open source software:
* ATL -> Copyright (C) Microsoft Corporation All rights reserved. Nothing said about granting permission to copy,modify or redistribute
* PIX -> Copyright (C) Microsoft Corporation. All Rights Reserved. Nothing said about granting permission to copy,modify or redistribute
* reflexStats -> Copyright (c) 2021, NVIDIA CORPORATION Any use, reproduction, disclosure or distribution without an express license agreement from NVIDIA CORPORATION is strictly prohibited.
* PoissonGenerator -> Author Sergey Kosarevsky, no license text mentioning of granting any rights to do anything with it
* A couple more folders with no license information at all.
For anyone wondering about this word soup: KFT == kft. == "korlátolt felelősségű társaság" == Hungarian limited liability company.
"Gaijin Games" is a Hungarian kft.
Either way, I doubt the impact is zero. So as something that has military effect, it might be covered under ITAR after all!
/s
Since it was open source and developed in public ,the itar folks determined it was okay to release.
https://github.com/GaijinEntertainment/DagorEngine/tree/main...
I haven't built them/don't know how complete they are. At a glance I would guess not very.
old code base