tengge1/ShadowEditor

make it a StandAlone App by Node-JS or Electron JS

weekendkoder opened this issue · 16 comments

Hi.

Your ThreeJS editor looks very promising. I would like to know, if it is possible to make the editor as a
stand alone App. Or if you can show a "how to" tutorial to do it by our selfs. Thank you.

@weekendkoder I have written a short tutor to do this, See: https://github.com/tengge1/ShadowEditor/blob/master/utils/electron/README.md.

If have any questions, feel free to tell me.

Hey,

Thank you very much for the Tutorial ! Its a bit complicated for me. But i will try it.
Also very nice, that you directly provide a Download-Link for the windows-desktop-app ! I can found it inside the release-section. So happy now. The pan.baidu link didnt worked. I guess it is the same zip as inside the release section.

You are welcome. If you have any questions, please let me know.

Now i tried it out. Have to say: WOW ! Amazing work. The editor feels realy native. Speed and performance is great. The workflow feeling i got, is the same like from Unity3D. It helped me a lot, that you made a electron / nodeJS App for Windows. Doing it by my own, would take time and many errors (maybe i am speaking also for other GameEngine users).

I saved a scene. But i don´t get a pop-up-window which asks me where to save my *.scene file. The same goes for "publish". I can´t find the saved "scene" and the published files out from the editor. Can you tell me what i am doing wrong ? Or where the location might be ... thx.

It is very nice of you to say so.

This is a web app, not a desktop app. The scene data stores in the MongoDB.

You can install a MongoDB client to view the data, such as Robomongo, Studio 3T, etc.

The assets uploaded is in the folder \ShadowEditor-win32-x64\resources\app\build\public\Upload.

The publish scenes is in the folder \ShadowEditor-win32-x64\resources\app\build\public\temp, and this feature may have some errors.

I think I will do more work on the desktop application in the future.

Okay, got it.

Even if it is the plan to have "shadowEditor" inside the browser, the downside of it is, it will be lagging, because i have about 300 tabs open. It will be a good option to have both. So i can do some stuff from my tablet, or phone. But in the end, for big projects i will use my desktop, Therefore it is much better to have a Desktop-App feeling and i think with the electron / nodeJS the preformance is really great.

It would be super if you can implement something like saving & publishing outside the DB in the future versions. Thanks for explaining. I will try your way out soon.

I tried your tip with the folders "Upload" & "temp". Sadly i didnt found them. My folders looks like this:

subfolders & files inside last folder "public":
assets\ ... [folder]
build\ ..... [folder]
locales\ .. [folder]
view.html
sw.js
manifest.json
index.html
favicon.ico

Did i miss something ?

The Upload folder will show after you upload something (mesh, texture, etc) in the assets panel.

Ah okay.

The upload works. What i need to mention is:

  • i am only allowed to upload / import a *.zip (this is time consuming & unconventional)
    So in my upload-folder i have a *.fbx and a *.zip. This uses too much space, imho.

Would be super nice, if we were able to import directly the desired file-format, like *.fbx or *.gltf.
Without any additional temp *.zip files.

The other questions are:

  • where to find a "scene" file ?
  • where are the "published" files are stored ?

These files are not inside Upload / temp folders. Is it only possible via a DB-client ? If so, as said, it would be super nice, to make it working as a usual Desktop-App. Speeds up the workflow 👍

Some types of models are composed of multiple files. The browser does not allow reading files in the folder. So web applications can only upload compressed files.

The scene is now stored in the database, and there is no scene file.

The published scene is located in the temp directory, you can test it with the web version. The desktop version has not been tested and has many bugs.

Sometimes it is difficult to tell person who are not good at computers how to install a web app. And I don't know whether a desktop app is better than a web app. I think the number of Windows desktop users is greater than the web users.

Compared with desktop applications, web applications have many limitations. For example: cannot read and write disk files; data transfer speed is slower than desktop applications; performance is not as good as desktop applications.

It is a huge workload for a person to maintain such a software. The development speed is very slow. You are welcome to contribute code.. If the job requires it, you should use professional 3D software.

Okay got it.

Thanks for clarification. Yes, its difficult to tell a person "how to". Therefore i think it is a good idea to provide a already finished Dekstop-App like you did. So there are many options for users :

  • WebApp
  • DesktopApp (here i mean the electron / nodeJS. Not a real native app)

I thought when you already working on the webApp, providing a NodeJS / electron is a piece of cake (correct me if i am wrong here). And it is much faster than a online webApp (like i said 300+ tabs open). So the goal with your project is, to provide "published" material made inside "shadowEditor", i guess. This published material should be accessible, in a easy way. If it is accessible the user can upload the content on his website for example. I just know the threeJS electronApp, in which it is possible to save a scene to your hdd or the published stuff.

I would like to contribute. In case of "coding" i am a noob. I can code a little bit with JS and C#. I never done some DekstopApps / WebApps. Maybe you can tell me in which coding-area i could support. For sure I can contribute for the UI-stuff, if its possible. In this area i have more skills.

Development Guide

  1. Download and install NodeJs, golang, MongoDB and Visual Studio Code.
  2. It is recommended to install the following VSCode extensions which may be helpful.
ESLint, Go, Shader languages support for VS Code, TOML Language Support.

Contributing

ShadowEditor is a project for both users and developers. You can contribute and try you idea on this
project. No pension, but a lot of fun. To contribute, you should:

  1. Fork the repository.
  2. Create Feat_xxx branch.
  3. Commit your code.
  4. Create Pull Request.

Note: DO NOT submit large binaries, or the Pull Request may be rejected. If required, you can
add the files or directories to be ignored to the .gitignore file.

This is not a project powered by big company. So feel free to commit any code to it.

You can commit any code you are interested in, or some skills you want to learn.

You can get a lot of fun by learning new skills.

Okay, thanks. I will see what i can do 👍