What if the future of programming is already here,...
# thinking-together
s
What if the future of programming is already here, and we just don’t see it as such? https://www.cnbc.com/amp/2018/12/14/the-reason-epic-landed-a-15-billion-valuation-is-not-fortnite-success.html
👍 2
w
"The Unreal Engine is to Epic Games what AWS is to Amazon." The quote I was looking for. Given how long the Unreal Engine has been around (1998), I'm ever so slightly surprised we haven't seen a Metaverse grow out of it, or anywhere else for that matter.
i
Unreal Engine feels like a successor to Flash, which seems like A Good Thing to me. The business model is different, better suited to the way these sorts of media creation tools tend to be used (lots of hobbyists and students who can’t afford to spend money and would pirate it if it was for sale, a handful of huge companies using it to power major properties who are willing and able to pay). But the premise of the tool — an integrated art and programming environment focused on interactivity and multimedia with easy cross platform distribution — fills an essential role that’s been a void for the past 8 years.
It’s a part of the future of programming, sure, in the same way Flash carried a bit of the demoscene torch for a while and got a bunch of kids started making interesting websites and games and interactive zines. (I was one of those kids)
I think it’s striking to see the areas where UE succeeds that the web fails, and vice versa. For instance, I’d argue it’s easier to do cross platform using UE than it is to do cross browser. It’s probably easier to make experimental music using UE than using the Web Audio API. It’s easier to get smooth 60fps 3d graphics in UE, and it’s not even possible to go above 60fps in the browser. But it’s arguably a lot harder to do a small, good game in UE than it is to make a small good website — different demands of the respective mediums. This should be kept in mind when thinking about which platform should eat which other platforms’ lunches.
t
We should also consider that an appropriate programming environment is not only about what we build, but also about how we deal with an existing system once we have it. How debuggable is it? How evolvable is it? How explainable is it?
s
Unreal and Unity are the present of programming for me :)
👍 1
And have been (in various incarnations) for most of my career
s
@Scott Anderson When you say they “are the present” for you that’s exactly what I mean — maybe you’re already experiencing today what many of us are still looking for in other areas of our field. Have you ever looked at your tools from that perspective? What should today’s regular programming IDEs take as inspiration from Unreal and Unity? And what does still not feel like an improvement?
👍 1
w
Or are you @Scott Anderson just saying that they are what you use professionally?
s
@Stefan @wtaysom I'm saying both, they are what I use professionally as a AR/VR application developer, but I think certain environments could learn from game engines. It's tricky because both of them are generally used in combination with regular programming IDEs (Visual Studio, XCode, Rider, etc.) and other tools that make programming in that environment easier (Resharper, Visual Assist), so I think comparing them to coding IDEs isn't quite right and the browser, or Flash comparison is more accurate, but still not quite right
e
3D gaming is such a difficult environment, that it is basically untenable without an engine underneath your work to make it feasible. There are many 3D engines. The company that made all the flight simulator series for EA had an engine specific to flight. And i am sure the driving games have engines as well. Unreal Engine is very sophisticated in its workflow; getting the same code and assets to work on such a huge range of hardware, where the number of polygons has to be adjusted to match the platform requirements is a huge part of it. But there is nothing easy to learn about the Unreal engine, it is a career decision to invest into learning such a complex tool.
👍 1
I don't think that it represents the future of programming so much as the present reality of 3D graphics, which doesn't use implied shapes but instead relies on brute force triangular and quad meshes, with very complex texture mapping and shader programming. It isn't clear to me that any of this will stay put, and in another 30 years an entirely different workflow may arise for 3D graphics.
Unity and Unreal Engine and other 3d engines can be used for 2D, not just 3D, and they clearly have a big mindshare. I am hoping however that for more moderate 2D gaming we can drastically simplify the toolchain, and make it much easier to make graphical interactive software. I don't find either of those tools to be easy to learn, and 100 hours in those tools is like a drop in the bucket. I believe that a system with less than 100 hour training time can be made.
And one thing right off the bat that creates that 100+ hour training time is the vast number of API's.You can see it in Apple's OSX as well, there are too many thousands of API's, far more than you need. If we had interchangeable parts in software like machinery you wouldn't need such elaborate API sets and engines.
w
@Edward de Jong / Beads Project I agree about the present reality. 3D tooling (both game environments and modeling tools) has great ideas on offer as well as horrors. As for APIs, my mechanical engineer friends and I often argue over who has it worse off.