-
Notifications
You must be signed in to change notification settings - Fork 33
Roadmap
-
Bind Unreal Symbols via C++
-
POC for generating new UFuncs implemenation in Nim
-
Consume Nim in Unreal via auto generated FFI
-
Hot Reloading Windows
-
Hot Reloading MacOS
-
Debugging
-
Test Integration via Unreal Frontend
-
Cover most Unreal Reflected Types
-
Getter/Setters macro for UProps
-
Generate Nim definitions from Unreal Reflection system
-
Being able to produce new UE types from Nim
-
Macro (pragma) for implmenting UFuncs in nim
proc myFunc(strg: FString) : {. ufunc: params .} nimCodeHere
-
DSL for defining uFunctions in blocks
-
DSL for defining UStructs
uStruct FMyNimStruct: (BlueprintType) uprop(EditAnywhere, BlueprintReadWrite): testField : int32 testField2 : FString uprop(EditAnywhere, BlueprintReadOnly): param35 : int32
-
DSL for defining UEnums
uEnum EMyEnumCreatedInNim: (BlueprintType) ValueOne SomethingElse AnotherThing
-
DSL for defining delegates
uDelegate FMyDelegate2Params(str:FString, param:TArray[FString]) uDelegate FMyDelegateNoParams()
-
DSL for defining UClasses
uClass MyClass of UObject = (Blueprintable, BlueprintType) uprops(EditAnywhere, BlueprintReadOnly) myProp : FString myProp2 : int32 uprops(MoreParams..) ... More props ufuncs(BlueprintCallable): proc testStatic() {.static.} = UE_Log "Test static2" regularNimFunction() proc tick(deltaTime:float) = UE_Warn "Im ticking" proc beginPlay() = regularNimFunction() proc setColorInEditor() {.CallInEditor.} = self.setColorByStringInMesh("(R=0,G=0,B=1,A=1)") testStatic() ufuncs(BlueprintCallable, BlueprintPure): proc getSalute() : FString = "Hello World" proc addTwoNumbers(a, b : int ) : int = a + b
-
Being able to emit most used FProperties
-
Being able to emit any type into UE with hotreload
-
Allow to define constructors on UObjects
-
Non Editor Builds (Manual)
- Make builds work on Windows
- Make builds work on MacOS
- Make builds work ok iOS
- Make builds work on Android/VR Mobile Devices like Oculus Quest
-
Non editor builds should be statically linked
-
Automatise non editor builds
-
Support reflected interfaces (UInterfaces) in uClasses
-
Inheritance in UStrucs.
-
Virtual Functions support on UObjects. At this point, the C++ integration will be complete and you will be able to do anything that you can do in C++.
-
Support for multiple inheritance in uClasses so C++ interfaces can be implemented.
-
Experimental NimVM integration (No comp time for small changes/Runtime code execution)
-
Improve Debugger
- Keep the debugger hook after hot reloading
- Research if it's possible to have a better mapping on the Nim types.
-
Test Nim code that consumes Unreal Code without starting the editor.
-
REPLScratchpad file with automatic hot reload. -
Editor Extension for auto completation on the DSL
-
NUE module system