All Projects → rofrol → Awesome Wgpu

rofrol / Awesome Wgpu

A curated list of wgpu code and resources.

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Awesome Wgpu

Ebitenui
User interface engine and widget library for Ebiten
Stars: ✭ 159 (-1.85%)
Mutual labels:  game, game-development
Openage
Free (as in freedom) open source clone of the Age of Empires II engine 🚀
Stars: ✭ 10,712 (+6512.35%)
Mutual labels:  game, game-development
Lambda Lantern
🧙 ‎‎ A 3D game about functional programming patterns. Uses PureScript Native, C++, and Panda3D.
Stars: ✭ 122 (-24.69%)
Mutual labels:  game, game-development
Rubeus
A cross platform 2D game engine written in C++ for beginners
Stars: ✭ 159 (-1.85%)
Mutual labels:  game, game-development
Chronoshift
An open source re-implementation of Red Alert written in C++.
Stars: ✭ 144 (-11.11%)
Mutual labels:  game, game-development
Gamedev Resources
🎮 🎲 A wonderful list of Game Development resources.
Stars: ✭ 2,054 (+1167.9%)
Mutual labels:  game, game-development
Fxgl
Stars: ✭ 2,378 (+1367.9%)
Mutual labels:  game, game-development
Entitas Sync Framework
Networking framework for Entitas ECS. Targeted at turnbased games or other slow-paced genres.
Stars: ✭ 98 (-39.51%)
Mutual labels:  game, game-development
Kaetram Open
An open-source 2D HTML5 adventure based off BrowserQuest (BQ).
Stars: ✭ 138 (-14.81%)
Mutual labels:  game, game-development
Phaser3 Particle Editor
A flexible editor for building phaser particles.
Stars: ✭ 131 (-19.14%)
Mutual labels:  game, game-development
Gdk For Unity Fps Starter Project
SpatialOS GDK for Unity FPS Starter Project
Stars: ✭ 119 (-26.54%)
Mutual labels:  game, game-development
Flappy Fly Bird
🐦 Flappy Bird reincarnation [Swift 5.3, GameplayKit, SpriteKit, iOS 12].
Stars: ✭ 150 (-7.41%)
Mutual labels:  game, game-development
Flutters
A game powered by Flutter and Flame
Stars: ✭ 117 (-27.78%)
Mutual labels:  game, game-development
Gamedev4noobs
Olá, sejam bem-vindos ao repositório _gamedev4noobs_ do Estúdio Vaca Roxa. O propósito desse repositório, além de contribuir para o projeto 4noobs, é ensinar o básico do desenvolvimento de jogos para iniciantes. Apresentando boas práticas e insumos para criar games incríveis.
Stars: ✭ 122 (-24.69%)
Mutual labels:  game, game-development
Awesome Gamedev
A collection of free software and free culture resources for making amazing games. (mirror)
Stars: ✭ 1,571 (+869.75%)
Mutual labels:  game, game-development
Openjk
Community effort to maintain and improve Jedi Academy (SP & MP) + Jedi Outcast (SP only) released by Raven Software
Stars: ✭ 1,641 (+912.96%)
Mutual labels:  game, game-development
Clumsy Bird
🐦 🎮 A MelonJS port of the famous Flappy Bird Game
Stars: ✭ 1,306 (+706.17%)
Mutual labels:  game, game-development
Unity Solutions
Use Firebase tools to incorporate common features into your games!
Stars: ✭ 95 (-41.36%)
Mutual labels:  game, game-development
Reldens
Reldens - You can make it - Open Source MMORPG Platform
Stars: ✭ 130 (-19.75%)
Mutual labels:  game, game-development
Openhow
Open-source reimplementation of Gremlin's Hogs of War (PC/PSX).
Stars: ✭ 144 (-11.11%)
Mutual labels:  game, game-development

Awesome wgpu

A curated list of wgpu code and resources.

PRs welcome.

About wgpu

Ecosystem

  1. individual API libraries like ash, d3d12-rs, metal-rs - for the lowest hard-core level available to Rust
  2. gfx-hal for lowest portable level
  3. Rendy for helping to solve the rough corners of gfx-hal
  4. wgpu-rs for the lowest safe level
  5. Engines like ggez or Amethyst for the highest level

https://www.reddit.com/r/rust_gamedev/comments/bv7w2f/wgpurs_now_uses_rendy_to_manage_memory_and/

Learn

Gamedev

Rust gamedev

General gamedev

Physics/Collision

Games

Applications

Examples

Older

UI

Rendering

About Rendy

About Rendy and wgpu https://community.amethyst.rs/t/skepticism-about-rendy/1221/9

wgpu uses gfx-hal and parts of rendy, totally fine on DX12 on Windows https://www.reddit.com/r/rust/comments/eh7wkx/the_state_of_ggez_2020/fcj1746/

We hoped Amethyst team would help, but that didn't happen either. https://www.reddit.com/r/rust/comments/eh7wkx/the_state_of_ggez_2020/fcipapq/

Switching to rendy nearly killed this project due to the time and effort required https://community.amethyst.rs/t/skepticism-about-rendy/1221/11

This duality of APIs in gfx-hal worked to an extent. Providing safety was impossible without imposing some restrictions or overhead. In the command pool example, it’s only safe to re-use a command buffer if it’s done execution on the GPU, and the user doesn’t intent to use it. We can’t possibly know this in gfx-hal without introducing overhead… So, at the end of the day, we decided that the “typed” (user-facing) layer is still useful, it doesn’t have to be a part of gfx-hal. Thus, we removed it, recommending rendy-command as a replacement. This slimmed up gfx-hal API surface and allowed us to straighten up the terminology (no more “RawXXX” or “XxxTyped”). https://gfx-rs.github.io/2019/10/01/update.html

WebGPU and portability

One of the goals of WebGPU that differentiates it from the other libraries and APIs is "strong" portability, in a sense that it not only runs on all targeted platforms, but also the performance expectations match. Therefore, if don't see a way to consistently implement a feature on at least 2 or the 3 target platforms, in such a way that it works and using it shows a difference, we don't include it in the core API. Take sub-passes, for example, that, while you can technically implement them on Metal and DX12 by doing separate passes, they only make a difference on Vulkan mobile GPUs today, so there can't be expectation that using sub-passes makes you magically faster. Take buffer capabilities as another example: if we expose all the queries about what is supported and what not, it's easy to write an application that would work on the developer platform but then break on others, because they possibly forgot to query, or simply don't have another code path in place. Finally, things like "multiple queues" are desired for the most part, but we haven't yet figured a plan on how to expose them portably, as in - without race conditions affecting the portability of user programs. https://github.com/nannou-org/nannou/issues/374#issuecomment-533841665

Misc

Shading Language

GLSL

Found the problem - I need to become a GLSL shader expert https://www.reddit.com/r/rust_gamedev/comments/be08e2/wgpu_pipeline_question/el40lsl/

HLSL

Google and Samsung are developing HLSL compiler for Vulkan, because a large majority of game studios don't want to bother with Vulkan on Android if they cannot port their shaders. https://news.ycombinator.com/item?id=18439910

GLSL vs HLSL

My biggest concerns about using HLSL as the source are:

WSL (formerly WHLSL)

There are many Web developers using GLSL today in WebGL, so a potential browser accepting a different high level language, like HLSL, wouldn’t suit their needs well. In addition, a high-level language such as HLSL can’t be executed faithfully on every platform and graphics API that WebGPU is designed to execute on. https://webkit.org/blog/9528/webgpu-and-wsl-in-safari/

So, we decided to make the language more simple, low-level, and fast to compile, and renamed the language to Web Shading Language to match this pursuit.

CG

CG has been discontinued, and is no longer supported or actively worked on by Nvidia. Nvidia recommends that all users switch to a combination of GLSL and HLSL, or a newer library such as nvFX (on github). This is because it was too difficult to maintain feature-compatibility between GLSL and HLSL. https://gamedev.stackexchange.com/questions/4234/what-are-the-pros-and-cons-of-hlsl-vs-glsl-vs-cg/4333#4333

OpenGL

License

CC0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].