You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/posts/survey-01/index.md
+52-43Lines changed: 52 additions & 43 deletions
Original file line number
Diff line number
Diff line change
@@ -32,117 +32,126 @@ Priorities for professionals and hobbyists are largely the same. The biggest dif
32
32
33
33
### Ecosystem maturity (114)
34
34
35
-
* 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.
35
+
>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.
36
36
37
-
* Rust is still a risky choice, compared to C++.
37
+
>Rust is still a risky choice, compared to C++.
38
38
39
-
* Still feels like a new community. There is always risk associated with that - does the language take a big swing in direction - does support drop off. I'm encouraged by the support for low level (embedded / OS ) development, which hopefully means the core feature set remains robust.
39
+
>Still feels like a new community. There is always risk associated with that - does the language take a big swing in direction - does support drop off. I'm encouraged by the support for low level (embedded / OS ) development, which hopefully means the core feature set remains robust.
40
40
41
-
* Many unfinished, unmaintained crates. Lots of churn.
41
+
>Many unfinished, unmaintained crates. Lots of churn.
42
42
43
-
* A lot of common needs are not yet available 'out of the box'.
43
+
>A lot of common needs are not yet available 'out of the box'.
44
44
45
45
### Iteration times (68)
46
46
47
-
* Compile time, no runtime reflection, updating deep dependency in the tree is hard.
47
+
>Compile time, no runtime reflection, updating deep dependency in the tree is hard.
48
48
49
-
* Iteration time is I think too big, due to compilation time, [lack of] hot-reloading tooling, etc.
49
+
>Iteration time is I think too big, due to compilation time, [lack of] hot-reloading tooling, etc.
50
50
51
-
* Iteration time (especially while prototyping). This includes both compile time but also sorting out lifetimes when I know I'll be rewriting something very soon anyway, this "frontloading" the effort of having the borrow checker run at compile time is useful for most tasks but when I want to try something quickly it can be a draining experience, in this regard GC'd languages have an advantage imo.
51
+
>Iteration time (especially while prototyping). This includes both compile time but also sorting out lifetimes when I know I'll be rewriting something very soon anyway, this "frontloading" the effort of having the borrow checker run at compile time is useful for most tasks but when I want to try something quickly it can be a draining experience, in this regard GC'd languages have an advantage imo.
52
52
53
-
* Prototyping seems not as easy in Rust due to "fighting the compiler"
53
+
>Prototyping seems not as easy in Rust due to "fighting the compiler"
54
54
55
55
### Documentation (43)
56
56
57
-
* Not enough documentation to get past beginner stage
57
+
>Not enough documentation to get past beginner stage
58
58
59
-
* Lacking examples for gamedev libs.
59
+
>Lacking examples for gamedev libs.
60
60
61
-
* Documentation is usually either high level or examples but rarely both. Very few real world examples to draw from.
61
+
>Documentation is usually either high level or examples but rarely both. Very few real world examples to draw from.
62
62
63
63
### Lack of full-featured engines (35)
64
64
65
-
* 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.
65
+
>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.
66
66
67
-
* Missing graphical editors, frictionless prototyping of games
67
+
>Missing graphical editors, frictionless prototyping of games
68
68
69
69
70
70
### Rust learning curve / onboarding to a niche language (29)
71
71
72
-
* 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.
72
+
>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.
73
73
74
-
* 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.
74
+
>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.
75
75
76
-
* 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.
76
+
>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.
77
77
78
78
### IDE/RLS story (28)
79
79
80
80
Tooling around IDE is limited compared to Visual Studio with C++ or C#.´
81
81
82
-
* Definitely lack of proper IDE (like out of the box Cargo integration and working debugger - yeah, I tested Visual Studio Code and it's very slow, suggestions are not great, fastest way to run, check and build is to use terminal - not IDE) - I would say that something like QT Creator or Visual Studio would be great
82
+
>Definitely lack of proper IDE (like out of the box Cargo integration and working debugger - yeah, I tested Visual Studio Code and it's very slow, suggestions are not great, fastest way to run, check and build is to use terminal - not IDE) - I would say that something like QT Creator or Visual Studio would be great
83
83
84
-
* Regarding debugging, the industry standard is (or that I'm aware of) Visual Studio, for its very good IDE and tools, also, a lot of users are very used to that kind of tools and looks like Rust is missing some of them.
84
+
>Regarding debugging, the industry standard is (or that I'm aware of) Visual Studio, for its very good IDE and tools, also, a lot of users are very used to that kind of tools and looks like Rust is missing some of them.
85
85
86
-
* rust-analyzer is still very incomplete, but it's the only thing that works for me
86
+
>rust-analyzer is still very incomplete, but it's the only thing that works for me
87
87
88
-
* Poor IDE and debugging support in IDE. Mainly visual studio.
88
+
>Poor IDE and debugging support in IDE. Mainly visual studio.
89
89
90
-
* Can't debug it properly, hashmap (for example) is absolutely not debuggable. Not sure how it works inside (instead of C++).
90
+
>Can't debug it properly, hashmap (for example) is absolutely not debuggable. Not sure how it works inside (instead of C++).
91
91
92
-
- debug mode way too slow, often need to set opt-level=1 or 2 for dev profile
92
+
>debug mode way too slow, often need to set opt-level=1 or 2 for dev profile
93
93
94
94
### GUI tooling (23)
95
95
96
-
* As a tools developer, a major negative point is the current absence of a reliable GUI framework (we use WPF + C# with Visual Studio).
96
+
>As a tools developer, a major negative point is the current absence of a reliable GUI framework (we use WPF + C# with Visual Studio).
97
97
98
98
### Game consoles (13)
99
99
100
-
* No first party support for console development makes Rust a tough sell for a lot of professional work.
100
+
>No first party support for console development makes Rust a tough sell for a lot of professional work.
101
101
102
-
* Rust is not officially supported on console by Sony or Microsoft.
102
+
>Rust is not officially supported on console by Sony or Microsoft.
103
103
104
-
* 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.
104
+
>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.
105
105
106
106
### Web/mobile support (14)
107
107
108
108
### Allocators (10)
109
109
110
110
### C++ interop (7)
111
111
112
-
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.
112
+
> 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.
113
113
114
114
Testing and too much things linked to C.
115
115
116
-
* Also, no professional game engine (UE4, Unity) integrates with Rust yet.
116
+
>Also, no professional game engine (UE4, Unity) integrates with Rust yet.
117
117
118
-
* Unknown compatibility
118
+
>Unknown compatibility
119
119
120
-
- 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.
120
+
>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.
121
121
122
122
123
123
# What about Rust as a language and ecosystem presents the biggest POSITIVES for you as a game developer right now?
124
124
125
125
### Safety (100)
126
-
* Strong type system allows for easily enforcing some performance and safety best practices
127
-
* Multithreading safety
128
-
* Elimination of data races greatly improves reliability for multithreaded code.
129
-
* Safe concurrency
126
+
> Strong type system allows for easily enforcing some performance and safety best practices
127
+
128
+
> Multithreading safety
129
+
130
+
> Elimination of data races greatly improves reliability for multithreaded code.
131
+
132
+
> Safe concurrency
130
133
131
134
### Performance (89)
132
-
* Great performance and compile time verifications
133
-
* Performance and reliability
134
-
* Parallelism
135
+
136
+
> Great performance and compile time verifications
137
+
138
+
> Performance and reliability
139
+
140
+
> Parallelism
135
141
136
142
### Community (69)
137
-
* the ecosystem is full of passionate and smart people who take quality software very seriously
138
-
* a really welcoming community with great goals and courage to pursue them
139
-
* Collective community effort to "build the right thing" and "build the thing right"
143
+
144
+
> the ecosystem is full of passionate and smart people who take quality software very seriously
145
+
146
+
> a really welcoming community with great goals and courage to pursue them
147
+
148
+
> Collective community effort to "build the right thing" and "build the thing right"
140
149
141
150
### Cargo (57)
142
-
* being able to pull down libraries piecemeal and have them build with your stuff immediately is great
151
+
>being able to pull down libraries piecemeal and have them build with your stuff immediately is great
143
152
144
153
### Ecosystem (50)
145
-
* A mature Rust ecosystem will (hopefully!) have a lower bar for entry than a mature C++ ecosystem, without giving up performance.
154
+
>A mature Rust ecosystem will (hopefully!) have a lower bar for entry than a mature C++ ecosystem, without giving up performance.
0 commit comments