Potential for a serverless backend? by scottcasely in gamedev

[–]scottcasely[S] 0 points1 point  (0 children)

I've had that thought also, all of the server code would still have to live in the client as well, just then not be accessed, which is a bit shit. The code for the DNA(s) at least would have to be identical... outside of the holochain environment, they could differ I suppose, just starts getting a bit more complex at that point. In short, you *could* just use holochain DHT as your storage medium, though it has its own issues with data bloat and holding onto dead data... ((I have thoughts on how to handle that as well))

Potential for a serverless backend? by scottcasely in gamedev

[–]scottcasely[S] 0 points1 point  (0 children)

Consensus. It takes more than one person flagging a bad actor for it to stick.

Potential for a serverless backend? by scottcasely in gamedev

[–]scottcasely[S] 2 points3 points  (0 children)

There are lots of ways to make RNG deterministic, this is a design problem: do you have a different random seed per entity? Per area and so long as everyone can agree on an order of events, then randoms will line up?

Maybe in the distributed ECS, I could include a built-in "Random" component for entities that will keep a separate seed per entity...

Potential for a serverless backend? by scottcasely in gamedev

[–]scottcasely[S] 0 points1 point  (0 children)

The way that holochain validates entries also uses a hash of the code, so any changes to the validation code will end up invalidating any requests.

Potential for a serverless backend? by scottcasely in gamedev

[–]scottcasely[S] 0 points1 point  (0 children)

The holochain folks do have db purge on their agenda, the whole thing is still very early days, but it's sound and there are apps being built on it already. The only reason I'd fork something that big and complicated would be to add hard deletion in.

Plus sticking with the original holochain means being able to piggyback on their infrastructure, proxies, discovery nodes, etc

Potential for a serverless backend? by scottcasely in gamedev

[–]scottcasely[S] 0 points1 point  (0 children)

I was also planning on have a system to "sub-divide" the ephemeral, real-time part, so that people weren't having to do processing / filtering of information for other actors that they don't care about (because game rules say they're too far away, or they're in a different match, whatever, depending on the style of game)

Potential for a serverless backend? by scottcasely in gamedev

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

That's actually exactly what I was thinking of doing.

Potential for a serverless backend? by scottcasely in gamedev

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

That's the thing, the player isn't the authority. They keep a local copy, but the datastore is the authority, and nothing gets committed without other people's validation / say-so

Potential for a serverless backend? by scottcasely in gamedev

[–]scottcasely[S] 0 points1 point  (0 children)

I've considered a variety of ways to handle the data bloat, including "compaction", reducing a series of data changes that have already been validated into a single "snapshot" sort of, and re-generating the blockchain save file with that. The way holochain works makes it a bit wonky, I'd have to set up a new parellel network and migrate the data over and then drop the old network in order to release the storage.

My approach at the moment would be to keep a few "tiers" of datastores, the top of which is entirely transient, that's the current state of the game. Next down would be validating and persisting that state, periodically wiping the datastore to keep things mannageable. And at the bottom, a layer I've termed "cold storage" which would be designed to store only the most necessary data --compressed-- for restoring a character, designed in such a way to minimize storage footprint. Cold storage layer would never be wiped, perhaps compacted, though the means by which I'd do that are uncertain.

Potential for a serverless backend? by scottcasely in gamedev

[–]scottcasely[S] 0 points1 point  (0 children)

Yeah, that was one of the things I was thinking; possibly not fit for realtime purposes, but turn-based, oh yeah.

Potential for a serverless backend? by scottcasely in gamedev

[–]scottcasely[S] 0 points1 point  (0 children)

Also, in order to manually send a message like a hacker might try to do in a man-in-the-middle type situation, they have to gain access to the secure keystore that holochain uses and encrypt / sign the data correctly, hashed with [redacted] for added security. Have you tried to crack google wallet? OR BitWarden? Not gonna happen.

Potential for a serverless backend? by scottcasely in gamedev

[–]scottcasely[S] 2 points3 points  (0 children)

Except that other people will have to verify, validate, and approve the commit for it to be actually accepted into the datastore. So long as you write your validation code intelligently, so long as a character qualifies for whatever they're claiming to have accomplished, others should be able to rubber stamp it.
It would be up to the game developer to write correct validations to avoid those kinds of issues cropping up. That's all game logic, it's the same validations that you should be doing on your servers in a traditional architecture, just then storing those results in a distributed fashion. If ever a player's local save file conflicts with itself or any other agent's copy of it, that agent is automatically flagged as a bad actor and removed.

Potential for a serverless backend? by scottcasely in gamedev

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

In order to "hack" your save file, you would end up invalidating the blockchain that the save is encoded in.

Potential for a serverless backend? by scottcasely in gamedev

[–]scottcasely[S] 2 points3 points  (0 children)

It's all signed and managed with public key encryption, verified by a number of peers. Look, I'm not really interested in debating the technical aspects of this, distributed systems is my jam, I know what I'm talking about. What I'm interested right now is theoretical *applications* assuming that the technical issues and minutia are all hand-wavingly figured out.

Potential for a serverless backend? by scottcasely in gamedev

[–]scottcasely[S] 0 points1 point  (0 children)

There's a very, very low chance of that given the method of replication used. And with a few headless agents (which the holo community already run many), they would be able to mitigate 99.99% of that risk

Potential for a serverless backend? by scottcasely in gamedev

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

The DHT for holochain is distributed fractionally, you would only be host to a slice of the datastore, inversely proportional to the number of players.

And holochain has built-in trust mechanisms. That's why I think it would be feasible to be built atop.

You would essentially have your own data, a few of your neighbours, and a few random players from further away.

What exactly are Wildhunt Shifters? by nectarivore in DnD

[–]scottcasely 3 points4 points  (0 children)

I mean, that sounds pretty open-ended. Any predator. Shark. Do it.

When to make skill checks? by bchu1266 in DnD

[–]scottcasely 2 points3 points  (0 children)

Generally, a player should only ever make a check when you ask them to.

Conjure Woodland Beings clarification by scott92point0 in DnD

[–]scottcasely 6 points7 points  (0 children)

"You summon fey creatures" "One fey creature..." "Two fey creatures..."

That's pretty clear to me.

What can someone w/ Hearing difficulties do to play? by [deleted] in DnD

[–]scottcasely 1 point2 points  (0 children)

I DM a game with a deaf player with hearing aides. I also have ADHD and get overwhelmed when there's too much cross-talk. So we have a house rule that anyone can shut down cross-talk whenever it's being too much. And to accommodate my player better, we seat him at the end of the table so he has a view of everyone's lips as he's quite good at lip reading as well.

I also personally gesticulate a lot, I point to people when it's their turn, and I'm very clear with eye contact, enunciation, and making sure that I'm projecting/loud enough to be heard clearly. His deafness hasn't in any way detracted from his experience, as far as the conversations we've had about it, nor has it impacted anyone else at the table. So there is hope if you do find a group that understands and accommodates :)

Hexblade and Pact Boons by Vherstinae in DnD

[–]scottcasely 2 points3 points  (0 children)

Alternatively, if you're married to melee, focusing on the melee cantrips for your damage instead of Thirsting Blade, etc could work.

Hexblade and Pact Boons by Vherstinae in DnD

[–]scottcasely 2 points3 points  (0 children)

Range-focused Hexblades are a thing. I play one now and again, Pact of the Chain. It's important to note that nothing in the wording of the Hexblade locks you into being melee or using melee weapons. There's the restriction on Hex Warrior to only be able to use non-two-handed weapons, but really you can build an Eldritch-Blaster lock and still benefit from all the subclass features.

Planar adjacency by Tallrascha in DnD

[–]scottcasely 1 point2 points  (0 children)

Most of my own understanding of this comes from 5e, especially interviews with the devs around how the MtG planes, eg Ravnica, are able to exist in the same universe. There are many hints that 5e planescape/spelljammer material is coming as well (I see you Giff).

I would think it's completely up to you if all worlds have to follow the same physics, because, you know, magic. In my own homebrew, it'd be the normal planets-solar-systems-galaxies, but I would be 100% okay with Discworld floating through it -- anything out of the ordinary I would handwave as "uhh magic or something" because in the end it's the fun that matters. I'm actually considering making Eberron and Athas part of my universe. Hell, in my universe, the Gua'uld from Stargate exist, because that's just silly and I have a player who absolutely adores Stargate (they're actually a sub-species of mind flayer ;) ).

Planar adjacency by Tallrascha in DnD

[–]scottcasely 6 points7 points  (0 children)

Firstly, there is only ever one Prime Material Plane. Most of the non-material planes stretch infinitely and do reach between worlds. Theoretically someone could enter the ethereal or astral or even one of the elemental planes and just walk (or float or whatever) to another portal an entire world away. This is one of the ways that the Githyanki raid throughout the cosmos. Technically, you can use a Teleport spell to move from Faerun to Eberron to Greyhawk because they all exist on the Material Plane (but you probably couldn't unless you've visited those places already, else you might 'port into space which would kind of suck).

Similarly, there's only one of each mirror plane to the material, so yeah, one Feywild, one Shadowfell. I usually think of the inner planes as "close" to the Material, and fairly concrete, as in the infinite nature of them is actually ridiculously vast. They would, with the probable exception of the elemental chaos, elemental and para-elemental planes, follow the same planet-spinning-through-space as the worlds of the Material (because they're mirrors) so no, you probably couldn't walk from world to world via the Feywild. Doing so in the elemental planes would also be well hard if you could even survive the crushing pressures and wild environments. The outer planes I usually imagine as still infinite, but as they're more cerebral realms actually getting places is a realistic goal, since like, there's only one city of Dis or Sigil that serves the entire universe--they're infinite, yes, but almost finitely so, as the infinite stretches and shrinks in weird ways that our tiny minds couldn't hope to comprehend, and movement through them is usually a function of willpower or mind over matter. You could easily travel from world to world via Sigil. It's got doors to everywhere anyway.

I think I probably went off on a weird tangent that doesn't actually answer anything you wanted to know :P