You could learn from Notch

    Edymnion

    Carebear Extraordinaire!
    Joined
    Mar 18, 2015
    Messages
    2,709
    Reaction score
    1,512
    • Purchased!
    • Thinking Positive Gold
    • Legacy Citizen 5
    Can you say that about here?
    What I can say is that you seem to have very little to no understanding on the importance of game balance.

    You repeatedly complain about how Schine removes anything that they "didn't anticipate", when that is demonstrably false. What they remove is unexpected things that actively harm the game to the point of making it unplayable not just for the individual but for entire servers.

    The well being of the server is more important than your unlimited creative freedom.
     
    Joined
    Dec 14, 2014
    Messages
    745
    Reaction score
    158
    • Community Content - Bronze 1
    • Purchased!
    • Legacy Citizen 2
    What I can say is that you seem to have very little to no understanding on the importance of game balance.

    You repeatedly complain about how Schine removes anything that they "didn't anticipate", when that is demonstrably false. What they remove is unexpected things that actively harm the game to the point of making it unplayable not just for the individual but for entire servers.

    The well being of the server is more important than your unlimited creative freedom.
    Ok, you are missing the point and maybe that is my fault for not being clear enough in explaining it. That said others have managed to understand it.

    My issue isn't with them removing it or diminishing per-say. My issue is that they do it when they actually have other options to deal with it often simple options.

    The beam transfer system they could simply have prevented from targeting the parent ship.
    If they are worried about lagg from stuff breaking free. Well we still have the ability to dock ships, cargo containers, turrets all of which can cause lag.
    There are 3 extremely easy fixes any of which could fix this issue of docked entity collision lagg.
    1) not store docked items in sub directories. Use a docked list and store in one directory. This would also allow multi docking between objects making the chances of such issue much smaller
    2) set a flag in the ship, turret menu call it hull that way they can use it to prevent it from breaking away from the ship so long as the flag is set.
    3) simply turn off collision detection on docked entities and their parent - after it has broken loose strictly between parent ship and docked entity. ~edited to clarify

    As for the "Anticipate" The devs actually admitted to it in a recent post between me and DukeofRealms. Guessing you missed that conversation.
    There however isn't anything intently wrong with it except it was done repeatably and then the term exploit was used towards users as if we created the issue. He understood it. So why are you having a problem with something the Dev got?

    Look I appreciate your input seems though you just missed what was actually being fought over.
     
    Last edited:

    Ithirahad

    Arana'Aethi
    Joined
    Nov 14, 2013
    Messages
    4,150
    Reaction score
    1,330
    • Purchased!
    • Top Forum Contributor
    • Legacy Citizen 8
    Just going to note, the equivalents of things like note block songs, automatic farms, and redstone computers in StarMade are things like automatic spinning planet salvagers, logic computers, mechs, and rail-based games. The 'user-created unintended mechanics' that are patched out have no equivalent in Minecraft, thankfully. Imagine if there was a way to spam-click Ender Pearls and never take damage or consume your Ender Pearl item, but be able to speedily teleport through the world and lag out the game in the process, or if there was a way to glitch out your hotbar so that you can slash with 10 diamond swords at once... Would you call those things 'unintended mechanics' and want Mojang not to remove those? Because that's what a lot of our 'unintended mechanics' would equate to. The only difference is that a lot more things are built with blocks (or with specifically the block linkage data, in the case of the ghost block exploit) so it feels like the stuff is the product of player ingenuity and not the game having issues... But in effect, there is no difference.

    And saying that docked reactors are better than auxiliary power is rather like this:

    Imagine if, in Minecraft, there used to be a trick where you could pile up falling sand entities around yourself and they would block some damage. (there wasn't, but this is for the sake of argument.) If this was a thing, people always would have used it in PvP. If they removed this 'trick' and added shields instead, which were more predictable and less likely to crash servers than this hypothetical exploit, would you be complaining about that too? :\
     

    Edymnion

    Carebear Extraordinaire!
    Joined
    Mar 18, 2015
    Messages
    2,709
    Reaction score
    1,512
    • Purchased!
    • Thinking Positive Gold
    • Legacy Citizen 5
    1) not store docked items in sub directories. Use a docked list and store in one directory. This would also allow multi docking between objects making the chances of such issue much smaller
    Granted, but we don't know how badly that is hard coded into the system now.

    I'm a professional programmer by trade myself (not games, I do application programming for a large company), and sometimes its just plain a case of "We'd love to do that, but it would require a rewrite of the entire damned system to make it happen".

    Just because you can say its a small easy thing doesn't mean it is when there are god knows how many dependencies that would all break and have to be rewritten as soon as you change it.
    2) set a flag in the ship, turret menu call it hull that way they can use it to prevent it from breaking away from the ship so long as the flag is set.
    Well first thing that springs to mind here is that you would have to effectively make the docking blocks invincible to keep them from being destroyed, which would mean people would abuse the hell out of it by simply covering their hulls in docked blocks. Otherwise there would be nothing to tie the turret to the ship any longer and you'd need to rewrite the entire way docked entities worked from the ground up.

    Or you could have turrets despawn instead of breaking loose, but that removes resources from the game meaning there's less to salvage for the victor, and some of those turrets can be huge.
    3) simply turn off collision detection on docked entities and their parent
    And listen to the cries people would right send up about how the turrets now clip through the ship. Or worse yet, people would put turrets INSIDE of the ships so that they could shoot out but nothing could shoot in to hit them.

    So again, you don't seem to be taking game balance into mind with these.

    Just because an answer looks simple and obvious to you does not mean the answer is actually simple or obvious at all. To accuse Schine of doing it "wrong" when they try to fix something is honestly pretty arrogant on your part considering you don't know anything about the code, how it works, or how many other layers of things are going on that make an "obvious" answer into a really BAD answer once you get into the nitty gritty of it.

    I trust the judgement of the people who actually wrote the code as to what the best way to implement something is infinitely more than ANYONE on this forum. If you can't trust them to make the right call, perhaps you should find another game because you're going to be nothing but frustrated.
     

    Ithirahad

    Arana'Aethi
    Joined
    Nov 14, 2013
    Messages
    4,150
    Reaction score
    1,330
    • Purchased!
    • Top Forum Contributor
    • Legacy Citizen 8
    Granted, but we don't know how badly that is hard coded into the system now.

    I'm a professional programmer by trade myself (not games, I do application programming for a large company), and sometimes its just plain a case of "We'd love to do that, but it would require a rewrite of the entire damned system to make it happen".
    Dependencies include shipyards, turrets, lots of entity saving/loading stuff that would have to be rewritten, probably the model export feature, maybe some physics, saving/loading of entities, we'd need a technically new blueprint format again, etc. And of course, the rails themselves, and that system seems to have taken quite a while. But it may well be worth it. It would just take a long time and wouldn't be a good thing to do until there are a lot of other things in the game to keep players occupied. :P
     

    Edymnion

    Carebear Extraordinaire!
    Joined
    Mar 18, 2015
    Messages
    2,709
    Reaction score
    1,512
    • Purchased!
    • Thinking Positive Gold
    • Legacy Citizen 5
    Dependencies include shipyards, turrets, lots of entity saving/loading stuff that would have to be rewritten, probably the model export feature, maybe some physics, saving/loading of entities, we'd need a technically new blueprint format again, etc. And of course, the rails themselves, and that system seems to have taken quite a while. But it may well be worth it. It would just take a long time and wouldn't be a good thing to do until there are a lot of other things in the game to keep players occupied. :P
    Exactly.

    People don't tend to think outside of the limited area of a particular problem.

    The beam transfer stuff is still based on docking and turret related stuff. You likely can't change JUST the behavior of a single block/weapon type in what it can and cannot hit entity wise because all of that stuff is controlled at the base object layer in the code. To change one you'd have to change them all, or create an entire new form of turret/docking specific to that one thing (that may or may not even still exist by the time the game goes live, which means lots of wasted time, effort, and bloated code).

    Unintended consequences are a BIG thing, and quite often "small" changes to the lower levels rippled out into big changes further down the line in places you didn't expect.
     
    Joined
    Dec 14, 2014
    Messages
    745
    Reaction score
    158
    • Community Content - Bronze 1
    • Purchased!
    • Legacy Citizen 2
    Granted, but we don't know how badly that is hard coded into the system now.
    If you program professionally you probably do like I do and are smart enough to use a couple basic files for loading and the actual files that do stuff like parsing and so on are actually done in separate files. My loading files are 17 lines long. By doing that I can use the exact same code to load any number of files be they binary or text based. I'm betting schema is that smart as well. Secondly, all the objects listed by Ithirhad are all stored in the same type of file structure. So only one change would need to be made to handle all those.
    File format - StarMade Wiki
    Blueprint File Formats - StarMade Wiki
    As for blue prints they could leave them the same or they could change them along with it. That is essentially a matter of an if statement use this method or use this other method.

    Well first thing that springs to mind here is that you would have to effectively make the docking blocks invincible to keep them from being destroyed, which would mean people would abuse the hell out of it by simply covering their hulls in docked blocks. Otherwise there would be nothing to tie the turret to the ship any longer and you'd need to rewrite the entire way docked entities worked from the ground up.
    From what I have managed to test the rail and rail docker essentially create a reference point. The actual docking is through the ships core.
    once they connect the docked entity is simply transformed as being connected to the ship based on that point of connection or potentially the cores relative position. Doesn't matter as long as they pick a point that is at the relative position to the ship to go by.
    The entire purpose of the flag I am talking about is so that if the docker or rail is broken it would simply still keep going and the unit would stay attached to the ship in the same position. In short it is a lock on the flag created when docking saying the entity is docked. Thus it can only become undocked when the flag is removed.

    And listen to the cries people would right send up about how the turrets now clip through the ship. Or worse yet, people would put turrets INSIDE of the ships so that they could shoot out but nothing could shoot in to hit them.
    This is my fault for not being clear enough or writing it all the way out. I mean when it comes undocked only. That collision issue causes lagg when ships and turrets come undocked also and get stuck in the hull. So this would fix the issue all the way around.

    But reading your reply tends to say you don't think he would use the simplest loading method he could or the simplest check method for if something is docked. I try to give him more credit and assume he is as capable as at least myself.
    [doublepost=1491857896,1491857740][/doublepost]
    Dependencies include shipyards, turrets, lots of entity saving/loading stuff that would have to be rewritten, probably the model export feature, maybe some physics, saving/loading of entities, we'd need a technically new blueprint format again, etc. And of course, the rails themselves, and that system seems to have taken quite a while. But it may well be worth it. It would just take a long time and wouldn't be a good thing to do until there are a lot of other things in the game to keep players occupied. :P
    They all use the same file type. The blue print files are also documented. I listed the links to the reply above. Hope if you are curious.
    And you are correct just because something is some work to start with the long running implications could be worth while.
     
    Joined
    Dec 14, 2014
    Messages
    745
    Reaction score
    158
    • Community Content - Bronze 1
    • Purchased!
    • Legacy Citizen 2
    To give you a better visualization of why I think it is possible.
    This is a simple way of loading in a text file.
    ########################################################################
    #include "loadtextfile.h"

    std::string LoadTextFromFile(std::string path)
    {
    std::ifstream sourceFile( path.c_str(), std::ios::in );
    if( sourceFile.is_open() )
    {
    std::string content;
    content.assign( ( std::istreambuf_iterator< char >( sourceFile ) ), std::istreambuf_iterator< char >() );
    sourceFile.close();
    return content;
    }
    else
    {
    return "error";
    }
    }
    ###############################################################################
    It can be used to load any type of text file simply pass it the name.
    Stuff like parsing and so on I do in other files.
    I load binary files very similarly with a very generic file and then do the work in other files.

    I assume Schema is as at least as capable of a programmer as myself and has learned this a long time ago.
    It is literally a few lines of code at most for me to switch between loading files the way I suggest vs loading the way he is doing now.

    As much as I might rag on people I don't do it generally because I think someone is stupid pretty much you can bet I am trying to get their attention to something they can fix and it will help them.

    Windows has a limit to file path names. Don't know if you knew that or now. The length of that path is longer or shorted depending on what version you are on. Windows NT, 2000 it was something like 255 bytes but only 240 was usable.
    Windows 10 only allows you to go 80 structures deep with this game.
    Relying on windows directories is a bad programming practice to separate file hierarchy for that reason.
    That or he could try and comply with the microsoft extend file names to get out to 32,767 or windows 10 unlimited if you comply.
    Naming Files, Paths, and Namespaces (Windows)
    There isn't a lot of work difference just the windows extend names won't give you added performance.

    In truth if he wants max performance loading a compressed file and uncompressing it is faster than loading the larger file because more processor instructions can be done in the time a hard drive needs to seek and or read data and transfer it. There are plenty of articles on load time vs compression. So no need to take my word for it.
    [doublepost=1491859531,1491859374][/doublepost]
    Don't hurt your arm patting yourself on the back there.
    Are you saying I shouldn't give him that type of credit?
    I'm not saying I am the best programmer or anything in fact that would be contrary to the statement.
    It would be more accurate to say I used myself as the minimal bar.
    So what is your issue or point?
     

    Ithirahad

    Arana'Aethi
    Joined
    Nov 14, 2013
    Messages
    4,150
    Reaction score
    1,330
    • Purchased!
    • Top Forum Contributor
    • Legacy Citizen 8
    To give you a better visualization of why I think it is possible.
    This is a simple way of loading in a text file.
    ########################################################################
    #include "loadtextfile.h"

    std::string LoadTextFromFile(std::string path)
    {
    std::ifstream sourceFile( path.c_str(), std::ios::in );
    if( sourceFile.is_open() )
    {
    std::string content;
    content.assign( ( std::istreambuf_iterator< char >( sourceFile ) ), std::istreambuf_iterator< char >() );
    sourceFile.close();
    return content;
    }
    else
    {
    return "error";
    }
    }
    ###############################################################################
    It can be used to load any type of text file simply pass it the name.
    Stuff like parsing and so on I do in other files.
    I load binary files very similarly with a very generic file and then do the work in other files.

    I assume Schema is as at least as capable of a programmer as myself and has learned this a long time ago.
    It is literally a few lines of code at most for me to switch between loading files the way I suggest vs loading the way he is doing now.

    As much as I might rag on people I don't do it generally because I think someone is stupid pretty much you can bet I am trying to get their attention to something they can fix and it will help them.

    Windows has a limit to file path names. Don't know if you knew that or now. The length of that path is longer or shorted depending on what version you are on. Windows NT, 2000 it was something like 255 bytes but only 240 was usable.
    Windows 10 only allows you to go 80 structures deep with this game.
    Relying on windows directories is a bad programming practice to separate file hierarchy for that reason.
    That or he could try and comply with the microsoft extend file names to get out to 32,767 or windows 10 unlimited if you comply.
    Naming Files, Paths, and Namespaces (Windows)
    There isn't a lot of work difference just the windows extend names won't give you added performance.

    In truth if he wants max performance loading a compressed file and uncompressing it is faster than loading the larger file because more processor instructions can be done in the time a hard drive needs to seek and or read data and transfer it. There are plenty of articles on load time vs compression. So no need to take my word for it.
    I wasn't talking about a question of pulling the files in. I thought you wanted to change docking trees so that everything was saved as 'links' rather than a tree, which would have gameplay improvements too such as the ability to dock two ships together with extending docking tubes. If you mean just reading off a tree format without a physical file tree, yes, that's easy to implement, I'd assume.
     
    Joined
    Dec 14, 2014
    Messages
    745
    Reaction score
    158
    • Community Content - Bronze 1
    • Purchased!
    • Legacy Citizen 2
    That wasn't targeted at you. I addressed you specifically with the following statement. "They all use the same file type. The blue print files are also documented. I listed the links to the reply above. Hope if you are curious. And you are correct just because something is some work to start with the long running implications could be worth while."
    In short I agreed with your assessment I just let you know it used the same files and where you could find information on them.
     

    Lone_Puppy

    Me, myself and I.
    Joined
    Mar 12, 2015
    Messages
    1,274
    Reaction score
    529
    • Purchased!
    • Community Content - Bronze 2
    • Legacy Citizen 8
    From what I've read here, the underlying issue is lag due to collision detection.

    GRHayes I can see where you're heading with your docking suggestions, but all of those and many more extensions to these or alternatives have already been suggested in the past, but it always comes back to the collision issues. Not to mention, additional processing due to the numerous additional calculations that would be generated.

    3) simply turn off collision detection on docked entities and their parent
    I suggested something similar to this myself in the past, but I called it delayed ghosting the docked entity, while giving it high acceleration away from the centre of the host/mothership in order to spin off and clear far enough away from the host to prevent collisions. After x-seconds the ghosting effect is turned off, theoretically with the now floating docked entity away from the host. Unfortunately, this leads to another problem, where it could end up inside another entity such as the attacker or whatever, turning back to a worse scenario where it clips inside with no way out.

    hypothetical exploit
    Yeah, I'm not comfortable with it being referred to as an exploit like it's a dirt word. After all, everything about a game is exploiting what you can do and what tools you have in order to win.

    Or worse yet, people would put turrets INSIDE of the ships so that they could shoot out but nothing could shoot in to hit them.
    I wouldn't think this would work. The turret would just shoot the inside of your ship and be completely ineffective.

    I'm a professional programmer by trade myself (not games, I do application programming for a large company), and sometimes its just plain a case of "We'd love to do that, but it would require a rewrite of the entire damned system to make it happen".
    I agree with you there! I suspect the Schine guys, Schema in particular has a life outside this game and are probably not as time rich as we wish they were. Although, if there was a large software company with huge people resource working on this game, it may be able to solve many of the issues we see quicker. Well, as long as they don't skimp trying to save the all mighty dollar.
     
    Joined
    Dec 14, 2014
    Messages
    745
    Reaction score
    158
    • Community Content - Bronze 1
    • Purchased!
    • Legacy Citizen 2
    I suggested something similar to this myself in the past, but I called it delayed ghosting the docked entity, while giving it high acceleration away from the centre of the host/mothership in order to spin off and clear far enough away from the host to prevent collisions. After x-seconds the ghosting effect is turned off, theoretically with the now floating docked entity away from the host. Unfortunately, this leads to another problem, where it could end up inside another entity such as the attacker or whatever, turning back to a worse scenario where it clips inside with no way out.
    I considered the issue of it ending up in another ship hence only turning the collision off between the parent ship and the docked entity.
    That is simple as removing the docked entity from the parents collision check list by setting an id or flag to indicate it was previously attached and broke loose. That way it would still be in other ships collision list and get test against them.

    But it all could be avoid by simply creating a flag for some entities that are internal so they can't actually break loose and get treated as part of the ship rather than just a docked entity.
     

    Lone_Puppy

    Me, myself and I.
    Joined
    Mar 12, 2015
    Messages
    1,274
    Reaction score
    529
    • Purchased!
    • Community Content - Bronze 2
    • Legacy Citizen 8
    But it all could be avoid by simply creating a flag for some entities that are internal so they can't actually break loose and get treated as part of the ship rather than just a docked entity.
    But I love seeing other peoples ships and stations being ripped apart.
    There's something so satisfying about seeing your opponents pride and joy shredded into floating debris. ;)
     
    Joined
    Dec 14, 2014
    Messages
    745
    Reaction score
    158
    • Community Content - Bronze 1
    • Purchased!
    • Legacy Citizen 2
    But I love seeing other peoples ships and stations being ripped apart.
    There's something so satisfying about seeing your opponents pride and joy shredded into floating debris. ;)
    I agree. Just unfortunately at the current state of the engine it causes lagg from hell.

    Another alternative would be force collision damage and watch the ships really rip apart as the entity rips through the ships hull. For some reason I doubt most people will go for that one though.
     

    Lone_Puppy

    Me, myself and I.
    Joined
    Mar 12, 2015
    Messages
    1,274
    Reaction score
    529
    • Purchased!
    • Community Content - Bronze 2
    • Legacy Citizen 8
    Damage on collision is already built in. You just have to turn it on in the config.
    I've never tried it though.
    I have tried the break apart option and it's a game killer on my machine.
     

    Ithirahad

    Arana'Aethi
    Joined
    Nov 14, 2013
    Messages
    4,150
    Reaction score
    1,330
    • Purchased!
    • Top Forum Contributor
    • Legacy Citizen 8
    Breakoff is explicitly bugged at the moment; the functionality is written in but it's gone unmaintained for a long time, and as new features are implemented, it naturally becomes more and more liable to crashes until it can no longer function at all (as the breakoff system has no provisions to handle new systems, or alterations to work with changes in systems that existed at the time, meaning that some of the code for breakoff effectively tells the computer to do the impossible - this is what results in a program crash).
     
    Last edited:

    Lone_Puppy

    Me, myself and I.
    Joined
    Mar 12, 2015
    Messages
    1,274
    Reaction score
    529
    • Purchased!
    • Community Content - Bronze 2
    • Legacy Citizen 8
    Breakoff is explicitly bugged at the moment; the functionality is written in but it's gone unmaintained for a long time, and as new features are implemented, it naturally becomes more and more liable to crashes until it can no longer function at all (as the breakoff system has no provisions to handle new systems).
    Oh yeah, sorry I should have mentioned that before anybody goes to try it.

    It's a funny thing though. I had asteroid segments appear.
    I would love to see this work. It would make destruction look so cool leaving a debris field you could fly through.
     

    PLIX

    Thats XCOM baby!
    Joined
    May 17, 2016
    Messages
    113
    Reaction score
    38
    this is a true sandbox i have a choice whether i want to play it like an rts f*ck around do weapon testing build ships and stations or maybe i just want to join vaygyr and take pride in forcing people to rage quit