[HN Gopher] Dagor Engine and Tools source code from Gaijin Games...
       ___________________________________________________________________
        
       Dagor Engine and Tools source code from Gaijin Games KFT
        
       Author : SXX
       Score  : 182 points
       Date   : 2023-10-26 18:47 UTC (4 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | filterfiber wrote:
       | Is this an old build or the modern engine? According to steam
       | charts they have 70.1k players in-game right now.
       | 
       | 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!
        
         | gpm wrote:
         | I would take from the commit messages that this is up to date
         | as of Sunday.
        
           | meheleventyone wrote:
           | This looks like Dagor 4 from that message whereas I think the
           | latest version is 6?
        
             | gpm wrote:
             | True (at least google confirms that), but the files have
             | headers that look like                   //         //
             | 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.
        
               | dijit wrote:
               | my engine branch of a 2 year old game in development is
               | "UE4" despite the fact that we are running 5.2.
               | 
               | 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.
        
         | SXX wrote:
         | Their possible motivation for releasing code as open source is
         | to allow some other Russian companies like VK Group to build
         | their IP on it without having any deals with them directly.
         | Just now VK Group announced their in-home game engine will be
         | based on this code.
         | 
         | 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.
        
           | morkalork wrote:
           | Open source as sanctions busting. Interesting.
        
             | bayindirh wrote:
             | You know, PGP is "exported" as a book to go around export
             | regulations. So this is not new.
        
             | SXX wrote:
             | None of the companies are actually under any sanctions, but
             | obviously having any licensing deals or IP transfers with
             | companies located in Russia is legal hazard.
        
               | morkalork wrote:
               | Would be difficult to pay with SWIFT cut off?
        
               | SXX wrote:
               | Russia is not cut off from SWIFT. There are multiple
               | banks that doing USD / EUR payments in and out, but with
               | minimal amount of 20,000 EUR and some 200-500 EUR fee.
               | 
               | 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:
               | 
               | https://theins.press/en/politics/266147
        
               | tokai wrote:
               | VK Group is definitely sanctioned in the USA & EU.
        
               | SXX wrote:
               | No they are not. Otherwise their apps wouldn't be on
               | Google Play and App Store:
               | 
               | https://play.google.com/store/apps/details?id=com.vkontak
               | te....
               | 
               | https://apps.apple.com/us/app/vk-social-network-
               | messenger/id...
        
               | secalex wrote:
               | The CEO is sanctioned, which makes dealing with the
               | company complicated.
               | 
               | https://sanctionssearch.ofac.treas.gov/Details.aspx?id=34
               | 596
        
           | bjord wrote:
           | and Gaijin's motivation for having VK build their IP on it is
           | that VK will contribute to the development of the engine? or
           | does some Russia-only Gaijin subsidiary benefit monetarily?
        
             | SXX wrote:
             | I honestly have no insight in their motivation here, but I
             | shared my guesses.
             | 
             | 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.
        
         | shakow wrote:
         | > has native linux support
         | 
         | It does, a game or two of Warthunder are my guilty pleasure
         | while waiting for some CI pipelines to finish.
        
         | Cthulhu_ wrote:
         | Isn't linux support mandatory / a given if they want to run on
         | the Deck or is that a clever emulation layer?
        
           | sho_hn wrote:
           | Most games supported/available on the Deck use a Windows API
           | emulation layer.
        
             | Xiol32 wrote:
             | Wine, thus Proton, is not an emulator.
        
               | sho_hn wrote:
               | I was expecting this reaction, of course, but that's why
               | I specifically wrote "Windows API emulation layer", which
               | it definitely is.
               | 
               | 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!
        
               | smoldesu wrote:
               | Proton includes DXVK, and that is a high-level emulator
               | for DirectX by most definitions. Wine isn't an emulator
               | because it doesn't have to be.
        
           | muwtyhg wrote:
           | Deck runs a compatibility layer called Proton [1]. A game
           | does not need native Linux support to run on the Deck.
           | 
           | 1. https://en.wikipedia.org/wiki/Proton_(software)
        
       | foota wrote:
       | My question is, did they have to apply for an ITAR license?
        
         | gpm wrote:
         | ITAR is an American law restricting the export of military
         | technology... this is a Hungarian, formerly Russian, company.
         | Why in the world would they need an American export licence?
        
           | btgeekboy wrote:
           | I assume it's a tongue-in-cheek reference to how the War
           | Thunder forums have recently been used for multiple leaks of
           | US military classified information.
        
             | HideousKojima wrote:
             | US, French, British, and Chinese so far by my count. I
             | might have missed some of the other leaks though.
        
             | btown wrote:
             | Is an open source game engine likely to cause those War
             | Thunder forum participants with military clearances to
             | become _more_ angry in debates (because they can now see
             | _how_ the inaccuracies in specifications would impact the
             | performance in game) or _less_ angry?
             | 
             | Either way, I doubt the impact is zero. So as something
             | that has military effect, it might be covered under ITAR
             | after all!
             | 
             | /s
        
             | foota wrote:
             | Yes, sorry, I meant to edit this in but forgot :)
        
         | rangestransform wrote:
         | unrelated but it would be cool if someone opensources, say,
         | rocket flight control software and get that part of ITAR deemed
         | unconstitutional
        
           | cdibona wrote:
           | Psu open sourced guidance software in the mid 2000s and it
           | found its way into other drone corebases and into a variety
           | of missiles, including the quassam 4.
           | 
           | Since it was open source and developed in public ,the itar
           | folks determined it was okay to release.
        
             | cdibona wrote:
             | It might have been OSU , not sure, it's been a long time.
        
           | Metacelsus wrote:
           | There are a lot of Kerbal Space Program mods that do this.
        
       | teaearlgraycold wrote:
       | I'm curious what game developers have to lose by open sourcing
       | their code. When I imagine a world where games all have their
       | source available (but without textures and models so you still
       | need to pay for it to play), I can't see financial losses for the
       | people selling the game. And especially for games where modding
       | is encouraged the lack of OS releases is surprising.
        
         | geek_at wrote:
         | The obvious problems that might occur are:
         | 
         | - 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
        
           | teaearlgraycold wrote:
           | The first issue wouldn't apply to single player games. But
           | the second might be the big one that scares
           | publishers/developers. I really wonder how consequential that
           | would be.
        
         | bayindirh wrote:
         | A lot of black magic is done in game engines to get that level
         | of performance with that level of quality.
         | 
         | 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.
        
           | dleslie wrote:
           | I've worked on games where a static reference is found in the
           | host libraries, and that's used as an offset to stomp on the
           | unnecessary parts of the library provided by the vendor; and
           | therefore recover slivers of precious console memory space
           | for the game.
        
             | Arrath wrote:
             | < distant screaming >
        
               | dleslie wrote:
               | Still a (well-known) old favourite of mine:
               | static uint8_t data[1048576]; /* IMPORTANT: ASK LEAD WHEN
               | FAILING CERT DUE TO MEMORY */
        
             | corysama wrote:
             | IIRC, Andy Gavin said during the development of Crash
             | Bandicoot, he stomped pages in the Sony system/OS
             | libraries. As long as the game kept running, all good!
        
           | jorvi wrote:
           | > Also both AMD and NVIDIA drivers sometimes implement
           | alternate paths to fix some engines' performance and
           | artifacts
           | 
           | 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%.
        
             | SpaghettiCthulu wrote:
             | How are those two things related?
        
               | bayindirh wrote:
               | Driver interrupts the engine instructions, applies fixes
               | or other does other processing on the CPU, and renders
               | the modified code. Think as a SQL query optimizer running
               | real time.
               | 
               | So, you need a fast CPU to keep data flowing to the GPU
               | at the correct rate, without much hindering.
        
         | CamperBob2 wrote:
         | One reason: third-party libraries and tools that aren't
         | compatible with the FOSS license you want to use.
         | 
         | Another reason: you are now much more vulnerable to patent
         | trolls.
        
         | qiine wrote:
         | Its an interesting question, there are many game dev that just
         | don't even think about it and are too busy to dedicate even a
         | minute to it,
         | 
         | and there there is the problem of engine using many midllewares
         | : https://news.ycombinator.com/item?id=3186440
        
           | sho_hn wrote:
           | > Its an interesting question, there are many game dev that
           | just don't even think about it and are too busy to dedicate
           | even a minute to it,
           | 
           | 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.
        
         | frou_dh wrote:
         | Well a simplistic answer would be that if you have a better
         | codebase than your direct competition then the opportunity to
         | crib large parts of your code might end up making their game
         | attractive enough that some customers end up buying it instead
         | of yours.
        
           | indeyets wrote:
           | Not really. Barely anyone buys game for the engine. The story
           | and game mechanics are much more important.
        
             | sho_hn wrote:
             | In the sim game genre, the two are somewhat intertwined and
             | customers are also more aware of what the engine does. Car
             | and flight enthusiast sim people absolutely do shop for
             | physics, flight model, and so on to some extent.
             | 
             | 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.
        
         | meheleventyone wrote:
         | If you've made your own engine or significant unique pieces of
         | technology that's part of your companies IP which is inherently
         | part of the value of the company. Further to that open sourcing
         | software takes effort and the more complex the software the
         | more effort it takes. Game engines are very complex. Then for
         | most companies they are trying to make and ship games which is
         | also pretty hard. So open sourcing seems like a lot of work for
         | little return. That's often why engines that become open source
         | are general at their end of life from a commercial perspective.
         | 
         | Games with modding in mind often do open source relevant bits
         | to make modding easier.
        
         | Cthulhu_ wrote:
         | Clones with more marketing budget / scummy promotion behind it.
         | Not supplying the assets isn't a deterrent, because one they
         | can be lifted from your game anyway, and two, there's factories
         | producing assets production line style.
         | 
         | While, if you have a successful game, there will undoubtedly be
         | clones, you don't have to make it easy for them.
        
         | jowea wrote:
         | What's the economic benefit for the company?
        
         | brucethemoose2 wrote:
         | Cheap, dirty clones.
         | 
         | 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.
        
       | purpleidea wrote:
       | > updated from dagor4 repo on 2023/10/22, rev
       | 0c5bf9c1d82d7491c925febbb...
       | 
       | old code base
        
         | tiernano wrote:
         | That's 4 days ago...
        
           | Yasuraka wrote:
           | Literally deprecated, some might say entirely useless and
           | that it belongs in a museum
        
       | lf-non wrote:
       | The daScript repo [1] in the same org is quite interesting in its
       | own right and makes some ambitious claims to performance [2].
       | 
       | [1] https://github.com/GaijinEntertainment/daScript
       | 
       | [2] https://dascript.org/#performance
        
         | brucethemoose2 wrote:
         | > LLVM-8.0.1
         | 
         | The benchmark must be 2019-2020, but thats still very
         | interesting.
        
       | pelasaco wrote:
       | I'm the only one missing docs?
        
         | gpm wrote:
         | There do appear to be some docs embedded in the source.
         | 
         | 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.
        
           | two_in_one wrote:
           | There is a bunch of *.rst files which are readable. On Ubuntu
           | ReText opens them. Build/install probably just moves them
           | around and/or may be converts to html . There is not much in
           | there.
        
       | sho_hn wrote:
       | Note this repo contains full source for numerous third-party
       | libraries that aren't BSD-licensed.
        
         | pnw wrote:
         | I don't see anything in /prog/3rdPartyLibs that isn't open
         | source of some variety though?
        
       | tonfreed wrote:
       | Oh boy another avenue for people to leak classified operational
       | data
        
       | CrimsonCape wrote:
       | Any idea why Gaijin has developed two fully-featured scripting
       | languages? I see Quirrel and daScript in their Github page.
        
         | corysama wrote:
         | I would guess a combination of tech evolution, legacy code and
         | disagreements between design departments. I once worked at a
         | gamedev company that had an in-house scripting system and a
         | purchased system from an engine fire-sale (not a fire-engine
         | sale). The in-house one was better for complicated situations,
         | but was relatively a lot of work for large volumes of simple
         | situations.
        
       | emmanueloga_ wrote:
       | I found a nice video that shows the progression of their games:
       | "History of Games Gaijin Made Before Warthunder" [1].
       | 
       | 1: https://www.youtube.com/watch?v=Ls00Dsm6Cig
        
       | corysama wrote:
       | LoL! I really gotta make an update to the marching cubes example
       | code...
       | 
       | 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/
        
       | nabakin wrote:
       | I disagree with the title change on this post. It is much less
       | clear what is happening here.
       | 
       | For those new: the engine of popular game War Thunder has been
       | open sourced under the BSD license.
        
         | SXX wrote:
         | Yeah, I specifically editorialized the title because few people
         | on HN possibly know Gajin Entertainment and no one know what
         | "Dagor Engine" is. I pretty certain that even people who play
         | the game have no clue how their internal tech was called.
         | 
         | A lot of people know War Thunder itself though.
        
         | wahnfrieden wrote:
         | We get to compete on editorializing it for votes here in the
         | comments!
        
       ___________________________________________________________________
       (page generated 2023-10-26 23:00 UTC)