20 ms·
CryEngine out on GitHub
- aavotins 10y agoWhat caught my eye immediately is their licence agreement that prohibits using the engine to develop, quoting "Serious games". That's a rather vague and broad statement, what's a serious game?
- vertex-four 10y ago1.10. “Serious Games”, i.e. ‘games’ which are not developed for the sole purpose of entertainment but for purposes training, simulation, science, architecture etc.
- ominous 10y agoHow is 'purpose' a legal term? What is the purpose of a game? To milk money from fans? To obey to some company's internal schedule? To entertain..... review sites? To entertain me? To showcase technology? To insert subliminal messages and DRM? All of the above? None? What was the purpose of tamagotchis? We may never know.
- Sir_Substance 10y ago>What was the purpose of tamagotchis? We may never know. But we can breath a sigh of relief that whatever it was, we beat them in the end.
- wyldfire 10y agoFrom what I've seen, courts are frequently asked to answer questions just like this one. They do not seem to be as troubled by slippery slopes because it's their job to decide where the line is. If you're a student using CryEngine you're probably not worth suing for copyright infringement (at worst a C&D maybe). If you're a corporate entity who is distributing a game which licenses CryEngine, you certainly may be worth suing for infringement.
- sillysaurus3 10y agoWhich subsection restricts a corporate entity from distributing a game built on CryEngine? There are restrictions on Serious Games, but amusingly a Serious Game isn't a game.
- deleted 10y ago[deleted]
- DigitalJack 10y agoI disagree, re: serious game. It's why we have the term gamification. Taking something mundane and making it, for my lack of a better term, gamey. I'm thinking of things like Starfighters.
- deleted 10y ago[deleted]
- mijoharas 10y agoThere is a section[0] of the licence[1] which allows students to develop a Serious Game, but not for profit. [0] 2.2. If you are a student or a member of an academic institution you are in addition entitled to develop Serious Games using CryEngine and to render such Serious Games in object code form (including the CryEngine Assets and the CryEngine Redistributables) pursuant to the CryEngine documentation. However, you are in no case entitled to commercially exploit such Serious Games without Crytek’s explicit prior written approval. [1] https://www.cryengine.com/ce-terms https://www.cryengine.com/ce-terms
- dspillett 10y agoIt is probably an arse covering measure. If someone uses the engine for serious work and it somehow fails, there isn't a route to ask them to cover financial/other damages because they told you not to use it that way (and you agreed not to use it that way via this license).
- vertex-four 10y agoGame engine companies actually tend to have separate licenses for Serious Games, with different terms and costs. This is because a Serious Game is often unlikely to be mass-market - at the extreme end of the scale, it might be developed for only one client to ever use.
- deleted 10y ago[deleted]
- Natanael_L 10y agoGames without physics, not Turing complete and no building. Bye Minecraft, for one. Garry's Mod too.
- dvdcxn 10y agoAt that point are they even games anymore?
- nightcracker 10y agoKerbal Space Program?
- SXX 10y agoI think it's mainly related to Mass Virtual (ex. RealTime Immersive Inc) business that mainly worked on military simulators. At least in past it's was Crytek's company. http://massvirtual.com/portfolio/video/ http://massvirtual.com/portfolio/video/
- cm3 10y agoIf you read the Visual Studio EULA, which I did when the first Visual Studio .Net version came out, it described in a long and complicated text a certain type of software which you aren't allowed to compile with it. I don't know if this changed in the meantime because I have only read one EULA and that was it, but the software described neatly formulated the conditions of copyleft licensing. So in essence Visual Studio .Net forbade one from building things like GPL software. I'm sure the Visual Studio .Net EULA is available somewhere to dig this up. What I'm getting at is that this isn't the worst license from a commercial-first software distributor.
- AlexeyBrin 10y agoI never heard of such a thing as VS prohibiting the compilation of GPL code.
- cm3 10y agoIt didn't say GPL. There was a long section describing code of certain kind, which was a long-winded description for the rules of copyleft, and then a reference to that type (call it X) which may not be fed into MSVC. Like I said this was the EULA for Visual Studio .Net (the first version) and probably more than a decade ago. And as I said also, I don't have the newer EULAs so cannot look for the same section in those. I wish I had saved a copy back then but I wasn't as professional, sorry.
- AlexeyBrin 10y ago> So in essence Visual Studio .Net forbade one from building things like GPL software. I'm sure the Visual Studio .Net EULA is available somewhere to dig this up. Maybe I miss something, but you literally said that they didn't allow one to build GPL software.
- cm3 10y agoI wrote "things like GPL" and said it described the copyleft licensing without naming the prominent license. But I cannot find a version of the first (2001 or 2002) EULA, so it's possible my memory isn't exact. Edit: All I could find https://yro.slashdot.org/story/02/08/04/132221/more-ms-eula-fun https://yro.slashdot.org/story/02/08/04/132221/more-ms-eula-...
- akerro 10y agoUh, First thing I saw was .exe on git. You can still use the src to investigate bugs in source code and walk-around them in your product.
- edem 10y ago> 1.10. “Serious Games”, i.e. ‘games’ which are not developed for the sole purpose of entertainment but for purposes training, simulation, science, architecture etc.
- deleted 10y ago[deleted]
- clarry 10y agohttps://en.wikipedia.org/wiki/Serious_Sam https://en.wikipedia.org/wiki/Serious_Sam
- dcuthbertson 10y agoHow about anything by TruSim [0] :-) http://seriousgames.com/ http://seriousgames.com/
- silveira 10y agohttps://en.wikipedia.org/wiki/Serious_game https://en.wikipedia.org/wiki/Serious_game
- Aoyagi 10y agoHasn't that been there for quite a while?
- bananaoomarang 10y agoI think you could get the source somehow, but maybe it wasn't on github? Only has 90 stars ATM which seems odd if it has been up here for a while.
- frederikvs 10y agoThe first commit seems to be from april, so it can't have been on github for much more than a month or so. Before it was under perforce, apparently.
- SXX 10y agoMost likely they'll continue to use perforce internally. GitHub is just for pull requests and game developers.
- dagw 10y agoAre you thinking of Unreal Engine? The source for CryEngine as only been available since March or April.
- Aoyagi 10y agoNah, I meant CE. I guess I should have specified "a while", heh.
- lentil_soup 10y agoFor the past couple of months you could get it from the website as a .zip file, but now it's source controlled properly in GitHub and connected internally to Perforce.
- Aoyagi 10y agoI see, thanks for the clarification.
- sspiff 10y agoAh man, I was curious to take a look at the early development history of this, but seems like they didn't push the full history of the engine :(
- deleted 10y ago[deleted]
- cm3 10y agoIs it purely header files and this is commonplace at game studios that use C++? Edit: What I mean is that the implementation of C++ classes seems to be in header files and I'm wondering if this is a common way to do things at game studios. Found cpp files, but it's interesting that so much of the class implementations are directly in the headers.
- lentil_soup 10y agoIt's the full source code, so headers and code
- deleted 10y ago[deleted]
- mijoharas 10y agoCould you comment on why there are lots of (non-templated) function definitions in the headers? Looking at it, it doesn't actually look like there is that much, from the two random files I opened. In the first random file I opened[0] I didn't really understand why some of the functions (see link) were defined in the header. In another file[1] it seemed to make more sense (getters and setters, along with a smallish class where I guess you didn't want to bother making a new file). [EDIT] Could I also ask why you have defined some very large classes entirely in the cpp files[2] Also, thanks for this, very interesting to read the source for other large projects. [0] https://github.com/CRYTEK-CRYENGINE/CRYENGINE/blob/63418e7c9e998272ba79c4a6693f61c382f88e15/Code/CryEngine/Cry3DEngine/3DEngineMemory.h#L53 https://github.com/CRYTEK-CRYENGINE/CRYENGINE/blob/63418e7c9... [1] https://github.com/CRYTEK-CRYENGINE/CRYENGINE/blob/63418e7c9e998272ba79c4a6693f61c382f88e15/Code/CryEngine/Cry3DEngine/3dEngine.h https://github.com/CRYTEK-CRYENGINE/CRYENGINE/blob/63418e7c9... [2] https://github.com/CRYTEK-CRYENGINE/CRYENGINE/blob/63418e7c9e998272ba79c4a6693f61c382f88e15/Code/CryEngine/Cry3DEngine/3DEngineRender.cpp#L71 https://github.com/CRYTEK-CRYENGINE/CRYENGINE/blob/63418e7c9...
- SomeCollegeBro 10y agoThe only reason I have seen it done (and done it myself) is to avoid having to link to a library, so you put the implementation in the header of that library. No idea if that's the case here though.
- Yuioup 10y agoSo .. why would anybody care about Amazon's Lumberyard now that this exists?
- scrollaway 10y agoNo serious game developer should care about Amazon Lumberyard in the first place, other than informationally. Lumberyard is an immense lock in to the amazon stack with a lot of small print, a huge risk if you believe your game to be worth anything.
- chme 10y agoApparently developers of serious games shouldn't care about cryengine eighter. ;)
- scrollaway 10y agoWhat are you talking about? CryEngine has (had?) fairly bad licensing terms overall but they're working on them (this OSS strategy is likely part of that) and they are nothing like the Lumberyard terms which essentially buy out your soul. > 57.4 Operating Restrictions. Without our prior written consent, (a) the Lumberyard Materials (including any permitted modifications and derivatives) may only be run on computer equipment owned and operated by you or your End Users, or on AWS Services, and may not be run on any Alternate Web Service and (b) your Lumberyard Project may not read data from or write data to any Alternate Web Service.
- chme 10y agoI am talking about "serious games", because you aren't allow to develop them professionally with cryengine without written consent. It was a word play to your "serious game developer".
- scrollaway 10y agoHaha woops, completely missed that.
- yxlx 10y agoDoesn't have issue tracker so can't ask them directly. Hoping they will see it here. I think that instead of just linking to the license, they should include a copy of it in the root of the repository and refer to that. It is the proper way to do it.
- lentil_soup 10y agoJust sent this comment to the right people, thanks! :)
- yxlx 10y agoThank you too :)
- lentil_soup 10y agoI'm one of the developers of CryEngine, so if there's any questions, we are watching :)
- aaronsnoswell 10y ago1) What's the business goal of CryEngine putting this stuff out here. 2) (Possibly related) can you give an "I am not a lawyer, and don't speak for my employer, but here's a layman's take on it" interpretation of the CryEngine licence?
- lentil_soup 10y agoThe license is basically you can use the engine for free with no royalties. Our model is Pay What You Want: https://www.cryengine.com/get-cryengine https://www.cryengine.com/get-cryengine Basically you pay whatever you want, if you want, and have a choice of how much of that goes to the developers and how much goes to an Indie Fund that we use to fund indie projects that use the engine. We also offer "Insider Memberships" (https://www.cryengine.com/get-cryengine/service-packages https://www.cryengine.com/get-cryengine/service-packages) for studios that want some closer support from us, trainings, etc.
- erikj 10y agoSounds a lot like Red Hat's business model to me.
- hutzlibu 10y agoWow. I really hope that works out for you... (and that this decision wasn't born out of desperation) Because I really like this pricing model (and your engine) and I hope it will become standard over time ... but at the moment unfortunately it isn't and still too many people and companys won't pay anything if they don't have to. So good luck to you.
- abiox 10y agowith unreal, unity and other things having zero cost (up front anyways); the playing field has changed.
- danra 10y agoWhat do the !XT, !B, !U etc. mean in the commit messages?
- lentil_soup 10y agoInternal codes to know what the check in is about: bug, feature, update, etc.
- NKCSS 10y agoThis might be fun to look through; first thing I saw that I never thought of before was how to define flag enums. From https://github.com/CRYTEK-CRYENGINE/CRYENGINE/blob/release/Code/CryEngine/Cry3DEngine/BreakableGlassRenderNode.cpp https://github.com/CRYTEK-CRYENGINE/CRYENGINE/blob/release/C...: // State flags enum EGlassRNState { EGlassRNState_Initial = 0, EGlassRNState_Weakened = 1 << 0, EGlassRNState_Shattering = 1 << 1, EGlassRNState_Shattered = 1 << 2, EGlassRNState_ActiveFrags = 1 << 3 }; Als a C# dev, I write Enum flags from time to time, but I always just write out the values; never thought of using bit-shifting to prevent typos :)
- cjbprime 10y agoThe Linux kernel takes it a step farther: #define BIT(nr) (1UL << (nr)) #define BIT_MASK(nr) (1UL << ((nr) % BITS_PER_LONG)) #define BIT_WORD(nr) ((nr) / BITS_PER_LONG) #define BITS_TO_TYPE(nr, t) (((nr)+(t)-1)/(t))
- darkxanthos 10y agoHow does bit shifting prevent typos as opposed to just explicit numbering?
- Benjamin_Dobell 10y agoIt may or may not. However, what's more important is the semantic significance. You're making it clear these are flags and you're concerned with individual bits. 2, 4, 8 etc. are decimal numbers and mean something else i.e. "two", "four", "eight". Does bitwise ORing the decimal numbers 2 and 4 really make sense? Not particularly, but combining bits at certain offset does.
- zx2c4 10y agoWow. https://github.com/CRYTEK-CRYENGINE/CRYENGINE/blob/release/Code/CryEngine/CryPhysics/livingentity.cpp#L1300 https://github.com/CRYTEK-CRYENGINE/CRYENGINE/blob/release/C... Intensity.
- georgiev 10y agoThat could totally fit on my screen
- Derpdiherp 10y agoMy God. I would've been panned for that in university. Break it up with meaningful comments, rip some of it out into functions where possible, if you're leaving code in source which is commented out - at least leave a comment on why it's commented out. I suppose this is the result of deadlines and lax code reviews.
- AlexeyBrin 10y ago> I suppose this is the result of deadlines and lax code reviews. This is usually the result of years of changing/updating the code. Any living code base tends to grow and accumulates cruft over time. Just because it doesn't fit the ideal you learned in university doesn't mean it is bad code, this is real life code.
- Derpdiherp 10y agoI've worked in the Games industry with age old engines, I currently work in embedded development with a code base over 10 years old - I'm fully aware of what "real life" code is like. There is no excuse for not writing well commented code - or even code with well named variables and functions that reduce the need for as much commenting. If you suffer from code like this in your workplace, perhaps actively comment it as you reach an understanding of what it does.
- stuxnet79 10y agoThe fact that you are using university requirements as an exemplar is very telling. The moment I graduated and started hacking away in the real world is when I discovered that there was a lawless wild-wild-west of coding conventions out there.
- chippy 10y agoThis is quite powerful for some: https://github.com/CRYTEK-CRYENGINE/CRYENGINE/blob/release/Editor/Python/Lib/antigravity.py https://github.com/CRYTEK-CRYENGINE/CRYENGINE/blob/release/E...
- ekimekim 10y agoLooks like they've included the entire python stdlib, which that file is part of.
- kevinmgranger 10y agoBut it also looks like they forgot to include the license, which is required: https://wiki.python.org/moin/PythonSoftwareFoundationLicenseFaq#If_I_bundle_Python_with_my_application.2C_what_do_I_need_to_include_in_my_software_and.2For_printed_documentation.3F https://wiki.python.org/moin/PythonSoftwareFoundationLicense... (I Am Not A Lawyer, and all that.)
- davexunit 10y agoAs expected, it's proprietary software trying to cash in on the "open source" trend.
- NTripleOne 10y agoAs expected, there's some buffoon trying to bring in unwarranted dissent under the guise of caring about OSS.
- optforfon 10y agoThis is very hearsay-ish, but I have a friend of a friend who had to work with the CryEngine (I think it was for one of those Sonic games) and it was described as so incredibly buggy and you have to debug it constantly. Maybe this is their attempt to have the community fix it for them =)
- ddlatham 10y agoI wish the README said what CryEngine is. What is CryEngine?
- ketzu 10y agoCryEngine is a famous game engine, used in some famous AAA titles. It is somewhat comparable to the UnrealEngine.
- jandrese 10y agoCryEngine was used for FarCry, Crysis, BattleCry, and a good number of games from other developers.
- jtuente 10y agoI wish people didn't need hand-holding to tell them where to look for answers, but then lmgtfy.com became a prominent linking tool.
- ddlatham 10y agoThanks for the reply. I certainly know where I can get such information, but I think a project's README is a great place to have at least a single sentence explaining what the project is. Moreover, I suspected other HN readers may also not know what it is offhand and would find a quick summary in a comment here (such as the other reply above) useful so that each person doesn't need to perform the extra step to Google it.
- deleted 10y ago[deleted]
- ionwake 10y agoDoes anyone how the complexity of setting up a multiplayer session stacks up against unity?
- greenspot 10y agoWhat I like and what I'd like to understand better from a price economics view is their "Pay what you want" model; on the following link you see the page where the user can decide which amount he likes to pay (€0, €10, €25, ...): https://www.cryengine.com/get-cryengine https://www.cryengine.com/get-cryengine I am just wondering how the distribution is, so how many pay 0, how many 10 etc.? Could imagine that this pricing could lead to higher total revenues than the classical three-prices-page.
- ralmidani 10y agoI really wish Epic and/or CryTek would release their engines under a strong copyleft license such as AGPL, with the option to purchase a proprietary license for developers who do not want to release their games as free software. This would allow developers of free (as in freedom) games to use the engine while also allowing the company behind the engine to make money.
- jordigh 10y agoYeah, GPL or AGPL would be way less ridiculous than their current license. I'm not sure why are they so concerned if you make an offensive game.
- gravypod 10y agoI agree. There are a lot of things that I'd want to do with this engine that involves security research that I just can't do. Does this also mean that flight simulators cannot be written on this engine? I used to play a lot of those for fun, but that could fall under "serious software".
- SXX 10y agoThat would be great, but both Epic and Crytek have no reason to do that. Releasing under copyleft would mean there will be forks with changes they can't use for their proprietary branch. They of course have no reason to use permissive licensing too since that would mean someone else can make money off it.
- mappu 10y agoThe x264 library is GPL (i.e. not LGPL). To use it in a closed-source product you can pay for an interesting kind of commercial license, the terms of which are you /must/ submit your changes upstream (privately). The upstream can choose to accept anything that's possibly useful, and will reject anything that was application-specific.
- SXX 10y ago
- jordigh 10y agoWow, that's quite the restrictive license they got out there. Just about the only thing that's allowed is looking at the source code. You can't modify or redistribute, definitely not sell, and there are tons of restrictions on how to use it: https://www.cryengine.com/ce-terms https://www.cryengine.com/ce-terms
- detaro 10y agoModify you can: 2.1. Grant: Subject to strict and continuous compliance with the restrictions of this Agreement Crytek grants to Licensee a non-exclusive, non-transferable, non-assignable, non-sublicensable, limited license (the “License”) only: [...] 2.1.2. to develop, maintain, extend and/or enhance CryEngine pursuant to the CryEngine Documentation;
- arca_vorago 10y agoIt's been about a year since I tried cryengine last, but I have experienced nothing but pain with it, functionality wise, not to mention the lack of dev response to the users and the other drama surrounding the company behind it, I am going to continue to steer clear of it, especially with such restrictive terms. To me, this is a halfhearted attempt to catch up with Epic and Unreal Engine 4, which has really shown the market how to do things right. I actually look forward to engine updates with UE4, not to mention the increasingly better marketplace content. Also, I am hoping to eventually move over to devving completely on linux... unity and CryEngine are feeling the hurt, ans struggling to respond.
- rurban 10y ago> To me, this is a halfhearted attempt to catch up with Epic and Unreal Engine 4 I do rather think it's a last desperate attempt to get it out before crytek is going bankrupt.
- anqurvanillapy 10y agoIt's like the release of the source code of Doom and Duke Nukem 3D. We're getting old.
- Negative1 10y agoUnreal makes you 'attach' your account to their repo so they know who has had access to the source code. I'm surprised CryEngine just releases it in its entirety without any such 'protections'. The coding style is very Microsoft-like, which is I suppose not a big surprise given it's DirectX roots. 8-space tabs seems to be the convention (ugh). They use XML for their readable format (which explains a little their slow load times). The code itself is not very well documented but relatively clear to understand. Overall not a bad engine to learn a few things from but if you're new to Game Engines a lot of stuff will probably seem very complex (check out BreakableManager.cpp). It's no Quake 3 in elegance but it's got a lot of advanced functionality (especially in the editor). Overall, it's pretty awesome that they released this. Its a huge gift to everyone that is curious what a world class game engine that has shipped a ton of AAA games looks like.
- SXX 10y ago> The coding style is very Microsoft-like, which is I suppose not a big surprise given it's DirectX roots. Just in case first CryEngine and early versions of CryEngine 2 had OpenGL renderers, but code style was pretty much the same.
- cloudjacker 10y agoThis is the kind of thing you git clone just in case it winds up being an accident.
- shmerl 10y agoNice. I hope Vulkan support will arrive soon too.
- gravypod 10y agoIt would be great if the great hobbyist talent out there can also push to further optimize the CryEngine. From what I've experienced, the engine performs well, you just need to put a lot of hardware behind it.
- jdennaho 10y ago2.4. Restrictions on Use: Crytek reserves all rights not expressively granted in this Agreement. Without limitation, Licensee shall not: distribute, sublicense or exploit in any other form: the CryEngine (except for the Redistributables), e.g. as a stand-alone development engine; the CryEngine Documentation; the CryEngine Tools; use the CryEngine for the development of any product other than Games, including without limitation: military projects gambling; simulation (technical, scientific, other); science; architecture; pornography; Serious Games. Serious Games? did lawyers actually even read this?
- mhink 10y agoA cursory Wikipedia search would yield an explanation: "A serious game or applied game is a game designed for a primary purpose other than pure entertainment. The 'serious' adjective is generally prepended to refer to products used by industries like defense, education, scientific exploration, health care, emergency management, city planning, engineering, and politics."
- googletazer 10y agoMy 2c, but its too little too late. Unreal and Unity are the big boys fighting for game developers, especially indie game developers.
- _kst_ 10y agoIt would be nice if the README mentioned what CryEngine is. (By visiting https://www.cryengine.com/ https://www.cryengine.com/, I found out that it's a game development platform.)