getnamo / NodeJs-Unreal

Embed node.js as an Unreal Engine plugin.
MIT License
248 stars 36 forks source link

Packaging Games with UE5 #35

Open neurogamedev opened 3 years ago

neurogamedev commented 3 years ago

Hello guys!

So, I am trying out the UE5 plugin to make a web app to connect to my Neurosity Crown. Here's what I have so far. I have extra dependencies that you can see in the Contents\Scripts folder. Sometimes it works when I put the modules in the \Plugins\nodejs-ue4\Content\Scripts folder.

If you want to test it out, you can use the following Details. If you get to the select device window, you've succeeded!

Email: neurotest@fake-box.com
Password: neuroPassword

Anyway, the program runs well in the editor. You may need to restart once or twice to make it run the first time you unzip it (that's concerning as it is).

But my current issue is packaging. When I package the game for Windows, the packaging is successful but, if you open the game, login doesn't work... unless you have previously successfully run the game in the editor beforehand. Dunno why that is, but I would prefer my end-users to just plug and play without having to install Unreal Engine first. I really have no idea how or why things happen this way, since Node.js and custom plugins are beyond my area of expertise, which is why I would appreciate any help or heads-up.

Also, packaging for Android gives me the following error and Google has not been very helpful for me. Maybe I am using the wrong keywords? All help would be greatly appreciated!

image

tldr; I made this with the UE5 Node.js plugin but packaged games don't work as intended. Help, plz?

Thanks guys!

getnamo commented 3 years ago

It won't work on Android, currently implemented as a windows only architecture due to using a separate node.exe instance ( windows specific code is in https://github.com/getnamo/nodejs-ue4/blob/master/Source/CommandLine/Private/NodeCmd.cpp#L300). Same idea could likely work for Linux/MacOS, but nothing has been built and it would be a lot trickier to implement the same idea on the Android platform. If your endpoint is a website or some other service you may be better off just using https://github.com/getnamo/socketio-client-ue4 which does support a wider selection of platforms without external dependencies.

Keep in mind this plugin is not production tested or anything, just literally an experiment around building an auto-conversion transport pipe between node and unreal; it will very likely need some other contributors to work out kinks if they're interested in actually using it in production.

neurogamedev commented 3 years ago

Thank you very much for the info!

The project needs some firebase and custom-made Neurosity node modules to work, which is why I am using the Node.js plugin. My endpoint is to make a game, but this is the minimum viable product. If this works, a neurogame will work. I have been working on the next steps in my free time. Here's a preview:

https://user-images.githubusercontent.com/88777150/134760326-4fd8fe47-14fe-4053-ad0c-3856a0259b7a.mp4

Thanks for this first step! I am looking forward to a production ready plugin!