I started playing Stranded Deep a few days ago and it's a really nice survival simulation, but suffers from the same clunky joystick controls that Subnautica, Windbound, and Astroneer all have. I think I've pinned down what's going on with these games and mouse vs. joystick.
When they develop the controls for the mouse they treat the "scene" as simply a flat projection, so whatever you can see can be picked up. I've picked up things an estimated 4m away with my hand using the mouse, and I can grab things when the mouse is nowhere near the object.
Meanwhile, with a joystick, I have to be within a realistic 1m range of the item, and put the tiny little dot exactly on it or nothing. This means it's entirely the programmers penalizing the joystick with "realism" and nothing to do with the joystick's motion abilities.
By comparison, the game "The Forest" (which is an EXCELLENT horror game NOT for kids) was clearly developed for the controller. You don't have to aim at items to pick them up at all. Aiming to hit things has a lot of range for accuracy. Same with other joystick first games.
I also forced myself to use keyboard+mouse for 2 days and I don't know how people do it. My hands were *killing* me, and if that's how you play and you have carpel tunnel syndrome, *that* is probably a big cause. I even tried using a Tourbox instead of keyboard and still pain.
So while all the other mouse-oriented survival games suddenly demand crazy accuracy with the joystick, The Forest is joystick first and works just fine.
I also went and got one of those fancy Microsoft XBox Elite 2 controllers with some interesting observations:
The default setting on that control is stupid. I went in and set it to a smooth curve with radial calculations and suddenly all the games work better. I don't know what their default interaction curve is but I think it's named "swinging brick can't stop level 2".
What I mean by that is without smooth radial motion on the two stick the act of moving to aim at something is a jerking motion, overshoot, and then jerk back, with no fine control. Using a smooth curve and suddenly it behaves like normal. Aiming is easy.
The Elite controller also has these totally useless triggers on the bottom that you can only map to some other buttons. What a WASTE. A primary problem with aiming with the control is not being able to stop your swing. The controller has two levels on each side...so....
It would be *far* better to repurpose these "triggers" to control two parts of the sticks:
1. Fine motion. 2. Stop immediately -> very fine motion.
Games could also access these to allow for simpler "cycle through crap I can grab" features.
The fine motion control would make that stick move slower in a smaller area, same as you get on high end mice.
The stop->veryfine would take your motion that normally kicks back due to the tension in the stick and stops it, then allows fine tuning.
But, it seems like the only people who buy the Elite controllers are people who play FPS games and want a "real trigger" action rather than a button, so I guess that means I get two levers on the bottom that I sometimes accidentally hit so I drop my weapon in the middle of combat
Incidentally, if you're into the Survival genre of games, and love horror then check out The Forest. Just started it today, but holy crap is it great looking, easy to control, and so far very brutal.
BUILD A FIRE NOW!
• • •
Missing some Tweet in this thread? You can try to
force a refresh
Continuing my self-eduction on using just flexbox/grid to do layouts, I did a quick replica of Google's main page. It's the simplest one. Here's the outcome, the tags, and the CSS. But wait, there's more!
You think, "So what, you replicated the simplest page possible." Yes, but, that single .svelte file's layout adapts so that it works as either a full page, or *a panel component* without modification. Flexbox allows you to make adaptable components much more easily.
All I did to make that work is this code. Import the Google.svelte, put the <Google/> tag, and done. That entire page flexes right into the space I gave it in the grid layout without modification.
Not sure how useful that is for a whole page, but great for other things.
They can't explain to me exactly how my account was accessed without 2FA being bypassed. I changed the password and delete all the API keys just to make this dude shut up about it and finally tell me, but here's what they're saying and why it's weird:
1. A single "malicious" email was sent from one of my servers to Sendgrid's servers. They want me to rotate my API keys, but, if the email came from my server, then rotating the key won't matter because that means the server was hacked.
2. They seem to be confused about how their own API keys work. They are saying someone got my API key, and sent a malicious email. Then...it would come from a different IP and not my server. If they say it's from my server, then...my server has been compromised?
I'm going to show you a technique I've been using to help with CSS work. I put a <nav> in the footer so that I can make the icons on the right in this screenshot go full to the right, just like in the header. It's currently not doing that, but why?
The main difficulty with CSS development is the tools for seeing the shapes of things are too hard to access. A better solution is just add a 1px red border:
Easy, now I see that it's just not full width, so add in width:100%, but keep that red border because that might not work because it's CSS and there's always a 48.5% chance nothing you do works.
I have a lot of people who recently learned to code but then ask me what they could make. I'm a big proponent of copying everything you like (and dislike too) just to learn how it's done, but I think that's too big of a field for some folks to tackle. Here's some ideas:
You should get a little notebook and start writing down random ideas that pop in your head, even if they're stupid. Try to write more than one sentence about the idea so you know what it is later. Drawing a screen or two helps also.
You could also use Zettlr or RoamResearch.
Next, you need to write a short essay about one of your ideas, explaining the idea and possibly getting into a story about who is using it and how they use it. This will help you "export" the idea into a written form and organize your thoughts.
I'm toying with the idea of getting the PS 5 or Xbox, and I absolutely hate the false scarcity they pull. I mean, I'd pull a J. Wellington Wimpy with "I will gladly pay you Tuesday for a game console next month," but these people just don't know how to write a ordering website.
I'm too old to run around hunting down deals and trying to do Black Friday BS. I don't even care if it arrives next month. Just let me put in an order, send it when it's ready, but *don't charge me until it's sent*. At this point the one I pick is whatever one is available.
I also find it bizarre they can't calculate demand. You've sold like 5 versions of this thing and have the most advanced computerized logistics systems in the world and you're like, "It'll be ready on Black Friday...MAAAAYYBBEEE. Better beat up a grandma for it! MWHAHAHAHA."
Finished this morning's Nim hacking and, well, it has async IO but it's rough as hell. Pretty much nothing is done for you, so it's a lot like JavaScript before async/await, but weirdly it has the await keyword. Some issues with this:
1. I'm not sure why the {.async.} pragma doesn't also setup that function to return Future[T]. It's kind of pointless if all that I get is the await keyword, and then every function I want to wait on has to be hand coded futures. Maybe the docs are just wrong?
2. I'm guessing this is more nanomsg's fault than Nim asyncdispatch, but the whole pollfd, addWrite/addRead system doesn't work on the send. I'll register addWrite, the pollfd will say it's ready, then the nanomsg send actually blocks, which...should be impossible.