this is unexciting.
HN user
jheriko
http://jheriko-rtw.blogspot.com
The title is moronic, the content reads like it is written by someone completely out of touch with reality.
This is a common sense idea... the fact that this required this level thought is scary.
I thought this meant the website was a failure... and looking at it, I think its due to become one.
i feel this article is missing some detail or incorrect in reporting the actual development here. either that or i am missing something myself...
hash tables are constant time on average for all insertion, lookup and deletion operations, and in some special cases, which i've seen used in practice very, very often, they have very small constant run-time just like a fixed-size array (exactly equivalent in-fact).
this came up in an interview question i had in 2009 where i got judged poorly for deriding the structure as "not something i've often needed", and i've seen it in much older code.
i'm guessing maybe there are constraints at play here, like having to support unbounded growth, and some generic use case that i've not encountered in the wild...?
missing the cursive theta.
this whole thing is a story about using outdated stuff in a shitty ecosystem.
its not a real problem for most modern developers.
pwrite? wtf?
not one mention of fopen.
granted some of the fine detail discussion is interesting, but it doesn't make practical sense since about 1990.
i can believe this. many "experts" are consistent bullshitters, and it helps them to look more like experts.
this is not always intentional either, and there is a lot of social pressure to do it.
have you ever read a popular article about something you have expert knowledge in? the general standard for accuracy and quality in public discourse is mindblowingly low.
interesting.
on a basic level, with the gates, it seems, if you have at most two input amounts of work, and get at most one out, then storing the lost work for later reuse makes sense
can also be spotted with experience.
these kinds of problems are present in very many standard treatments of algorithms and don't survive their first contact with real world use in some cases.
"needs a carry bit or a wider type" is common for arithmetic operations that actually use the range.
i didn't use the trick, or read what it was until after i tried for myself. it took me about 7 seconds at a conservative overestimate...
then again, i did outperform my entire national cohort at school in almost every subject by a wide margin... an outlier.
the trick however is very clever, but it wont work in more complicated scenarios where attention to detail matters.
EDIT: after doing the first one near the top i tried the rest. with a bit of warm up its very fast. no tricks needed. maybe a relic of playing these games when younger and having a "once in a generation" level of learning power coupled with training it when very young when learning speed is multiplied by a huge scale factor. i had to zoom the last one, but the other two were incredibly fast, close to immediate. sub second.
EDIT2: the warm up was doing the first image once after reading the first few sentences.
EDIT3: this is not a superpower.
i've been doing this for decades and my bedroom work had never done anything but put unreal and unity to shame. from top to bottom i can not understand the ignorance of their design from a simple "a programmer is making this" standpoint, it comes from a legacy of "a rookie wannabe with too much money had a good shot and too much promotion"
unreal is fucking awful, its a masterclass in how to not make:
* components
* hierarchies
* visual scripting
* networking
* editors
* geometry
* rendering
* culling
* in-game ui
* editor ui
* copy-paste
* kinematics
* physics integration
* plugin support
* build system
its just a tower of mistakes i learned not make before i dared to even enter the industry
it is fantastically and incredibly bad.
unity is a bit similar but they add c# complexity to the mix and in the beginning that was a much bigger disaster, especially going with mono. .NET was an enormous misstep by microsoft and remains so, although it improves over time they could have just not gotten it so incredibly wrong to start with.
i could go on.
i definitely blame the developers. of the terrible tools, i couldn't make that badly at most points in my career including the super early days in some cases.
they are also hard to fix because of the staggering depth of the badness.
if you would like more specifics feel free to poke, its more about not typing a wall of text than the cognitive load of knowing better, which is around zero.
oh... and the garbage collection is garbage that enables incompetents to make more garbage. never needed or wanted it. i had one hard memory leak to deal with in my life in native code. and a fucking zillion in their shit fest.
EDIT: i shit you not, it has not learned my first lessons from being an 8 year old trying to draw mandelbrot sets in qbasic.
there is a balance to be had here. oftentimes people make their own corner of the code because they are afraid, or their superiors are, of the scope of work which is actually about 3 hours of consistent work with good discipline and not the 17 years they imagine.
millions of lines of code itself is a code smell. some of the absolute worst code i have to work with comes from industry standard crapware that is just filled with lots of do nothing bug factories. you gotta get rid of them if you want to make it more stable and more reliable.
however... i often see the problem, and its not "don't do this obvious strategy to improve qol" its "don't use that bullshit you read a HN article about last week"
i suspect this is one of those.
i'm not from silly valley, but its the dominant voice here.
some of my downvotes are from bad tone, overreaction, hyperbole... some are because of the silly valley culture not realising they are a bunch of deluded maniacs, or just producing absolute garbage products.
its mostly the former.
as for demographics... well, i'm a single data point, but HN has a wide reach. its why a lot of us are here imo.
hopefully i stop getting trouble for reposting things verifiable in the public record that other people spoke about in 2018, and not being banned for supporting capital punishment, a thing legal in the US, the native state of the brand.
Good. This is exactly what I've been complaining about for decades now...
I also have my own engine although it needs some refurbishment. I've never quite found the time to polish it to a point where it can be sold. It also runs on tiny old devices, although if you limit yourself to desktop hardware, that means anything from the last 30 years or so. It also has a design that allows it to load enormous (i.e. universe scale) data by streaming with most often an unperceptable loading time... on the iPhone 4 in about 200ms you are in an interactive state which could be "in game".
Unity and Unreal are top-tier garbage that don't deserve our money and time. The bigger practical reason to use them is that people have experience and the plugin and extension ecosystems are rich and filled with battle tested and useful stuff.
bespoke big company engines are often terrible too. Starfield contains less real world data than my universe app, but somehow looks uglier and needs a modern PC to run at all. mine runs on an iPhone 4, looks nicer and puts you in the world in the first 200ms... you might think its not comparable but it absolutely is, all of the same techniques could be applied to get exactly the same quality of result with all their stacks and stacks of art and custom data - and they could have a richer bunch of real world data to go with it!
this is brilliant.
most of the feedback i'd want to give has already been given though... e.g. the attack charging confused me a bit until i worked it out by inference.
the animations are probably the highlight of this for me. they add some character nicely. adding more elements to show the attacks in progress beyond the colour changes would be a nice way to improve this.
i would suggest removing 0 from the rng for the math problems. occasionally you can get 0 + number which feels like a cheat almost. also maybe forcing the numbers to always be in double digits for the addition problems? he seems to be aware how to do this from looking at how the divide by zero is avoided.
another small thing would be to disable new input whilst the attack sequence is running... although again others have mentioned that.
----
overall this is impressive and interesting to see. i taught myself to write code starting when i was 8 using qbasic and its help file, then starting with visual basic when i was 11 and C when i was 12 - it was a different time, and different tools with different challenges, but i think any early start is helpful, especially if you have to work things out for yourself.
this game reminds me of some of my own early efforts, although rather than wrangling the complexity of a modern browser environment and language, i was wrangling with the lack of documentation and learning materials for logic, maths and graphics.
today i am the technical director of a games company with a cv littered with AAA, mobile and VR games. if your son eventually decides to choose this sort of career, i expect this kind of early work will pay huge dividends.
good work.
nice work.
if you want more of a challenge try a compiler compiler that can compile itself... :)
i got pretty far with this myself, although it doesn't work for weirdo languages like Python that need an exceptional lexer. i keep meaning to revisit this problem, since the tools in this space are pretty much non-existent or trash quality.
this is kind of mindblowing... just... WAT?!?!
getting through that first section makes me want to take nothing this guy says seriously. the insanity of it...
the seems somewhat interesting but the example given is incredibly stupid.
but none of these people are actually good, so its ok.
there are some interesting points here but a lot of it is just acknowledging lack of quality and willpower.
do better. try harder.
i don't.
although the magic of carmack's reverse to me is how it was a passing thought for me in a gamedev book written by an over privileged silly valley asshat in my teens... and turned out to be gold.
not really, sadly, we get the bad tools, but none of the performance benefits because it all gets turned into dumb polygon soup.
unreal's performance is embarassingly bad. they get their culling backwards. its a masterclass in how to piss clock cycles up the wall.
its not actually about the PVS although it greatly simplifies those algorithms.
its actually quite redundant in many ways.
you can make a BSP from polygon soup too. not respecting the value of convex volumes is one of the most damning problems in modern games. its entirely why they all perform like dogshit.
beautiful to see a decent programmer understanding the tech that people at e.g. unity and unreal have just fucked up badly.
seems overkill... for a bunch of reasons tbh. I guess the golden sledgehammer is just too tempting.
taking photos of notes is a weird compromise that nobody really wants... we need better tools not better post processing
even then the edges do not suddenly curve. its just all round a bad analogy.
in some cases the value doesn't really exist. if someone owns 75% of a company from the founding, and they sell 25% for $100000 then its worth $400000 in a valuation whether the starting capital was $1000000 or $1
selling the smallest amount of share possible for the highest amount you can get can easily balloon the "paper" value of a company, but that money doesn't really exist anywhere.
it will change when things go public, but often the initial price is based on some vapourous guess like this...
non-news.
signed. gamedev.