Day 127: Starting "Block Editor"
Gamedev seems to always be a matter of "One step forward, one step sideways". (or maybe backwards)
Since I am juggling all the hats, I've spent the last few weeks doing a combination of things:
Determine aesthetic direction: Realistic ships, similar to those seen in "The Expanse" Scifi setting. Like The Expanse I'll also include the "infinite engines" magic, but otherwise I'm going to try to model physical accuracy as much as possible. I think it will be easier to be accurate now and add magical ships like Star Trek/Wars later, than it would be to do magical ships now and add realism later.
Here's an example of the kind of ship I'd like for players to be able to create in the MVP:
artwork by Vlad Fabry here: https://www.artstation.com/artwork/Z5GRDw
"Round-Trip" editor workflow: I now have all the basic infrastructure in place to create, edit, save, load ships. This is mostly around "serialization" of C# objects using JSON and a UI system.
Here are some images from a week or two ago of the "Ship Editor" at work:
UI System: The UI system is all done procedurally (using code). I'm using the ImGui framework, and it's working surprisingly great. Here's an example of the Menu system I setup:
My current work item is to turn this into a more general system for reuse. (in the Ship vs Block editor, and maybe elsewhere in the ShipBuilder app). I should be done with that sometime today.
New focus on vertical ships: Previously I was envisioning fantasy "space gravity" ships with a horizontal layout. The new "vertical tower" layout works nicely with how the editor is set up.
Sidestep: Block Editor. However, I'm running into a bit of an asset issue. Each of the parts shown in the above two screenshots are considered "Blocks", in that they are the most basic parts the ship will be made from. An engine, or floor will also be considered parts. My original workflow idea was to create these blocks in an external tool (AssetForge) and then import it into this builder tool.
Here's an example floor block I made, including conduit space under it.
That system works, but I already run into the issue where we want to add additional metadata to these blocks. What about specifying where related blocks (engine + nozzel) should link? what about where guns fire from, or the direction of the nozzel blast? Originally I was adding this as special metadata objects to the AssetForge model, as shown here:
concept of blocks, in the old "space gravity" horizontal layout. the Rings represent the metadata tags.
These "tags" would be identified and removed on import. This works, but is cumbersome and I'd also have to build metadata editing into the ShipBuilder later...
so that's the sidestep. I'm now going to focus on building a complete "Block Editor", so that Blocks can be created from primitive shapes and/or other blocks, and metadata can be added / visualized in the editor itself.
Keep in mind that the above is all focused on a preliminary MVP. All art is placeholder. Once I can get that out the door (as fast as possible), it will be important to revisit all these choices and consider if a change in direction is appropriate.
Untitled Starship Builder, PC
The sci fi ship of your dreams (PC, Steam)
Status | Prototype |
Author | novaleaf |
Genre | Simulation |
Tags | csharp, Godot, Sci-fi, ship-building, Space Sim |
More posts
- Day 94: Basic Editor WIP49 days ago
- Day 90: First post!53 days ago
Leave a comment
Log in with itch.io to leave a comment.