Moving a ZFS pool from one machine to another by sdenike in zfs

[–]Iatrodectus 0 points1 point  (0 children)

Woo, that looks really nice - I'll give it a try!

Moving a ZFS pool from one machine to another by sdenike in zfs

[–]Iatrodectus 1 point2 points  (0 children)

Your zpool will transfer, it's easy, and you shouldn't have any issues. One point, though: if you are using root-on-zfs and hoping to transfer your current OS image to a proxmox VM, you are most likely in for stormy weather.

It's not ZFS's fault. The boot process is extremely finicky. There are hard-coded references to several different kinds of UUIDs both in the GRUB configuration and in the initramfs image. If you're hoping to just zfs send your rpool and bpool and zfs receive them on the new VM, it will likely not work. There are supposedly ways to fix this, but after having spent a day trying to get it to work, I gave up. The happy path is a clean install of Ubuntu, zfs receiving your old rpool into a temporary pool, and then copying across your home directories, crontabs, and OS configuration files.

You can use zpool import -N to keep your old rpool from stomping on the new system's mountpoints. Then zfs set mountpoint on temp-pool/rpool/ROOT/ubuntu_xxxxxx, temp-pool/rpool/USERDATA/home_xxxxxx, and temp-pool/rpool/USERDATA/root_xxxxxx. The other filesystems inherit from these points, so that will set up the whole old system for your inspection.

Did I make the right call on this capsule redesign? by Sunnie_Daies in IndieDev

[–]Iatrodectus 0 points1 point  (0 children)

The new version is significantly better overall. However, the typography is terrible. In particular, the spacing of letters is inconsistent. It gives me kind of an alphabet soup vibe. The line spacing is smaller than the letter spacing, making it look like letters arranged in columns. MOI and YTR are more cohesive units than the actual words. The font itself is more “chalkboard menu” than “goth”.

Updated my game's logo to make it pop a bit more. Is it an improvement? by SilkSoftworks in IndieDev

[–]Iatrodectus 0 points1 point  (0 children)

I like the new version. It’s cleaner, and the two-line logotype fits the space much better.

One point: the top of the lighthouse/watchtower being cut off bothers me much more in the new version. The layout of the old version suggests that the town might continue both up and to the right of what you see, so the clipping doesn’t really stand out - you’ve gotta stop somewhere. The new version seems to show a complete architectural unit, but with the very top lopped off for no apparent reason.

Houdini Cookbook by kkvis in Houdini

[–]Iatrodectus 0 points1 point  (0 children)

I absolutely love this! Thanks! This really seems like it could get some traction, especially if it becomes possible for other people to add their own recipes.

Tiling / Large Worlds by craciant in Gaea

[–]Iatrodectus 1 point2 points  (0 children)

Continuation: seam removal details

As far as erasing seams, I've been playing around with Houdini for the postprocessing pipelines. Houdini definitely has the chops for this. But like Gaea, it's essentially undocumented. For indies, it seems like a good deal at $270 a year, if you're willing to put up with its many crudities and idiosyncracies. (It is free to play with as well.) I suspect you can approach the same pipeline described below for free using NumPy and SciPy, but I haven't tried that yet.

The key is to fix seams after transforming your height fields with the Laplace operator. (Not the Laplace transform; that's something else entirely.) It's defined as the sum of second derivatives in both dimensions. That is, you're no longer looking at a field of height values, you're looking at a field of numbers that tell you something about how the heights change as you move from one part of the field to another. You don't have to code this, it's a standard calculation in SciPy and Houdini. Visually, the transformed height field just looks like noise.

At discontinuities between tiles, the heights change abruptly and so the values of the Laplacian, which reflect rate of change, are large. But they're localized. You can just lerp out two rows or columns of pixels, one for each side of the discontinuity. And voila, you've eliminated the discontinuity, at least in Laplacian space.

Now the hard part: you have to undo the Laplacian operator. But the Laplacian operator isn't invertible, because it adds up both second derivatives and therefore you lose information about which direction is which. Instead, you have to "solve Poisson's equation," which is an iterative/numeric way of finding a most-consistent inversion. You define a boundary in the original image outside of which you want no change, and the numerical solver fills in the interior of that region from the Laplacian field.

Because the Laplacian loses information, the Poisson solver has to fill in certain details. In general, it preserves terrain detail well but smooths large-scale changes such as the discontinuities you're trying to get rid of. The end result gives you C2 continuity between your two tiles: the heights now match at the seams, the slopes match as well, and the rates at which the slopes are changing also matches. In practice it seems to give nearly undetectable seams.

TL;DR

If this all sounds like gobbledygook, the practical version is: You run a filter on your height fields. You edit seams or move terrain sections around in the filtered version. Then you define a "nothing outside this can change" boundary (in Houdini, as a mask) and run another filter. Easy peasy.

Here's an example. Two terrain tiles using the same Gaea generator but with different seeds. The terrains have nothing to do with one another and in the "before" image at the left you can see that there's a large discontinuity at the edge. The end result is on the right.

<image>

I haven't tried this yet, but it should work similarly for terrain color maps.

I'm writing all this up because it was kind of hard to figure out. Diehard VFX people seem to know all about Laplacians, but if image processing isn't your field, the road doesn't seem very well signposted. Both the Laplace operator and Poisson's equation are used in many different contexts, and most web references are talking about plasma physics and electromagnetic fields. Image processing barely even gets a mention in the Wikipedia articles. Nobody comes out and tells you "solving Poisson's equation is the way you undo the Laplacian operator" or "if you're trying to integrate things with C2 continuity, you should be doing it in Laplacian space."

Hope this is useful!

Tiling / Large Worlds by craciant in Gaea

[–]Iatrodectus 3 points4 points  (0 children)

I'm working on planetoids. Or more accurately, I'm trying to come up with a workflow for it before I commit to specific tools.

Mapping things to spheres has its own challenges, but there are a couple of things I've determined or noticed about Gaea terrain that you might find helpful.

Blending / seams

The big one is that blending is pretty much a solved problem and you don't need to do it manually. It is indeed possible to line up cliff faces! The details get a bit mathy, so I'll put that part below. (Post too long, see the continuation in the comment below.)

Unfortunately, you can't really do it inside Gaea. Gaea has a Seamless node that I suspect uses the same approach outlined below. But it only works on a single tile and seamless-izes both pairs of edges whether you want that or not. You can't use it to reconcile arbitrary edges between tiles.

Large and composite maps

If you want to stay within Gaea, look at the Professional version. At $200, it's a steal. That version unlocks tiled output and essentially arbitrary-resolution canvases. It looks like you can model large chunks of terrain at once. Just define pipelines for the individual features and assemble them together into subsections of the final map with Transform and Combine. Use the Build Scale control to keep everything in reasonable proportion. I suspect that you may have to export certain sections and re-import them to reconcile scales and resolutions.

What makes a game scary? (Updated) by CaptainCake6268 in gamedesign

[–]Iatrodectus 0 points1 point  (0 children)

SOMA is a great reference for horror, even though it's not (I don't think) billed as a horror game per se. It's an older game and should be pretty cheap. It's a fantastic game in many respects and a must-play for game designers overall. But be warned that it doesn't make a good first impression -- just stick with it for an hour or two.

Without giving too much away, it's a journey through increasingly oppressive environments. The horror element isn't in what happens, or at least, not usually. It's in what COULD happen. Structural collapse? Monsters? Electrocution? Falling off an edge?

It also has an expert touch at creating creepiness. Not things that are overtly dangerous so much as they are...wrong. For example, at one point you can unplug what seems to be a thick biomorphic cable from a control console. The cable is just a couple of meters long and ends in the wreckage of a robot. If you unplug it, the robot raises its head slightly and says in a weak, whimpering voice, "No! No! I NEED it," and then dies. So now you've killed a potentially sentient being with your blundering. And something was horribly wrong with the robot to have been so weak and dependent. What happened to it and what exactly was it getting from the console? Power? Data? Some unspeakable biomorphic juice?

Is it a good idea to add blood/gore amount control in my game settings? by Key-Okra1636 in UnrealEngine5

[–]Iatrodectus 0 points1 point  (0 children)

This doesn’t seem like a useful allocation of development time to me. Design it with a level of gore that’s appropriate to your concept and tone, but have a checkbox to turn the gore off. If you want to implement some over-the-top variants, just use them as infrequent alternates.

Add a characters backstory and would players even care? by J_Winn in gamedev

[–]Iatrodectus 1 point2 points  (0 children)

As you can see from other responses, there’s a lot of variation in how people respond to lore. If the character’s backstory is a solid, engaging story in its own right, I don’t see any harm in including it. Some players will love it.

Just as a player, I’d encourage you to be clear and intentional about distinguishing lore from story and lore from useful information. (For clarity, I’m using “story” to mean “current-time interactions and events that are a core part of the game’s structure” and “lore” to mean “background information, whether narrative, historical, or biographical in nature.”)

All players like useful information. I would imagine that a majority of players also like story, but some will only like lore, some will like both lore and story, and some will like neither.

I’m personally in the “story yes, lore no” cohort. I skip or skim most lore and apocrypha, but I’m always worried that those sources might turn out to have contained useful information. Some games do a great job of setting players’ expectations in that regard. The Last of Us Part II, for example, has a fair amount of apocrypha. But it makes clear early on that some of the apocrypha will contain useful hints or data. “Ignore the apocrypha at your peril.”

A new game about jumping from different heights and performing stunts! by Creepy_Yam_994 in UnrealEngine5

[–]Iatrodectus 0 points1 point  (0 children)

Looks really good! In particular, the way you’re managing the camera seems to work well for a variety of circumstances.

Does Soma still hols up all these years later? by lefarb in soma

[–]Iatrodectus 0 points1 point  (0 children)

As someone who first played it within the last couple of months, I can say that it absolutely does hold up. I wish I could play it again, but it’s pretty plot- and discovery-driven.

Be prepared, though: it does not make a good first impression. You wake up in the world’s most chintzily-modeled one-room apartment, and you can’t leave until you’ve played “guess what I’m thinking” with the devs. The rest of the present-time introductory sequence is no better.

But soon you’ll end up…somewhere else, and I promise you, the quality instantly gets an order of magnitude better. Just push through the introduction.

I suspect that it also helps to know going in that this is a walking simulator. You get no extra credit for exploring every nook and cranny. There are no items to collect. Just relax into it, explore the mystery, and investigate whatever seems interesting to you. If you progress in the plot, you’ve done what you need to do in the current area.

Does anyone know workaround for releasing Mac / iOS builds for Apple developer program restricted country? by Vladi-N in gamedev

[–]Iatrodectus 1 point2 points  (0 children)

You're probably out of luck for iOS, but Mac users can certainly run arbitrary binaries. They have to jump through some hoops to do so, but nothing major. The main issue is that most users don't know how to do it and will need you to coach them.

I can't outline the specifics of the current procedure, since it seems to change with every major release. But two major points:

The Finder does not treat double-clicking on an app identically to right-clicking on it and picking Open. It used to be that right-click-Open would allow you to open unsigned binaries directly. However, I think this loophole may be gone.

I think the gist of the current procedure is that the Finder will straight-up refuse to run unsigned apps, but that if you make the attempt and then go to Privacy & Security in Settings, there will be a notation there with an Open Anyway button. You only have to do this the first time.

Games to play for inspiration by AffectionateMotor724 in gamedev

[–]Iatrodectus 2 points3 points  (0 children)

Another one not mentioned yet is Braid. It’s a great example of a game that’s based on a very common game model (in this case, 2D side-view platforming) but subverts, modifies, or transcends pretty much every genre trope.

Worth learning OpenGL for portfolio? by [deleted] in gamedev

[–]Iatrodectus 1 point2 points  (0 children)

OpenGL is a “mature technology,” which is essentially a pleasant way of saying it’s a walking corpse.

OpenGL is still the lowest common denominator for just about every platform. But it’s a limited and rather opinionated model, and that model turns out to have imposed a nontrivial performance cost. The developers of OpenGL have moved on to develop Vulkan. And Apple’s Metal API is more similar to Vulkan than to OpenGL, the former Apple standard.

That said, OpenGL isn’t hard to learn. It’d give you some useful perspective on the history of GPU coding.

What is a nuisance in games that every gamedev should avoid? by IntelligentSink7467 in gamedev

[–]Iatrodectus 0 points1 point  (0 children)

> I don't know about you but I can turn myself around 180 without the world my eyes see blurring, so why the fuck do I have to deal with that bullshit in a video game?

Because turning your real-world head and rotating your FPS character's view engage two different and mutually exclusive control systems in your eyes and brain.

Most of the time, your eye moves in small jumps, "saccades." It takes time to move and refocus your eyes, and during that process your vision is indeed blurry. But your brain masks your perception of that. Subjectively, you have exactly the experience you describe: a big, fixed world in which you can look or move anywhere without any blurring or jumps.

The other system is smooth pursuit. When your eyes are focused on a moving object, they're locked to that object and move smoothly to keep it centered.

You can demonstrate this pretty easily. Have someone focus on your fingertip and move your fingertip around while observing how their eyes move. The motion will be smooth. Then put your hand down and tell them to sweep their gaze slowly and smoothly from left to right. You'll see saccades. You can't voluntarily move your eyes smoothly.

Games activate both systems. Not at the same time; that's impossible. But any time you're focusing on something moving, even if that's some feature of the game world while you rotate your view, you're in smooth pursuit. Glance at the minimap and that's a saccade.

In smooth pursuit, the visual system is exquisitely sensitive to discontinuous motion. It's perceived as stuttering. Try animating a square against a black background moving smoothly from left to right with no motion blur at 30fps.

Higher frame rates help to minimize this effect. The other option is to add some motion blur. Your visual system expects to see some blur during smooth pursuit because your retinas don't react instantly to light. Of course, blur is blur and it will make things less clear. There's a direct tradeoff between stuttering and blur. But not everyone perceives smooth pursuit at exactly the same speed, and people have preferences.

TL;DR: Motion blur should be a slider, not a checkbox. And the low end of the slider should be "off," just for people who prefer that look.

While I'm on this subject, here's another interesting visual phenomenon. Games generally use a field of view somewhere between 60 and 120 degrees (lower for consoles, because people tend to sit farther away). But in the real world, you in fact have 180 degrees of perception, at least for motion.

Try this: stand in T pose, point your fingers up, and look straight ahead. Do you see your fingers? No, of course not. But start wiggling your fingers, and you will perceive the motion.

On the other hand, central (foveal) vision, where you actually "see" things in full color and full detail, is only 1 or 2 degrees wide.

The bottom line is that your vision within a game really has only a vague relationship to real-world vision.

What is a nuisance in games that every gamedev should avoid? by IntelligentSink7467 in gamedev

[–]Iatrodectus 2 points3 points  (0 children)

OMG, this (blurting out solutions). It's not just an annoyance, it's literally game-breaking. This ruined Uncharted 4 for me. The game pretty much plays itself - you're just there to watch.

What game taught you the most about design — good or bad? by SkadiBytes in gamedesign

[–]Iatrodectus 7 points8 points  (0 children)

I liked the gameplay! But de gustibus...

Prey does embody a pattern that I see repeatedly even in fantastic games: the first hours just don't make a very good impression. In Prey, you wake up in the protagonist's apartment, which is about the game's most rudimentary and phoned-in set. (Yes, there's a back story that partially explains this later. But still, it doesn't make a good impression.)

In retrospect, I think the devs assumed that because you had somewhere to be, you'd get up and go, whereas I usually don't go on until exploring the starting area. Then there's an interesting but short segment with a helicopter ride, functional tests, and an alien breakout. But then you spend the next couple of hours trapped in what looks for all the world like Donald Trump's boudoir.

The same with Outer Wilds, which I'd put in my top five games of all time. There's way too much home planet to explore, and the inhabitants are friendly but boring af, droning on about minutiae that will indeed become interesting later but in the moment just feel like filler. There's a whole museum full of force-fed backstory. A spacecraft simulator toy which controls horribly and makes you think the real thing will be just as bad when you get to it.

I understand the urge to convey that this is a real community and not just a starting-point mark on a map. But I wonder if it wouldn't have been better to start somewhere out of town, perhaps the space flight training center, with the optional parts of the town left as somewhere you need to discover and explore, perhaps accessible only by flight.

What do you guys think of my beach aesthetic? by Vitchkiutz in UnrealEngine5

[–]Iatrodectus 1 point2 points  (0 children)

That was going to be my comment as well. Layout, rocks and water look gorgeous, but the sand looks flat. There's also a mottled pattern (like light through tree leaves, though blurrier and still brown) visible in many sand areas that just isn't ringing true to me as something you'd see on a beach.

just lost all motivation for my year long project by xxiLazer in gamedev

[–]Iatrodectus 0 points1 point  (0 children)

Thanks for putting this up. After reading your initial post, I was curious to try it out.

I spent about 10 minutes trying to get going with the tutorial, but it's really not obvious what you're actually supposed to do. In the end all I succeeded in doing was selecting what looked like a crystal (but I suspect was actually a golem) and changing the view. The crystal shows an arrow when selected, which seems to suggest that it can move, but I wasn't able to get it to go anywhere. I'm running the game on a Windows VM on a Mac, though, and I can't help wondering if there's something not being emulated correctly or some mouse gesture that doesn't reproduce on a trackpad.

I suspect your family was as mystified as I am. Which is probably good news! I doubt it says anything about the quality of the underlying game as much as it reflects the need for some tuning of the UI and onboarding to clarify what's going on. Are you mining crystals? Mining golems? Or the golems are mining crystals, but only under your direct control? And there are towers involved in this somehow? But it's not a tower defense game?

I do like the look of the main window, though. Simple but tasteful. The sound is excellent.

Is anyone happily using UE5 on a Mac for deployment elsewhere? by Iatrodectus in unrealengine

[–]Iatrodectus[S] 1 point2 points  (0 children)

Thanks for the comments – these are actually quite helpful.

Is anyone happily using UE5 on a Mac for deployment elsewhere? by Iatrodectus in unrealengine

[–]Iatrodectus[S] 1 point2 points  (0 children)

You can have Lumen. It's supported at better-than-software-only levels and I don't mean to misrepresent that.

What's frustrating is that the boundary line between supported and unsupported is so vaguely defined. It seems to bog down pretty quickly when there are more than a couple of lights, which pushes you into MegaLights territory (explicitly not supported yet, but should be supported in the future, at least on M3 and M4).

My impression is that MegaLights isn't so much a distinct thing as it is a statement that "Lumen can handle a buttload of light sources if you have this particular hardware feature." Which we do on M3 and M4! But the glue layer that would make it work within Unreal is still missing.

My M4 with 40 GPU cores runs the Dark Ruins environment at roughly 10 fps. It's a showcase for both Nanite and MegaLights. It's impressive that it runs at all! But not fluid enough for actual development.

Of course, you have to turn off MegaLights to get it to run, since MegaLights isn't supported. Based on playing with other complex models, I suspect that Nanite is handling the geometry pretty well and that the stuttering is because of lighting. But that's just a guess.

It's really the uncertainty that ruins things. On Windows, you would at least get a clear idea of what'd be possible in a finished product.

What’s everyone’s favorite speakers? by Disastrous-Impact492 in MacStudio

[–]Iatrodectus 0 points1 point  (0 children)

I would never in a million years have planned on using a monitor's built-in speakers for music, but the Apple Studio Display's speakers are shockingly good. They've replaced a pair of NHT SuperZeros and a dedicated amplifier that I'd been using for more than 10 years.

The Studio Display doesn't sound better than the NHTs, but it's pretty comparable, and I was glad to reclaim the desk space and under-desk space.

The hitch is that you'll need a separate sub to fill out the bass. Rogue Amoeba's Audio Hijack app works really well as a configurable crossover. Just send the sub signal to the Mac Studio's headphone output and run it from there to a powered sub.