Beta release 3.0.1105!


#1

Hi everybody - a new beta release is out! Key release notes for this drop:

  • Compatible with the new 4.8.0-release version of UE4
  • Major code refactor, changing how the binding mechanism works
  • Major code refactor, changing the abbreviation for SkookumScript from SS to Sk
  • Due to these sweeping changes, and the need for separate 4.7 and 4.8 branches, we decided to delete and recreate the GitHub repositories with new separate branches for the 4.7 and 4.8 versions of UE4
  • A number of bug fixes (mostly IDE communication related) and tweaks

Links to the precompiled zip files for this release

For those of you working with the Epic Games Launcher and the precompiled version of UE4, here are new zip files for you:

SkookumScript precompiled plugin package for UE4.7.6
SkookumScript precompiled plugin package for UE4.8.0
SkookumDemo project for UE4.7
SkookumDemo project for UE4.8

Please refer to our previous post for exact installation instructions.

GitHub repositories recreated from scratch

Due to sweeping code changes, and the need for separate 4.7 and 4.8 branches, we decided to delete and recreate the GitHub repositories with 4.7 and 4.8 branches. Our apologies if you had our repo forked, please re-create a new fork - we promise we won’t make this a habit! If you do not have a fork, you can simply delete your SkookumScript and SkookumScriptGenerator plugin folders and re-clone the plugins by cding to your Engine/Plugins folder, and running these two commands:
git clone https://github.com/AgogLabs/SkookumScript-UnrealEngine.git SkookumScript -b 4.8
git clone https://github.com/AgogLabs/SkookumScriptGenerator-UnrealEngine.git SkookumScriptGenerator -b 4.8
(assuming your engine version is 4.8, for engine versions 4.7 and earlier, use -b 4.7 instead of -b 4.8).

Sk is the new SS!

We had planned for a long time to rename the abbreviation for SkookumScript from SS to Sk. So we finally decided to do it! Sorry coders - if you have custom code that uses SkookumScript, you can easily change it over using the following (case sensitive!) regular expressions (please use Notepad++ to do the job as VS2013 has a bug and will insert bogus line breaks):

  1. Replace ([^\w][et]?|^)SS([A-Z]+[a-z]) with $1Sk$2
  2. Replace ([^\w]|_+|^)SS([A-Z_]{2,}(?:[^\w]|$)) with $1SK$2

Changes to binding interface

We have refactored the way bindings work in SkookumScript, main change is in how data is accessed. Data is no longer accessed via its C++ type, but via its ‘Binding Class’ which is essentially Sk + the SkookumScript class name. Also, instead of a pointer to the data, a reference is returned which generally results in cleaner looking code. Here are some examples:

  • Old: *get_arg<SSRealType>(SSArg_1) New: get_arg<SkReal>(SkArg_1)
  • Old: scope_p->this_as<AString>()->as_cstr() New: scope_p->this_as<SkString>().as_cstr()

To make the creation of binding classes easy, we created a few template base classes (SkClassBindingSimple, SkClassbindingSimpleZero, SkClassBindingAbstract) which provide a lot of functionality auto-magically. Please look at the engine bindings source code included with the plugin for more detailed examples on how this is done in practice (e.g. SkVector3.hpp/.cpp or SkUEName.hpp/.cpp)

SkookumDemo is now on GitHub

We decided to place our demo project, SkookumDemo, on GitHub as well, as code changes occasionally require corresponding script changes. The amount of binary data in the demo project is fairly moderate, so we think you won’t have any performance issues with git. To set up the demo project using the new GitHub repo, cd to your projects folder and
git clone https://github.com/AgogLabs/SkookumDemo-UnrealEngine.git SkookumDemo -b 4.8
(assuming your engine version is 4.8, for engine versions 4.7 and earlier, use -b 4.7 instead of -b 4.8)
So to stay consistent at all times, simply git pull on all three repositories, SkookumScript-UnrealEngine, SkookumScriptGenerator-UnrealEngine and SkookumDemo-UnrealEngine.

Ask us!

Please don’t hesitate to ask any questions you may have!


Beta release 3.0.1158 (GitHub only)
#2

I wonder if you can provide Win32 ScookumScript library in next update? I would like to test packaging game for Win32. Thanks!


#3

We’ll look into that. Should be no problem but would need to do some testing since we haven’t run the Win32 build in a while.


#4

Thanks GreatGuru!

I noticed there’s also missing “Shipping” build of Win64 library. (there’re “Debug” and “Development” version of library). Is that intentionally left out in beta release?


#5

Hi Nate - we are still in the process of looking into this. Will have 32-bit versions and a “Shipping” build for you shortly.