windows-rs
antfarm | windows-rs | |
---|---|---|
3 | 98 | |
3 | 9,902 | |
- | 2.5% | |
2.2 | 7.7 | |
almost 1 year ago | 1 day ago | |
TypeScript | Rust | |
- | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
antfarm
-
3 years of fulltime Rust game development, and why we're leaving Rust behind
I've experienced a lot of these concerns while building https://github.com/MeoMix/symbiants
I have a simple question that maybe someone smarter than me can answer confidently:
If I want to build something akin to Dwarf Fortress (in terms of simulation complexity) as a browser-first experience - what stack should I choose?
Originally, I prototyped something out using React, PixiJS, and ReactPixi (https://github.com/MeoMix/antfarm). The two main issues I ran into were the performance of React's reconciler processing tens of thousands of entities when most weren't changing (despite heavy memoization) and GC lurching due to excess object allocations. My takeaway was that if I wanted to continue writing in JS/TS that I would need to write non-idiomatic code to avoid excess allocations and abandon React. This approach would result in me effectively creating my own engine to manage state.
I decided to not go that direction. I chose Rust because no GC is a language feature (especially good since GCs in WASM are heavy) and I chose Bevy because it seemed like a fairly structured way to mutate a large amount of code.
Progress has been slow for a lot of the reasons listed in this article. I've written a lot of this off to WASM being a new frontier for game dev and rationalized it by noting there's not a lot of complex simulation games running in browser (that I'm aware of). It's not clear to me if that's actually true, though.
-
Ask HN: Good resources for architecting simulation games?
I recently made an attempt at building a simulation game. I found it challenging even though I'm a seasoned software developer. I was finding that my experience in building out web apps, dashboards, and crud stacks didn't immediately lend itself to architecting a game properly. It feels like everything is business logic and it has been tough to see ways to tease out and modularize concepts. I don't know if I am making good trade-offs w.r.t performance and immutability. I find myself copying an entire "world" structure with every loop in an attempt to represent the world immutably, but I also seem to need to process changes serially as entities interact with one another inside the world. It doesn't matter that the world is immutable, I can't easily parallelize the simulation. Perhaps immutability is only making things harder, then?
I'm not too concerned about graphics or 3D math. I'm working in a 2D space with the most amateur of graphics. I'm interested in having some looming trade-offs pointed out to me so that I can make decisions with my architecture to best receive those trade-offs. I'm interested in design patterns that allow me to modularly enrich the complexity of my simulation.
If you're curious, https://github.com/MeoMix/antfarm/blob/main/src/util.ts Here is a file that became quite the dumping ground. I am not proud of this code. I had intended to tease out some utility methods which take a world and return a cloned and updated world. It's easy enough to separate out view concepts, and it's easy enough to separate out constructors, but all of the "interesting" simulation logic found its way to this dumping ground.
-
Hi! I'm building a virtual ant farm. This version is so pre-alpha it shouldn't even be live, but, in the interest of shipping first and asking questions later... it is! So, check it out.
open source! https://github.com/MeoMix/antfarm
windows-rs
-
3 years of fulltime Rust game development, and why we're leaving Rust behind
I'd say Rust does have that big ticket ecosystem push. Microsoft has been embracing Rust lately, with things like official Windows bindings [1].
The bigger problem is just inertia: large game engines are enormous.
[1]: https://github.com/microsoft/windows-rs
-
Ask HN: What is the best way to build a desktop app in Windows in 2023?
It's a shame that, unlike with Win32, using WinUI places pretty harsh restrictions on which programming languages and environments you can use. Only C# and C++ are supported, the latter only with Microsoft compilers. For everything else, including Rust[1], Python and MinGW C/C++, there is no answer for OP's question, and the effect of this on the visual consistency of the Windows desktop is obvious - there is none. Every third-party app uses a different toolkit with a different look and feel, because the library providing the standard look and feel simply isn't available to the majority of developers.
[1]: https://github.com/microsoft/windows-rs/pull/1836
-
Good rust book for the 1st time programmer with no prior programming experience?
[0] https://github.com/microsoft/windows-rs
-
What in Rust is equivalent to C++ DLLs (shared libraries), or what do I need to do to support extensions in my app?
On Windows you'd need to call the LoadLibraryEx method. You'd also need a crate to call Win32 functions, I suggest windows-rs.
-
Microsoft is to enable Rust use for Windows 11 kernel
windows-rs, Microsoft's crate wrapping the Windows API, already includes the WDK, the special sdk for creating kernel code.
-
Which GUI toolkit for Rust today.. few questions...
On windows, I'll probably use https://github.com/gabdube/native-windows-gui or https://github.com/microsoft/windows-rs both of them seem pretty solid.
-
Which crate for listing / moving Windows 11 windows ?
*nod* It's an official Microsoft thing generated from official Microsoft API definition files. (The repo is at microsoft/windows-rs on GitHub.)
-
Kernel Headers for Windows could soon make it into windows-rs
Microsoft offers official "bindings" to Win32 APIs through win32metadata. However, until recently, it did not include metadata for kernel-level functions or WDK. In early 2021, an issue was raised through windows-rs regarding this limitation, but progress was slow until now. Microsoft has finally released official metadata for WDK, which can be found on the wdkmetadata repository. The latest comment on the issue thread can be found here:
-
Is the Rust ecosystem capable of making a cross-platform mobile game with p2p Bluetooth yet?
Is something wrong with https://github.com/deviceplug/btleplug or you haven't found it? You could also use bindings to platform libraries like https://github.com/microsoft/windows-rs and https://github.com/rust-mobile/ndk if btleplug doesn't have something fundamental to you.
What are some alternatives?
winapi-rs - Rust bindings to Windows API
Cargo - The Rust package manager
fltk-rs - Rust bindings for the FLTK GUI library.
Slint - Slint is a toolkit to efficiently develop fluid graphical user interfaces for any display: embedded devices and desktop applications. We support multiple programming languages, such as Rust, C++ or JavaScript. [Moved to: https://github.com/slint-ui/slint]
slint - Slint is a declarative GUI toolkit to build native user interfaces for Rust, C++, or JavaScript apps.
maven-mvnd - Apache Maven Daemon
Rustlings - :crab: Small exercises to get you used to reading and writing Rust code!
intellij-rust - Rust plugin for the IntelliJ Platform
Bitwarden - The core infrastructure backend (API, database, Docker, etc).
Windows Terminal - The new Windows Terminal and the original Windows console host, all in the same place!
PowerShell - PowerShell for every system!
css-minify - Rust driven css minifier