robmaister's comments

robmaister | 6 years ago | on: A Guide to Rust Graphics Libraries as of 2019

I'm not familiar with the specifics within gfx-hal, but it's most likely taking in SPIR-V and translating as needed.

AFAIK DX12 still requires DXIL so it might be saving both SPIR-V and DXIL, or taking in HLSL and compiling/translating as needed.

Microsoft has generally gotten a lot friendlier in the last decade, they have tools to compile HLSL down to SPIR-V, if you want to support everything including DX12 you'll probably be writing HLSL. Otherwise you can pick any language that compiles down to SPIR-V.

https://github.com/Microsoft/ShaderConductor

https://github.com/KhronosGroup/SPIRV-Cross

robmaister | 6 years ago | on: Topics in Advanced Data Structures [pdf]

Gamedev, but even then actually implementing the data structures is rare. And nothing outside of geometric/parallel data structures listed towards the end.

I've had to use a concurrent priority queue once (locking a regular priority queue was too slow, dropped in a concurrent implementation), implemented kd trees a few times, and I've used half-edge once (a cousin of quadedges). Mainly doing graphics work.

Often the naive data structures work better because there's less indirection and it's easier to vectorize. In my case, depending on how much GPU budget you have available, you can also just scrap the CPU implementation and throw it in a compute shader.

robmaister | 6 years ago | on: Why a Traffic Flow Suddenly Turns into a Traffic Jam (2013)

I've found that a lot of times it's not an onramp merging into you, it's people waiting until the last second to merge to an offramp and slamming on the brakes and/or cutting off someone to not miss the exit.

I deal with this every day when I come home from work on my exit off the 405. People don't want to wait in line because it's slow, but it's slow because those people cut in at the last second and cause the entire lane to apply the brakes.

The 405/55 interchange is another example of that, particularly 405N to 55N in the evenings.

robmaister | 6 years ago | on: Could ImGUI Be the Future of GUIs?

This is definitely the way to go, especially with the more recent trend of embedding UI elements in world space, and VR/AR essentially requiring it.

Internal tools tend to be IMGUI, Winforms, or WPF from what I've seen. Essentially whatever the original author is most productive in. No need to be super performant because your only users are other devs with really high end systems and rarely an actual need for a constant 30/60fps.

Your engine likely already has a graph structure, event system, and input handling. The core pieces of a retained mode UI system are already there.

robmaister | 7 years ago | on: Congress Is About to Ban the US Government from Offering Free Online Tax Filing

There's a few companies that are allowed to efile that do very little besides convert the IRS paper forms to web forms and do the arithmetic for you. They tend to be a lot cheaper than TurboTax/H&R Block. I've been using one of them (OLT) the last two years has worked well enough for me and efile processes a lot faster than paper.

I also believe people should be filing their own taxes and understanding how the system works. I've owed money the last two years by underestimating self-employment taxes, so this year I've set up a spreadsheet that tells me how much I'll owe each quarter with all deductions built in and a tiny bit of overestimation.

robmaister | 7 years ago | on: Congress Is About to Ban the US Government from Offering Free Online Tax Filing

This is something the IRS does directly to encourage people to file even if they can't afford to pay right then. This helps with cases like self-employment income or capital gains where you can end up owing at the end of the year even with W4 withholding for your primary income stream.

The penalty for not paying is much lower than the penalty for not filling, if you owe.

It's possible your tax prep software does their own version as a middleman, but the IRS offers it directly through the same system that quarterly estimates are paid.

robmaister | 7 years ago | on: Can the Law Be Copyrighted?

Generalizing a bit, it's fascinating that it's possible to break the law without being able to afford knowing the law.

You guys are definitely doing something that is innovative and a win for everyone (except ICC). Best of luck on the lawsuit!

robmaister | 7 years ago | on: Computer Graphics from Scratch (2017)

Perhaps I just got lucky, but I started my first games industry job almost a year ago and I've been doing graphics work for the vast majority of that time. I came in as a regular junior level Software Engineer, mentioned I liked graphics and tools development, and was mostly given graphics work as a result.

I've also been writing engine/graphics code for fun since I was a teenager, my copies of those books are 3rd edition and 5th edition, respectively :)

robmaister | 7 years ago | on: Is WSL actually ready for developers?

As someone who develops primarily on Windows and occasionally uses a Mac Mini to build iOS binaries, I feel vastly less productive when I'm using macOS. I've also come to realize I use my Home/End keys a lot since my Magic Keyboard doesn't have them.

It's not that macOS isn't "developer ready", it's that I'm used to the Windows way of doing things and have those keyboard shortcuts in muscle memory.

The main reason I like Windows as a development environment is Visual Studio. I wouldn't trade my data breakpoints, variable watch list, memory views, and Intellisense for anything. Then again I'm working on games, i.e. multi-million line C++ projects that run on 4+ platforms. Most of that stuff is unnecessary in other situations.

Also good luck getting any of the console devkits/SDKs to run on anything but Windows.

robmaister | 7 years ago | on: Is WSL actually ready for developers?

> In a way, managing WSL feels a bit like managing a VM and it is not completely integrated with Windows.

I think the author missed the point of WSL, I can't see any benefit from that

robmaister | 7 years ago | on: Is WSL actually ready for developers?

Yeah you're basically right on the nose with that assessment.

The author attempted to use WSL like their mac and had a bad time with it, aside from the text rendering and high DPI stuff that isn't quite as polished on Windows.

robmaister | 7 years ago | on: Apple updates its iMac line

Yeah, just that the base 2014 Mac Mini was being sold $500 new up until the point in 2018 when the new model came out. Even by 2016 and 2017 standards, 4GB 1600MHz DDR3 and 500GB 5400rpm spinning disk is abysmal.

I would expect the base model of any product (really the cheapest way to experience macOS without fiddling with VMs or hackintosh) would provide a usable experience and not one where you have to wait several minutes to open Chrome.

I could live with it mainly because I had another machine to go to while my 30m Unity build was running (and because I knew I was going to have to swap the HDD), but for a normal person who wants to browse the web and manage pictures, the $500 Mac Mini would have been an incredibly frustrating experience.

robmaister | 7 years ago | on: Students don't seem to be getting much out of higher education (2018)

I wasn't a slacker until I took a computer graphics class that consumed more of my time than my other 4 classes combined, and I still failed it on a technicality (out for a job interview the day partners were assigned for the final project. Wasn't allowed to do the project alone, there were an odd number of people in the class. If you fail any "section" of the class, you fail the whole class. After back-and-forth with the professor, I contacted my class dean. He said he'd contact the professor, didn't, told me it was too late to change the grade, and then quit)

After that I realized grades were fairly arbitrary and explicitly aimed for Ds in classes I didn't care about and settled for whatever in the classes I did care about.

I've been doing graphics since high school, it was one of the few classes I was really excited about, and it's what I'm currently getting paid to do. I've never failed any other class.

In my opinion, the first two years of CS actually matter. Fundamentals like data structures, algorithms, and maybe even operating systems classes are great. Beyond that, most CS programs tend to be severely outdated - you'll learn more from internships and co-ops than another 2 years of classes.

Of course, take that with a grain of salt since I did know exactly what I wanted to do coming into college.

robmaister | 7 years ago | on: Apple updates its iMac line

I've felt this pain too. 2 years ago I bought a Mac mini (2014 model) off eBay for $340 mainly as a build machine for iOS binaries. It was the lowest end model which had a 5400rpm HDD in it and 4GB of RAM.

It took ~3 minutes to get to a usable desktop. Opening XCode took long enough for me to go grab a coffee or scroll through Facebook. It was swapping like crazy. I honestly couldn't believe they were selling this configuration new for $500 in 2018.

I bought some iFixit tools and used their guide to fully disassemble my Mac and slot in a new SSD. Time to usable desktop dropped to like 20 seconds, things were snappier. Doing more than one thing at a time still uses swap but it's much less noticable now.

robmaister | 7 years ago | on: U.S. Student Debt in ‘Serious Delinquency’ Tops $166B

My federal loans from a few years ago ranged from 3.25% to 6.7%. My fiance had to stay an extra semester, which means she had to get a private loan for it. ~9% fixed.

My school wouldn't give anyone extra aid even if you went in in person and asked (the only case I know about is a student's mother passing away halfway through undergrad) and you'd get a little less every semester because tuition kept going up.

Top schools tend to be more generous despite the higher sticker price. My sister graduated from one with around 1/4 of the debt that I did. 2 years was with the same FAFSA for both of us.

robmaister | 7 years ago | on: It will become easier to buy a house

As a single data point, I'm 25, have a bachelors degree, engaged, no kids (we adopted a dog a few months ago, though), on my third job and third apartment. I contribute to my 401k up to the match and tuck away a little extra in a Roth IRA, certainly less than the annual contribution limit.

Rent and utilities are ~40% of my take-home pay, my car + auto loan + student loans are another ~20% (student loans being the largest chunk). I put the rest towards food, extra payments on my >4% student loans, and savings in a HYSA.

At my current rate of savings, it would take around 3 years to save up for a 5% down payment (looking at the median home price for the county I live in). Given that I'll probably want to take some vacations, will have to pay for at least part of my own wedding, might have an unexpected medical emergency, etc, I estimate I won't be able to save enough for a house until my late twenties at the earliest. That's also assuming that I won't drain my emergency fund for the down payment.

I know some people who job hop between FAANG and other large tech companies. Each offer is better than what they would have received as a raise should they have chosen to stay with their company. That's just a product of high demand and low unemployment, and also in some cases, being better at tech interviews than actually writing software.

I can't speak for renting in the bay area, but in my case, people cycle through apartments because either the landlord is attempting to jack up rent, not managing the property correctly, or to move closer to a new job.

I also can't speak for mid-30s, but the general sentiment in my circles around the mid-20s is that almost no one feels financially prepared enough to settle down, buy a house, and have kids. And that's mostly people in tech. The people I do know who have children or own a home (I don't know anyone my age who has both) are all in lower CoL areas.

robmaister | 7 years ago | on: Companies struggling to fill jobs 'should try paying more,' Fed's Kashkari says

My fiance works for a major ISP in the US. She started in sales while we were living in NY, but I got a really good offer for a gamedev position in CA and we both moved across country. She transferred her position to be a dispatcher for techs, which came with a significant pay cut (no commission, similar hourly rate).

They have a well defined training/progression system where you study IT materials they provide, take a few in-person courses, and pass some tests in order to get a new title, more responsibilities, and a raise.

She's one of the fastest people to progress from 1 to 2 (~4 months), her manager is scheduling the in-person courses for 3 ahead of time.

There's an office closer to where we live that does support for business class customers, they're looking at maybe bending the rules on how long you have to wait between internal transfers since she'd probably be more valuable there and it would be closer to home.

If you take the path of hiring employees that you train, you should work with them and give them raises as they're trained to get them closer to market rate. A lot of them will want to stay. At least for long enough to recoup the cost of training them. Also consider how many of those people don't have the right qualifications on paper but could pick up the necessary skills quickly. They'd be underpaid for a while, offsetting the cost of the people who need more training or are slower to learn.

Tangentially related, my job gave me relocation for both of us. If I leave my job before a full year, I'll owe all of it back. It makes sense for relocation since that's generally money the company gives you up front (that counts as a bonus, and is taxed as such). The only way I can see this applied to training would be if the employer covered the cost of taking courses at a local college or something like that. If you have your own in-house training staff, I'd count it more as a benefit of the job than a conditional bonus.

robmaister | 7 years ago | on: How we increased productivity with a fruit basket at work

I have mixed feelings about this - on the one hand, it's giving an incentive to working on the "boring" stuff that devs prefer not to do, on the other hand, it's something that can be gamed and result in poorer code quality (patching the symptom).

Also, it seems like the company focus shifted to reducing bugs and general code quality. That probably has something to do with the huge shift in productivity as measured by bug count.

robmaister | 7 years ago | on: Amazon private label brands are quietly taking over Amazon.com

I spent far too long looking for a second USB charging block for my phone. The first page is full of < $5 chargers, none of them from a brand I'd heard of before, with mostly 5 star reviews from bots and a few 1 star reviews of "this caught fire and almost burned my house down"

You'd think to see an Anker product on the first page given their reputation for reliable electronics and (at least in my circles) popularity.

robmaister | 7 years ago | on: Show HN: Strife, a 2D game library for Go

Once you get past a certain point of developing a complex game in Unity, one of the optimization techniques is to keep runtime allocations at 0 bytes in order to prevent a GC pause from ever happening. This was a huge pain back when Unity was on Mono 2.10.8 (released Dec 2011) but it's a bit better now.

It's a fight against the GC typically

page 2