Tool Horizon IDE (0.3.2 Alpha)

Discussion in 'Starbound Modding' started by Thelandor, Dec 16, 2019.

  1. Thelandor

    Thelandor Void-Bound Voyager

    Horizon IDE 0.3.2-alpha

    Welcome to the Horizon Integrated Development Environment. Horizon is designed to make multiple aspects of modding more efficient and more stable by abstracting away the file system that modders are forced to use. It will effectively act as a replacement for the traditional workflow of opening json files, editing text, checking syntax to make sure there are no typos, saving the file, and then waiting for Starbound to load to see if it works correctly. See errors at design time so that you catch issues and conflicts without waiting the lengthy amount of time it takes to run an instance of Starbound. The features continue...


    Horizon is built using the .NET Framework (4.7.2) and Windows Presentation Foundation. It is coded in C# 7 and compiled using the Roslyn compiler. It currently only runs on Windows, though support for other platforms are on the docket in the future.

    Horizon is an open source project, hosted on Github.

    Your help is greatly appreciated to keep this project alive. If you wish to financially support this project, we also have a Patreon.


    Added menus and controls. ReactiveUI is now a part of Horizon.

    Added functionality for starting and stopping an instance of starbound.

    We got a new Icon, and it's nice and sleek.

    Horizon can now check for updates and install the latest version on your behalf.

    You can now open up the wiki, or open up a bug/feature ticket from the IDE help menu.

    Bug fixes. UI Improvements. Dependency Updates.

    0.3.1-alpha (40663)
    Added Recent Projects menu.

    Added Close Project menu.

    Added various other menu items.

    Made visual and UI improvements.

    Added a status bar at the bottom of the IDE workspace.

    Fixed some bugs relating to failed property notifications.

    Added a desktop shortcut and uninstaller shortcut to Installer.

    Added an output window that collects log data from a Starbound instance.

    Added a magnetic scroll viewer. If the user scrolls to the bottom, it will "magnetize" to the bottom so that the user can watch new lines as they appear. If the user scrolls anywhere else, the scroll viewer will keep that position even if new lines are added to the bottom, allowing the user to read without being interrupted.

    0.3.2-alpha (25261)
    Modified Workspace to be reactive.

    Rearranged some dock controls.

    Split dictionaries into individual files for better, more readable code.

    More UI Improvements.

    Changed Preferences window to be reactive.

    Added a toolbar to IDE window.

    Added a bunch of menu items.

    Added the ability to open the wiki from the help menu.

    Added the ability to open a bug or feature request from the help menu.

    Changed the icon to a custom icon.

    Added Check for Updates functionality.

    Dependency Updates.

    Unlocked IDE Window. Bug fixes.

    Added a start menu shortcut to installer.

    0.2.1-alpha (32819)
    Fixed a bug where the launcher wouldn't open if the directory it was looking for initially didn't exist.

    0.2.2-alpha (39474)
    Added new project functionality.

    Added open project functionality.

    Added related menu items, including recent project list.

    Fixed a bug where windows couldn't be dragged unless the title text was the area clicked.

    Fixed a bug that crashed the new project menu if the proper folder wasn't selected.

    Added functionality to whinge at the user if the proper folder isn't selected in the new project menu.

    First Release!

    0.1.1-alpha (.36871)
    First Release!

    Hey guys! I'm a .NET Software Developer with 10 years of experience, and I'm currently working on a full IDE for Starbound modding. I have plans to make this as feature rich as I possibly can.

    I'm calling it Horizon, or the Horizon IDE, whichever is easier for you to say. Currently, it is a work in progress, and I am forming the basic rudimentary framework for the application.

    Current working features:

    - Can create mod projects which house multiple mods
    - Can start and stop a starbound instance and monitor the log via an output
    - Can edit item files
    - Detects mods in the mods folder
    - Error Detection

    Planned Features
    - Mod Conflict Detection
    - Changing files in multiple places from one property
    - Cascading overwrite view (Showing what properties are overwritten by patches, for example)
    - Interface editing
    - WYSIWYG Editor
    - Drag and Drop support
    - Loading and Unloading of Mods
    - Enable/Disable individual items, objects, or scripts
    - Syntax Highlighting
    - Raw File view
    - Image Editing
    - Diagnostics
    - and More

    I will keep this thread updated with my progress in making this a releasable item. If anyone is interested in aiding my efforts, I already have a patreon page

    I'm also accepting any suggestions for features that you want to see added. Any suggestions?

    Here's the patreon page and the github for this project:

    Here's a cool example of the basic layout:

    Last edited: Jan 12, 2020
  2. Sparklink

    Sparklink Ketchup Robot

    You mentioned image editing, file view and editing, error detection would it be possible to use these sorts of features in tandem to be able to easily view and edit animations? I, personally, spend much of my time simply pouring over my animation files when there is an error or something does not quite look right in the way I have drawn a detail like a monster walking or a shoulder pad on an armor. For the aforementioned armor it would be pretty useful to be able to view multiple animations at the same time. That way I can watch my armor walk, run, and swim at what ever speed and be able to hit pause and find what frame in particular is causing the shoulder to clip into the helmet; such a feature would also be useful for making grand scale monsters like the Ruin where you can watch all the moving parts working without having to hit the reload button every two minutes.

    I apologize for throwing this huge wall of text in your face, but this looks like something that I would really want to use. If this tool can do some of what you are suggesting it could really help get through some of the longer more hefty work of modding some grander scale things. (I will be keeping an eye on this thread, I am liking this idea and eagerly await a day to see what this tool can give.)
    charity236 and Thelandor like this.
  3. Thelandor

    Thelandor Void-Bound Voyager

    I had thought about putting animation in the IDE, however it did not come to mind the way you explained it here. This is a really good idea, and i'll be sure to add it to the TODO list. It's somewhat of a bigger feature, but it is definitely doable.
    Sparklink likes this.
  4. Sparklink

    Sparklink Ketchup Robot

    I look forward to seeing this happen, good luck. In the meantime I think I will pass this thread along to some other modders out there; I am certainly not the only one who may have a useful input on this.
    Last edited: Dec 17, 2019
    Thelandor likes this.
  5. Lunar Eye Gaming

    Lunar Eye Gaming Pangalactic Porcupine

    I'd love to see this happen.
  6. Joseph K

    Joseph K Giant Laser Beams

    Generator for npcs and monsters would be really cool.
  7. Thelandor

    Thelandor Void-Bound Voyager

    The way i'm probably going to handle this is the same way most IDEs do -- i.e. creating a new monster will create all the necessary files and display to the user a unified abstraction. Instead of viewing say, an object, as an object file, image files, animation files, frames files, etc. You would just be shown one view that manipulates all that data at once. Probably going to be the case that upgradeable objects will be presented as separate objects with "Upgrades To" properties, since that's easier to understand and work with.

    At some point I want to do a closed alpha test, so I'm throwing a line out to anyone who wants to be a part of that, you'll essentially attempt to break the program and note any bugs or design feedback. Message me if you're interested.
    Last edited by a moderator: Jan 6, 2020
  8. Joseph K

    Joseph K Giant Laser Beams

    That will be a huge time saver. Can't wait 'til it's done!
  9. Thelandor

    Thelandor Void-Bound Voyager

    Here's an update guys.


    Currently working on the layout for individual objects. I also added a Properties Window in the corner, which will show some quick at-a-glance information. Also, mind you, that all these windows are draggable and rearrangable, so that the user can make it look how they wish for their specific workspace:


    I also have plans in the works for a central repository that you can download the most updated version of mods from directly in the editor -- a lot like NuGet. I'll either have to hook into the community website or have a separate service from scratch.
    Last edited by a moderator: Jan 6, 2020
  10. Joseph K

    Joseph K Giant Laser Beams

  11. Thelandor

    Thelandor Void-Bound Voyager

    By the way, does anyone have any advice for Patreon marketing? I do want to get the ball rolling on funding this project so I can actually devote more time to it.
  12. Joseph K

    Joseph K Giant Laser Beams

    Sounds like the sort of thing you should search up.
  13. Lunar Eye Gaming

    Lunar Eye Gaming Pangalactic Porcupine

    Yeah, I know nothing about Patreon other than its existence.
  14. Thelandor

    Thelandor Void-Bound Voyager

    That's fine, I'll figure it out at some point. It looks like I already got one Patron. Woo! I can now buy a candy bar or something to fuel this all-nighter I'm about to pull. :nod:
  15. Joseph K

    Joseph K Giant Laser Beams

    Thelandor likes this.
  16. Thelandor

    Thelandor Void-Bound Voyager

    Showcasing the early code editor design. I'll add more features to it, but at the very least it has editing and syntax highlighting.

    Pardon my poor gif making skills, haha. I spent all of my skill points in programming and neglected the other stats.
  17. Thelandor

    Thelandor Void-Bound Voyager

    I've moved to open source. Though it's still in early development, and I'm in the process of moving all of the files from local to git over the holiday, it allows you guys to test the program as commits are made. All major and minor releases will be updated here and the Patreon with a changelog.
    charity236 likes this.
  18. Lexiconian

    Lexiconian Void-Bound Voyager

    So this is basically going to be a (mostly) all inclusive program for easily creating and manipulating mod files? This sounds like something I can absolutely get behind.

    I would gladly test for you.
    Thelandor likes this.
  19. Thelandor

    Thelandor Void-Bound Voyager

    Awesome. Good to hear I have a testing base. I will let you know when there's a good working test copy.
    Last edited: Jan 1, 2020
  20. Thelandor

    Thelandor Void-Bound Voyager

    Well guys, I've finally made a release (0.1.1) and while it's just a crude launcher for now, I am still working to expand on it. I just wanted to give you guys a taste of the UI and whoever wishes to test or try to otherwise break it, can do so. Keep an eye out for further alpha releases, As I'll be diving into the IDE side of things.

    While you guys taste that one, I'm already going to work on 0.2. I'm a busy bee.
    Last edited by a moderator: Jan 6, 2020

Share This Page