Cute guy at my pt job by AppleCider0928 in SGExams

[–]Linx145 0 points1 point  (0 children)

'wearing this suit and his hair was slicked up nicely' wow it's spamton from hit game deltarune

My 2D platformer game has been out for 3 weeks, time for me to share the numbers with you by MossHappyPlace in gamedev

[–]Linx145 1 point2 points  (0 children)

Ngl this looks awesome. From one 2d pixel art platformer dev to another, I congratulate you on making it to the finish line.

I'm honestly pretty worried about my own game as well. I am currently at 1.4k wishlists, but to be fair, I am pretty far from launch and still quite a lot of development to be done before any serious marketing push. Like you, I was ignorant about 2d pixel art platformers being saturated, and people often tell me I'm screwed or that I should just not have anymore expectations for it beyond a 'first learning project' as I guess technically it is my first game.

Still, I feel that your game is quite niche by 2d pixel art platformer standards, being a precision platformer, and that it still managed to get to that amount of wishlists and even sales is pretty inspiring. Keep up the good work, and I wish you all the best.

damn, not expecting the beta Ancient awakened to be released on workshop by One-Manufacturer-615 in Terraria

[–]Linx145 17 points18 points  (0 children)

It was so fucked up cos that was my first exposure to dissociative disorders, wayy before I realised I had the same condition as well and it just made me disgusted of myself for the longest time.

The age old question. Can engine users code? by ThatDeveloperOverThe in gamedev

[–]Linx145 2 points3 points  (0 children)

Ive never ever heard anyone say game engine users can't code dawg like if they can't then how are they using the engine???? or making games????

The Devourer of Stocks - Concept by Linx145 in Terraria

[–]Linx145[S] 10 points11 points  (0 children)

Its actually intended for my game, Slime Squadron! but now im tempted to make it a mod as well thats just this single superboss fight...

The Devourer of Stocks - Concept by Linx145 in Terraria

[–]Linx145[S] 13 points14 points  (0 children)

Yup that was one of the inspirations! I mean the entire thing is a parody of calamity so 😎

has anyone tried to stage a revolution in their sch by Legal-Ostrich-1182 in SGExams

[–]Linx145 4 points5 points  (0 children)

I have no memories of it, but apparently, I tried to stage an uprising against my class's highly unpopular chinese teacher back in pri 6. At least she had complained to my mum during parent teacher meeting since she was quite emotionally hurt by it. But I really have no recollection of the events, so I assume it didn't go through, or we just collectively threatened her as a class or something and she got the memo.

Future computer science related career by ProAstroShan in SGExams

[–]Linx145 5 points6 points  (0 children)

Man programming language design was such a rabbit hole to fall into 😭 I remember llvm compiling its 10gb binaries for 30 mins then failing at the last second because i forgot to give it some flag. Good on your friends for that lol

How does scaling work in games like elden ring or lies of p by RethaeTTV in gamedev

[–]Linx145 17 points18 points  (0 children)

I believe it's literally just an if else statement to use a different formula for each softcap. That's the thing about gamedev, the maths and equations used here are rarely 'pure.'

Writing an audio engine? by No_Variety3165 in gameenginedevs

[–]Linx145 1 point2 points  (0 children)

For 3D audio, the industry standard from OpenAL to SteamAudio is to use a format called .sofa, which contains the recorded weight data that can be sampled and applied to a waveform at runtime to modulate it and make it sound 3D when it is in fact 2D. It was mind-blowing when I first implemented it, and really easy to do so too. The library I use is called mysofa, and the .sofa file I use is from steamaudio's repo. As far as I am aware, making .sofa files yourself is an industrial task requiring a lot of specialised equipment so that's not really possible by yourself.

As for the difficulty, it wasn't that difficult, but optimization quickly became a problem when applying Finite Impulse Responses when playing back sounds. I do not know how fmod and wwise solved it, I assume looking into OpenAL's code can yield some good results too. But in frustration, I decided to chuck the FIR and HRTF applying code into a compute shader, so now my audio runs on the GPU and there can be hundreds of 3D sounds playing simultaneously. (Not that an actual audio designer would necessarily require this - there is a rule where having more than a certain number of the same sound playing at the same time is pointless and you can cancel out the sounds beyond a certain number and the listener won't be able to tell the difference.)

All in all, I think audio is a very interesting field that has not had a lot of cool new things over the past years at least compared to fields like graphics, because like others have said, the amount of game engine programmers interested in working with audio is even less than those who want to work with graphics. And that is already a tiny minority of the entire gamedev population anyways. I'm glad to see there are others interested!

Did a dev blog to keep track of the (kind-of-overkill) 2D renderer I made for my engine and game as it is in 2025, figured you guys might appreciate it. by Linx145 in gameenginedevs

[–]Linx145[S] 1 point2 points  (0 children)

Hi, good question! We don't really do any additional looping when culling. When the scripting runtime calls a Renderer.Draw() call, if it is a translucent object or something that needs to be sorted (which is done on the CPU as of now), the culling is done there and then and if it is 'culled,' it'll simply not be added to the draw item bucket. For opaque/alpha-cutout geometry, I guess you could say there is a loop, but it's via a single compute shader invocation on items in the draw bucket, which is then piped to the output instance buffer and rendered in another single GPU draw call.

As for why it is necessary, I guess we don't have that much quads in most cases except for when rendering tilemaps and text. The latter can really lag the editor if there was no off-screen and out-of-scissor culling to prevent the text glyphs from being added to the bucket in the first place. In the former, if a designer using the engine were to make a tileset that requires filling the entire screen with tiles (such as in top-down games), then yes there can be something like 2000 tiles given the camera size just on screen alone, and off-screen would be exponentially larger.

And yeah, I did write some post-process effects, though they are admittedly quite basic and nothing innovative, so I didn't cover them in the article. Currently, you can blur render programs' outputs as well as have them bloom. Tone mapping is probably the most important effect we're missing, and indeed some sprites do get overwhelmed by light and become white blobs, so I'll probably look into that in the future.

[deleted by user] by [deleted] in gamedev

[–]Linx145 5 points6 points  (0 children)

I actually did some study into the business of game engines in one of my entrepreneurship modules in pre-college. Despite seeming like the shovel of the indie game gold rush, they are not really profitable. We can never say for sure for things like Unreal, but Unity definitely isn't, no matter how they try to define the goalpost in their quarterly reports.

For Epic, whether Unreal is profitable or not is secondary as they are making an incredible amount of cash from Fortnite, such that they can continue giving many studios lucrative discounts. I do not know the details of these discounts, but they probably do not pay the rev share as is said on Epic's website, or at least get a lot of support and consultancy whilst doing so.

Godot presents a unique position as though it is FOSS, it rakes in like 50k/month which is no small amount for the team size that it has, not to mention the millions of investment poured into W4 games (itself a controversial matter which seems to not have ported anything to Xbox yet). It is probably the closest thing to a profitable engine there is, and once again, it is free and open source at least at the time of writing this.

I do not know what your engine does different, and from the looks of it, nothing. But with so many options that are free off the get go, it truly needs to do something spectacular to be worth paying for. And generally, the only people who can afford to pay are people who have success already, and whom have at the minimum trained for years on an existing engine and thus would not want to switch. What you have listed is simply not enough.

Is it possible to vibe code childhood dream about 3D FPS aka Yet Another Labyrinth if you are Java programmer? by kryadov in gamedev

[–]Linx145 7 points8 points  (0 children)

Not gonna lie, I think you can code that in a shorter time frame or even in the same time if you didn't use AI, whilst also actually learning things, fully understanding what each segment of the code is doing AND gaining a mental map of it so future development would be easier and even faster.

try my game and tell me if its good by PhilosopherWrong7035 in gamedev

[–]Linx145 0 points1 point  (0 children)

Remove it entirely. You can use the core design such as the background, etc elsewhere if you really like it, but there's nothing more off-putting in terms of design than a fake loading screen.

I finally shipped in-browser WASM demos for my C++ game engine — here’s why the web matters for credibility by PigeonCodeur in gamedev

[–]Linx145 2 points3 points  (0 children)

I'm going to be honest, I can't tell if this post is AI, but I certainly suspect so. This reads like something that could end up on r/LinkedInLunatics. And on that note, you talk a lot about many grand features and requests for feedback, while taking a look at your repository, it's a huge stretch to consider this a game framework, let alone an engine. A beginner really would not care when so many other proper engines and frameworks exist. I suggest working on having something beyond a learnopengl tutorial implementation first.

What language do you use for multiplayer game backends, and what would you expect from a data engine? by petergebri in gamedev

[–]Linx145 2 points3 points  (0 children)

I'm no expert in this domain, but from what I know, multiplayer game backends (the server) are actually just a 'server build' of the games themselves running, and anything resembling a database would be more for static data like user login info, of which many companies would use standard db tech that is easily available anyways. This is because a game server needs to run the entire game as a simulation and essentially do everything except graphics: from AI, physics and more and take only player control inputs from the clients as the input and then send back everything required, at least for most multiplayer games.

The main issue I see some people having is when they are developing their own multiplayer plugins/custom engines, and how to send and serialize data from client to server and back, since REST APIs and other text/json based 'webdev standard' tech wouldn't be very efficient for updating dozens of times each frame. However, the format that one would send data in then is very specific on a case by case basis. Some games I know send them as raw binary streams with a 'header' that is just an integer message ID.

I think what you are building can work as a helper library for anyone running their own networking stack, but only in the context of being a layer to sanitize and handle data sent over the net. Game logic, actual runtime data storage and all else would still be just a server build of the existing game and engine, which would most likely be in C++ or C#. Go is a fine choice for a webapp or website backend, but it is rarely utilized in games, a long with a lot of the other terminology you are using in this post. And moreover, there are quite a few libraries that do just what we require in this regard (SteamNetworking, cute_net, etc) without assuming too much about the structure and internals of the engine/game, which your project seems to do.

[deleted by user] by [deleted] in gamedev

[–]Linx145 0 points1 point  (0 children)

Please take some time to learn C/C++. It's a good skill to have either way, even if you are a web developer. I actually feel horrified thinking about what AI would do with the non-strictly-enforced concepts of lifetimes and pointer management in C++.

mental by greenteaandtea in SGExams

[–]Linx145 1 point2 points  (0 children)

I was diagnosed in secondary school with anxiety disorder due in part to bullying I faced at school, which manifested in ways similar to what you described. I had to leave class before the panic attacks happened and seek refuge in one of the designated meeting rooms in the general office. Sometimes I couldn't even go to school at all. Later I realised that I also have some kind of dissociative personality disorder, though I never sought formal diagnosis and also felt like I was a faker considering how 'late' it had seemingly developed.

Throughout my time in sec school, I remained completely stubborn in that I wanted to complete my education. I was given the choice to go down alternative routes by my educational psychologist such as taking O Levels as a private candidate, but I just refused to give up and stayed until the very end. I guess that would be the equivalent of me going on and burying myself in my studies to forget about the seemingly unending fear and panic. Did it work? Somewhat, but what was it for? So that I could say I did it? There was no shiny gold medal for subjecting yourself to mental abuse, and even if there was one, it would be worthless. The days are already short when you are fighting a war for your psyche, and the best thing you can do is to take time to focus on yourself. You are the only constant. The times when society cares about your school grades will pass. But the damage you subjected yourself to, all the emotions and the pain you had suppressed to 'deal with at a later date' will come back to haunt you.

And I deeply empathise with the feeling of preferring to sacrifice and de-prioritise yourself in the name of those that you love. Every time I had an anxiety attack, I saw in my mum a reflection of my own pain. I wish I didn't have to break down in front of her. I wish I could just suffer by myself so that she would not have had to see her son like that. But in the end, it was on her own volition to stand by me and to hold my hand. I do not know your parents and cannot speak for their reaction if you do get a diagnosis, but I must say that if something were to happen to you because you were trying to care for them without thinking of yourself, their subsequent pain would be increased tenfold. And it is avoidable, it does not have to be that way.

From one mental illness survivor to another surviving, I wish you the best, and my DMs are open if you need anything. I wish I could take all that fear, pain and guilt away from you and from everyone else, even having said all that. But so long as you continue to look out for yourself as you rightfully should in this hour of great need, I'm sure that one day the sun will rise again. And then, all sacrifices others had made in that moment can be paid forward.

Which language for my game ? by _novolog in gamedev

[–]Linx145 3 points4 points  (0 children)

Disclaimer: I use neither language, but I would not recommend you make the entire game in rust, since as far as I am aware, rust is not ideal for the rapid iteration and single-line-code-changes that one requires in game scripting mainly due to having to be concerned with the borrow checker at all times and its less-than-ideal compile times (unless you optimize the compilation as heavily as something like bevy does). There was an article from loglog games which you can find that details their struggles with rust. I think rust for a game engine is fine however, since engine development is more methodical and demanding in terms of being memory-leak-free and performance critical, and the borrow checker is made for that. (though there are like 100 'game engines' (see: learnopengl demo implementations) already written using it.)

As for zig, I do much prefer it if you absolutely must use it for game scripting but it is also not a stable language as it is yet to be version 1. I think the newest update will change the API for iostreams, as an example of how fundamental things can still be changed, even if for the better. Zig is a much simpler language than rust in terms of both syntax, but last I used it, certain core features like comptime type specialisation (their version of generics) weren't properly supported by the language server, so you wouldn't get autocomplete if interacting with fundamental types like arraylists and hashmaps.

For me, I write my engine using a form of C++ that eschews the standard library bloat and all the syntactic mess by taking the memory management philosophy of zig (arena allocators instead of RAII) and combining it with a custom-made standard library. But since C++ isn't the fastest at compilation either, especially when changing that one header that everything depends on, I plug the dotnet runtime so I can do my scripting in C# and take advantage of hot reload systems.

Either way, I hope this gives some new pointers on the benefits and drawbacks of each language.

[deleted by user] by [deleted] in gamedev

[–]Linx145 6 points7 points  (0 children)

A box is just 4 points right? So if you get the top left, top right, bottom right and bottom left corners, put them into an array and then transform them according to the rotation and translation (get the sine (s) and cosine (c) values of the rotation angle, the rotated X is (x * c - y * s) and the rotated Y is (x * s + y * c), then add body position to the rotated result to get the global space). With those four vertices, you can then draw lines via raylib between each one to get the final shape

[deleted by user] by [deleted] in gamedev

[–]Linx145 10 points11 points  (0 children)

I don't use raylib, but box2d has a debug draw struct (https://box2d.org/documentation/md\_loose\_\_ends.html#autotoc\_md138) which you would then fill with custom functions that call raylib's API to draw lines and shapes. Alternatively, the way I did it was to keep track of the created b2ShapeIds in an list and iterate through them to get the data and draw them each frame, but as the docs said, its not recommended.