HNHacker News
TopNewBestAskShowJobs

superrad

107 karma · joined May 16, 2010

submissionscomments
superrad··on Kaiju – General purpose 3D/2D game engine in Go and Vulkan with built in editor
I think its really just the trappings of game development being full of tribal knowledge.

The tutorial probably should have instructed you create box colliders for walls (giving a greater area for the physics engine to catch collisions) rather than a simple plane/quad which would lead to the exact issues you had, or at least explained why a box works better than a plane.

I guess you have to balance the necessary information with overload in your tutorial or at least have an aside or additional reading that really helps understand many of these internalized understandings.

superrad··on Kaiju – General purpose 3D/2D game engine in Go and Vulkan with built in editor
That's not a bug just an inherent problem with using very thin colliders with a discrete collision detection system. It's not a Unity problem and Unity allows you to configure continuous collision detection to prevent tunneling https://docs.unity3d.com/6000.3/Documentation/Manual/Continu...

Game development is full of domain knowledge like this because games need to make compromises ensure completing simulation updates at no lower than 30Hz.

superrad··on Migrating away from Rust
For a while now Unity has an incremental garbage collector where you pay a small amount of time per frame instead of introducing large pauses every time the GC kicks in.

Even without the incremental GC it's manageable and it's just part of optimising the game. It depends on the game but you can often get down to 0 allocations per frame by making using of pooling and no alloc APIs in the engine.

You also have the tools to pause GC so if you're down to a low amount of allocation you can just disable the GC during latency sensitive gameplay and re-enable and collect on loading/pause or other blocking screens.

Obviously its more work than not having to deal with these issues but for game developers its probably a more familiar topic than working with the borrow checker and critically allows for quicker iteration and prototyping.

Finding the fun and time to market are top priority for games development.

superrad··on Andy Warhol's lost Amiga art found
I think they mean the original amiga files, not the nft image which obviously right click save is the same as buying it .
superrad··on Plastic bag bans work
Do you not plan to go grocery shopping or do you always do it on the spur of the moment? I'm not sure what the issue is. If you need to pick up something small from the store on the way somewhere you can definetly get a small always carry on you bag that will fit in a pocket. When you're going to actual go grocery shopping just bring the bigger reusable bags. If the purpose of the journey is shopping it's not inconvenient to carry those bags and you'll have to carry the grocies back anyhow.

I get that it's less conventient to have to remember a bag but it's not some insurmountable task and it does seem to reduce the amount of plastic bags that get caught by the wind and blow around as trash.

superrad··on We Burned Down Players’ Houses in Ultima Online
I don't know if you're joking but Ultima online was obviously released 20 years before GitHub actions existed
superrad··on Lets talk about how NFTs are a giant scam
There's more of tangeable value from buying property in virtual game worlds in the sense people get to use those property or items when normally in the game they would not be able to.

For things like ship preorders on Star Citizen it's much more of a risk that the value will ever be delivered but it's still offers more than just a note of ownership of an abstract token on a blockchain sequence.

If someone decides to honor these tokens as proof of ownership of property/items in the real world/ a virtual world then they may offer some value but there's a very great risk that will never happen.

superrad··on I had to give a wrong answer to get the job (2017)
When you reallocate your array you will in memory have your old array and your new larger array while you move your data over. At the very least you're using 2x and the extra memory for your expansion.

For your other points if you'd mentioned them in the interview you'd probably have been better received. Copying is really only that fast for POD objects (your objects copy constructors may need to do reallocation themselves or worse) so if you're suggesting a general solution you should be aware of that (or at least mention move constructors if they were available at the time) .

I would be surprised if any of the games you worked on actually shipped with an amortised resize of dynamic arrays (at least not for anything that didn't matter in the first place) so I don't know why you'd suggest it as a general solution in a game dev context.

superrad··on I had to give a wrong answer to get the job (2017)
It's not great to have to double your memory usage while you reallocate your array. On more limited devices (see games consoles or mobile devices) you'll end up fragmenting your memory pretty quickly if you do that too often and the next time you try to increase your array you may not have a contiguous enough block to allocate the larger array.

There's also the cost of copying objects especially if you don't know if the objects you're copying from your original array to the resized array have an overloaded copy constructor. Why copy these objects and incur that cost if you can choose a datastructure that meets their requirements without this behaviour.

If you're holding pointers to these elements elsewhere re-allocating invalids those, and yes you probably shouldn't do that but games generally are trying to get the most performance from fixed hardware so shortcuts this will be taken, its a least something to talk about in the interview.

I can see why they were confused by your answer as its really not suited to the constraints of games and the systems they run on.

superrad··on A 1000-processor chip powered by an AA battery (2016)
Should we be training on TIS-100[0] to be ready for when these chips become a necessity.

[0]https://en.wikipedia.org/wiki/TIS-100

superrad··on New Transistor Structures At 3nm/2nm
Exactly, the smaller your chip is the more you can fit on a silicon wafer.

If your chip is too large it can even make it practically impossible to manufacture at scale due to the increased chance of defects as your chip size increases.

superrad··on TV detector vans once prowled the streets of England
Yeah I thought it was just a scare tactic and something the licence 'enforcers' could say (i.e. 'our detector van says you have a tv') to try and catch people out.

They surely can't get too much of a return paying people to check up on only potential licence 'evaders' so investing in a fleet of actual vans with drivers and operators would further reduce any return.

superrad··on I Bought Apple Silicon
The M1 is on a 5nm process from TSMC. I'm sure if AMDs Zen 3 (eg Ryzen 5600x) was also on that process instead of 7nm the perf/power ratio would be similar
superrad··on Facebook iOS SDK Remotely Crashing Spotify, TikTok, Pinterest, Winno and More
Is it a violation of GDPR if the data is anonymized?
superrad··on Image optimization decreased website's page weight by 62%
I'd second ImageOptim on Mac or PNGGauntlet on Windows https://pnggauntlet.com . I'd be careful using pngquant as well, as it will only ever give you 256 or less colour image or your original image back. PNGGauntlet and ImageOptim will optimise your PNGs losslessly.
superrad··on Migrating from Jekyll to Hugo
I believe there's a python static webpage generator that's been around for a while that already makes use of that name: https://github.com/thanethomson/statik
superrad··on Proton Native – React Native for the desktop
PyQT isn't LGPL though, it only offers GPLv3 or Commercial licensing.
superrad··on Go's New Brand
It looks really bland and unremarkable now. Maybe just a little bit understated.
superrad··on Email is your electronic memory
I guess they can by brokering a deal with the bad actor in charge of your mail server. Unlikely but email is still bound to social manipulation.
superrad··on Is beaming down in Star Trek a death sentence?
They might be concerned that one of 'you' had their consciousness terminated prematurely, if only for them wondering on the next transport if they get to continue experiencing life as 'you'.
superrad··on Nvidia Announces Titan Xp Graphics Card
Is there any point (for games) in having that much memory when you can really only address about 9 GB a frame at 60Hz (Titan Xp is 550GB/s)?

I mean its certainly better than the Titan X (Maxwell) which could only address less than half it's memory while running at 60Hz.

It just seems like an effort to inflate the price of the product without adding much value.

superrad··on How terrible code gets written by sane people
> My theory is that all software eventually becomes difficult to maintain and full of warts, regardless of smartness, regardless of conditions.

If a code base doesn't change too much in side or original intent then architecture and design (if it was good in the first place and is continued to be followed) will probably keep it fairly maintainable.

In a lot of cases though codebases slowly grow until they become of a size that requires a different architecture or approach to organising the code, especially if the number of collaborators increases too. It's quite a hard thing to spot and then address while that codebase is still quite active.

Rewrites are tempting to be able to apply that architectural change but often you can be quite bound by the implementation specific behaviour of the original system.

It might be interesting to look how the linux kernel has changed internally as it moved from a single person project to what it has become today.

superrad··on C++ 11 Auto: How to use and avoid abuse
std::unordered_map<std::string, SomeClassName>::iterator it = hashmap.begin();

vs

auto it = hashmap.begin();

I find auto useful for cutting down some of the verbosity of templates STL containers, but I can see how over use can lead to code requiring much more referencing if maintaining code that rarely defines types.

superrad··on Minimum salary required in London: £500k?
Are you paying national insurance on your income? Otherwise, without income tax and national insurance, you're effectively looking at a wage of £22k, and from what you've said thats just for a flatshare studio room.

Do you get any meals subsidised from your university, and do you actually have some savings while being able to eat out or get drinks at least once or twice a month?

superrad··on Can life exist on a planet without a star?
Would such planets have a slower rate of evolution without the radiation of the sun providing mutation, or would it just be mostly contained to the development of skin?
superrad··on TinyJPG – compress JPEG files with a balance between quality and file size
If you're wanting something that's not tied to a webservice jpeg-recompress https://github.com/danielgtaylor/jpeg-archive is great, configurable too based on the quality you want.
superrad··on Build your own drink mixing robot
Yeah the pumps always seem like overkill, why not let gravity do most of the work for you.
superrad··on Curiosity images strange metallic-looking object on Mars
After a few light years non focused radio/tv transmissions will drop off into background noise. Active SETI is what's needed to send a signal to other planets
superrad··on Two Star Programming
If you're using a linked list you've already lost the battle against lhs.
superrad··on Linux code search
'elegant' also provides interesting results
Page 1 of 2Next →