XSE - The X Script Editor
Moderators: Moderators for English X Forum, Scripting / Modding Moderators
- nuclear_eclipse
- Posts: 1129
- Joined: Thu, 2. Sep 04, 01:54
XSE - The X Script Editor
About XSE
The X Script Editor is my conception and implementation for an *external* script editor for the X series. It will be fully compatible with X2 and X3 scripts, either written ingame or from my editor. It will allow the user to work with an easy to learn GUI environment, including mouse support and normal windows functionality. It will have many features that go far beyond the capabilites of the ingame editor, simply because the interface is not tied directly to the game engine.
It is still very much a work in progress, but it is getting closer and closer to a usable environment. It started as a project for one of my software engineering courses, but now that the project is over with, I will still be dedicated to completing this program and releasing it to the needy hands of the community.
Features:
- Works with both X2 and X3, and future releases of the X series
- Accepts multiple installations of X2/X3 to allow editing for multiple mods/versions
- Tabbed Editing for simultaneous editing of multiple scripts
- Undo/Redo functions for those inevitable mistakes
- Multi-line cut/copy/paste, even between scripts/tabs
- Integrated M.S.C.I. Handbook references
- Better performance than the ingame editor
Preview screenshots:
The main script editor window, with a single script opened. Note the option to edit description, version, and script engine.
[ external image ]
The preferences window, with repository editor open, and the File->Open dialog showing the usage of repositories.
[ external image ]
Planned Features and Current Status:
- COMPLETE - Portable code base that can be run on any operating system environment
- COMPLETE - Compatible with both X2 and X3 scripts, and any engine versions
- COMPLETE - Work with multiple installation locations / versions
- COMPLETE - Allow the user to work with multiple scripts at once (tabs)
- PLANNING - Allow for undo and redo features
- PLANNING - Allow for multi-line copy and paste routines, possibly between tabs as well
- PLANNING - Access the M.S.C.I. Handbook from in the editor
- IDEA - Make active links from script code to the M.S.C.I. Handbook for quick lookup
Coding Tasks and Current Status:
- CODING - Interface with tabs, toolbar, key shortcuts, and basic operations
--- COMPLETE - Preferences, including author and repository information
--- PLANNING - M.S.C.I. Handbook information
--- PLANNING - Help documentation (HTML based)
- CODING - Basic file operations
--- COMPLETE - Create new scripts
--- COMPLETE - Open existing scripts
--- COMPLETE - Save current script
--- PLANNING - Save as...
--- TESTING - Save all
- CODING - Basic editor functionality
--- PLANNING - Undo / Redo
--- PLANNING - Copy / Cut / Paste
- CODING - Primary script editor functionality
--- TESTING - Load a script file and interpret the code
--- TESTING - Save a script file with minimum output for operability in X*
--- CODING - Create a dynamic script engine command list setup
--- PLANNING - Display script lines in editor with ability to edit individual lines
--- PLANNING - Allow the user to select (multiple) lines for editing together
--- IDEA - Output the XML code that shows scripts in browsers
Overall Progress:
- Frontend ( GUI ) : 75% done
- Backend : 50-60% done
This will be updated as necessary, when tasks/features change status, or here is new information for the public. Any and all feedback, questions, or whatever is welcome, and I will answer it soon as I am on these forums rather often.
Cheers
The X Script Editor is my conception and implementation for an *external* script editor for the X series. It will be fully compatible with X2 and X3 scripts, either written ingame or from my editor. It will allow the user to work with an easy to learn GUI environment, including mouse support and normal windows functionality. It will have many features that go far beyond the capabilites of the ingame editor, simply because the interface is not tied directly to the game engine.
It is still very much a work in progress, but it is getting closer and closer to a usable environment. It started as a project for one of my software engineering courses, but now that the project is over with, I will still be dedicated to completing this program and releasing it to the needy hands of the community.
Features:
- Works with both X2 and X3, and future releases of the X series
- Accepts multiple installations of X2/X3 to allow editing for multiple mods/versions
- Tabbed Editing for simultaneous editing of multiple scripts
- Undo/Redo functions for those inevitable mistakes
- Multi-line cut/copy/paste, even between scripts/tabs
- Integrated M.S.C.I. Handbook references
- Better performance than the ingame editor
Preview screenshots:
The main script editor window, with a single script opened. Note the option to edit description, version, and script engine.
[ external image ]
The preferences window, with repository editor open, and the File->Open dialog showing the usage of repositories.
[ external image ]
Planned Features and Current Status:
- COMPLETE - Portable code base that can be run on any operating system environment
- COMPLETE - Compatible with both X2 and X3 scripts, and any engine versions
- COMPLETE - Work with multiple installation locations / versions
- COMPLETE - Allow the user to work with multiple scripts at once (tabs)
- PLANNING - Allow for undo and redo features
- PLANNING - Allow for multi-line copy and paste routines, possibly between tabs as well
- PLANNING - Access the M.S.C.I. Handbook from in the editor
- IDEA - Make active links from script code to the M.S.C.I. Handbook for quick lookup
Coding Tasks and Current Status:
- CODING - Interface with tabs, toolbar, key shortcuts, and basic operations
--- COMPLETE - Preferences, including author and repository information
--- PLANNING - M.S.C.I. Handbook information
--- PLANNING - Help documentation (HTML based)
- CODING - Basic file operations
--- COMPLETE - Create new scripts
--- COMPLETE - Open existing scripts
--- COMPLETE - Save current script
--- PLANNING - Save as...
--- TESTING - Save all
- CODING - Basic editor functionality
--- PLANNING - Undo / Redo
--- PLANNING - Copy / Cut / Paste
- CODING - Primary script editor functionality
--- TESTING - Load a script file and interpret the code
--- TESTING - Save a script file with minimum output for operability in X*
--- CODING - Create a dynamic script engine command list setup
--- PLANNING - Display script lines in editor with ability to edit individual lines
--- PLANNING - Allow the user to select (multiple) lines for editing together
--- IDEA - Output the XML code that shows scripts in browsers
Overall Progress:
- Frontend ( GUI ) : 75% done
- Backend : 50-60% done
This will be updated as necessary, when tasks/features change status, or here is new information for the public. Any and all feedback, questions, or whatever is welcome, and I will answer it soon as I am on these forums rather often.
Cheers
-
- EGOSOFT
- Posts: 13093
- Joined: Sat, 9. Nov 02, 11:45
-
- Posts: 300
- Joined: Sat, 12. Nov 05, 19:37
-
- Posts: 63
- Joined: Wed, 9. Nov 05, 00:00
I rather have Nuke finnish it then anyone else. Plus Nuke has both the Syndicate mod AND X3RPM on his plate at the moment, X3RPM is the one thats going to be "finnished" soon so maybe soon he can continue work on this...carran wrote:Bump!
Any update on this? care to release the source code if you're too busy to complete it?
Thanks!
10,000 Lightyears of awesomeness
-
- Posts: 339
- Joined: Sun, 1. Jan 06, 06:29
Any downloadable file available?
Has any one seen a version of this yet?
Thanks!
Thanks!
- nuclear_eclipse
- Posts: 1129
- Joined: Thu, 2. Sep 04, 01:54
It's still in the works. I haven't released any versions of it yet, as it doesn't actually allow you to 'do' anything but change the scripts filename, version, and description. It's not quito at the top of my project pile right now, but once I get the next Syndicate release out the door, I'm gonna try my hand at completing this program.
At the same time, I'm also looking into possibly redoing this in C. I'd really like to be able to release a Windows-native executable, but I'm daunted at the task of trying to create any form of decent GUI in windows without having to do tons of MFC cookie-cutter bull****. I'd much prefer to actually *code* the interface like I can in Java rather than use VisStudio to place it and then try to decipher all their crap to find where to place all my code....
On that note, if anyone knows any *good* C/C++ GUI libraries that AREN'T from Microsoft, but work with Windows XP in mind, I'd love to know where to get it so I can take a look.
Cheers.
At the same time, I'm also looking into possibly redoing this in C. I'd really like to be able to release a Windows-native executable, but I'm daunted at the task of trying to create any form of decent GUI in windows without having to do tons of MFC cookie-cutter bull****. I'd much prefer to actually *code* the interface like I can in Java rather than use VisStudio to place it and then try to decipher all their crap to find where to place all my code....
On that note, if anyone knows any *good* C/C++ GUI libraries that AREN'T from Microsoft, but work with Windows XP in mind, I'd love to know where to get it so I can take a look.
Cheers.
- nuclear_eclipse
- Posts: 1129
- Joined: Thu, 2. Sep 04, 01:54
Hot. TY forever. Perhaps you'll be seeing XSE sooner thanks to this, assuming I can pick up QT pretty quickly. It's gotta be infinitely better than Java's AWT/Swing crap, which, although it's obtuse, is naturally and infinitely better than MFC...Cycrow wrote:nuclear, u want to try QT
i made the XScript installer in C++ & QT, its also multiplatform, linux, mac, windows, etc
and btw, i hate MFC
-
- Posts: 75
- Joined: Wed, 9. Nov 05, 02:05
Hey Nuke, I saw that one of your features is Undo and Redo ... You may alredy know this but creating that feature is relativly simple.
Whatever object you use to hold the scripts, you can just serialize the object and place it on a stack. Then when you want to undo, you just pop the old object off the stack and you have undone the change, for redo, just place the current object before you pop the undo off the stack to a new redo stack and so if you want to redo somthing, then you just pop that off the redo stack. This is just the basic idea, there are some datra management considerations but I thought I'd explain to you how I usually make an undo stack.
Good luck!
Whatever object you use to hold the scripts, you can just serialize the object and place it on a stack. Then when you want to undo, you just pop the old object off the stack and you have undone the change, for redo, just place the current object before you pop the undo off the stack to a new redo stack and so if you want to redo somthing, then you just pop that off the redo stack. This is just the basic idea, there are some datra management considerations but I thought I'd explain to you how I usually make an undo stack.
Good luck!
AMD Phenom 9600+
Nvidia 8800 GTS 320
4 GIGs Dual Channel Memory
2 250 gig Raid 0 3 Gb/s drives
LogiTech Extreme 3D Pro USB - If I can find it ...
Nvidia 8800 GTS 320
4 GIGs Dual Channel Memory
2 250 gig Raid 0 3 Gb/s drives
LogiTech Extreme 3D Pro USB - If I can find it ...
- nuclear_eclipse
- Posts: 1129
- Joined: Thu, 2. Sep 04, 01:54
Yep, that's the plan. The thing to watch for though is that the moment a change is made, the redo stack must be wiped clean, etc etc. I had to do this for my software eng. classes last year, so I'm plenty up to date on cleating and working with custom stacks and queues, but thanks for the tip. =]IneffableModder wrote:Hey Nuke, I saw that one of your features is Undo and Redo ... You may alredy know this but creating that feature is relativly simple.
Whatever object you use to hold the scripts, you can just serialize the object and place it on a stack. Then when you want to undo, you just pop the old object off the stack and you have undone the change, for redo, just place the current object before you pop the undo off the stack to a new redo stack and so if you want to redo somthing, then you just pop that off the redo stack. This is just the basic idea, there are some datra management considerations but I thought I'd explain to you how I usually make an undo stack.
Good luck!