Plug-in

We are still doing internal Beta testing. We will post here to let people here know when we get to the next stage.

Mainly we are working on getting the Blueprint meta information from C++ available to . It is pretty complex - doable though it is taking time.

There are about 850 structures, 430 enumerated types and almost 2500 functions!

Looks like a great plugin; if it’s all like it sounds this will be a very popular tool for UE4.

I’m working on a first person puzzle game for Steam and would like to beta test this in my project if possible.
I wouldn’t mind having no sample project if documentation is in place.
Would be interesting to see how this tool enpowers a solo developer over a 6 months timelapse in contrast with Blueprints.
I’ve already got my share of corrupted Blueprints (my project is mainly BP based) and this may be exactly what I need to speed up workflow.

I’m very interested if I could get it in early while I have no major gameplay features / level scripting already built.

Thanks. We’re keen to use it ourselves. Tech shouldn’t be made without also using it to create stuff. How else will we know what sucks so that we can improve it?

Sure. All the Skookum library commands are quite documented though our tutorials aren’t ready yet. We will probably include some sort of sample project since looking and tinkering with something that is working is the easiest way to learn.

On the last few big projects that used people generally just looked at missions/game logic that other people wrote to figure things out and get ideas of their own. One level designer who had never even done any prior programming figured out with no docs just by looking at other people’s missions and made 3 cool missions of his own in 2 weeks.

Also keep in mind that will compliment Blueprints - they will coexist. It might make sense to do some logic in Blueprints or some logic in . Theoretically you may be able to write an entire game with - though you can choose the best tool for the job.

I hear and agree with you. Skookum has already shipped a few big games and evolved a fair amount. We are really keen to get your feedback and make it even better - we don’t want to sit on it forever.

The language and the runtime and the remote connections to the IDE are all in place. As soon as there is enough critical mass in terms of UE4 commands, basic docs and examples / tutorials - we will make it more publicly available.

This seem to be very promising script with all the debugging facility such as execution-break, watch etc. Previously we use lua with just standard text editor, it is definite PITA to debug by printing the values to text file/screen.

Btw, does this script allow us to add our own script functions?

Could you elaborate on what this scripting pluggin does to maximize code reuse?

I’m particularly interested in whether it has multiple inheritance or something like scala traits.

Thanks.

The first big project Sleeping Dogs started with Lua and then switched to early in development. People that have used both and Lua say that is by far the way to go.

It is a big time saver to be able to make changes in Skookum code while the game is running without needing to restart too.

Likewise the Skookum IDE console which allows you to run a snippet of Skookum code at any time on any platform is super useful. You can even hook up hot-keys from any other application that can call external tools to use the Skookum IDE to route script commands directly to the running game/editor.

Definitely.

You can easily add your own functions with the details entirely in or in low-level custom/engine C++ form. You can also call commands from C++.

Writing functions in is quite easy - and kind of the point - though if you need it you can always drop down to C++.

please a release date ( a definitive one because before it was early november)

I’ve updated the milestone estimates in the first post in this thread - &p=108253&viewfull=1#post108253
I’ll be sure to keep it up-to-date for your reference.

Here are the current estimates:

Internal Beta: Completed!
Closed Beta - round #1:
Right now
Closed Beta - round #2: January 7**
Open Beta: **end of Spring

We’ve been slowed down with good things like increasing staff - though I know you’d rather just have the plug-in to try it out.

The dates still aren’t firm with the unknowns that we are dealing with - though they are a little more concrete.

To underline our commitment - we have been working late and giving up weekends and holidays. We will continue this commitment until it is in your hands and continue with support and respond to your feedback.

I can honestly say that as someone who has been working on this for the last 10 years (used at large studios and also creating other game scripting languages even earlier) - every fiber of my being wants to get this tech in your hands as soon as possible. :slight_smile:

I’ve answered these questions in the F.A.Q. on the website.

/about/faq/#qst-code-reuse

/about/faq/#qst-common-class-func

Now in Closed Beta!

Closed Beta Begins!

We are happy to announce that we have now entered Closed Beta for the Unreal 4 Plug-in.

Copies are first going out to developers with past experience using . [The online docs still need to be updated so they will be able to start banging on things immediately and give quick feedback.]

We plan to give out more copies of the Skookum UE4 Closed Beta to completely new developers within the next week or two once sufficient documentation is available.
If you are interested to take part in the Closed Beta and you haven’t already done so - you can sign up here: [closed beta long over]

The updated milestones are as follows:
**Internal Beta: **Completed!
**Closed Beta - round #1: **Right now
Closed Beta - round #X: long done
Open Beta: get now on the Unreal Marketplace

Very nice to see the script is progressing…
We cannot participate in close beta right now, as we are currently too busy - but we may download the open beta version to test it out ourselves…

Hey folks,
I’m following this thread since the very first day and I’m excited to get this plugin as soon as possible. Wherefore my questions are:

  1. Is the planned release date for the open beta still the first of December?

  2. Will there be an Intellisense / Code Completion feature in the IDE as powerfull and fast as the Blueprint Context Menu?
    This would be a vast productivity boost compared to the turtle speeded Visual Studio Intellisense (Without Visual Assist).

There will be another round of closed beta starting January 7, 2015. Open beta is now expected mid-February.

The IDE does not yet have a full-autocomplete mechanism.

However - we think that having it is critical so it will be there sooner rather than later. We plan to do much more than just Intellisense or Visual Assist. We might get something for auto-complete available by the full release in January though we may just want to get the plug-in out first and do an update later.

It is quite easy to hook up other editors to the Skookum IDE and the coders at United Front Games set up Notepad++ to do auto-complete for their code.

The Editor in the Skookum IDE has a few syntax-aware features right now:

  • all the code is syntax highlighted using the actual parser
  • any time a class is referenced if it is recognized it is coloured one way and if it isn’t recognized (like a typo) it is coloured a different way
  • all the opening and closing brackets () ] {} are colour coded so that you can see at a glance if they are properly matched and can determine which open matches which close
  • there are a few hot-key commands for navigating around classes, routines and data members - so for example you can press Alt-G or F12 while on a method name and the Skookum IDE will pop you to the code that defines that method. A history is kept of all the places you’ve navigated so it is also easy to go back and forth with mouse previous/next button or Alt±> Alt+<-.

Much of the future work planned for involves making the IDE an almost magical experience. We are going to be revamping the IDE with a video game quality UI in terms of look, responsiveness and customization. The Skookum IDE will be able to do much more than many other IDE’s since the editor and the language parser will have complete access to each other.

Also as a side note - all the features in the IDE and runtime are written in native C++ and are quite fast. As an example - to recompile the 8000 scripts of a big project takes just a few seconds. [I’m sure the Skookum IDE with be much more responsive than Intellisense.]

is designed to work with C++ - and it is written in C++ itself. [I’m a big fan of C++ too.] If it makes you feel better, think of Skookum as a bunch of well written C++ gameplay libraries that are data-driven / configured with optimized binaries at load. :wink:

Skookum is just way easier to do certain types of coding - like concurrency - than C++ directly. Seasoned C++ coders are still grateful to use Skookum in the areas that it excels. This will become apparent once you get a to try it out.

If there are enough Skookum command hooks into Unreal - you should be able to write an entire game in Skookum - though you will always have the option to write C++ code too if that is easier or better in some way.

No reason that it shouldn’t. If Paper2D can be hooked into Blueprints than it should be able to be hooked into .

It is possible that hooking up Paper2D to may not come for free as we hook up the core of Unreal and require some extra steps. If that is the case you should be able to do that yourself or you can wait for us to hook it up. Supporting 2D projects is definitely important.

We are in the process of increasing our staff right now to help out with that kind of thing. [Staffing up is slowing us down a bit right now - but it will dramatically speed up our future development.]

The plug-in is a C++ plug-in. The way plug-ins work is that they are a bunch of DLLs that are loaded when the Unreal Editor / Runtime start - at least on PC. Other platforms are essentially the same though not necessarily dynamic.

and Blueprints will peacefully co-exist - just like and C++. Use whatever is easiest / most powerful.

The first game project originally used Lua. For a while C++, Skookum and Lua were all used and then eventually all the Lua scripts were replaced and Lua was removed from the game runtime to save space and reduce complexity.

Also like C++ you will be able to have Skookum call Blueprint nodes and graphs and Blueprints will be able to call Skookum commands.

I can see there being advantages to a graph/node based way of hooking some aspects of a game up.

The people over here at Agog Labs writing will also be writing our own projects using and Unreal. First simple tutorials, then more complete demos and then fully-fledged games. This will help us figure out good work flows and best practices. And of course we will be keen to get feedback from other teams and their experiences.

Hi, have you looked into how the changes to the EULA about non c++ language integration, might effect you? I believe that you plan to have a free version, but also a paid version. I’m not sure if that will be allowed or not. The EULA says all non c++ integration must be free, and be able to run on all platforms for free. So maybe having both versions will be enough, but not sure. I really hope it doesn’t stop you from going ahead with releasing your plugin.

EULA:
“d. Distribution of Non-C++ Programming Language Integration - Any Distribution of an integration of a programming language other than C++ for the Licensed Technology must be Distributed free of charge, permit Distribution in a Product free of charge on all platforms, and be available in source code form (including, but not limited to, any compiler, linker, toolchain, or runtime) to Engine Licensees.”

Does Meet the Unreal Engine EULA Requirements?

Thanks for pointing this out. Here is a link to the EULA - .unrealengine.com/eula

My understanding of this is that it has to do primarily with the distribution of non-C++ code and the distribution of Unreal products. In other words there should be no extra charge or barrier to distribute the non-C++ code as integrated into any products.

I’m fairly certain that follows the spirit of this and we will talk with Epic’s licensing people about this to confirm.

Good question!

As far as I’m aware - everything that we’ve been hooking into from the Unreal API has been pretty stable so both earlier versions to a point and later versions should be fine.

Right now the Skookum UE4 Plug-in is at Unreal 4.5.1 also. We will be getting the latest 4.6 in the next few days and determine if anything has changed. For the last few UE4 versions there were no code changes that needed to be made with the Skookum plug-in. [It might take a bunch of lengthy recompiles - but we might be able to find out the earliest version of UE4 that works without requiring code changes to the Skookum plug-in.]

There are a few changes to the Unreal Engine core runtime that we will be pushing to the main branch soon that allow some deeper debug functionality. For things like that and other changes for future versions we can probably give light code patches to get things up and running to keep older Unreal versions backwards compatible to the plug-in. You would have to build the Unreal Engine from code rather than just using a pre-built version, but that should be fairly easy.

The source for the plug-in itself will also be available so you can always try to tinker with it yourself too. All the calls to the native API will be available for you to extend in any crazy way you like and they are 100% independent from Unreal so are completely resistant to Unreal version changes. We’d like to create some sort of mechanism for people to submit useful changes that they’ve added to the plug-in too. Allowing people to submit their own backwards compatibility Unreal patches is a good idea.

There are essentially three plug-in modules for the UE4 plug-in and each may be more or less UE4 version dependant:

  • **Skookum runtime **- this is pretty independent and should be pretty stable and resistant to UE4 changes
  • **Skookum Header Tool Generator **- this gets the command bindings used with Blueprints and adds them into Skookum. Probably fairly stable - or the meta info for thousands of bindings to commands would also need to be changed.
  • Skookum UE4 Editor - these are hooks into the Unreal editor for convenience calls to the IDE and other ways that Skookum scripts can interact with the Unreal editor. This is probably the most volatile area. Though it isn’t 100% necessary and older versions of the plug-in could be used if major changes occur with the UE4 editor.

From a learning perspective when I need to do something in UE4 with BluePrints I have to go searching for documentation and the forums and video tutorials etc.

What would be the learning workflow when using ?
If I want to do something specific, do I need to do all of the above and then work out how I apply that in Skookum, or would I be able to just read through Skookum docs and start coding?

This question is coming from a beginner to intermediate user perspective, where every small task is a major effort to get something working.

Cheers.

TL;DR - Skookum will make some things easier - especially trying things out and quickly iterating, controlling how things interact over time (simultaneously or one after another), sharing ideas and automating things.

How best to ramp up using and integrating it into your workflow is one of the key things that we are currently working on.

A primary goal of is to make it easier to spend more time on what you want to do rather than how to do it.

The best way to learn a tool is to use it - same with languages. Skookum makes trying things out a fairly easy process.

Current Skookum projects learn primarily using the Skookum IDE workspace, looking at examples in existing Skookum scripts and referencing the language syntax. People are usually up and making interesting things happen almost at once. Full understanding isn’t needed - you can learn as you go.

Skookum IDE Workspace
Probably the best learning tool that Skookum provides is the Workspace in the Skookum IDE Console. It is a big coding scratch pad where you can type in a bunch of script snippets then select and run them while the game is running and instantly see what happens in the game.

Skookum coders will often try things out a bunch of times in the workspace to experiment and to figure things out before they create some code to keep.

It makes an awesome calculator too. :slight_smile:

These script snippets are always saved and easily remixed to try out lots of possibilities. Likewise it is quite easy to transfer and share little script snippets around with team members or the larger community. Everything is text so you can use standard chat programs, email, forums, version control systems, etc.

**Skookum Tutorials
**We are writing a bunch of tutorials and eventually a full step-by-step learning guide to get up-to-speed with . We’ve even hired a talented writer to help ensure that your aren’t bored to tears reading them.

Much of these will give lots of example script snippets to try out in the Skookum IDE workspace. And then you can mix things up and experiment.

We plan to do video tutorials too.

**Skookum Library and Example Scripts
**As code is written that does interesting things - reviewing and remixing it becomes one of the best ways to learn.

Many of the core Skookum commands are written entirely in so you can see how they work and easily write your own variations. All the Skookum core library routines are well commented and most give examples of their use too.

We will also be writing several little demo games that will be a great resource to examine, pick apart, copy and rework.

**Skookum Manual
**We are putting the entire Skookum reference manual online - /docs/
There isn’t much up yet - but it should be fairly comprehensive by the time the UE4 plug-in has its full release.

[We might even eventually make it into an ebook and physical book. Don’t hold your breath for that yet though.]

has never actually needed a manual. In the grand tradition of tools made while in use on projects - none of the projects that have used Skookum so far had a manual. Though we thought that it couldn’t hurt to have a nice reference.

Skookum Syntax
The least glamorous way to learn Skookum is to look at its syntax - /docs/v3.0/lang/syntax/

If you forget exactly how to express some tricky code you can always look at the syntax for help.

You can also look at the syntax from time to time and try to pick up some new Skookum trick before your brain explodes looking at it. Seriously though - Skookum coders often print out the syntax - currently 4 pages including annotations - and keep it at their desk for reference.

Unreal Ecosystem
There are a number of tasks in Unreal that remain largely the same even with added to the workflow - constructing scenes with the Unreal Editor and getting in content (models, animations, audio, etc.). You will still place things in the editor the same way though you can control and direct them easily with Skookum. If Skookum becomes integrated enough with the Unreal editor you could use it to programmatically generate and manipulate content. Like add pylons spaced out at specified intervals following along a road. Or raise all objects matching a certain criteria by a specified height.

Likewise there are many Unreal engine commands that must be learned to understand the Unreal ecosystem. Though might help in this area by making some of the commands easier to use or easier to search/discover. Currently there are about 400 core commands and about 2500 Unreal commands.

In terms of how Skookum scripts best fit into the progression of the game and how best to attach to game entities to give them autonomous behaviour - we have recommendations that worked well based on past projects that we will make it easy to “fill out the blanks” and get the game flow in a straight forward manner. We will get into the details on this in the tutorials.

We appreciate any feedback on how to make things easier to learn and will try to quickly eliminate gotchas and hurdles.

Thank you for the detailed reply @Noolarch.

I was looking forward to trying out Lua at some point, but I’ll definitely give this a go.

Cheers