wgpu and bgfx might be good options. Creative coding frameworks might be work looking at also (Processing, Cinder, Three.js, etc). Also lightweight "engines" like Sokol, Oryol, Raylib and Macroquad might be good options. There are a lot of options just not well known. Someone wanting the perfect high level but not too low level graphics API, where high and low are kind of arbitrary (don't want an engine, no or minimal boilerplate, most work done with code instead of a editor/gui, etc) is a common theme.
ImGUI has backends for every graphics API in regular use, and some that might be considered deprecated (DX9). Including game engine abstraction layers in Unreal and Unity and console properietrary APIs (not public, of course). Here's a full list of public graphics APIs and windowing systems part of the official release (https://github.com/ocornut/imgui/tree/master/backends). Maybe with the exception of stb_image, it's only of the most integrated open source libraries in games and graphics
The number one question we’ve received about ALC is: “Why can’t I move the blocks around?” While we could absolutely design a tool that allows you to poke and prod down to the mil, there are already piles of tools that do that
I tried to spec out a quick small handheld console with two analog joysticks and four buttons and it was basically impossible to make something useful because of this constraint. I understand auto-layout for non-input components but it makes input useless except for complete debug components.
All modern versions of game creation software have internet based sharing and many support building commercial software, including every PC version of RPG Maker. RPG Maker on PS2 was a product of a weird era where consoles weren't really internet ready.
Dreams on PS4 has a complex sharing backend and the PS4 also let's you share directly to social media. https://indreams.me/
I love walking and hate driving (even though I've been a car owner for 13 years) and still get this when I choose not to drive. My car was in the shop a year ago and I wasn't working so I walked or took public transit to take my son to daycare (about 1 mile from my home). I had multiple parents offer to give me a ride in a slightly pittying way
Thanks for writing it. It's always good to read thorough implementation details and have them readily accessible even in a causal programming environment. I especially appreciated the conflict resolution section
This is a side effect of it being a research project. It's interesting to me because I've worked in this space (I designed and built the visual scripting system for Facebook Horizon) but otherwise I agree. Kids and non-programmers won't understand this
There is a whole class of visual term rewriting programming languages, usually targeted at children. I think KidSim https://dl.acm.org/doi/10.1145/176789.176795 was the first of them. PuzzleScript is awesome and definitely in the same category. One of the interesting things about TileCode is that it works on a Gameboy like device with minimal inputs and no mouse or keyboard.
I think there is a need for it. I'm not sure if this will become that, although it might be a piece of it. There seem to be multiple projects to build CUDA like environments (or CUDA itself to Rust.
Instrinics to shuffle data around threads exist in graphics compute but only are really supported in DX12 (WaveInstrinics) and Vulkan (subgroup). They were first introduced to game developers widely on consoles (Xbox One and PS4), but also exist in a more limited form as vendor specific extensions in DX11 (and I think OpenGL). Callable shaders (https://docs.microsoft.com/en-us/windows/win32/direct3d12/ca...) in DX12 and Vulkan might give you the dynamic dispatch functionality you want. They are usable in ray generation shaders but I'm not sure if they can be used in general purpose compute yet.
The better or worse comment was more about having a heterogeneous environment vs using a graphics API to dispatch compute. I agree that generally speaking they are the same though, after all it's the same hardware.
I don't think anyone on HN that regularly uses CUDA would call graphics compute ergonomic, and I often see complaints about it. I also see graphics programmers using CUDA complain about graphics interop (although Opti-X seems pretty good), so it might be the result of different use cases, rather than anything better or worse about either model.
Focus on Vulkan graphics shaders first, then after Vulkan compute shaders
So no compute support yet. Also, Rust-GPU's focus is writing shaders in Rust, in order to support a game engine, so the focus will be real-time graphics and simulation. It seems like it will never evolve into a CUDA like heterogeneous environment that's more common in scientific computing and ML.
Another advantage (for Embark) is their main engine codebase is also in Rust. This allows for sharing of some code on GPU and CPU. This isn't uncommon in the game industry, for example header files that compile in both C++ and HLSL in order to share struct definitions for CPU code and GPU code, and CPU math libraries that use HLSL types and semantics.
Rust is different enough from GLSL and HLSL (most game engines use HLSL as "native" and cross compile to GLSL, MSL or use header defines to build PSSL) that introducing a new shading language compatible with Rust is probably worth the effort for them.
It's funny that people are so anti-AR/VR that they called Magic Leap a scam for raising $3B, but a 10 minute video streaming app that burns through $2B in 6 months is completely legitimate? I understand that content can be expensive, but Magic Leap did produce actual consumer hardware, and Microsoft and others have spent similar amounts to make comparable hardware. I'm not saying that Magic Leap is a successful company by any stretch, but if ML is a Theranos style scam, then Quibi was as well.
This is really cool and probably should have been made a while back, and I'd absolutely use it if I didn't luck into a game earlier this year. I might still use it to play something else.
One thing is, it seems very targeted at TTRPG curious folks that have never played before, like people who have watched Critical Role or heard of D&D and are fantasy fans but have no idea what the actual play experience is. This makes sense, it's a fast way to grow your user base. But I'd be more likely to use the product if I could search by system and request specific games. I would use it to play more niche games that fewer people are running as one shots.
Based on your company description it seems like you're moving in that direction.
Here's a similar effect made in Unity (https://mmxxxviii.itch.io/volumetric-blackhole), with a breakdown video about how it was made, for those of you that are curious. It's possible this one uses a completely different technique, but it also appears raymarched to be raymarched.
People complain about Nvidia's proprietary driver, but imagine if they opensourced all of their software stack and had it in the kernel. If AMD is 10.5%, Nvidia might be like 35% :)
On the hardware side (there are plenty of public resources about implementing graphics in software for the ground up), Jaymin Kessler's Jaystation2 and Jaystation3 dev blogs where he makes a GPU that runs on a FPGA might be useful http://maisonikkoku.com/. This course also looks very useful from the hardware design standpoint https://courses.cs.washington.edu/courses/cse467/15wi/. GPU hardware design, unlike CPUs, seems to be much more esoteric with very little shared info due to the key players in the space and possibly all the patents.
For graphics programming in general Graphics Codex looks really good (I haven't done the course, but I know people that have). https://graphicscodex.com/
It would be nice to see a modern version of this. Low level APIs largely change resource binding, state management and command execution, when they originally launched there weren't many changes to the core pipeline from say... DX11. But as you said with the introduction of mesh shaders and raytracing shaders there are two new, radically different alternative pipelines.
Updating the compute section to include WaveIntrinsics/subgroups, async compute queues, copy queue. Maybe even explore ML hardware (Tensor Cores)
I was doing some programming language work last year for Facebook Horizon, and while not appropriate for that product it really made me interested in building a visual Forth or APL for programming in VR, mostly because the high amount of expressiveness with minimal symbols.
It's possible that performance would be an issue with some use cases, startup times, etc. Eventually this will probably be a reality, in the same way you can't run DOS binaries without an emulator or VM
Legacy support and continued backwards compatibility is one of the biggest strengths of Windows. I can still run weird games I made 15-20 years ago without issue. As a regular users of both MacOS and Windows, I don't agree that MacOS feels more stable, recently it's felt less stable than Windows, but obviously that's anecdotal and depends on usage.
This is one of the more sane comments on this thread. There is a lot of paranoia about MS wanting to somehow "corrupt" Linux because some web developers are having IE6 flashbacks. Sure if it was still 1999 I'd be scared of that, but now Microsoft's biggest growth business is Azure, so this move is largely about supporting Azure usage, not about creating a weird Linux Windows hybrid to lock developers out of proper Linux distros. The rest all comes from MS being developer friendly, which has always been a part of their culture on the tools side
From a raw sales standpoint Overwatch has done better than most of those games. The only Blizzard game that beats Overwatch in terms of raw revenue is WoW. I find that tech people that used to game in the 90s tend to way overestimate how popular and successful those early foundational games were in comparison to modern games. Overall growth in the game industry (especially PC world wide) has been massive
Relativity was shared on HN a while ago. I can't speak to the quality of the hardware as I haven't tried it, but it fits your requirements, partially. For various reasons (and please correct me if I'm wrong) all VR compositors are tied directly to a store/platform because everyone has an appstore in 2020. wxrc (Wayland VR compositors) is in development but it looks like it's not quite ready for wide usage. That means PCVR is still mostly directly tied to Steam and standalone VR is mostly tied to Facebook...
One thing to remember is the music industry is significantly different than tech when it comes to contract terms, and terms that look or work closer to tech for artists (even if they are worse in practice), could look radically generous compared to standard record label deals. It's also possible that Kanye wants to start something that looks completely different. You're right though, it's hard to decipher in a tweet
FYI, Nintendo Switch is Tegra based as well. 61 million units isn't bad, and there are significantly more Tegras in use in Switch consoles than in Jetson boards or even Telsas (~1 million).
The answer was 3 I think, referring to rock paper scissors balance relationships in RTS games, and fighting games, but it was Zynga in 2011 so they were mostly thinking about casual strategy. I think I said 1 at first because the question was kind of silly and I trend toward reductive answers with silly questions.
response to your edit: Your interpretation of the question makes a little more sense. He was talking about a specific number, not a concept\variable that is common in games. For Zynga I'd probably say energy or money or something, although any tracked resource that determines loss, victory or progression would work for your version.