The langage for the next 40 years of engine dev

This page summarizes the projects mentioned and recommended in the original post on /r/gameenginedevs

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • Nim

    Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).

  • Did you look at Free Pascal or Nim? Those two are currently at the top of my list of languages to explore (not the list of languages I can tell for sure that I think are great, but two languages I am looking at now). Both compile to native-code, have very good cross-platform support, no garbage collectors, and would probably work well for games. I believe both have bindings for Raylib (not 100% sure how complete either are).

  • gdnative

    Rust bindings for Godot 3

  • Curious why you think Rust would not work with a node-system like in Godot since there are already Rust-bindings for Godot. And while I can think of several reasons for not using Rust (I don't use it myself) I never thought the lack of inheritance would be an issue at all.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • SharpLab

    .NET language playground

  • Modern C# provides amazing tools for avoiding the GC (in the engine-critical sections). The recent introduction of Span lets you pass buffers around without copying them. As a bonus, these spans can reference either managed memory (C# allocated array) or unmanaged memory (some pointer and length allocated natively). I am able to have zero allocations per frame. From there, you can use tools like sharplab.io to inspect the exact ASM output of a particular method. C# also recently added amazing support for SIMD operations, and many of the standard collections/algorithms leverage SIMD.

  • rust-orphan-rules

    An unofficial, experimental place for documenting and gathering feedback on the design problems around Rust's orphan rules

  • Additionally there are other issues with rust currently. Compile time code (ala constexpr) is not up to par with C++20 (not really close). The const generic aren't as powerful as C++20 which added non primitive non type template parameters (though with you stuck with C++14, it actually is significantly better than what you have, again, if you're going to use C++, just use 20). Generics accepting closures is a bit more of an ordeal in rust, compared to C++. Also C++'s Duck Typed templates allow for some uncharacteristically strong typing compared to what is expressible in Rust generics currently. Now, duck typed templates do have major downsides, for example the entire feature of concepts is completely irrelevant in rust, but required for sane DTT type bounds, but they also have major upsides. Rust currently doesn't have "negative trait bounds", basically "This objected does not implement this trait, or std::enable_if> or the equivalent concepts implementation. Rust also doesn't have trait specializations, basically template specialization. Do note all features I've talked about to this point have nightly options, they just are at various stages of being stable/complete. Another issue is the orphan rule, though this is kind of a problem in C++ too in some respects, and that's unlikely to change drastically, since there are legitimate reasons for it's existence. For a lot of code none of these things are big deals, others they are, which is why you find inconsistent feed back on these issues.

  • SwiftVVD

    Swift 3D Game Engine for Windows, macOS, iOS, Linux

  • I agree that Swift is very useful for game engine development. I'm currently building a game engine from scratch as a personal hobby project, and I'm also developing a declarative UI framework like SwiftUI, which I think is very powerful in Swift. Take a look if you are interested: https://github.com/Hongtae/SwiftVVD However, this is in a very early state and is not yet usable. sorry for my bad english.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts