Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

A lot of work still needs to go into those engines to achieve feature parity, specially in regards to GUI tooling.

Just check Unreal's 2017 roadmap.



Have you actually used godot? It has "read" 2d mode, that makes it interesting enough - and there are multiple commercial titles built in it.

In general I agree with you - but saying that "you should use Unreal/Unity" on every project is not the right answer in my opinion.


Actually I tried it a few weekend ago, just downloaded and executed a few demos.

It looks nice.


Are you claiming that Unreal still needs a lot of work to achieve parity with Unity?? No.

https://www.youtube.com/watch?v=WC6Xx_jLXmg

Edit: BTW there's a very insightful feature comparison from UE developer here: https://www.reddit.com/r/gamedev/comments/5wouuw/2017_featur...


No, if you read properly you will see I am claiming these community engines have a lot of road to travel and tires to burn, before they can compete with Unity,Unreal,CryEngine and Cocos2D-x features and tooling.


I consider that an advantage, simple things have their appeal. Unity without any 3rd party plugins is very basic, and a lot of these community engines are at the same level.


I was arguing from the point of view of those that think "engine == code" and disregard these engines without everything else that surrounds the eco-system or understanding of how many studios work, which is quite common in the HN Web & FOSS culture.

Good luck with your project.


Yup, back when I was in games our ~70 person team was about 10 developers and the rest were artists/animators/designers.

Tooling cannot be understated and most of our goal was to be a force multiplier on the majority of the team who actually do the creative work. That's what these engines bring and while hobby engines are nifty they're not going to be making strides into that space until they have a compelling tooling story.


It is said that restrictions boost creativity and I've seen artists do amazing things even though their tools were complete crap. Question is how important tools really are. I would argue that vanilla Unity tools are nothing special and yet it's the most used engine in the world and people make amazing games with it.


With my former career as a creative in games dev, I say that's complete crap. I had access to good and bad tools. With the good tools I could experiment and test ideas quickly. With the bad tools I spent too much time just trying to get stuff to work. I would want tools that boost my creativity by giving me freedom, not boosting creativity to be able to finish my tasks.

Maybe you are thinking boosting creativity to work within the limits of the hardware? That's a different topic.

In my experience, vanilla Unity has better tools for creative out-of-the-box then many engines before it.


Oh please, that's the lamest excuse I've seen to skimp on tooling. Abusing your users with poor tools doesn't win you anything.

Self imposed constraints can (and has in many cases) achieved the same thing.

From a technical perspective unity's tools are nothing special, however they work well for non technical users. In the same way UI/UxD for Linux has been a disaster understanding production needs is a complete different space that few engines get right.


It's all just subjective, nothing of this is proven by any research. From my experience from several game studios (I admit the sample is too small to be relevant) quality of their games was inverse to quality of the tools. Stuff like http://www.geek.com/games/a-train-you-ride-in-fallout-3-is-a... is extremely common.

> From a technical perspective unity's tools are nothing special, however they work well for non technical users.

They are nothing special even from non-technical perspective. I'm not saying they are complete crap or that they do not work reasonably, in fact I think they are so successful because they are so simple/average. Of course constantly crashing tool is not boosting your productivity. But simple tools are.

Look at old Unity UI - it was even worse than most open source UI. The new UI is a bit better but still there are open source projects at least equally good. Or animation graphs in Unity. They are quite simple and they have many issues, yet they enable users to do more creative stuff than UE.


Whoever thinks that all these random 3D engines are worth anything to anyone but hobbyist programmers is delusional to say the least. "gui tooling" (or as I like to call it: "the engine") represents maybe 80 to 90% of value of an engine like Unity or Unreal. I'm sure that anyone who's actually done some project in one of these can confirm what I'm saying. The amount of money and time spent on the tools of UE is simply insane.


There is a lot of custom 3d game engines used even for commercial projects, I remember reading a survey where it was about 20-30%. Although companies do not opensource them since they see no value in it.


Tooling is a big chunk but it is not the main benefit of an engine in my opinion. There are so many optimizations and abstractions (think build, platform, gl, LOD handling, skeletal anim, memory handling for things such as landscape) done in your game to make sure it runs super smooth and beautiful at the same time that if you decided to do it yourself you would be working countless of hours to get to the first abstractions.


I think importance of tooling is highly subjective, depends on your habits and workflow. Some people need to have an editor like Unity, others just want to create their whole game in code, e.g. www.randygaul.net/2017/02/24/writing-a-game-engine-in-2017/


I suspect WebAssembly is going to create a niche for very lightweight engines optimized for download footprint, too.

And as you say, UE and Unity seem to be optimized for artist-driven projects rather than coder-driven projects. Which, realistically, are always going to be the majority of commercial efforts, but coders often prefer code. I've written a (basic) 3D object modeller app, and I still can't work out how to use Blender.


> I suspect WebAssembly is going to create a niche for very lightweight engines optimized for download footprint, too.

I wanted to create a simple 2D game once, aiming for lot of platforms, including mobile and web. Most engines (I looked into Unity and Godot) produced just too heavy results for web. I ended up using Haxe/Flixel.


That guy says his must-have feature of c++ is operator/function overloading. That seems an odd choice to me. I have been a c++ developer for over a decade. I would have leaned more towards it being a necessary evil.


It's a must-have for 3D programming, for working with vectors and matrices. OpenGL's shader language is basically C with (hard coded) operator overloading for this reason.


Could you explain a little more about how the operator overloading is used in this context? Is it just that arithmetic operators are made to work in their linear algebra sense on objects representing matrices, so M*N will return a new object representing the matrix product M×N?


That's exactly how it would be used. Game programming involves a pretty enormous amount of geometry and vector arithmetic, so it's a domain where being able to write s*(u+v) is an advantage over scaleVec(s, addVec(u, v)). Same logic applies to matrices, as you described.

Personally, I think there are more important advantages of C++ over C, and operator overloading can get ugly FAST if you're not careful.


That makes sense. Thanks for the explanation!


Must-have necessary evil :)

Anyway, I do not agree with all the stuff in the linked article. He was just used as an example for need of programmer-focused engines.


It isn't even necessary. Its just convenient, maybe sometimes =)


But a game ships with a runtime, not an SDK. If you can build the game's content using proprietary tools, but ship that content backed by a FOSS engine compatible with the output of those tools, I think that gets you 90% of the way to being able to claim that your game itself is FOSS. Sure, people might not be able to alter and "recompile" the art assets from source without proprietary tooling, but they can alter the game mechanics, the scripting, the levels, etc. freely; and also introduce their own assets using whatever tooling they like.


Unity had no GUI tooling until very recently, yet was already very popular.


I think they're referring to the GUI of the actual tools you're using within the engine, not the ability to create a GUI for your project in the engine.

I mean... just look at the screenshot of the OP. That needs some pretty serious work. :-/


Indeed, and even the new GUI is very limited. Also other tools are not really great, e.g. animation graphs. But I consider this Unity's way the cause of it's success. To make good tools you have to taylor it to specific use case, making it more complicated and limiting users with different use cases.


The proprietary, closed, vertically integrated tooling in Unity and Unreal are what make them such terrible tools for use in a professional development environment. All of the best programming tools are free, open source software. Yet somehow we're meant to believe game programming is "special" in some way that it shouldn't use the same ecosystem as every other area of software development. Yeah, right.


Because the values of the game industry are rooted in the demoscene, commercialization of game related IP assets and consulting work related specific hardware and design knowledge, without any religion about freedom of tooling, this is what most FOSS advocates fail to understand about the industry.


My opinion is quite similar to yours. I have never worked in videogames but my, uninformed, opinion has always been that open source videogames lag so much behind other types of open source programs because they require a lot of non-programmers to work. I don't think the complexity of the engines is the main problem, after all operating systems or compilers are also quite complex and critical software. So, what is so special about programming that makes people want to share their work for free? The only other field I think that has a similar collaboration culture would be academic research.


> So, what is so special about programming that makes people want to share their work for free?

I created my engine for myself, I guess a lot of open source projects start with one person solving his problem/having fun. I open source it because:

* money is not everything, it might bring value to some people, but I doubt people would be willing to pay for it * even if it's open source it does not prevent me to earn money with it * I benefit from people using it - submitting patches, reporting problems, testing on different hardware * it can bring money in different ways * if I share my property (e.g. car, flat, computer) with somebody else, it limits my use "rights", if I share software, it limits me in no way


Given that every other industry has moved to FOSS software for their tooling, it's the game industry that has a "religion" about proprietary software being necessary to make money.


The claim that "every other industry has moved to FOSS software for their tooling" is demonstrably false.

Has the graphic design industry moved off Photoshop and Illustrator? Has video editing moved off Avid, Premiere, et. al.? Have Windows devs abandoned Visual Studio?


I am not sure that game industry has a religion about proprietary software, they use a lot of open source libraries. But you need a lot of tools to make a game - GUI editor, animation graph editor, audio editor, cutscene editor, AI editor ... and it makes harder to create games if all of these editors are from different 3rd party providers with different controls, settings, installers, .... What is more some of these tools need to be taylored to the specific game or integrated too tightly with other editors. E.g. cutscene editor must be tightly integrated with scene editor, or AI editor must be taylored to specific game, since they use extremely different AIs.

What is more thare are not really FOSS tools for game industry. There is GIMP or Blender, but most artists prefer commercial alternatives because they are arguably better. Tiled editor is pretty popular for 2D. But other than there is almost nothing. I would love to avoid implementing an editor/debugger for my behaviour trees, or visual editor for shaders, but there is simply no good FOSS for that.


What other industry?

Many of the tools I use daily on our customer projects are proprietary.


I wish it were true but major parts of my time are not using FOSS; iOS app dev & embedded dev notably.


Unity is opening more and more of the engine up.

And as for Unreal...

https://www.unrealengine.com/ue4-on-github


I wish Unity make their code public, they might be publishing a bit of code but most of it is still hidden.


i found unreal very big. slow to compile and change. and a very old source code base. lots of code before C++11 and STL standardization. which is a bit weird with when one is used to code using C++14/11.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: