Hacker Newsnew | past | comments | ask | show | jobs | submit | 3dGrabber's commentslogin

> I'll die right there with you on that hill.

count me in.

May I throw in BeOs' icons [1] for good measure?

[1]: https://mastodon.social/@allenu/111581402975463677


Awesome!

Back in the day, I reverse engineered the level format of v2. I Understood the graphics and physics attributes, but never how the waypoint system worked. (in multiplayer, if you take too big of a shortcut you’ll be penalized by being “popped”)

Can you explain how the waypoint system works in v3?


For the human players, the map has a data layer where every tile has a number. Tiles not on the track are 0 and tiles along the course are numbered in ascending order.

The game tracks the last numbered tile each player was on. When the players are too far apart so that they can't all fit on the same screen, then the players who have the smallest number get popped / killed. So if you cut a corner, then you're taking a risk -- you might be further ahead visually, but since you left the course, your last waypoint number will be lower than players still on the course. Those players can swerve in the other direction to force the issue and kill you, if they're paying attention.

In another data section, some of the numbered tiles are marked as key waypoints (my term, I don't know what the Codemaster devs called this). If you miss a key waypoint block entirely, then you are popped for cutting too much.

Those two mechanisms work together to encourage a kind of "iterated prisoners dilemma", on top of the normal racing mechanics. It's great fun.

There are some screenshots that illustrate this at https://bradders.org/MMs/ -- see the section titled "Cutting corners"

For AI players, there's a data layer telling them which way to go next on each tile, much like is described in the OP article here in MMs v1.


Thank you!

From your descriptions, it seems likely that the same system was used in the earlier games.


There exists an interesting connection between Boost Converters and Hydraulic Rams [1]. A Hydraulic Ram is device that can pump water from a stream to a higher location by harnessing the kinetic energy of the stream, no other power source required.

The equations for the two devices are essentially the same, only the units change.

1 https://en.wikipedia.org/wiki/Hydraulic_ram


I love analogies between fields like this.


Water flows in pipes, valves, etc. concepts transfer to a lot of basic electrical circuits and concepts. E.g. voltage is analogous to pressure. Current is analogous to the volume of water flowing. Bigger pipe (wire) can carry more current. Valves are like switches or resistors. It works to de-mystify concepts for kids who have no concept of what electricity is but can think about water flowing in a pipe.


The base analogy working is cool but that other mechanisms on top also work similarly is what amazes me.


Circuitry (both digital and analog, including entire computers) can be built using hydraulics. Complex parts like logic gates, oscillators are present, but also "passive" things like accumulators, resistors, and valves -- it's all there.

They work in about the same way as electronic circuits do.

(But it's almost always less expensive to push electricity around than it is to push liquid around, and the parts are a lot smaller, so obviously electronic circuits are the usual winner.

Nonetheless, hydraulic circuits are still pretty common: See, for example, the valve body of an automatic transmission such as (mostly?) electronics-free 700R4.)


Coming from an EE background and doing some simple hydraulics work, it blew my mind that the various components are mainly just the right shapes of metal. In retrospect I don't know what else I could have been expecting, except that electronic components are generally made of some special substance. Talk about actual "bare metal" development.


Coming from a generalist technical background: It's all just waves, interacting with stuff in useful ways.


Yeah, I found some 50s ee book teaching how to build variable inductors and caps, and it's mostly geometric relationship with a pivot.


Also the signal propagation speed in a fluid system is limited to the speed of sound in that fluid, vs ~c in electric circuits


There are limits to the propagation velocity of signals in both systems that are sometimes necessary to account for. Hydraulics tend to be slower, but it's still the same problem -- each just has different values to plug in and deal with.

Concerns about things like impedance matching and reflections are also the same.

And so on, and so forth.

Circuits are circuits.


There is a whole area of multi-domain simulation, where the simulator seamlessly jumps from one form of energy to another as long as the units match. I have always loved that.



oh nice


Current is analogous to momentum, because electron drift has net momentum.


You mean inductance.


Or they mean velocity.


It’s a pun. Undefined (program) state(s).

Also, there are some NAN’s hidden in the palmtrees.


Why would you insist to write the function name both before AND after the call?

<DoStuff> args </DoStuff>

vs

DoStuff(args)


Is this the main argument? I think the simplest answer is boundaries. Taking into account how much nesting is involved in writing HTML, it's a clear benefit having a named boundary vs a closing parenthesis.


> Taking into account how much nesting is involved in writing HTML

which is another one of its flaws.


What would the alternative be? How can you design a UI without nesting things?


Too much nesting usually signals that you should decompose it to smaller components.

Same as with regular code and functions — overly deep nesting screams bad code.

Honestly, JSX is just a verbose way of calling functions / constructing objects, which is probably OK if it was a language of its own (XML/HTML) — and even then, JSON/YAML won over XML — but makes little sense being embedded in a language which had functions & object literals from the get-go (JS)!

The only reason JSX exists is because it was a cool marketing feature to convert existing PHP/HTML developers to React. And React succeeded mostly because of that. Not because JSX is cool technology-wise (it isn't). But because it hit the right spot in the right time.


Well said! You got the point.


Not to me, it isn’t. It aligns with how the box model itself works.


More like:

<DoStuff args={...} />


Please no

The {...} syntax is a non-standard extension to XML/HTML I think MS came first up with back in the day for XAML (WPF).

It's a hack to "fix" a shortcoming of the base language.

It does not compose, i.e. :

<DoStuff args={<DoMoreStuff args={...} />} />

does not work.


That would be

<DoStuff args={...}><DoMoreStuff args={...} /></DoStuff>

Still more readable than brackets hell like:

DoStuff(DoMoreStuff(DoEvenMoreStuff()))


^^^ Apples to oranges:

    <DoStuff args={...}><DoMoreStuff args={...}> <DoEvenMoreStuff args={...}/> </DoMoreStuff> </DoStuff>
vs

    DoStuff(DoMoreStuff(DoEvenMoreStuff()))
Both of them you would split into indented lines when they become too long. And 1 becomes too long much faster.

Also with 2 you can do

    const todo = DoMoreStuff(DoEvenMoreStuff());  
    DoStuff(todo);
where as with 1 you cannot.


With JSX you can do

  const todo = <DoMoreStuff args={...}><DoEvenMoreStuff args={...}/></DoMoreStuff>;
  <DoStuff args={...}>{todo}</DoStuff>


People complaining about lack of JSX, HTML angle-brackets: I don't get it.

XML gets all the hate for being overly verbose (and for good reason [1])

however with HTML syntax, which is almost the same, everybody seems to be just fine...

[1] XML is sooo nineties, the "modern" developer uses markdown. inb4 S-Expressions

</rant> (...yes I know)


It's a little more than that.

Some people feel that XML is great to represent nested structures/trees, and that trying to do that with code is less readable.


For me it's about not to learn yet another new syntax, and HTML is here to stay.


If you know JS (or any other C family language), the syntax is not new.

It's about getting rid of a flawed syntax.

But it'll probably never happen because people are used to it and oblivious to change.

Unless of course if one of the FAANG publishes it as their New FrameWork [tm], then everybody will jump on it, and people that don't are seen as "not modern".


Agreed. JSX is a bug, not a feature.


... and imposes a build step, for no good reason.


The preact team also dislikes transpiling jsx so they've developed an alternative using tagged template literals: https://github.com/developit/htm


> Time travel and the regional undo

Jetbrains’ IDEs have both of them and more. The feature is called “Local History”. [1] You can see the history of an file, a selected region of text, or even your entire project. It can undo file deletions/moves/renames. It feels like a personal “automated git without the git hassles”. It has got me out of some really bad situations.

[1] https://www.jetbrains.com/help/idea/local-history.html


The End Game is to make Windows “Cloud Only” [1]

Then they will have the users by their balls. Charge money for every click. Insert ads where they see fit. Dynamically adjust prices to squeeze the max amount of money.

Time for quarterly reports? “Sorry our Excel servers are under ‘heavy load’, Excel now costs 4x the usual hourly rate…”

[1] https://www.techradar.com/news/could-windows-12-become-micro...


That sounds too negative. How about that:

"The prize-winning Excel service is in high demand right now. We apologize for any delay this might cause. Do you want to become an 'Excel Prime Plus User' with preferential treatment? Just upgrade your subscription now and increase your productivity!"


“I’m sorry, in order to multiply you will have to purchase a subscription to our multiplication extension. Please click HERE to have your credit checked.”


The use of surge pricing encourages their definitely-not-employees to turn on their servers and relieve congestion, dontcha know.


Vendor lock-in is a tried and true classic MicroSoft tool


It’s like the whole web has come to the conclusion that icons have to be monochrome and boring. Why? What is this group-think? Why do other styles of icons “look dated”? I have nothing against the “metro” or “modern” (by m$) style per se. Like all designs it has its strengths and weaknesses. But I miss variety, Icon-sets (or websites for that matter) with personality. “metro” used to have personality, but has long since lost it because everything looks the same. Anyone here remember the silk icons? [1] I’m not arguing they are superior. But moar variety please: “silk icons”, “flat icons”, “silly icons”, “school icons”, “cartoon icons”… </rant>

[1]: http://famfamfam.com/lab/icons/silk/preview.php


I remember the Silk icons, I still have a soft spot for them. I even tried using them in an app, but they upscale very poorly even with xBRZ (IIRC I used something like https://sourceforge.net/projects/xbrz/files/ScalerTest_1.1.z...).

Similarly, Visual Studio actually comes with an icon library at https://social.technet.microsoft.com/wiki/contents/articles/..., though 2012 sadly switched from 3D icons (a mixed bag, some beautiful ones and then some awful ones like a downscaled yellow-shaded XP-era exclamation point triangle) to flat line art indistinguishable from today's icon style except in having backgrounds. You can find "totally legal" offline downloads of VS2010 on archive.org (the online installer is down).


> I even tried using them in an app, but they upscale very poorly

Someone made the effort and ported them to .svg [1]

Donationware

[1]: https://codefisher.org/pastel-svg/


Interesting icon set. I love the idea behind it, but looking at their icon preview at https://i0.wp.com/codefisher.org/wp-content/uploads/2022/08/..., I noticed that some images look great at higher resolutions (the star), while others look like a bad hqx/xbrz job, with a mix of curved, pixel-aligned (lock, book, anchor, monitor stand), and blurred features (book stripes), with inconsistent line widths (the house's roof and bushes, the computer stand and anchor).


> If junk starts coming in, that address is blocked, and I stop doing business with that company (if I haven't already).

AND CALL them, if possible: “I’ve received marketing emails from your company recently, how is this possible, I’ve never signed up, yaddayadda… “

Generate some cost on their side.


Support calls will probably cost you more than the company unless you value your time very little - most companis don't post numbers answered by anyone paid highly enough for this to have an impact. Instead, call them out publicly or mail/call a someone in a leadership position if you can find contact information.


Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: