HN user

clarry

4,132 karma

goodbye fucker news

Posts5
Comments2,013
View on HN

Leave it in gear, that keeps it from rolling off if handbrake fails.

Always depress the clutch when you start. Even if you're in neutral, depressing the clutch reduces the load on the starter motor because it doesn't have to get all the mass of the transmission spinning. (This can also make the difference between starting or not if you're in cold or the battery is otherwise not doing great)

There are times when it's best not to use the handbrake at all.. (let me tell you how I found out: mine is currently seized and I need to get towed, sigh)

something is screwed up, and I don't know how to fix it, and I end up having to reset and redo a bunch of code, if I didn't back it up.

You need to figure out what is screwed up (and how it came to be so) and how to fix it. You shouldn't ever need to reset and rewrite code.

Why did the person who did the hand-holding not tell you what you did wrong and how to fix it? But either way, if you can't get help from them and can't figure it out yourself, it's ok to ask the internet for help.

But if you can get past the consolization and peer into the story & writing.. it's nowhere near the level of Deus Ex. Most of it feels like generic scifi mumbojumbo that's there to justify the action (much like Tom Clancy's, e.g. Splinter Cell). There's hardly any of the red pills that seem applicable to today's real-world politics, few references to historic figures and factions..

I'd say it's a thoroughly mediocre game. Still, I've played through it at least two or three times, which is two or three more than the number of times I've played through DX:HR!

EDIT: Also I find it funny that they wanted to make it "family-friendly" and removed blood & gibs, but you can still massacre an academy full of kids. Happened on my previous playthrough..

I didn't claim to be a fan. How I feel about the success potential of this niche comes merely from observing other gamers (everyone seems to know Deus Ex, Dishonored, etc. and mostly everyone praises these and would like to play more games like that; that's probably also why there's so much hype for e.g. Cyberpunk 2077, and CDPR is obviously trying to capitalize on the success of immersive 1st person cyberpunk fps-rpgs).

I might be a fan, but I rarely buy new games myself, so extrapolating anything at all from my gaming habits probably tells nothing about the market at large. I generally don't buy any new game unless it's DRM-free, has native Linux support OOTB, and doesn't come with crazy overpriced moneygrab editions or a shitload of DLC.

> Huh. Nobody praised the graphics back then.

I guess our recollections differ then.

IGN: As good as the gameplay is, visuals aren't one of Deus Ex's stronger points. Since it's built on the Unreal engine, Deus Ex isn't as pretty as other first-person games like Quake III or Soldier of Fortune. The graphics are blocky, the animation is stiff, and the dithering is just plain awful in some spots [...] (between presentation, graphics, sound, gameplay, and lasting appeal, graphics got the lowest score)

Gamespot: Deus Ex's graphics aren't very good, either. Though the game uses Epic Games' Unreal engine, which was once lauded for its exceptional visual quality, Deus Ex is actually a fairly bland-looking game because of its incessantly dark industrial environments.

(I could've sworn PC gamer also considered the graphics blocky, but I can't find that right now)

HDTP: The original in-game textures were of a very low resolution, some textures even being as low as 32x32.

For comparison, Doom (1993) had 128 px tall wall textures. Quake 3 (1999) shipped 256x256 textures and generally much better looking (and more dynamic) visuals thanks to its shaders and gamma hack. Unreal shipped hi-res s3tc textures (sorry, can't figure out what the resolution is right now).

Also I think Deus Ex used indexed (256 color) textures, while Quake 3 engine based games used truecolor. At least I remember having to dither & convert textures to 256 color gifs back when I did some Deus Ex modding..

Basically your criticism here is few other games are Deus Ex since if everything you loved about Deus Ex was copied you'd just end up with the same game. And if that happened you'd probably also criticise it for not being original.

Absolutely not. My criticism is that very few other games try and let alone manage to put all the elements together as competently as Deus Ex did. You absolutely can deliver an original story & setting with all the elements that made Deus Ex good without making the same game. Virtually nobody today is trying.

That's exactly it though. You don't have to love every game you grew up with but you did have to spend time playing Deus Ex because you had fewer options verses now where you are able to skip game the moment your attention wavers.

No, that's not it. You missed the part where I mention old games in plural. Yes, old games other than Deus Ex, that I played sometime post 2010 and liked a lot (more than most recent games I try to play). Deus Ex is rather the exception, in that I both played it back in the day and enjoy it a lot (even today). Most of the games that I like from that era are not games I played in that era. And most of the games I played back then are not games I would enjoy today. So the vast majority of my opinion about old games does not come from nostalgia or rose tinted glasses, but from discovering them on GOG and playing them post 2014 (which is when I created my account on GOG and started trying out these old games I never had a chance to play back in the day).

I have zero reason to believe in nostalgia making much difference in how I feel about games I play today. I can pick up a game I loved 25 years ago, and get bored in 30 minutes because it's actually not that good. I can pick up a game I never played 25 years ago and love it because it's actually good. I can pick up a game I heard about 25 years ago and wanted to play, and find out it's actually not good. I can pick up a game I hated 25 years ago and like it, because it's actually better than I thought back then.

Actually playing these games today is the best way to dispel nostalgia, and usually 15 to 120 minutes is more than enough time for that.

And that's why they won't make any more... you'd be mad to try and do another immersive sim.

To be clear, I don't think they even tried, as far as DX:HR is concerned. Instead, it looks like they tried hard to borrow ideas from these mainstream console games and made an anti-immersive "sim" that constantly takes you into third person, floods the screen with XP & loot popups and other UI noise, replaces melee weapons with "tap E to watch a mini-cutscene where MC beats up a guy", features busywork-filler-padding sidequests for the instant gratification RPG addicts, etcetra.

I think, if someone actually tried, this is a proven niche where one could definitely find some success.

As far as the FPS genre is concerned: boy do people nitpick them. You can point at a handful of super popular titles, and for each, there's a mountain of forgotten and thoroughly mediocre (or worse) first person shooters.

There's no single genre where success is for granted. In general, there's a long tail of games that get little attention and a small bunch of "rockstars" that everyone plays.

It was mostly the mechanics people seemed to talk about at the time (and the graphics too).

Huh. Nobody praised the graphics back then. They were dated on the day Deus Ex came out; it uses the original Unreal engine (with some tweaks) and looks just as dated. Rendering technology moved fast back then and a game as large as Deus Ex had no hope of staying ahead of the curve. Plus they had to make some compromises to fit such a large scale game on disk & in RAM (there were other UE1 games that looked arguably better). I recall reviews considering Deus Ex's graphics "boxy" (literally!) and it has plenty of super small textures..

The thing that most people praised was the freedom. That's part mechanics, but what I was trying to say is that very few of the mechanics in Deus Ex were innovative; mostly they just did a great job incorporating mechanics that already existed in prior games. That's the ticket. You don't need to innovate and make some superb new mechanics to make a new Deus Ex quality game.

In any case, story driven games have existed long before Deus Ex and still exist now.

Yes, but few games pull all the elements I mentioned above together. Deus Ex has "all the parts", and for most part it's done well, therefore it's more than the sum of its parts. Yes, story driven games exist, but few of them incorporate all the other elements that made Deus Ex what it is.

I see these kinds of comments all the time and frankly a lot of it is rose tinted glasses.

I see people always dismiss this as nostalgia. I call bullshit, if only because I played very few games "back in the day" (and I don't like most of the games I had back then; I played them only because I really didn't have anything else to play).

Most of the old games I discuss today are games I've only played sometime during the last decade for the first time. And I keep finding old games that I really like, and then I don't like their sequels, and I have a hard time finding new games that I like as much.

> I don't think this can happen today and I also believe this is the reason we don't see anything close to the original Deus Ex.

The solution to that is to look outside of the traditional gaming paradigm.

I don't think indie & VR gimmicks are the solution to lack of games that are close to the original Deus Ex. It's not revered for original superb mechanics; most of everything it does was done before. It's that it put them all together and did so many things right to create a polished, immersive experience with a compelling story (rather footed in reality as opposed to all out scifi/fantasy), strong plot focus (as opposed to disconnected mass-produced side quests), rich level design, lots of choice and player freedom, great music, replay value..

Hardly anyone is doing that. But, evidently, a lot of gamers want that.

If you're only looking at games like Deus Ex then it could be easy to miss all the other stuff going on.

I just don't see anything that really compels me. Stuff is going on, and it's mostly not worth my time (or does a terrible job marketing itself).

I played HR for the first time last month and couldn't finish it, because it bored me to death and then gave me stupid boss fights. It's so dumbed down and just doesn't come close to the first Deus Ex. And yes it felt clunkier than the first game (I lost count of how many times I fell to my death trying to jump onto some platform to perhaps find a secret or hidden route, only to hit a stupid invisible wall)..

In the end, the problem is not the value of the four-year university degree.

It's not worth it IMO, even if education is virtually free here on the better side of the big pond.

Even at 0 EUR, it's still a lot of time and effort that could be focused much more effectively.

Being Alone 6 years ago

Yep, and all the solutions they can offer is "go to a meetup with like-minded people ROFL"... I guess it is that simple for them.

On the other hand, most of that is stuff that human curation can rightfully reject as not worth linking and indexing. We don't need to index the entire web, we need to index the good stuff (that is likely to stay there anyway and be worth archiving).

how to e.g. read strings from say a CSV file and parse it into an array of arrays of strings > Does anyone have any pointers here? (sorry)

I think this kind of thing isn't discussed too often because there are so many different choices that you can make (and once you understand the language & your constraints, you can certainly make those choices). I agree it would be useful to hilight all the possibilities. Let me try to illuminate:

First, do you really need an array of arrays of strings? That's possible, but not all that common. If you don't really need such a thing, then you do something like strtok or strsep: implement a function that you call in a loop to extract fields one by one. Now you just need a single buffer large enough to hold a single field (or one row if you prefer to make it a little simpler). Your function locates the terminating comma, replaces it with a NUL, and returns a pointer to the start of the buffer (and stores the start of the next field -- that is, the address of the byte after the NUL -- somewhere for the next call).

This approach is popular among C programmers because it usually means you don't need dynamic allocation, as long as there's a reasonable maximum field size. Or if a maximum field size cannot be imposed, then you get away with dynamic allocation (and re-allocation, when needed to grow) of a single buffer.

What next? Ok, maybe you really do require "all fields at once." Your average C programmer still won't allocate arrays of arrays of strings. Instead, they read the entire row, extract fields out of it (as above), and store the pointers to the start of each field somewhere. If the caller knows how many fields they want to deal with (very often you do!), then they can provide you a fixed length array for these pointers. Otherwise, you can dynamically allocate a buffer to hold the pointers. Either way, now you need two buffers (and depending on your needs, one or both or neither may be statically sized): one for the row, one for the pointers. Now the buffer containing pointers is exactly like argv in main(), while the fields are in one contiguous buffer spliced by NUL bytes.

Ok, maybe you really do require all rows and all fields at once. At this point C programmers will hate you because you're forcing them into dynamic allocation (or an unreasonable fixed size limit on the file). Otherwise, you do as above, but you also terminate lines with NULs and now you have some choices as to how to lay out your row + field pointers. For example, you could allocate one array for row pointers, which point to field pointers (which could be allocated separately for each row, or, perhaps preferraby, in a single flat array containing pointers to all the fields). If you expect the caller to iterate (rather than random-access) rows, you could use a single mixed type array containing row metadata + field pointers.

Another very common approach would be to allocate field pointers + data for each row separately and then link rows in a linked list. Again this favors iteration but you're less likely to need to resize huge arrays.

Sometimes you deal with memory that is best to keep immutable; in that case, splitting the data into rows and fields with NUL bytes is not an option and you must take a different approach. Either duplicate the data (more mallocs, required if you also need to do things like unescaping) or keep it where it is and store pointer + length tuples.

See, there are lots of choices, and lots of variables, depending on how much memory you want to use, can you use fixed size buffers, what kind of access pattern the caller expects, does the caller expect to be able to free individual rows, etcetra.

There is no best practice but generally C programmers gravitate towards using iteration & fixed size buffers unless more is required (this is simple and lets the caller persist data if they want to, but doesn't force them to deal with dynamic memory if they don't want or need to). If something more specific is required, then you'll know what is required and implement something that supports just that.

The Python style divide-and-conquer where you first read an entire file, then chop it into lines, then chop lines into columns, etc. is not very popular.

Typing speed is not the bottleneck when writing software. The bottleneck is my brain.

I agree except with a caveat: the mechanical action of typing, formatting, refactoring, fixing typos and missing semicolons, and moving code around actually distracts the brain from the higher level task at hand. And when the brain is already the bottleneck, I don't want to make it worse by wasting brain cycles on mechanical drudgery.

As one might expect, I feel far more productive when I'm using languages and tools that require me to type less and refactor & re-edit code less. I think the language would matter less if I could just wish code onto the screen. Until then, learning to touch type (with as few errors as possible! not necessarily as fast as possible) and use editor features to make it more effortless is the next best thing.

Why is everyone so attached to scaling? What is this shit software that 1) everyone relies on and 2) whose UI and font size can't be adjusted like any normal software (or web page) since the 90s? Is this yet another brainfart from Apple?

Why `alphabet_pointer = alphabet;` points exactly to the first element in the array? Why not the whole array?

Someone decided it has to be so, because it is pretty convenient. Usually when dealing with an array, you want to do things with its elements and therefore it's extremely convenient that an expression with array type is converted to a pointer to the array's first element. If that didn't happen, then you'd very often have one extra layer of annoyance to go through in order to access array elements.

Why not the last?

The first element is convenient because then you can reach for the other elements by adding a zero-based offset or index to the pointer. How often do you operate on an array starting from its end? How often do you like to work with negative indices? That's why not the last.

Can we have a pointer that accepts a whole array?

We can have a pointer that points to a whole array:

  int a[50];
  int (*p)[50] = &a;
  
  printf("%zu %zu %zu\n", sizeof a, sizeof a / sizeof *a, sizeof *a);
  printf("%zu %zu %zu\n", sizeof *p, sizeof *p / sizeof **p, sizeof **p);

  > 200 50 4
  > 200 50 4