Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

WIP: Modular Space Ships with Interiors

Discussion in 'Works In Progress - Archive' started by Schneider21, Jan 5, 2015.

  1. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,510
    Update: Now Available!

    Buy it on the Asset Store

    Release thread
    - - = - -
    Original post
    After failing to complete my own game several times, I decided to lower my sights a bit and try to create a collection of assets instead. I've already learned tons, and I'm looking forward to completing it and sharing it with the community, and possibly even creating a full game using it.

    Background
    The idea came about when I wanted to play a game about being the captain of a starship. Ideally, you'd be able to explore the ship in first person, and could command your crew to maneuver the ship, prioritize repairs, and carry out missions. There didn't seem to be anything like this available, so I thought I might take a stab at creating a game in that flavor myself.

    I quickly realized this was way too much to bite off without having ever finished an actual game project before, so I decided to narrow the focus. Given that an Enterprise-type ship would be utterly massive in size and scope, I thought it might be better to start with something resembling everyone's favorite freighter from the other universe.

    Again, not wanting to start something and abandon it halfway through, I decided to focus on the elements of building the ship itself, and in a way that would allow easy creation of various ships with varied layouts. I wanted fully-realized interiors, with good-looking exteriors for fun on and off the ship. The pieces will tile nicely so the designer can snap pieces together without fear of holes in the geometry, overlapping, or mismatched textures.

    Progress So Far
    I have roughly 60 pieces built, including both exterior and interior tiles that fit nicely together, windows, and some decorative pieces. I'm learning animation as I go, so while I have a ramp that opens and extends, there's still a lot of work to be done to get it functioning properly.

    While testing the assets, I've been building a ship, the Centennial Eagle, that should showcase most of the features I want to include. The screenshots attached are of that test level. All textures are placeholder and will be tackled once modeling is nearly complete.

    screen01.jpg screen02.jpg screen03.jpg screen04.jpg screen05.jpg

    Goals
    Since I'm a web developer by profession, and have no real art skills, I wanted to make sure anyone using this package would be able to enhance it with their own abilities as easily as possible. I'll be including PSDs for all the textures, so designers can re-skin as they see fit. The tiles fit the standard FPS controller nicely, and stick to fairly even Unity units and right angles where possible for easy snapping.

    Every feature included should work natively with Unity Basic.

    Once the hard stuff is done (modeling and texturing), then the fun begins. I'm going to create a bag of scripts and prefabs to quickly add life to your ships. Panels that can be attached to objects via Editor assignment to easily perform functions like opening doors or operating lights, chairs you can sit in, etc.

    I'd like to have the first version available within the next couple months (March/April). This may change, as I'm employed full-time, do a bit of freelance work on the side, and have a baby on the way in June.

    Any feedback would be very motivating! And feel free to share any suggestions or wish list items, as well.
     
    Last edited: Feb 14, 2015
  2. MarioSantoso

    MarioSantoso

    Joined:
    May 6, 2013
    Posts:
    47
    As a fan of space-themed game and mech-themed game, allow me to throw my 5 cents
    • You have to decide what kind of art-style you are going to use? ex. are you going blocky/squarish design or curvy design? Hi-tech/Human look or Alien look? There are tons of reference out there.
    • Also you must be careful with size, are you planning on small spaceships (fighter, gunship, scout, etc) or mid-range (corvette, frigate, etc) or the larger group (carrier, destroyer, cruiser, etc). Different size, needs different approach on their modelling, texturing and many more. Don't go too bold or ambitious, concentrate on one specific art style and size.
    • You have to benchmark/compare your work with existing similar products, and analyze whether user will be interested and willing to try your asset or not, you don't have to outdo the others. Asset store has plenty of such thing, me personally love the OMEGA Sci-Fi Designer
    Good luck.

    Cheers!
     
  3. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,510
    Thanks for the input, Kilsnus.

    The most important thing for me was to be able to have useful interiors to the ships. I saw lots of modular ships, but they seemed mostly for assembling exteriors only. For me, I want to be able to slide out of the pilot's chair and walk around the ship, so it really feels like my ship, if that makes sense.

    Totally agree with you on narrowing scope. That's why I'm focusing on the mid-size range of ship. If the pack is successful, I would love to do a separate small (fighter) and big (cruiser) version as well.
     
  4. primus88

    primus88

    Joined:
    May 14, 2013
    Posts:
    611
    This has the potential to be a very powerful pack. I for one can find very interesting uses for it.
    From my point of view is how smooth the building system will be and how well the final design will work (optimization, scalability, customization, etc)

    Good luck with it and please keep us posted on development.
     
  5. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,510
    Thanks, primus. I'd love to do a building system similar to Kerbal Space Program, with anchor points that other parts can be snapped to. I don't, however, want to limit parts to just that, and initially I'm just setting things up as regular prefabs that can tile nicely, but it's all manually done.

    Another interesting thing I'm trying to get working cleanly is editor scripts to hide/show the external sections, to allow easy placement of interior objects. I have it working, but it's not super clean yet.
     
    primus88 likes this.
  6. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,510
    Short update:

    Texturing has been a mildly painful lesson to learn, but it's coming along now. Initially I had gathered all my own textures from cgtextures, but wasn't happy with the results I was getting. Due to my ship pieces all being tile-able, I needed the textures to tile also, which resulted in everything just sort of blending together in a muddy way. Plus, I had started off thinking I wanted the ship to look like a junker, but that didn't feel fun to walk around in.

    Screen Shot 2015-01-17 at 1.29.26 AM.png I'm now arduously going through the task of redoing the UV maps for each object and applying the newer texture set, based on the great PK02 pack by Philip Klevestav. I'm a tiny bit afraid that the ships will look a bit too much like plaid once assembled, but we'll see. One great thing about this pack is that it'll be easy to apply custom colors to a texture image and get a wholly separate material that will still map the same to a different ship. One thing I really want to get done is allow application of a material to a parent game object and have it applied to the appropriate child objects.

    I also wanted the interiors to feel cramped when I started, but I now wish I had made the ceilings just a tiny bit higher (which, ironically, would have made my measurements come out easier anyway). Good lesson in testing everything in-engine as early as possible. And I suppose you could just shrink the character controller down a bit, but I wanted to make sure everything works perfectly with the default FPS controller.

    I believe I have all the main hull pieces made now, and the majority of the extras I planned on doing. I keep thinking of things I want to add, but am forcing myself to complete the originally planned work first.

    I have functioning internal doors, the boarding ramp, and a hatch elevator. Currently puzzling out the two-stage animation of the loading bay elevator and how that can be user-controlled.
     
  7. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,510
    Picture update this time!

    Screen Shot 2015-01-18 at 9.45.34 AM.png Screen Shot 2015-01-18 at 9.45.53 AM.png Screen Shot 2015-01-18 at 9.46.12 AM.png Screen Shot 2015-01-18 at 9.46.37 AM.png Screen Shot 2015-01-18 at 9.46.48 AM.png
     
  8. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,510
  9. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,510
  10. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,510
    Quick video run through:
     
  11. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,510
    Playable demo! Check it out and let me know what you think, please. Good or bad... any feedback is useful.

    http://dev.justinschneider.com/modular-ship-demo/

    Known Issues:
    • I intentionally went overboard with the lens flares. JJ Abrams-style!
    • Haven't gotten the loading elevator functioning yet. I think I have a solution in mind, but it's going to involve a good bit of work.
    • Lighting and light mapping is hard! Especially with Unity Free.
    • Sounds are pretty meh. Not sure how much effort to put into these, though, as I imagine a lot of people will have their own sound solutions with audio occlusion and such. But if there's an interest in fine-tuning these for inclusion, I'll certainly work on it.
    • Animation on ramp needs adjusted still.
    • Still need to animate a few objects, and create half a dozen or so new ones.
    • Occasionally the hatch elevator launches you up into the air. Fun!
     
  12. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,510
    Updated the web player with latest additions.
    • Added furniture for living quarters, lounge, latrine, and galley.
    • Fixed loading elevator start state (interactivity still to come!)
    • Added verti-jets (takeoff engines)
    Also added ability to assign material directly to the parent ship game object and apply it to all enclosed ship items. Allows you to easily change color schemes, of which I have 6 currently.

    ship_colors.gif

    Don't want to feel like I'm fishing for compliments, but I'm not getting a lot of feedback here. Does this seem like an asset anyone would like to use, or am I mistaken in thinking this would be something the community would want?

    On that note, any features you'd really like to see implemented?
     
  13. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,510
    Just did a count, and I'm up to 99 pieces for the kit! Trying to think of a nice way of presenting a guide for how pieces would fit together.

    all-parts.jpg

    Keep in mind, every external hull piece contains an associated internal piece. These pieces are split as such for two reasons. One, so you can disable the external pieces in the editor to see inside the ship. And two, so your internals and externals don't have to follow the same rules. The example ship in the demo I've linked to, for example, has diagonal exterior pieces near the engines, while the matching internal pieces are squared off corners.

    I was thinking I was pretty much done with modeling, but it seems silly to stop just short of 100 pieces. So whoever posts with the best request for a new piece, I'll add that to the kit.
     
  14. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,510
    Not that anyone was dying to know, but this project isn't dead yet. I learned a very valuable lesson that I'd like to share with anyone who decides to do something in the future similar to this project, and cleaning up that mistake is what's holding me up now.

    So the basic structure of how I was working with my models was I had one master file (modularship.blend) that I would model and texture in, and then I'd create new files that I'd import proxies of each model into and save as its own file (int-corner-window.blend, for example). The idea behind this was that I'd get the advantage of being able to see all the parts together in one file while working, and still have separate files for importing into Unity. Similarly, when I updated a model in the master file and saved, I could reimport the individual file alone, which, since it was just referencing the master file, would have the updated model referenced.

    This was mostly okay, except at one point I did start experiencing weird texture issues in Blender, since I had around 100 objects that were all referencing the same, large texture. Other than that, though, things worked as expected until I got to animated parts. These ones had to have their proxies broken in order to rename the objects and Armatures so that they could by synced up in Unity. I'm not entirely sure that the issues at this stage weren't because of my lack of experience, though, so it may still be possible to do things this way without issue.

    As anyone who has uploaded assets to the store knows, you cannot use .blend files for your final asset. So as I was exporting my models to FBX, I ended up breaking most of the animations anyway, and learned a good bit about Skinned Mesh Renderers. :)

    After a good bit of tinkering and randomly dragging items around, parenting them to God-knows-what, I have animations working again, although all my previously defined animations are now goofy and need to be re-keyed. So I have more cleaning up than I anticipated, but at least things are still moving.

    Lesson: Get your models into Unity as soon as possible in the format you plan on using for the final product!
     
  15. DizzyTornado

    DizzyTornado

    Joined:
    Nov 17, 2013
    Posts:
    134
    What if you made a special Hyperspeed or FTL engine/drive?
     
  16. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,510
    Good heavens, a response! :p

    I actually just submitted the asset for approval last night, so I'm kind of on freeze for now, but you're absolutely correct. We need a hyperdrive.

    If the asset gets rejected for any reason, I'll absolutely include another drive, and maybe some more internal machinery as well. Otherwise, it'll be included in Update #1 for sure.

    Thanks for the input! And check out the latest version of the web demo here, if you want: http://dev.justinschneider.com/modular-space-freighter/
     
    DizzyTornado likes this.
  17. DizzyTornado

    DizzyTornado

    Joined:
    Nov 17, 2013
    Posts:
    134
    Awesome! I will probably get the asset too! I will check out the demo this evening
     
  18. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,510
    That just made my day. Though to be fair, you don't know how much it's gonna cost yet. ;)

    Spoiler: It will be $25.
     
  19. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,510
    Now available!

    Release thread

    View on Asset Store

    As I indicated before, there's more content to come. The hyperdrive I promised @MrSecretMansion is complete, but not added until I have a few more models to throw in. I'm also thinking I'll create some weaponry for the ship like laser cannons and turrets and such.

    If anyone has any more suggestions, I'll gladly listen! Er, read...
     
  20. DizzyTornado

    DizzyTornado

    Joined:
    Nov 17, 2013
    Posts:
    134
    I was wondering if you could include a script that makes different parts of the ship break off when hit fast enough with a projectile?
     
  21. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,510
    I put a lot of thought into destruction. The parts by themselves don't let well to being broken, since each ones faces point only towards the intended direction. I.E, if you were to blow off a section of ship, you'd have gaps in the geometry where walls should be.

    A more comprehensive solution would be actual mesh deformation. So at the point of impact of the projectile, instantiate a prefab of an "exploded region", let's call it. That mesh would remove the ship's meshes (interior and exterior) at the parts inside the exploded region. It'd then use the exploded region's edges to connect parts between the exterior and interior, calculate normals towards the center of the exploded region, and texture the faces with a new "burnt metal" looking texture. This could even work on non-breeching explosions, really.

    This is actually a good bit above what I had imagined including in the asset, but I would love to see it done. Can't justify the amount of extra work just yet though before having even a single sale. :p
     
  22. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,510
    Since it's been almost 4 years since this thread has been updated, I figured I'd post here to remind anyone still following it to check out the release thread for any of the latest news. MSF2 is currently in the works and will be a free upgrade for anyone who owns MSF.

    MSF2 will include a full editor, so you no longer have to piece the parts together yourself. Current WIP for the editor looks like this:


    MSF2 will also make it easy to use various styles of ship parts, and will include several options out of the box. With the included template and instructions, you'll be able to add your own models as well.

    Any features you guys would like to see, make sure to let me know so I can get them added!