stosb

wearer of programming socks

  • she/her

mid 20s | bisexual | programmer | european


profile pic: a picrew by Shirazu Yomi
picrew.me/en/image_maker/207297
i use arch btw
xenia the linux fox -> πŸ¦ŠπŸ³οΈβ€βš§οΈ
the moon
πŸŒ™
You must log in to comment.

in reply to @brlka's post:

I hate dynamic typing (bug farm) and I hate garbage collectors (performance hell), so that rules out the vast majority of languages.

I prefer using C+ (i.e. a simplified form of C++), HLSL and ISPC (both C derivatives of course). C+ sure ain't perfect - not by a long shot - but I've used it long enough I know its quirks and can avoid the nastier ones.

What I'm actually using in my day job is C#, because we're a Unity shop. It's like C++ with a garbage collector, so that's bad, BUT if you're careful you can avoid using the GC, which I mostly do. Despite that, the GC is still a gigantic daily agony and the performance is atrocious unless you jump through the flaming syntactic hoops. Which we do, because we must.

For general utility programming and tools Python and Lua are pretty decent, but I would never attempt to ship anything of serious size with them.

technically i make my games in C++, but i'm not really using any C++ specific features other than interfacing with a few C++ libraries such as dear imgui. so for all intents and purposes i'm basically programming in C.

i like it because it's straightforward and non-object-oriented, it doesn't have dynamic typing or garbage collection, it gives me control over how i allocate memory, it has very fast build times and fast enough debug performance that i can simultaneously run multiple debug copies of my game on my pc at 60fps to test online multiplayer builds, it has great debugger support, and it's trivial to get it running on all of the platforms i want to release my games on.

it would be nice if it had a few more safety checks and convenience features, but other than that i'm happy with it!

i can't comment on any NDA'd platform-specific libraries. but aside from that, SoLoud (audio), dear imgui (editor UI for development builds) and tracy (profiling development builds) are the only C++ libraries that i use for developing my games and tools.

i mostly use C libraries: miniaudio, SDL/OpenGL (for non-Windows builds), and various stb libraries: stb_image, stb_image_write, stb_rect_pack, stb_truetype and stb_vorbis. my windows builds just use d3d11, xinput/directinput and regular win32 code, instead of using an all-in-one platform library.

I was using gdscript until a bug made me unable to work on my game for 7 months and counting

Typically I use C++ hosting Lua.

C++: almost best possible performance (only behind assembly and maybe really gross C), good cross-platform compatibility (if done properly), every library can be used, threading fully supported; almost no safety mechanisms.

Lua: excellent performance, highly flexible, cross-platform, very safe; no true threading support.

Both: mature, well-supported, widely-used languages.

Lua's standard libraries are a bit lacking, so you need to make some supplementary ones for whatever it is you're doing, but it's an excellent language in which to implement the high-level game logic, while C++ handles the low-level engine logic at high speeds. ie, Lua controls what the actors do and what gets rendered; C++ deals with processing the actual physics and rendering.

"like" is a strong word; I tend to use whatever languages that I think will get the job done.

I used to use C# with Unity and right now I'm using GDScript with Godot. I would prefer to use Haskell, but the ecosystem isn't really there for the kinds of games I want to make.

I've had the most luck with java-based languages, probably just because I've been using them for a long time. They make the most sense to me. I still fiddle around in Processing (which runs on java) when I just want to get a quick sketch out.

Currently developing in godot for the better part of 3 years though, so I've been using gdscript (which is python-based and... it's not the worst but... i miss java....).

Anything easy enough for me to understand (C#, GDscript). I don't make performance-heavy games, so I've never really needed to learn anything with more control. Between those two languages, I definitely prefer C# for its strong typing, but GDscript has its strengths.

I don't like visual programming, e.g. Blueprints. I get along with nodegraphs just fine when it comes to procedural modeling and texturing, but that doesn't translate well to something that has a logic flow.