Dict data structure, unit test and multithreading

I just started learning UE4 for a few weeks. I’ve been searching for scripting for UE4 the day I started.
But I found SK last week. (I only found it by following the new of Epic brought a scripting company. I don’t know why but SK get very little exposure on google and few people seem to know about it. But I can’t imagine making a game without scripting. blueprint starts to get out of hand as the game get bigger. I bought some template project from Epic marketplace, literally everything is connected to everything else.)
SK looks amazing, especially the compilation time and the workbench.

Although after reading the primier, I do have some questions.

I want to create a open world game. Currently I want to impl a data driven AI, with metrics and numbers stored in xml/yaml.
I saw this thread https://skookum.chat/t/how-to-parse-evaluate-a-string-dialogue-system-with-xml/610
But I didn’t find any map/dict data structure, SK only seems to have list.

And is there any doc on how to do unit tests for SK scripts? Both connected and disconnected with the engine would be great.

The other question is I saw UE4 and SK are single threaded for the game event. I don’t know how multi threading works for UE4, can SK start a async function which is query/read only, assuming that FAsyncTask in UE4 starts another thread in parallel?

Thanks a lot.

That is correct, list is the only type directly supported at the moment. There is some proposed syntax for a map type in the language but it has not yet been realized. It is on my list. You would have to create a TMap in C++ and write some C++ wrapper functions to Get/Set values in the map if you want to access it with :sk:.

Check out this thread, there is a response from Conan on an :sk:-centric testing strategy as well as a response from me on how to hook into the :ue4: functional tests.

Right now, :sk: runs on the game thread only, although an enterprising C++ programmer could change that. You could have an FAsyncTask that handles loading/reading/processing data that then shovels results over to the game thread where :sk: can act on it.

Thanks for the fast response! Answered all my questions.

Is there any open source project available? I didn’t find anything on github.
Right now the main hurdle for me is just the syntax and how to do certain things like how can I set default argument to nil or where do I put my AI logic.
I think it would be extremely beneficial to new comers to have a moderate sized project to look at and learn from.


Please see this post for links to github and the demos repository:

If you can’t see the github page then you need to request access to the UE4 repo from epic.

Awesome, thanks!