Page 1 of 2

Minetest IDE - Develop mods and games in an efficient way

PostPosted: Thu Sep 25, 2014 15:36
by Zatherz

THIS TOPIC IS OUTDATED
THE APPLICATION IS BEING REWRITTEN FROM SCRATCH TO EASE ADDING OF FEATURES
PLEASE READ ZATHERZ'S ANNOUNCEMENTS IN POSTS BELOW


Minetest IDE is, as the name says, an Integrated Development Environment for Minetest. It will allow you to develop mods, games using a Lua text editor with syntax highlighting, featuring bundled Minetest version for testing and Node Box Editor for modeling nodes (if rubenwardy agrees ;)). It's written in Qt, thus runs on every major platform - Linux, OS X and Windows (and probably more).

It's currently under heavy development. Minetest IDE is licensed under the GNU GPLv3 license and the spaghetti-like unfinished code can be browsed or cloned here.

Currently implemented features are:
[*] Project Explorer
[*] Creating mods
[*] Text editor with Lua syntax highlighting
[*] Opening and saving files

Currently missing features:
[*] Bundled Minetest and NBE
[*] Creating new files inside the editor
[*] Creating games
[*] Maybe more

Screenshots:
Project explorer:
Image

New project dialog:
Image

Project added to list:
Image

Editor:
Image

Editor with another file open:
Image

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Thu Sep 25, 2014 16:08
by rubenwardy
Hot user interface. Wish NBE had a nice a interface as this :(

I recommend that you move all the source code files to src/ or source/ It is cleaner. (IMO)

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Thu Sep 25, 2014 16:29
by Zatherz
@up Thanks. I have moved all the source code to src now.
About NBE, can I embed it in MIDE? I know I can legally do it, but I don't want to be a douchebag ;) And about UI in NBE, there's a way to embed Irrlicht in Qt, so you could make the interface in Qt and the display panels in Irrlicht: click here. The topic is not relevant, only the source code is.

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Thu Sep 25, 2014 16:34
by rubenwardy
What is MIDE? Web searching reveals nothings :(

The Qt SDK is massive to download, so when you reach a stable version you should produce builds for Windows and Linux. And others.

Unfortunatety it would be a real pain to rewrite NBE into Qt. It might happen one day.

When moving to src/ I prefer to put qmake files in root, so they can do cd minetestide then qmake. But it is your choice.

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Thu Sep 25, 2014 17:02
by Zatherz
rubenwardy wrote:What is MIDE? Web searching reveals nothings :(

MIDE = Minetest IDE

rubenwardy wrote:The Qt SDK is massive to download, so when you reach a stable version you should produce builds for Windows and Linux. And others.

You mean precompiled binaries statically linked with Qt libs or just precompiled binaries?

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Thu Sep 25, 2014 17:06
by rubenwardy
I don't know. Just someway to reduce the load of downloading massive amounts of Qt stuff.

You may embed NBE in this project. Not sure how you would. That's your problem.

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Thu Sep 25, 2014 17:12
by Zatherz
By "embedding" I mean bundling NBE with this project and adding "Nodebox" to file types when pressing "New". When the user would open the file, it would recognize it as an NBE project and it would open in it NBE.

Edit: Changed description of how I'd like to "embed" it

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Thu Sep 25, 2014 18:35
by rubenwardy
Ah, I see.

I have some more recommendations.
The executable should end up in bin/ (it is the standard for Linux building).
Lower case executable filenames are better, as people are too lazy to type upper case names.
build the .o files into makefiles/ and .gitignore them (if not already)

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Thu Sep 25, 2014 20:27
by Evergreen
This looks great! I will certainly be watching this project.

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Fri Sep 26, 2014 05:06
by Zatherz
I've now made the git repository even cleaner. QMake generates files in specific directories: moc, obj and bin. Unfortunately it seems it's not possible to change where ui_*.h files are generated so I additionally created two scripts to clean the directories (moc, obj, Makefile and ui_*.h + bin if passed option "-b") - one for Unices (shell script) and the other for Windows (batchscript). Executable name is now lowercase too. Thanks for the suggestions rubenwardy!

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Fri Sep 26, 2014 18:35
by twoelk
looks promissing.

I like the term "project explorer" ;-)
I do hope it becomes more than just a file manager. Features I could imagine for a "explorer" could be displaying some statistic information about a loaded mod.
Such as a list of described nodes, a list of nodes mentioned in recipes and comparism of recipes. If it is a multifile mod maybe a list of which function, node or recipe is in which file. Some error checking might also be usefull, such as a list of all external nodes referenced within the mod, checking wether all nodes have recipes (need not be an errror), are all referenced images present as files and are there any orphaned images not mentioned in the mod.

The IDE could also aid in the construction of formspecs or any other displayed message. Maybe a tool that displays tables in a spreadsheet form might be of use as it might be easier to edit data rendered that way than in long one line lists.

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Fri Sep 26, 2014 18:45
by Krock
CMakeLists.txt please. You'll get a huge cookie from me afterwards.

EDIT: Ehm. Seems like cmake is not enough for this project.

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Fri Sep 26, 2014 19:22
by rubenwardy
Krock wrote:CMakeLists.txt please. You'll get a huge cookie from me afterwards.

EDIT: Ehm. Seems like cmake is not enough for this project.


He is using qmake at the moment.

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Fri Sep 26, 2014 19:49
by Zatherz
I am happy to anounce that I will soon rewrite the project (also in Qt of course). That's because I started this project with no Qt knowledge and the code grew into a so big spaghetti that I have problems fixing trivial bugs. Stay tuned.

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Fri Sep 26, 2014 22:13
by kaeza
Since you're planning on rewriting the project, have you considered using Python + PyQt?

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Fri Sep 26, 2014 22:40
by Zatherz
No. And I won't.

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Sat Sep 27, 2014 12:41
by Evergreen
kaeza wrote:Since you're planning on rewriting the project, have you considered using Python + PyQt?

/s/PyQt/PySide
PyQt is evil.

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Sat Sep 27, 2014 23:49
by jojoa1997
Can someone make a windows build. I cannot install qt-project but I want to try this.

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Sun Sep 28, 2014 01:26
by Zatherz
The new version will contain much artwork - button icons, logo, window icon etc.
After many time of messing around in Inkscape I finally made a logo that appeals to me:
Image

Every image is SVG, made by me and licensed under CC-BY-SA. Stay tuned for more input.

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Sun Sep 28, 2014 09:44
by rubenwardy
The colors are a bit off, to my eye. The green is too bogey and the brown is too red :P

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Sun Sep 28, 2014 16:31
by Zatherz
I intended them to be pastel-like.

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Sun Sep 28, 2014 16:54
by rubenwardy
These are pastel colors:
Image

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Sun Sep 28, 2014 17:16
by Zatherz
Oh... wow. Thanks. Time to recolor the logo then.
Edit: Well, not. Those colors do not fit with the logo, anyways I will change the colors to some other.
Edit 2: How about this?
Image
Edit 3: Old logo for comparison:
Image

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Sun Sep 28, 2014 17:47
by Zatherz
I am happy to anounce another upcoming feature of Minetest IDE.
MIDE will now run on two threads. The first will be the main (GUI) thread and the second will automatically update the Project list and any other file list, which means that no "Reload" buttons will be needed anymore and any change to the Projects directory (or other if required) outside of the application (which was handled before by the "Reload" button) and inside (which was handled by doing the same thing the "Reload" button did, except automatically) will be automatically updated. The process works by creating a MIDEUpdater class and a new QThread, pushing MIDEUpdater to the QThread, connecting signals with slots and starting the process. This is a basic feature that the first version of MIDE lacked because of my very limited knowledge.

List of currently upcoming features:
[*] Rewrite from scratch
[*] Removed Project Explorer
[*] All-in-one GUI (project viewer, file viewer, editor) (see above)
[*] Project (and file) lists are now handled manually using a TreeWidget (to allow easy refreshing, file categories etc.)
[*] Doublethreading: GUI and project list updater
[*] Automatic project list updating (see above)
[*] Artwork (button icons, logo)

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Sun Sep 28, 2014 17:48
by rubenwardy
Thats better. I like that one.

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Tue Sep 30, 2014 11:33
by Zatherz
Update #1 on the upcoming Minetest IDE.

Changes:
[*] Remove update thread
[*] Running on single thread again (see above)

Notes:
[*] Update thread was removed because it was useless, QFileSystemWatcher already runs in background.
[*] I will now post regular updates in the form of this post to give you the information about the development of the upcoming version of MIDE.

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Tue Sep 30, 2014 15:55
by aldobr
Since you are planning to rewrite the project, have you considered Lazarus ?

It can compille (true binary) the exact same code (write once, compile everywhere) for linux, windows, mac, amiga, gameboy advanced, netware, AVR, OS/2 etc. With some changes to the code it can compile for JVM and Android. Its a kind of Delphi on steroids.

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Tue Sep 30, 2014 17:33
by rubenwardy
Pascal is a horrible language.

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Tue Sep 30, 2014 18:45
by twoelk
rubenwardy wrote:Pascal is a horrible language.

:-(
Pascal was my first "interface" to doing something "usefull" on a computer.
Together with a friend wrote a Ladybug/Pacman clone
writeln writeln writeln
learned a lot
was playable but never really worked though
never touched Pascal again
might still have the code on some meters of needle printed endless paper somewhere

Re: Minetest IDE - Develop mods and games in an efficient wa

PostPosted: Tue Sep 30, 2014 20:37
by Zatherz
aldobr wrote:Since you are planning to rewrite the project, have you considered Lazarus ?

It can compille (true binary) the exact same code (write once, compile everywhere) for linux, windows, mac, amiga, gameboy advanced, netware, AVR, OS/2 etc. With some changes to the code it can compile for JVM and Android. Its a kind of Delphi on steroids.



Oh God... the memories...
Pascal was my first actual text programming language. Before that I wrote Batch scripts (used Windows at the time). I started learning Pascal after searching for easy programming languages. The ONLY reason I started learning a programming language was to...
Implement proper Batch text coloring!
If Batch would not suck so much with the fact that you could not color specific text, I don't think I'd program today. I learned little from an old online tutorial and already tried to make a program that could print colored text. Guess how it accepted the input?
From a text file!
I didn't even know about such things as commandline parameters. I had a simple text file with a color code in every line and when the program was executed you could print colored text in Batch. I was about 7/8 years old back then. Those memories, ahh... searching for things in the internet, implementing hacky ways just to print colored text in Batch text games. Never really did anything in Pascal again, as some time later I had my shock when I found out Java is not a magic platform that every computer needs just because but it's a programming language and I was also playing with Scratch. Pascal brings me only good memories, but if I had to write anything in it again, I'd rather make applications for iOS. How excited I was when my program worked. I kept telling about how it works to my mom, knowing she would not understand anyways. It was my first actual program, first computer creation. I now know how a small thing can completely change your life. How could I know when I was 7 years old that my hobby would be programming? That's a little story of my own unrelated to the topic here, which your post made me write. Thanks for making me recall how I started my computer adventure.