Criss' Thread

    Joined
    Dec 22, 2015
    Messages
    15
    Reaction score
    2
    Procedural Generation isn't actually that hard to make. It's a simple random number generation with limits based on the previous number. Hell I could write up my own version if there was a good enough reason to. :p



    You quite literally just described the looks part of it. :p



    No, it wouldn't. It'd just require setting each blocks position, which would just derive from the current BP's spawning system.



    Again, no. You can just place them on top of the shit already there.

    While I'm only an amateur programmer, I still know my shit. :p
    Well I don't see how you can "just put it there" without rewriting a bunch of code, but there is absolutely no point in arguing if neither of us knows what we are talking about (which is how spawning is implemented in SM).
     
    Joined
    Feb 25, 2016
    Messages
    1,362
    Reaction score
    268
    I really like the idea of randomized modules. It should be relatively simple, too: Make a ship. Now, choose a block where a module will connect. Go build a module. Choose the block (And orientation, just like permanent rail docking) on the module that will connect. Now, you have two versions of the ship: One with, and one without the module. Now, go build 2 more modules for the same spot. Then go make 2 or 3 modules for a different spot. Let's say you have 3 for each. You now have 9 possible vessels (By my math) each with two modules, then 1 with no modules, and 6 more with one module only. That's 16 vessels, all with work required for less than two.

    Now all you need is a program that will choose modules in succession (Keeping in mind the "No modules" option), for each point. You get exponential expansion of the vessels that can appear in the game, all with minimal work. Every vessel can become a new challenge, based on whether it can fight longer (Armor/shielding unit) or faster (Thruster) or escape (Extra jump drive) or fight back (Weapons pods), whatever.

    Let's say you make the following: Cargo pod, engine pod, extra weapons (Of all useable types. No damage pulse or shotgun beams/cannons, please), extra crew space (Boarding parties/space marines, anyone?), medical bays, who knows.
    Now, you choose a set number of locations on a ship where one of these modules can appear. So, let's say at the back of the vessel you put a place where a small AMS drone can be docked. In one iteration of the ship, there's an AMS drone there. The next, it's a small medical closet. Then another ship that spawns has an extra engine there, making it faster. The AMS drone-carrier is better defended. The medical version can support its crew better.

    This should mostly be present on Outcast or Scavenger vessels, because the TG would go for mass production of vessels with defined roles, not just slapped-together messes of parts.
     

    Ithirahad

    Arana'Aethi
    Joined
    Nov 14, 2013
    Messages
    4,150
    Reaction score
    1,330
    • Purchased!
    • Top Forum Contributor
    • Legacy Citizen 8
    Well I don't see how you can "just put it there" without rewriting a bunch of code, but there is absolutely no point in arguing if neither of us knows what we are talking about (which is how spawning is implemented in SM).
    Right now spawning just loads blueprints, but mix-and-matching ships from various predefined parts shouldn't be all that impossible to implement. It WOULD, however, take some time; it's a whole new system.
     

    Blaza612

    The Dog of Dissapointment
    Joined
    Nov 16, 2013
    Messages
    787
    Reaction score
    209
    • Legacy Citizen 4
    Well I don't see how you can "just put it there" without rewriting a bunch of code, but there is absolutely no point in arguing if neither of us knows what we are talking about (which is how spawning is implemented in SM).
    The thing is, I DO know what I'm talking about. ;)

    You can simply just put it there. The blocks use a co-ordinates system, to both exist and spawn. Simply get the spawning system to place the blocks from the BP system and add that when it comes to actually placing the blocks. As for the actual generation, it'd just be a series of one number being generated, then a few others to determine base modules with limits based on the first number, then have another series of randomized numbers with limits based on the module numbers to determine the details. All in all this wouldn't take much effort to write and wouldn't take much grunt to run, it's just a few randomized intergers running simultaneously, so it's very easy to run.

    It WOULD, however, take some time; it's a whole new system.
    The part that would take the most time is creating every different variation. The system itself is quite straight forward and wouldn't be difficult to write, especially with the BP System's spawning system already written.
     

    Ithirahad

    Arana'Aethi
    Joined
    Nov 14, 2013
    Messages
    4,150
    Reaction score
    1,330
    • Purchased!
    • Top Forum Contributor
    • Legacy Citizen 8
    Yes, but this isn't BP spawning. It's throwing together a 'blueprint' (or an entity, depending on how you do it) from several randomly-generated files.
     

    Reilly Reese

    #1 Top Forum Poster & Raiben Jackpot Winner
    Joined
    Oct 13, 2013
    Messages
    5,140
    Reaction score
    1,365
    • Legacy Citizen 8
    • Thinking Positive
    • Purchased!
    The thing is, I DO know what I'm talking about. ;)

    You can simply just put it there. The blocks use a co-ordinates system, to both exist and spawn. Simply get the spawning system to place the blocks from the BP system and add that when it comes to actually placing the blocks. As for the actual generation, it'd just be a series of one number being generated, then a few others to determine base modules with limits based on the first number, then have another series of randomized numbers with limits based on the module numbers to determine the details. All in all this wouldn't take much effort to write and wouldn't take much grunt to run, it's just a few randomized intergers running simultaneously, so it's very easy to run.



    The part that would take the most time is creating every different variation. The system itself is quite straight forward and wouldn't be difficult to write, especially with the BP System's spawning system already written.
    It would take a long time to get it working seemlessly though. We aren't very good at killing bugs you know.
     

    Blaza612

    The Dog of Dissapointment
    Joined
    Nov 16, 2013
    Messages
    787
    Reaction score
    209
    • Legacy Citizen 4
    Yes, but this isn't BP spawning. It's throwing together a 'blueprint' (or an entity, depending on how you do it) from several randomly-generated files.
    But this IS the BP spawning system. You literally get the system that spawns the blocks based on the relative position of another. It is literally just spawning shit onto a ship with a bit of procedural generation determining WHATS being spawned onto it. :p
     
    Joined
    Feb 25, 2016
    Messages
    1,362
    Reaction score
    268
    It is the blueprint system, except instead of the game saying "Block 11 244 2 is a Grey Advanced Armor Hepta", the game says "Block 11 244 2 is a Grey Advanced Armor Hepta or the first block of Module One", and then randomly chooses one. Based on this choice, the game then (In the same fashion as the basic blueprint/ship spawning system, I'd assume) fills in the rest of the module, since its choice of block at coordinate point 11 244 2 determined a new set of instructions, basically.

    I'm afraid my coding skill is limited to some use of LabVIEW, so this isn't my area of expertise. That said, it still shouldn't be that hard (But then again, everything it coding "shouldn't be that hard" to do....and yet it is.
     

    nightrune

    Wizard/Developer/Project Manager
    Joined
    May 11, 2015
    Messages
    1,324
    Reaction score
    577
    • Schine
    • Top Forum Contributor
    • Thinking Positive
    My questions to you.
    1 - Do you think we should do a lot of variant hulls or fewer?
    2 - I don't want to change the paint job drastically for variant hulls. I would be okay with adding other details to denote it's new purpose however. Thoughts?
    3 - What are your thoughts on rare / legendary ships and their designs. For example: the Trading Guild Faction could get legendary freighters (riveting I know), but they could come with some heavy defenses and extreme cargo capacity.
    1) I'd say the right amount. I wouldn't work on them over new assets things like the factions you haven't announced yet.

    2) That sounds awesome to me. Like the Scavs bolting on another large weapon and reactor for a capitol ship destroyer.

    3) Rare ships would be cool, but if they are getting arbitrary buffs count me out. I think you are gonna be limited here based on the AI can do. I'll try to answer this more in detail to what I mean later on.
     
    Joined
    Nov 6, 2015
    Messages
    95
    Reaction score
    34
    3 - What are your thoughts on rare / legendary ships and their designs. For example: the Trading Guild Faction could get legendary freighters (riveting I know), but they could come with some heavy defenses and extreme cargo capacity.

    I'd like this though different naming conventions for each faction would fill this better than universal conventions. I.E. Legendary Freighter = Reinforced Bulk Freighter or Legendary Outcast Frigate has a unique name like "Claw of the Forgotten"?
    Sooo... shiny Pokemon?
     
    Joined
    Jul 29, 2013
    Messages
    1,173
    Reaction score
    494
    • Competition Winner - Small Fleets
    • Top Forum Contributor
    • Legacy Citizen 5
    Criss Variants: as many as you can stuff into the game logically. Once you guys get a good naming convention and a system in place for spawning them up and running this would add untold layers of depth to the game for a relatively small labor investment.

    And the best part is, this doesn't have to fall completely on Saber and yourself. You've got a talented community here, as you know. So why not let us take a crack at it? Have somebody crank out half a dozen variants on the TG Frigate and see how you like it. Give them some guidelines, tell them you want one cargo variant, one missile variant, one transport, one command, and one patrol version, and then give them leeway to come up with a few variants of their own design.

    In reality, variants aren't going to be huge changes, so you can trust a completely different builder to noticeably alter the appearance of the base ship without straying too far away from the original design. In fact, I would argue that having a different builder create variants would make them more distinct than building them yourselves, with the added benefit of perhaps altering one in a manner you never would have considered.
     
    Joined
    Feb 25, 2016
    Messages
    1,362
    Reaction score
    268
    TheWurm, not really. It'll be a ship that looks similar to the basic version, but has a different attribute. It's not some magic buff, this ship actually has a bolted-on weapons package and heavier armor or extra thrusters or whatever. It's different and more powerful, not just magically "special".
     

    Criss

    Social Media Director
    Joined
    Jun 25, 2013
    Messages
    2,187
    Reaction score
    1,772
    • Master Builder Bronze
    • Video Genius
    • Competition Winner - Stations
    But this IS the BP spawning system
    Yes, however we would have to define how the parts stick together. If we created one set of pieces, without a very clear build formula / philosophy, we would be spending time figuring this out how they would need to stick together. If we do have chunks that are all the same size but different looks we would probably loose build quality. There is no doubt these builds would be less interesting. This is much easier done with say station rooms, or planet structures, which is something Auburn has already taken a look at.

    factions you haven't announced yet.
    I am not even sure when we would announce these factions or work on them. The game has to change quite a bit before they would even be useful.
     
    Joined
    Jun 27, 2013
    Messages
    896
    Reaction score
    166
    Yes, however we would have to define how the parts stick together. If we created one set of pieces, without a very clear build formula / philosophy, we would be spending time figuring this out how they would need to stick together. If we do have chunks that are all the same size but different looks we would probably loose build quality. There is no doubt these builds would be less interesting. This is much easier done with say station rooms, or planet structures, which is something Auburn has already taken a look at.
    I think the idea is not to have a set of generic ship modules, but have sets of modules per ship. It could be done in a way that allows such modules to be selected from, without having to have more than one actual module available from the start. If there is only one default set, you'd end up with the same exact ship every time; however at a later date more modules could be added, and the procedural generator would start to choose from them.
    Consider EVE's modular cruisers - AFAIK they are split into a few different sections, engines, weapons, etc. per ship model - that is, you don't get Minmatar modules on a Gallente ship, or frigate modules on a cruiser, and so on. For each ship model, the interfaces between the modules would have to be defined so they can mix and match, but you wouldn't need (or want) to make them match between different ship models.

    TL; DR
    If you break up a ship into modules by their function, you can "procedurally" assemble that exact ship only. Later, more variants of each module can be designed for that ship, respecting the relevant dimensions for each module. Now these modules can be mixed and matched for variations of that ship model, but not spill over to other ships, thus maintaining build quality to any desired level.
     
    Joined
    Feb 25, 2016
    Messages
    1,362
    Reaction score
    268
    My thought was to have modular extras. Say you take an Outcast exploration vessel, and have a blank space on the top hull. You build an extra cannon assembly, a jump drive system, and an extra thruster. All of these have different shapes, but fit into the same area, and so can go in the same space.

    The game then chooses to have this (Small, not an integral part of the ship, but an extra piece) module (Or doesn't, whatever), and now you have a slightly different vessel.

    The idea I'm explaining isn't to do with making whole procedural ships, but to have procedural differences in a single ship. So an Outcast frigate can be faster, or harder-hitting, or better shielded, or whatever, yet they're all practically identical, except for the locations that can, but don't always, have an extra piece.

    Adds variety without adding more ships.
     
    Joined
    Jul 15, 2014
    Messages
    506
    Reaction score
    110
    I'm gonna have to agree that procedural generation on ships isn't really the best idea, for the simple reason that procedural generation practically always ends up looking bland compared to hand crafted assets. Now, Starmade obviously has a large reliance on procedural generation by necessity due to it's scale, but for the most part it's hand crafted assets being placed randomly. Really the only true procedural generated things are planets or asteroids, which are mostly there to be built on or eaten.

    Even the modular approach wouldn't really work for ships. For the ships to not look like nonsense every part would have to look good with every other, layouts would have to standardized and what you would end up with is a lot of bland, generic ships. Not to mention coding the thing would be a diversion of development time in a game where some people are already complaining of how long the game is taking. As it stands now none of the coding staff are needed for asset creation as Criss, Saber and everyone who entered the fleet contest have that covered, leaving them free to finish the rest of the game. Even for things like modular extras etc as Madman mentioned it honestly seems like it would just be quicker to make more then one ship.
     
    Joined
    Feb 25, 2016
    Messages
    1,362
    Reaction score
    268
    It definitely would be much slower to make a full other 200m cruiser than to add some places where various modules can occasionally appear.
     
    Joined
    Jul 15, 2014
    Messages
    506
    Reaction score
    110
    I don't really agree there, since there's no reason you would have to start from scratch. Just save a pre-module'd up version of the ship, and you're good to go.
     
    Joined
    Feb 25, 2016
    Messages
    1,362
    Reaction score
    268
    But then why not just do whatever work is required to exponentially increase the number of different ships you can have?

    Let's stick with the 200m ship for now: You make 12 places on this vessel. Each of these module places has 3 possible modules plus the capability to be left empty. Do you want to hand-make the 4^12 different combinations of modules that exist? That's 4*4*4*4*4*4*4*4*4*4*4*4, just so you know.

    The procedural system means that you can see all of those variants without making them by hand. And you can then do this with 100 different ships (If you have the time).
     
    Joined
    Jul 29, 2013
    Messages
    1,173
    Reaction score
    494
    • Competition Winner - Small Fleets
    • Top Forum Contributor
    • Legacy Citizen 5
    Still haven't heard a compelling argument for modules of variants.

    Overall, a series of random interchangeable rooms is far less immersive than a hand-crafted variant, no matter how slight the difference between the variant and the original.