Game Theory: Problem on Common Knowledge

enter image description here
Please refer to the example problem from the image attached. Can someone explain why only on 5th day all mothers cry? [Is it something related to ‘necessary’ & ‘sufficient’ conditions?]

Principle of least privilege – High scores for a game database

I’m in the process of developing a game for a client.

I need to store high scores for this game, indicating the player’s rank in their chosen game version when the game ended. Currently, on game over, I stop the game loop, store the final game state in a table, and if the player got a better score for this version or does not already have a high score for this version, store the high score in a high scores table.

I am essentially retrieving all entries of the high scores table for this player ID, joining on game version, and checking if the version of the new game is the same AND if the score is better. This means that a player can only have entries in the high score database equal to the length of how many game versions there are – I overwrite the entry for the updated version.

Clientside:

if game_over and game_won: // These are separate properties of the game
    server.update_high_score(game_state, player_id, final_score)
    // Above function performs logic on serverside to check if a highscore exists already
    // and other necessary checks.

My problem is that even if I protect the database, only allowing for an update to the high scores table IFF you are the authorized player of the game, you could write to the database by simply running a cURL with some new data.

Now, the ‘attacker’ could then retrieve the ID of the high scores entry they wanted by simply observing the network logs from the backend, creating a Faux Gamestate Object, and attaching a score they want.

I suppose I could run the high score update logic from a CRON-scheduled function, queueing high score updates after every game played and running a batch job. However, this removes the required immediate response of your game version rank after a game finishes.

I’m also thinking about race conditions with the current solution, because if X players happen to simultaneously get the same rank, I have no idea of how DynamoDB handles that interaction (it not being ACID, I think?).

Thank you, so much!

unity – My game takes up a lot of memory space

One thing to note, png/jpg/etc are on-disk compression. Assets must be decmopressed into ram as the computer cannot render those compressed versions directly. Formats like DXT are designed for that.

Also, I wouldn’t worry too much about that size, but if you want, you should use a profiler to analyze the memory usage of your app. (Unity might have a memory profiler built in, I’m not sure)

Parallel Space game progress file location

I’ve been using parallel space on my Android device for a while now but it’s been having an issue with logging in to the Google Play services and thus backing up my game progress becomes hectic. I’d like to know where the progress files are stored in my file manager so that I can cut and paste it manually. Thanks in advance.

dnd 5e – Is there a spell, item, or other game feature that would give my character insight to an enemy’s weaknesses and resistance?

There are several possibilities to get this information.

1. Hunter’s Sense

A 3rd level feature of the Monster Slayer Ranger and the only ability I know of, that is explicit about those effects:

As an action, choose one creature you can see within 60 feet of you. You immediately learn whether the creature has any damage immunities, resistances, or vulnerabilities and what they are. If the creature is hidden from divination magic, you sense that it has no damage immunities, resistances, or vulnerabilities.

2. Abilitiy Checks

Intelligence (Arcana/Nature/Religion) can give you some insight concerning a creature. But it doesn’t give you a guarantee.

Arcana

Your Intelligence (Arcana) check measures your ability to recall lore
about spells, (…) the planes of existence, and the inhabitants
of those planes

Nature

Your Intelligence (Nature) check measures your ability to recall lore
about (…) plants and animals, the weather and natural cycles.

Religion

Your Intelligence (Religion) check measures your ability to recall
lore about deities, rites and prayers, religious hierarchies, holy
symbols, and the practices of secret cults.

But that involves only common knowledge about a creature’s stats. It involves no new knowledge about a creature, it just depicts your character’s potential knowledge about a particular creature. If your DM decides that your character never heard about that creature before, you cannot roll, of course.

3. Divination

Your magic and an offering put you in contact with a god or a god’s servants. You ask a single question concerning a specific goal, event, or activity to occur within 7 days. The DM offers a truthful reply. The reply might be a short phrase, a cryptic rhyme, or an omen.

It’s a bit of a stretch, but you could ask for example how you will defeat that boss to get a hint about their vulnerabilities.

4. Know Your Enemy

A 7th level feature of the Battle Master Fighter, that sort of solve your problem:

If you spend at least 1 minute observing or interacting with another
creature outside combat, you can learn certain information about its
capabilities compared to your own. The DM tells you if the creature is
your equal, superior, or inferior in regard to two of the following
characteristics of your choice:

  • Strength score
  • Dexterity score
  • Constitution score
  • Armor Class
  • Current hit points
  • Total class levels (if any)
  • Fighter class levels (if any)

game design – Mana, Backlash and Slots: how to limit a magic system

Generally, I encountered three big systems for limiting the amount of magic that characters can wield at a given time in my RPG career. Grossly simplified they belong to one of three groups: Mana-Systems, Backlash-systems, and Magic Slot-allotments. Of course these come at different names in other systems, but their ideas are there

Pay the Price-Systems aka “Mana” et al.

Mana systems generally come with a set number of magic points that can be spent on spells. Most spells take several of these points and balance the used amount with the power of the spell: the more powerful, the more points it takes. For example the-dark-eye-4 uses that approach. In call-of-cthulhu your price is sanity, making it almost-mana, and the life or stamina of a character also can step in as mana replacement in many other systems.

I think they offer a huge variety, as you can drain that mana pool with a huge variety of setups, but their main drawback is bookkeeping.

When most spells only cost a single point an that is not linked to a vital statistic, the system becomes pretty much a Magic Slot.

Magic-Slots

Magic-slots usually represent a single cast of a (baseline) spell. This makes tracking easier, no matter if you need to choose your slots first (as a dnd-3.5 wizard needs to) or can spend them willy-nilly as a l5r-4e shugenja. The downside I see is that we don’t get the same balancing fine thread screw as in a Mana-system but at increased usability.

Some variants also allocate levels to slots to try and balance the power of spells to their usage.

Fighting the Backlash

A totally different approach is gone in shadowrun: you can cast as much as you want, but each spell kicks you in your shins and can damage you. The premise here is, that magic has a Price of Power (TV-Tropes warning) – but there is a mechanic that allows you to resist that damage. It is somewhat related to Mana-systems in that you pay for magic with a statistic (typically health, stamina or sanity) but got a chance to resist that loss.

The downside here is clearly increased rolling but at the benefit of occasionally more magic. Or less. Or actually giving magic a proper risk.

The Balancing act

Now, with the basis out of the way:

What design maxims should determine a choice between those three systems (or alternatives)?

Are there inherent factors that make a magic-limiter system fit better to a specific approach to designing a game than others or does a specific magic-limiter system grow naturally from a specific approach to gaming?

Example questions that might help to answer what counts as a design maxim for this question:

  • Might X-system better suited for a simulatoric/dynamic/whatever approach to designing an RPG than a Y-system?
  • Can a goal of how the game is to be played or what stories should develop be the factor to decide what kind of system to choose?
  • Might dice/game mechanics make one system a superior choice over others?
  • What considerations in streamlining the game mechanics can sway the needle between magic-limiting mechanics?

list manipulation – Number guessing game to 1-100

My code is

DynamicModule({n, guess = 0}, 
    {
     InputField(Dynamic(guess), Number), 
     Dynamic(If(n == guess, "You won", "Try again")),
     Dynamic(n) (* for debugging *)
    }, 
 Initialization :> (n = RandomInteger({1, 99})))

but there are some problems. The number changes every time and doesn’t refer to “you came close” or “decrease” or “increase”.

I want to write code that directs me with hints. How do I do this?

dnd 5e – How should I play my character (who is motivated to betray the party) and keep the game fun?

It’s your character

As a player, you have a lot of creative control over what your character actually thinks and does. Several years of RPG experience have shown me that this can be a greatly effective tool. As a fellow gamer is fond of saying, you can paint almost anything.

Let me give you a few examples off the top of my head:

  • Maybe Asmodeus’s plan to achieve godhood actually requires that he
    be defeated twice over the span of 144 years. He was thwarted once,
    in the past, by a party not too dissimilar to yours, and now it’s
    your turn. Sixty-eight years from now, that’s when he’ll finally
    succeed.

  • Maybe that’s not actually true, but your character is convinced
    that it is, because someone with high influence posing as another
    worshiper of Asmodeus “let you in on the secret”, and now you’re
    actually working against your patron, but your character has just
    been duped.

  • Or maybe, Asmodeus doesn’t actually want godhood, but he needs to
    take a convincing stab at it, as part of a power play to gain
    influence over some other aspect. So he made sure there was a party
    out there strong enough to “stop” him, and he also made sure one of
    his trusted followers was in there, so that they actually succeed in
    stopping him. Devious devil, that guy.

Or maybe it’s something else entirely. The point is that, as a player, you need to work with the group, but that is (almost) never incompatible with whatever character framework you want to create. You just have to find the right character motivation that connects that framework to the group agenda.

But it’s the table’s story

Note that all of this is about how you the player view your own character. The actual fictional truth (so to speak) is largely under the GM’s purview and is, in fact, subject to arbitrary change until it is narrated at the table. But even if that narration contradicts what you had imagined, in my experience, it still remains possible to reconcile the character’s views with the actual fictional events without any fundamental change to his mental framework.

Naturally, you have nothing to lose in discussing all of this with your GM. It’ll make that reconciliation (and his job of managing the flow of the story) that much easier.

A caveat

I have tried this technique myself with great success. Many (most?) times, the motivations I decided internally ended up not clashing with the story at all. The few times that it did, we hashed it out at the table and the story became richer for it.

I have also seen it done by a few other players a few times, and I speculate that it’s happened a lot more, but because it’s simply a largely internal process, it simply didn’t come up.

Once only, I had a player that was unable to reconcile. From what I gathered from the discussion, that was due to them being much too invested in all the minute details they cooked up in their head. That player was left with a dissatisfied feeling about the campaign and his character, and ended up quitting shortly thereafter, even though everyone was more than willing to accommodate them.

So I guess the caveat is, when you (re-)imagine your character’s motivations, don’t conjure up too much detail, or you may paint yourself into a corner if they happen to clash with the story at the table.

game design – What is a factually optimized engine for JRPG development?

Game engines are everywhere. There are hundreds to choose and sift between that I can’t decide. I’m open to all suggestions, coding languages, and platforms. What is a factually optimized engine for JRPG development?

Note: this is not an opinion based question.

game maker – How to avoid the collision of objects that move along a path?

There are 2 cars (same object) that go through a circuit:

enter image description here

Consider that the white part is an intention that they avoid (it would be as if it were a wall). The black part (circuit) would be just illustrative, it is not an object.

In the program the room looks like this:

enter image description here

  • Green -> background
  • Red square -> car
  • Other light colored squares -> points that are followed by the cars (to go through the circuit)
  • Black square -> wall

The walls are avoided as follows:

mp_grid_add_instances(grid,obj_Wall,false);

In addition to the walls, I would like cars to avoid each other. I did it as follows:

repeat(instance_number(obj_Car)){
    i++;
    
    if(instance_find(obj_Car,i-1).id!=id){
        carOtherID=instance_find(obj_Car,i-1).id;
        mp_grid_add_instances(grid,carOtherID,false);
    }
}

It happens more or less like this:

enter image description here

Cars avoid the starting position of other cars, but I would like you to avoid the current position of other cars. For that, I put this part of the code in the step event:

mp_grid_add_instances(grid,carOtherID,false);

I tried some changes, with some conditions, but none worked. Simply buggy, cars even go through walls (something that shouldn’t happen, because I don’t even change anything in them).

Documentation:

https://manual-en.yoyogames.com/#t=GameMaker_Language%2FGML_Reference%2FMovement_And_Collisions%2FMotion_Planning%2Fmp_grid_path.htm&rhsearch=mp_grid_path&rhhlterm=mp_grid_path