1. 49

Chucklefish are the developers behind the games Starbound and Stardew Valley.


  2. 5

    Cool! I did want to say that the constant “I want to talk about this but can’t because NDA” was really annoying.

    Like, all the main consoles are x64. They’re probably all running a derivative of Windows or Linux. They’re all using AMD graphics chips. NDAs are just asinine in that (and most other) environments.

    1. 13

      They definitely show that they are annoyed by it themselves. I’ve been researching the whole thing with bringing Rust to consoles for a while (out of curiosity), without access to dev kits and signing an NDA, and basically, the whole NDA thing is really pervasive.

      Yes, in general, these things run modified stock operating systems.

      But they add on top of that. What they add on top? Good question. For the general public, it’s a matter of research. For example, the PS4 kernel adds a wide range of syscalls: http://www.psdevwiki.com/ps4/Syscalls On top comes a whole SDK. This is partially standard software, too, the PS4 toolchain is based on clang/LLVM, the compiler components are even in their mainline. So, from the perspective of rustc, this is indeed not much of an issue.

      Porting and supporting Rust on consoles is both easy and hard: you basically “just” have to port stdlib over and compile for the given architecture. Done. The problem is that any specifics of that target and especially all APIs are under NDA. And that’s all the interesting parts to talk about. Also, it means that when they refer to using a modified libstd or modified libraries, these modifications will definitely relate to these NDA’d components, which makes almost all public discussion impossible.

      These NDAs are absolutely annoying, but people really keep to them, because the costs for dev-kits are high and as far as I understand, breaking them may bar you from releasing for the platform.

      The hardware is not of an issue, to my understanding.

      1. 3

        Agreed–my point is that this sort of thing is a blight on our industry. And thanks for the additional insight on getting things to run on consoles. Is it really just as “easy” as porting of the stdlib?

        1. 5

          Agreed–my point is that this sort of thing is a blight on our industry.

          It is. There not much more to say about that. And it makes it really hard for the Rust project to support that industry, because it would require opting into those rules.

          Without having tried it myself (no devkit ;)), it doesn’t seem to hard. There’s always been someone claiming to having rustc target consoles as an idle pastime. It rarely goes somewhere.

          Serious game programmers getting involved in Rust has no great history, because of mainly two problems:

          a) They cannot release the code due to the restrictions layed out above.

          b) They are contractually barred from contributing to open source, including even speaking to us.

          Both are not theory, but happened. It is a trashfire for FOSS people, I really cannot find anything good about it.

          The only way I currently see is someone picking up the issue and getting started as a middleware vendor for all major platforms, basically maintaining a fork of rustc. Our license allows it.

          Is it really just as “easy” as porting of the stdlib?

          stdlib is the only thing that has notable dependence on “the outside world” (through libc), so porting the Rust libraries to a pretty standard target is not too hard.

          The Rust ecosystems reliance on cargo and FOSS libraries is a different thing, they may or may not run on the target and it isn’t very feasible to contribute patches back.

      2. 3

        I thought I heard something about the Switch running a BSD variant.

        1. 4

          Switch isn’t FreeBSD after all, it’s a port of Nintendo’s custom OS from the 3DS to the Switch. FreeBSD code is likely just drivers or networking stack related.

          1. 2

            Ah interesting, thank you.

            I recently got a Switch and have been meaning to learn more about this stuff…

          2. 2

            Good catch! Switch looks to be Nvidia graphics, Arm CPU, and FreeBSD+mods OS. PS4 is based on FreeBSD 9.

            Still, nothing exotic like the Cell stuff back in the day.

            1. 3

              Yeah totally, I wasn’t trying to imply you’re wrong, just an interesting related factoid. :)