Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 6543783

Browse filesBrowse files
committed
Final draft
1 parent 9111c27 commit 6543783
Copy full SHA for 6543783

File tree

Expand file treeCollapse file tree

3 files changed

+47
-73
lines changed
Filter options
Expand file treeCollapse file tree

3 files changed

+47
-73
lines changed

‎content/posts/survey-01/.DS_Store

Copy file name to clipboard
6 KB
Binary file not shown.

‎content/posts/survey-01/index.md

Copy file name to clipboardExpand all lines: content/posts/survey-01/index.md
+47-73Lines changed: 47 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,19 @@ title = "Rust Game Development - Ecosystem Survey"
33
draft = true
44
+++
55

6-
In August last year, we conducted a survey for the Rust gamedev ecosystem. After an unfortunate delay, we can finally present the results. We received a whopping 403 responses!
7-
8-
## Hobbyist or developer?
6+
In August last year, we conducted a survey for the Rust gamedev ecosystem. After an unfortunate delay, we can finally present the results. We received a whopping 403 responses! This trove of valuable feedback will inform the WG's roadmap for 2020.
97

8+
# Hobbyist or developer?
109
![Respondents identifying as professional or hobbyist](hobbyist-or-professional.png)
10+
Out of the 400 respondents, 3/4 identified as a _Hobbyist_. It should also be noted that a significant portion of the self-identified _Professionals_ are more accurately described as "aspiring professional" undertaking their first game development venture. That still amounts to a large amount of commercial interest in Rust game development all the same!
1111

12-
## Are you using Rust for gamedev?
12+
# Are you using Rust for gamedev?
1313
![Respondents using Rust in game development](using-rust.png)
14+
Among the Professionals only 1/4 said they are currently using Rust in games. That means the 200 respondents currently using Rust for gamedev are mostly hobbyists. No surprise there, as most professionals can't bear the risk of being an early adopter. Big shoutout to all the hobbyists who are pushing the status quo, and kudos to the handful of studios that are using Rust in production long before most of their industry peers have even caught the scent.
15+
16+
---
1417

15-
For the free-form answers that follow, a basic sentiment analysis was used to distill 400 replies into digestible form. The "III" signs underneath a heading indicate *roughly* the number of times that topic came up. Think of it as the **signal strength** of a given topic.
18+
_For the free-form answers that follow, a basic eyeballs&hands sentiment analysis was used to distill 400 replies into digestible form. The (#) number next to a heading indicate roughly the number of times that topic came up. Think of it as the **signal strength** of a given topic._
1619

1720
## What about Rust as a language and ecosystem presents the biggest NEGATIVES for you as a game developer right now?
1821

@@ -27,8 +30,7 @@ Priorities for professionals and hobbyists are largely the same. The biggest dif
2730
- Professionals care much more about C++ interop
2831

2932

30-
### Ecosystem maturity
31-
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
33+
### Ecosystem maturity (114)
3234

3335
* From playing in the space I know it's possible to make games using Rust. However in the ecosystem my biggest negatives is the [lack of] case studies and demonstrations of it working.
3436

@@ -40,8 +42,7 @@ IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
4042

4143
* A lot of common needs are not yet available 'out of the box'.
4244

43-
### Iteration times
44-
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
45+
### Iteration times (68)
4546

4647
* Compile time, no runtime reflection, updating deep dependency in the tree is hard.
4748

@@ -51,34 +52,30 @@ IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
5152

5253
* Prototyping seems not as easy in Rust due to "fighting the compiler"
5354

54-
### Documentation
55-
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
55+
### Documentation (43)
5656

5757
* Not enough documentation to get past beginner stage
5858

5959
* Lacking examples for gamedev libs.
6060

6161
* Documentation is usually either high level or examples but rarely both. Very few real world examples to draw from.
6262

63-
### Lack of full-featured engines
64-
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
63+
### Lack of full-featured engines (35)
6564

6665
* Lack of a data-and-script based engine like Unreal Engine or Unity means even small projects end up feeling very bring-your-own-engine.
6766

6867
* Missing graphical editors, frictionless prototyping of games
6968

7069

71-
### Rust learning curve / onboarding to a niche language
72-
IIIIIIIIIIIIIIIIIIIIIIIIIIIII
70+
### Rust learning curve / onboarding to a niche language (29)
7371

7472
* The language has a higher upfront cognitive load than any other mainstream language I know of, mostly due to the borrow checker. It's very hard to hack through stuff and get away with it, which makes it a particularly hard sell for game prototypes.
7573

7674
* I know that it is a less common language to use so as a company I will have to have my staff learn Rust before they can start.
7775

7876
* Rust could be tricky to hire for, and hiring someone who doesn't know Rust to work in Rust will come with a ramp-up period.
7977

80-
### IDE/RLS story
81-
IIIIIIIIIIIIIIIIIIIIIIIIIIII
78+
### IDE/RLS story (28)
8279

8380
Tooling around IDE is limited compared to Visual Studio with C++ or C#.´
8481

@@ -94,22 +91,23 @@ Tooling around IDE is limited compared to Visual Studio with C++ or C#.´
9491

9592
- debug mode way too slow, often need to set opt-level=1 or 2 for dev profile
9693

97-
### GUI tooling
98-
IIIIIIIIIIIIIIIIIIIIIII
94+
### GUI tooling (23)
9995

10096
* As a tools developer, a major negative point is the current absence of a reliable GUI framework (we use WPF + C# with Visual Studio).
10197

102-
### Game consoles
103-
IIIIIIIIIIIII
98+
### Game consoles (13)
10499

105100
* No first party support for console development makes Rust a tough sell for a lot of professional work.
106101

107102
* Rust is not officially supported on console by Sony or Microsoft.
108103

109104
* Rust can't be seriously considered yet, because it does not have support from the PS4 SDK. Although there are other considerations (studio culture, integration with existing systems, etc.), official support from Sony is a requirement before Rust could be used in a PS4 game.
110105

111-
### C++ interop
112-
IIIIIII
106+
### Web/mobile support (14)
107+
108+
### Allocators (10)
109+
110+
### C++ interop (7)
113111

114112
Our code, and any middleware/engine that we might license, is in C++. Using Rust and C++ together is painful, and rewriting the existing tech to be purely Rust would be very expensive.
115113

@@ -121,56 +119,42 @@ Testing and too much things linked to C.
121119

122120
- Lack of a straightforward path to make rust work easily with C++ in both directions. The only trustable way I see now is through manual C wrappers, which is error-prone and time consuming.
123121

124-
### Web/mobile support
125-
IIIIIIIIIIIIII
126-
127-
### Allocators
128-
IIIIIIIIII
129-
130122

131123
# What about Rust as a language and ecosystem presents the biggest POSITIVES for you as a game developer right now?
132124

133-
### Safety
134-
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
125+
### Safety (100)
135126
* Strong type system allows for easily enforcing some performance and safety best practices
136127
* Multithreading safety
137128
* Elimination of data races greatly improves reliability for multithreaded code.
138129
* Safe concurrency
139130

140-
### Performance
141-
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
131+
### Performance (89)
142132
* Great performance and compile time verifications
143133
* Performance and reliability
144134
* Parallelism
145135

146-
### Community
147-
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
136+
### Community (69)
148137
* the ecosystem is full of passionate and smart people who take quality software very seriously
149138
* a really welcoming community with great goals and courage to pursue them
150139
* Collective community effort to "build the right thing" and "build the thing right"
151140

152-
### Cargo
153-
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
141+
### Cargo (57)
154142
* being able to pull down libraries piecemeal and have them build with your stuff immediately is great
155143

156-
### Ecosystem
157-
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
144+
### Ecosystem (50)
158145
* A mature Rust ecosystem will (hopefully!) have a lower bar for entry than a mature C++ ecosystem, without giving up performance.
159146

160-
### WASM (web) support
161-
IIIIIIIIIIIIIIIIIIII
147+
### WASM (web) support (20)
162148

163-
### No garbage collection
164-
IIIIIIII
149+
### No garbage collection (8)
165150

166-
### ECS; data-driven; data-oriented
167-
IIIIIIII
151+
### ECS; data-driven; data-oriented (8)
168152

169-
### Cross platform
170-
IIIII
153+
### Cross platform (5)
171154

172-
### C interop
173-
III
155+
### C interop (3)
156+
157+
## Selected quotes
174158

175159
> The language has a higher upfront cognitive load than any other mainstream language. Which means that on an established, bigger project (maybe with a team behind) the productivity is amazing compared to C++! It's much easier to express strong & safe interfaces that make bugs just harder to introduce.
176160
It really shines in network code that needs to be 100% safe and resist bad actors! My current game server code has 0 unwraps/panics/expects and so I just *know* it can't crash... I wish I could have that feeling in C++.
@@ -197,8 +181,7 @@ Unfortunately, knowing the management culture in the gamedev industry, Rust has
197181

198182
## What do you think should be the game-dev working group's priorities for the next 3-6 months?
199183

200-
### Documentation
201-
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
184+
### Documentation (107)
202185

203186
- better onboarding to rust gamedev
204187
- Better explanation of best practices
@@ -212,8 +195,7 @@ IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
212195
- How to do ECS
213196
- More documentation for foundational libraries
214197

215-
### Cross-platform support
216-
IIIIIIIIIIIIIIIIIIIIIiiIIIiIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
198+
### Cross-platform support (59)
217199

218200
- Lobby for Rust adoption on next-gen consoles.
219201
- Clearer information about console support.
@@ -225,8 +207,7 @@ IIIIIIIIIIIIIIIIIIIIIiiIIIiIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
225207
- Cross-compiling
226208
- XR (AR/VR)
227209

228-
### Ecosystem promotion & coordination
229-
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIiIIIIIIIIIIIIIII
210+
### Ecosystem promotion & coordination (51)
230211

231212
- Develop contacts within the industry so that the WG can be a liaison between industry and OSS developers. By inviting and involving industry, the ecosystem can grow and potentially receive support (in the form of PRs, open sourcing existing tools, or financial support for OSS developers.)
232213
- Encourage & facilitate collaboration on existing tools.
@@ -240,21 +221,18 @@ IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIiIIIIIIIIIIIIIII
240221
- Identify in-progress issues, and propose new issues, for the Rust language, that are relevant to game development. (For example, debug Rust is very slow, so we need good ways to control what is and isn't optimized.)
241222
- Seek opportunities to address cross-cutting concerns where possible. The recent investigation into raw-window-handle and evaluation of if we can/should converge on a math library are both good examples.
242223

243-
### First-grade game engine/framework
244-
IIIIiiiiIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
224+
### First-grade game engine/framework (46)
245225

246226
- Simple 2D game engine
247227
- Basic editor workflow
248228
- An SDL-like
249229
- A Unity/Unreal competitor
250230

251-
### Graphics libraries
252-
IIIiiIIIIIIIIIIiIIIIIIIiIiIIIIIII
231+
### Graphics libraries (33)
253232

254233
- Improve accessibility of graphics programming
255234

256-
### Foundational libraries
257-
IIiIIIIIIIIIIIIIIIiIIIIIIII
235+
### Foundational libraries (27)
258236

259237
- UI libraries
260238
- Windowing
@@ -263,31 +241,27 @@ IIiIIIIIIIIIIIIIIIiIIIIIIII
263241
- Collection of “Standard crates” with some form of WG support
264242
- Push for stabilisation
265243

266-
### Faster iteration times
267-
IIIIIIIIIIIIIIIII
244+
### Faster iteration times (17)
268245

269246
- Hot code reloading
270247
- Scripting
271248
- Faster compile times
272249
- More libraries like Processing
273250

274251

275-
### Integration with existing toolchains
276-
IIIIIIIIIIIIII
252+
### Integration with existing toolchains (14)
277253

278254
- C/C++
279255
- Xcode, Android studio, Visual studio, Blender
280256
- Unity/Unreal/Godot
281257

282-
### Custom allocation story
283-
IIIIIIIIII
258+
### Custom allocation story (10)
284259

285-
### Debugging support and IDE integration
286-
IIIII
260+
### Debugging support and IDE integration (5)
287261

288-
### Interoperability between libraries
289-
IIIII
262+
### Interoperability between libraries (5)
290263

291264
## Can you name some libraries you are thankful for or take special interest in?
292-
293-
[graphic pending]
265+
Just for fun, we asked respondents to name libraries or projects they were thankful for. In the 6 months that have passed since this survey went out there's been quite a few newcomers on the rise that would probably show more prominently here if we asked again today. Rest assured there will be more surveys.
266+
![Shoutouts to ecosystem projects](survey-thanks.png)
267+
_Thanks so much to the survey respondents and all the people out there working tirelessly make Rust a first-tier language and ecosystem for game development._
143 KB
Loading

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.