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

New Desktop: Ryzen 5950X or Threadripper 3990X?

My primary home development desktop is becoming an antique.  I have newer Android/iOS tablets and phones, Chromebook, Windows laptop, Kindle, Intel NUC mini desktop, etc.  A newer desktop and laptop at my day job.  A second (also old) Ubuntu desktop.  But it’s been over 8 years since I replaced my big desktop.

The motherboard is ASUS TUF SABERTOOTH 990FX R2.0 Socket AM3+ DDR3 SATA 6Gb/s USB 3.0 AMD 990FX ATX Motherboard, which I appear to have purchased in 2013 (how the time flies).  Over the years, I upgraded the RAM, GPU, CPU, hard drives.  Oculus Rift required upgrading the CPU.  The motherboard has a 5 year warranty (I specifically ordered components with longer warranties), but I still had to replace the motherboard one time.

The original SSD is only 222 GB, and as it filled up I started using symlinks to other drives (I have seven total).

It was always kind of slow for Unreal Engine stuff.  And I seem to have evolved a habit of keeping an increasing amount of stuff (on multiple desktops) open at all times.  I considered putting web browsing, chat programs, notes etc on my Intel NUC (remote desktop) then just use the main desktop for Unreal and games.  But probably the saner thing is to just buy a new desktop every 3-5 years such as 2017 when Ryzen first came out.

The obvious choice is get a 16 core Ryzen 5950X or a 12 core Ryzen 5900X with 32GB RAM.  Could definitely get something reasonably high end for under $4,000 (maybe under $3,000).  However, I might get a Threadripper 3990X (64 cores) instead.  It definitely seems like overkill (waste of money), but it sounds fun.

3990X was released Feb 2020.  I’ve been staring at rumors of "Threadripper 5000" series, but I don’t want to wait another 6+ months…

My old desktop with 16GB and 4 cores seems pretty weak for how I currently use my computer most of the time (especially when I use Unreal Engine).  I suspect 16 cores 32GB would be good enough.  So I don’t think I really have a good reason why I "need" a Threadripper with 64 cores and 128GB.  References:

The last two links give an example where Threadripper 3990X is worse than Ryzen 59050X possibly due lower clockspeeds – Cinema 4D Viewport Benchmark

Either way, I think it’s long overdue and will make it easier to do more stuff with Unreal Engine, Unity, etc.

 Cooler Master unveils cool AMD edition HAF 932 computer case | TweakTown

Falcon Northwest Talon Review: Threadripper 3990X Powerhouse - PC  Perspective AMD Ryzen Threadripper 3990X - Ryzen Threadripper 3rd Gen Castle Peak (Zen  2) 64-Core 2.9 GHz Socket sTRX4 280W Desktop Processor - 100-100000163WOF -

HeroQuest UE4 status and what’s next

Our current plans for HeroQuest UE4 are:
1) finish importing all assets and verify each heroscribe map loads as expected
2) complete the game enough that user can play through book 00 from quest 1 to 14

The next step after that would be:
3) complete support for quest books 01-07
4) polish the game with music, sound effects, maybe transition from board game art to something more like Gloomhaven on Steam

Given the effort and complexity to implement 3 & 4, our tentative plan is to just focus on 1 & 2.  But TBD.

If someone out there reads this and wants to contribute…  Maybe a hardcore game developer that’s a HeroQuest fan.  Or someone who wants to get some UE4 experience (even newbies welcome).  Let me know, and I’ll be glad to share the code and advise (or mentor) on contributions.  Click the contact me link.

Or contact me if you want to start a different UE4 project – that’s probably my next side project after HeroQuest.

HeroQuest lua scripting and assets

Recent changes include:
* Lua scripting from Spiffy
* Spiffy is working on importing expansion assets (and we’ve both done some related reorganizing of asset files)

After we complete importing assets, next on our list is:
* connect the assets via C++ to open each heroscribe map (for monsters this means with basic stats)


HeroQuest 30th anniversary reprint

Hasbro is releasing what appears to be a reprint of the standard game with basic expansions (Kellar’s Keep, Return of the Witch Lord).  From the description, it appears to be a reprint except that they removed Games Workshop IP – renaming Chaos to Dread (Dread Warriors, Dread Spells).  Replacing Fimir with Abomination.  I’m curious whether there are any other differences such as rules clarifications or balance tweaks – though at this point I’ll assume not until we hear otherwise.

The funding started this morning and it’s already at $857,000 out of the target $1,000,000.  That’s 5733 to 8600 copies pre-ordered in ~12 hours.  So I think it shows there is real interest in HeroQuest.


HeroQuest updates

It’s been almost 3 months since my last update.  We haven’t made huge progress but still chipping away at it:
* update to latest LuaMachine
* incremental UMG tweaks (lots of them) for new UI
* fix bug: monster line of sight was spawning other monsters
* more Lua from Spiffy
* add to inventory gold – Lua support
* wandering monster – find closest spawn square with path to hero

Meanwhile, I’m working from home for lockdown, and Spiffy is continuing to contribute while he takes classes.

Here’s a screen shot spawning the wandering monster Orc – which searches for the closest path from an open square to a hero:


UI redesign and more

With lockdown (and some recent vacation), we’ve continued progress on HeroQuest UE4 in the month of June.

some highlights
* specify map in map.txt; instead of having to recompile C++ to change maps for debug
* implement disarm traps: the last missing action
* support individual hero spawns in HeroScribe XML
* falling rock fixes (falling block) for corner cases
* migrate from vs2017 to vs2019, update to latest LuaMachine and UE 4.25.1
* start revamping the UI
* spiffy continues working on LUA transcribing for expansion quests (pending commit)
* banana (friend of spiffy) (college student) joined Discord chat; he’s setup and discussed some ideas for what he can work on

Here’s a preview of the new UI:


The big change is that instead of having an oversized horizontal menu that covers the center of the screen (that blocks WASD QE input), it’s a horizontal bar on the bottom middle of the screen. For controller input (tested with xbox 360 controller), you can use dpad to navigate.  Keyboard supports arrow keys or 1234567890 hotkeys.  We plan to replace the "1M" etc with icons for move, character sheet, end turn, attack, etc.

Lua Progress and More

In the past few weeks, Spiffy has done a lot of work implementing and testing a first pass of the per-quest Lua for 00-HQBase_US (the base 14 quests), and he’s started on 01-KellarsKeep_US and 02-ReturnOfTheWitchLord_US.  Spiffy has more of an art background, and he’s motivated to learn more code, so I’ve been working with him in Discord chat.  It’s also motivated me to do some review; for example I’ve started reading volume 1.  Actually, I’ve sometimes missed having study partners like I did in college and as a new grad to talk about material I’m learning or reviewing.

Spiffy has also reported and helped motivate me to fix a few small bugs and missing features.  Letters can be in hallway; Letter is associated with a square (in addition to a room).  Fix nullptr crashes.  Implemented DoorIn and DoorOut for Kellar’s Keep and Witchlord.  And others.

We’re using git on bitbucket, and he’s working in a separate branch, so I’ve been doing sync/merge in bitbucket.

image image

HeroScribe Pem’s Fork update

When I was chatting (in our Discord channel) to Spiffy about working on the Lua code, I noticed that in Quest 3, to find Ulag’s position (left top), is kind of kludge.  HeroScribe GUi doesn’t show it, so you have to count the squares in the GUI and/or search the XML to figure it out.  So I added it in the GUI.  It’s a small update, but it’s a great example where updating HeroScribe GUI is useful for writing the Lua code.  This will be used in HQBase-03-LairoftheOrcWarlord_US.xml’s function monster_dies(left, top) to determine whether the spawned monster is Ulag, and also for monster_dies(left, top).


Contributions from Spiffy coming; Lua related

Spiffy has joined (he emailed me from this blog).  I created a Discord channel that we’ve been using, and also wrote some new user wiki doc in the project’s bitbucket on how to setup the project (build/run), and how to use the git/bicketbucket flow (ie he will work in a separate git branch, then create a bitbucket pull request).

It’s been a while since I did any updates on HeroQuest UE4 (distractions from day job and personal life), but Spiffy has inspired me to do some more work this past week (amidst COVID-19 WFH), and also to help him to ramp up on implementing Lua code for quest-specific game rules/logic.  My recent changes include.  Fix crash when UMD is not plugged in.  Improve Lua support for _on_exit().  And Spiffy will implement more Quest-specific game logic using Lua.

Spiffy’s background is mostly in art for game development, and he is helping with HeroQuest UE4 to get more code exposure.

For example, HQBase-01-TheTrial_US.xml (HeroScribe XML) now has a corresponding HQBase-01-TheTrial_US.lua.  One of the functions in HQBase-01-TheTrial_US.lua is:

function on_exit()
    if (not g_bCanExit) then
        quest_print("can’t leave until you defeat Verag (a foul Gargoyle)")
    return g_bCanExit


There’s also some related code that gets triggered whenever a monster dies:

function monster_dies(left, top)
    if (left == 13 and top == 9) then
        quest_print("Verag, a foul gargoyle, was slain.")
        g_bCanExit = true

And here is the first Lua function which Spiffy has added:

function intro()
    quest_print_intro("Quest 1", "The Trial", "You have learned well, my friends.  Now has come the time of your first trial. You must first enter the catacombs which contain Fellmarg’s Tomb. You must seek out and destroy Verag, a foul Gargoyle who hides in the catacombs. This quest is not easy and you must work together in order to survive. This is your first step on the road to becoming true Heroes. Tread carefully my friends.")

If you are interested in contributing to HeroQuest UE4, please contact me –

Quest-specific game logic using Lua

One of the big missing pieces to make the game truly playable (instead of just a prototype) is quest specific game logic.  Quests are defined by HeroScribe XML, which lacks quest text (including specific game rules).  Here’s an example of quest text from Quest 1 (from a PDF):


To allow custom maps, and to make the design cleaner, quest specific logic should be an extension to HeroScribe XML.  Luckily someone added a simple LuaMachine plugin for UE4 that makes it really easy to do this.  So I started integrating that.

For example, I have HQBase-01-TheTrial_US.xml which has a corresponding HQBase-01-TheTrial_US.lua.  At this point, there are no modifications to the XML file.  When the game opens quest foo.xml, it looks for an optional corresponding foo.lua.  Here is a simplified example:

local HeroScribeQuest = {}

function HeroScribeQuest.special_treasure(id)
    if (id == "LetterF") then
        quest_print("The weapons on this weapons rack are chipped, rusted, and broken.  There is nothing here that the Heroes would want.")
        return true
    return false

return HeroScribeQuest

special_treasure() is a callback from UE4, while print() is a call into UE4.  So this demonstrates two-way communication between UE4 and Lua.  If there’s no Lua file, no special_treasure() in the Lua file, or special_treasure() returns false, then the game draws a treasure card.

Typically when special_treasure() returns true, that means it also did something.  Typically that something is to display quest text using quest_print() which displays text using UMG.  And to give the hero an item (or gold).  For our first example, there is no item, so we just call quest_print():


special_treasure() takes argument id.  “LetterF” comes from standard HeroScribe XML test.xml.  When the game loads the XML, if it finds a letter in a room, it associates the room with that letter.  Then when a hero searches that room for treasure, the game passes that letter (eg “LetterF”) to special_treasure().  For testing, I used HeroScribe (Pem’s Fork) to add the letter F to the starting room:


This was all made possible (and easy) using the LuaMachine UE4 plugin.
> Contrary to the other Unreal Engine 4 Lua plugins, this one does not try to expose the Unreal Engine 4 api, but completely hides it exposing to the user/scripter only the features the developer decided to include (via Blueprints or C++).
> Currently Windows 64bit, Mac, Linux 64bit (both Runtime and Editor) , Android, iOS (Runtime only) are supported.
> Scripts can be cooked in the build or loaded at runtime from the filesystem

As described in the above quote, LuaMachine is exactly what I was looking for!

Next Page »

Check out best marijuana drug testing website.