Posts RSS Comments RSS Del.icio.us Digg Technorati Blinklist Furl reddit 77 Posts and Comments till now
This wordpress theme is downloaded from wordpress themes website.

Fast Forward (Time Warp)

When playing the physical board game, we found that there are many times when…  If Zargon doesn’t have an upcoming turn, then the optimal (and often obvious) move for the Heroes is often to do something tedious, which drags out the quest.  So to solve the problem, we sort of fast forward through the Hero moves (when Zargon doesn’t have an upcoming turn or potential event/trap trigger).

For ex, when a room is empty and the player wants to reposition the heroes before we search for treasure.  Or we want to reposition the heroes before opening a door.  Or before opening a door, we want to (roll move, skip turns, repeat) until we roll a 12 (two sixes).  Or when walking down an empty hallway (there’s no monsters, we already searched for traps), it’s gets tedious to have each Hero roll, move, end turn, repeat.  In these scenarios, fast forwarding (compared to going through the motions) doesn’t change the decisions/outcome made by the player; it just makes these parts of the game less tedious.

When play-testing the video game port, I ran into the same concern.  So I’ve added fast forwarding logic to make the experience smoother (less tedious).  So far what I’ve implemented includes:
) FastForwardIsAllowed() – checks whether fast forward is allowed.  Currently it just checks (are there any spawned monsters) and (is fast forward blocked by a special event, because certain quests have events that prevent fast forward).
) FastForwardIsAllowed() => Roll auto 6’s for move.  Skips dice roll sequence (physics/animation).  This simulates (move roll, end turn x4) until all 6’s is achieved.
) FastForwardIsAllowed() => Don’t gray out Move/Action.  This simulates (end turn x4) to get back to the current Hero’s turn.

Implementing these two fast forward scenarios dramatically improves the experience.

An additional fast forward idea (I didn’t implement it yet) is:
) FastForwardIsAllowed() and there’s no traps (or unsearched squares) in the way => allow Move warp

image

map bounds (wooden exit door)

Expansion maps starting with Kellar’s Keep and Witchlord have an alternate exit.  Instead of the staircase, you can exit on the edge of the map through a wooden exit door.  You can also enter the map via a metal entrance door.

I refactored the array bounds from (0-25,0-18) to (0-27,0-20) so that we can have a map border to let heroes enter/exit from map edge.  This allows us to use the existing move (and path finding) logic.  Later I will extend this with a special case such that walking through a wooden exit door exits the map (ends the quests).

image

UI tweak atk/def

I tweaked the atk/def UI such that the display is a little easier to read (and takes up less screen space).  Previously the UI displayed each defense die and each attack die.  Now it just displays the total attack, total defense, and resulting damage.  For attack, that’s the number of skulls.  For monster defense, that’s the number of black shields.  For hero defense, that’s the number of white shields.  Damage is max(attack – shield, 0).

image image image

Non-Random Mode Ramblings

HeroQuest has a lot of randomness from dice rolls and card drawing. It’s a core part of the fun, though it also makes the game heavily luck based.

I think it would be interesting to have a non-random mode where dice rolls and card draws are pre-determined. In that case, you win or lose entirely based on the choices you make (rather than on luck).

For the physical game, the dice rolls mesh well with the casual style of the game. But for a single player video game port where the levels are more like puzzles, I think the non-random mode is better. Non-randomness is also arguably better for a PvP competitive game (like Chess or Go, or an esport such StarCraft 2).

An authentic way to do a non-random mode is to make the results of each die roll sequence equivalent to the average (of infinity rolls). An atk def sequence is A attack dice followed by D defense dice. In that case, there’s 6^(A+D) possible rolls. We can iterate through each roll and add up the result.

I initially wrote C++ UE4 code to do that using TArray. It worked great with 2 or 3 dice, but started to get slow around 8 or 9 dice. Suppose 9 dice took 2 sec, then 10 dice => 12 sec, 11 dice => 72 sec, 12 dice => 72*6/60 = 7.2 min. In that case, we’d need a pre-computed table of values. If we allow up to 10 attack dice and up to 10 defense dice, for both hero and monster defense (white or black shield), then lookup table would be 10*10*2 = 200 entries.

However, even generating the lookup table offline would take a long time. If 12 dice takes ~7 min, then 20 dice would take 7*6^8/60/24/365 = 22.37 years. Or 16 dice would take 7*6^4/60/24 = 6.3 days. Or 14 dice would take 7*6^2/60 = 4.2 hours. The most attack a monster has is 6 dice. The most defense a hero has is plate mail + helmet + shield + rock skin = 7 dice, or 8 dice if we allow Dark Company’s Ring of Brilliance. So 6+8 = 14 dice total.

Consider the following (11 means atk roll 1, def roll 1) (where 123 is skull, 45 is white shield, 6 is black shield):

11 12 13 14 15 16
21 22 23 24 25 26
31 32 33 34 35 36
41 42 43 44 45 46
51 52 53 54 55 56
61 62 63 64 65 66

I won’t get deep into for this this post, but I notice a pattern. We could skip rows 2 3 5 because (2 3) is a copy of (1) and (5) is a copy of (4). So I suspect there’s a way to optimize the algorithm so that it’s faster than 6^N.

A less authentic way to remove the randomness is to redo the hero/monster stats such that they are designed for simpler non-randomness.

Overall I like the non-randomness idea, but it strays far enough away from authentic HeroQuest that maybe I should save it for a HeroQuest-inspired game, or it can be an enhancement to consider later (a stretch goal after everything else is implemented).  In that case, we could have a default authentic mode that uses dice…  And a non-random (non-luck) challenge mode without dice.

Non-random mode could also be used for a multiplayer PvP variation.  A non-random PvP mode sounds really cool (a turn-based esport).

VR UMG menus

Here’s a couple screen shots showing the game menus in VR displayed on an actor (instead of screen space HUD).

I also fixed more corner cases related to Pass through Rock, movement, and UMG menus.

image image

Spell Menus (and more)

Justin implemented spells a while back, but this is my first time posting it in a video.  UMG menu system for selecting a spell.  Each of the 12 hero spells (original quest book) is implemented.

Other recent changes:
* More fixes related to opening doors, the move system, and path-finding.
* UMG menu system now skips disabled (grayed out) buttons.
* When there’s no monster’s spawned, Move rolls auto 6’s.  I think of this as “fast forwarding” because the player could skip turns and keep rerolling until they get 6’s.

Body HUD, misc

Another good week of progress (part-time):
* VR: a little more progress
* Move system: refactor / fix / enhance
* Hero Body HUD

With hero Body HUD I ran into a good use for shared_ptr.  At first there was a bug when displaying a dead hero’s health.  When any figure dies (hero or monster), the corresponding HqSpaceOccupant is deleted, which deletes the pointer to the HqFigure (HqHero or HqMonster).  We still had another pointer to the HqHero for the HUD, but it was now pointing a deleted object, so the HUD displayed –35 (instead of 0) Body.  I fixed this by using using shared_ptr.  I suppose a messier way to do it would’ve been to have HqSpaceOccupant dtor conditionally skip deleting its figure when the figure is a hero (HqHero).  The video lets heroes die to show the bug fix.

The video also shows the latest Move system with mouse input and arrow key input.  For debugging, the hero rolls 255, which is why there’s so many red squares (otherwise the game only displays valid Move spaces).

The current turn order system (including the Body HUD) lets you (in code as there’s no UI for it yet) use any order for the heroes.  The HUD assumes four heroes, though I don’t think it would be much work to make it N heroes.

More VR Setup: a third camera

I did some additional basic steps to support VR.  Previously we had two cameras – the main spring-arm camera that follows an invisible pawn, and a fixed birds eye camera (for orthographic projection).  I added a third camera for VR.

With the third camera, we’re able to look around and see the motion controllers…  I think for VR, the camera control code will be separate from the main camera.  No auto camera moving.  Isn’t attached (via spring arm) to an invisible pawn, so panning etc will also be different.

Brass Tactics is one reference for how motion controller camera movement can work.  Hold down (a) grip button(s) to drag the camera/world.

image image image

https://docs.unrealengine.com/en-us/Platforms/Oculus/HowTo/SeatedCamera

https://docs.unrealengine.com/en-us/Platforms/VR/MotionController

HeroQuest: Gold Spreadsheet

I made a spreadsheet for gold and special treasure.

Because we’re replacing (cross-quest disposable items) with reusable items, the only thing that can vary across quests (in terms of Heroes “leveling up”) is gold.  I’m enthused about creating a challenge mode where you can warp to a particular quest and try to beat it, with an increased difficulty mode, as an isolated challenge/puzzle (aside StarCraft 2’s campaign has this).  So even getting a variable amount of gold per quest, that you carry cross-quest, doesn’t necessarily mesh well with challenge mode.

We could have two modes – a campaign mode (where you save gold across quests) and a challenge mode (where you get a pre-determined amount of gold at the start of a particular quest).  And if we go that route, then I ‘m tempted to reinstate (cross-quest disposable items) for campaign mode.  But I find that idea kind of messy.

I also have concerns about the fact that your theoretical max gold (for each quest) is an absurdly rare occurrence.  The idea of someone playing through each quest ad nauseam (to get the max gold for that quest) makes me cringe.

I prefer to only tweak rules when it’s fixing a design bug (using the term “bug” rather loosely).  And I’d like to make challenge mode a core focus.  But even within those parameters, my latest design tweak is…   Each quest gives you a predetermined amount of gold.  Treasure card gold only lasts until the end of the current quest, and it can be used (when there are no monsters in line of sight) to buy treasure card potions (that last until the end of the quest).

As the heroes progress through each quest, they “level up” by finding new perma-items and by getting gold (which they can use to buy perma-items).  So I created a spreadsheet to analyze gold earned relative to maxing out what you can purchase.  The general idea is to make “leveling up” gradual.

With 70 quests (65 if we count: Dark Company as one instead of four, Mage 9 & 10 as one instead of two, Frozen 9 & 10 as one instead of two), it got a bit tedious, but the spreadsheet is useful to help balance the progression of (Heroes “leveling up”) versus (quests increasing in difficulty).

One thing that stands out is that the cross-expansion balance doesn’t seem well thought out.  For example, Mage in the Mirror has enough gold (8200 special + up to 2325 from treasure cards) + special treasure, that if you started from scratch, you’d still have maxed out armory gear by about Quest 5, and plenty of one time use potions.  As another example, The Frozen Horror Quest 1 gives the Barbarian (crossbow, longsword, shield) which suggests that you’re starting from scratch.  Yet the expansions don’t seem to be designed for you to start from scratch, because some of them give you gold rewards at the end of the last quest.  So I feel very justified in using the term “design bug” in describing my progression balancing concerns.  As much as I am aiming for authentic/nostalgia, I also want to fix these design flaws.

Another design idea this gives me is to have a campaign mode where you start each questbook from scratch (with starting equipment).  In that case, a more vanilla rules interpretations would be okay, such as…  Allow heroes to keep special treasure healing potions across quests.  Allow heroes to have multiple copies of a weapon (including the crossbow) (if they can afford the gold).  Looking at the spreadsheet, I don’t think the difficulty would be too high…  At first glance, Wizards of Morcar Quest 1 looks impossible (13 chaos warriors, a gargoyle, a boss), but not if you use European stats (monsters have 1 body).

Here’s the spreadsheet: gold

VR mode for HeroQuest UE4

My HeroQuest UE4 sabbatical went on longer than I’d like, and I’m hoping to do some more HeroQuest UE4 development – starting with VR support.  Dec 2017 I finally got an Oculus Rift (which required a CPU and GPU upgrade).  Last night, I was inspired to try it with HeroQuest UE4.  It worked without much effort, but clearly there is work to be done even for just basic usability.

I found I’m quite vulnerable to VR sickness issues including: disorientation, sweating, nausea, and headache.  I had to close my eyes when I do “End Turn” and the auto camera fluidly moves to re-center on the next game piece.  Trying to use the WASD camera (panning) also gave me immediate motion sickness.  Teleporting is safer for VR.  Zooming and Tilting seemed harmless.

The UMG Blueprint Widget is stretched, and it draws over both eyes as if they are one screen (it ignores stereo rendering).

Keyboard and XBox controller input works as expected.  I can highlight things with the mouse even though the mouse cursor is invisible (very strange).  Looking at actors (eg the red/yellow highlight actor during Action –> Move) also triggered a mouse-over.

Some basic TODO items include:
* Cameras: default position, disable auto cam moves, VR-specific camera improvements
* UMG menus need VR integration
* VR motion controller simple mode analogous to xbox controller; VR-specific controls (teleport, 3D interactions)

The high level goal is to support each platform.  UE4 gives most of this for free, but I still need to implement UI differences for desktop, tablet, console, and VR.  Actually because this is a board game, I suspect AR/MR may be the coolest platform, but maybe that’s for 2019.

image image image image image

PS: if someone wants to contribute (help with development and implementation), then please contact me 🙂

Next Page »

Check out best marijuana drug testing website.