Git Product home page Git Product logo

unrealink's Introduction

Hello!

I'm David, currently a lead gameplay programmer at Cloud Imperium Games where I work on vehicles and related features. I've worked heavily on the spaceship movement systems in Star Citizen. I got to work on this sort of stuff because of a background in physics and maths. A lot of the work I do is with that in mind. I have a personal website here, where I try and share what I've been learning and working on.

Personal Projects

  • Polybox A PS1 era inspired fantasy console
  • UnrealInk A library that allows the use of Ink, a C# dynamic narrative scripting language, to be used in Unreal. Uses mono and other tricks to make it work
  • RustyRaytracer A raytracer I've not worked on in a while but intend to get back to. A chance to learn about raytracing and Rust.
  • FlightGame A semi sim arcade flying game I'm working on, it's repo is private at the moment though

I have a bunch of other dormant and abandoned side projects too lying around this account.

Programming Style

  • Strongly believe in simpler is better
  • Won't solve problems that don't exist
  • Try not to overcomplicate things for the fun of it
  • Do my best to understand the problem at hand before tackling a solution

unrealink's People

Contributors

davidcolson avatar dhomochevski avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

unrealink's Issues

How can I use 4.27 plugin in 4.26 Engine?

Hi!
My project now is totally in UE 4.26 and it depends on many other plugins without 4.27 support.
How can I get UnrealInk with unicode support for 4.26? Unicode support is critical for my project.

Engine crashes with multiple Story objects in memory!

I'm using an Array of Story objects. One Story for each NPC in my game. Each Story initialization takes place only when I'm starting my conversation with next NPC. But when I'm returning to the previous NPC (switching the pointer of the Story Array to the previous array index) - the Engine crashes with Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000000000000000

mono_2_0_sgen
UE4Editor_Ink!UMonoBaseClass::MonoInvoke<bool>() [d:\unreal\exampleprojects\blank\plugins\unrealink\source\ink\private\monobaseclass.h:47]
UE4Editor_Ink!UStory::CanContinue() [d:\unreal\exampleprojects\blank\plugins\unrealink\source\ink\private\story.cpp:121]
UE4Editor_Ink!UStory::execCanContinue() [d:\unreal\exampleprojects\blank\plugins\unrealink\intermediate\build\win64\ue4editor\inc\ink\story.gen.cpp:281]
UE4Editor_CoreUObject
UE4Editor_CoreUObject
...

Is there any way to manage more than one Story object at the same time?

Can't load included ink files

I'm doing something with a lot of dynamically triggered narrative events rather than one big story, so I figured that I could keep the structure clean by putting each event in its own included ink file. However, the plugin won't load these files properly:

inkerror

Asset re-importing does not work

When dragging an ink file to the editor for the very first time, everything works great - a UStoryAsset file is created properly.
When modifiying the source ink file afterwards, Unreal does show a notification that is is processing resources, but the asset factory create file method is not called, and the UStoryAsset is not updated.

“Choose Path String” seems not to work

I’m working on a project that needs extensive use of the Choose Path String feature. I made a know and called that function with the name of the knot as its argument and the story did not change. To be completely honest, I did not try this in InkJS, but the definition of the method seems pretty straightforward. Is there a known problem with this method?

Thanks.

Update for Unreal Engine 5 Launch

Hello, you mentioned in the readme to drop you a line if the plugin hadn't been updated for the latest UE release. I'd love to use Ink in a new UE5 project and would be glad to get involved in any way I can to help get this up to UE5 compatability. You also mention that you're looking for someone to confirm Mac compatability - I'd love to get involved with that too if I may.

Android compatibility

I looked up mono library and it states it's been ported to Android. Does this plugin support Android builds?

Packaged build crashes on startup

InkCrash

So this happens when I try to run a packaged build, the above screenshot is from a completely unaltered exampled project in 4.26.1. Not sure if it's a bug or I'm missing some step in the packaging process?

UE4 "UnrealInk" is Incompatible 4.27.2

Hi all,
I am currently having an issue integrating the plugin for ink into Unreal 4.27.2
Whenever I try to start the engine after dragging the plugins folder into my files (see images below) I receive the following errors before the engine does not start and requests I manually rebuild from source.
unknown
unknown (2)
unknown (1)
image

Any help would be greatly appreciated.
Kind regards
Chris

When building does mono get bundled with the build?

A little bit green to this, but I was wondering since there is a mono dependency here, is that dependency still present in the final build of a game or is it only present when developing?

Thanks for any help!

Plugin crashes

Hi David,
thanks a lot for this plugin. I am encountering infrequent desktop crashes originating in the plugin.
The crashes are in UStory::ChoosePathString while invoking MonoInvoke:

inline void MonoInvoke<void>(FString MethodName, void** params)
{
	FInkModule& Ink = FModuleManager::GetModuleChecked<FInkModule>("Ink");

	MonoObject* Exception;
	mono_runtime_invoke(Methods[MethodName], Instance, params, &Exception);
	Ink.MaybeThrowMonoException(Exception);
}

I was trying to track down the crash and eventually, it leads me to think that it might be UE4 Garbage Collector, collecting
probably(?) TMap, which is not marked as UPROPERTY() This would explain to me the randomness in which the class crashes.

I was going through the Minidump, but couldn't pinpoint the issue better than this.

Any idea, if Methods could be marked for non-deletion or UPROPERTized?

I thought of wrapping MonoMethod into USTRUCT so it could be markable, but I am not sure if this would be the right way.

Thanks,
Jan

Project not working on Mac

I've using the plugin in Windows and it works fine but I wanted to create a build in Mac and I'm having issues.

The first time I open the UnrealInkExample project it says that the plugin has to be compiled and I don't see any errors after that so I assume it compiles the plugin fine. I can also see here the file you mention in Readme

But when I run the game or opening the blueprints I see compiler errors

And if I refresh the node I see this

I don't know very much where to look to check if the compilation has been working fine or how to link the library properly.

Another thing I tried is adding "Mac" to both "WhitelistPlatforms" at UnrealInk.uplugin and after that when I try to open the project this is what happens:

image
image

Any idea how can I make this work? Thank you very much!

Windows-64 packaging fails: "Missing precompiled manifest" (UE 4.26.2)

Thanks for making a great plugin! I'm trying to package for Windows-64 in UE 4.26.2 (shipping configuration), and getting this error:
ERROR: Missing precompiled manifest for 'Ink'. This module was most likely not flagged for being included in a precompiled build - set 'PrecompileForTargets = PrecompileTargetsType.Any;' in Ink.build.cs to override.

It's been awhile since I've used Unreal, so apologies if this is a basic question, but do I need to create an Ink.build.cs file? I couldn't find one in the repo.

Non latin characters broken

How to reproduce:
Create simple project

  1. Add stort with non latin (for example cyrillic) story.
  2. Display story with any way( UE_LOG macro, widget, etc)
  3. Characters are displays as question marks

Cannot open include file monobaseclass UE5.1

 D:\GameDev\UnrealProjects\Psionic\Plugins\UnrealInk\Source\Ink\Public\Story.h(6): fatal error C1083: Cannot open include file: 'MonoBaseClass.h': No such file or directory
Build failed.

Hi, currently trying to access the c++ api. Everything seems to work fine using it from blueprints and accessing a story, but when trying to add the c++ API, i'm unable to compile after doing

#include "Story.h

I added Ink to my build.cs as such:

		PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "EnhancedInput", "Paper2D", "Ink" });

If anyone has any advice on how I can work through this, greatly appreciated. I'm needing the c++ API to use ink EXTERNAL functions. :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.