I swear it has gotten a lot better lately, it doesn't actually feel that bad to play anymore. This was also completely disconnected from the physics though, so I might have just avoided the worst part
@@ReidCaptainHonestly, even the physics isn't that bad if you know how to avoid the problems. I'll give you some tips in case you want to do some physics-based stuff in the future: 1. When using collision to contain something, paint every few blocks a different color. This breaks up the collision mesh into multiple parts and makes it more stable. 2. Don't push bearings off axis. This causes weird effects that end up putting massive torques onto whatever they're attached to. 3. Don't push suspension any direction but in and out. This causes something called a "suspension glitch", and also puts massive torques on whatever it's attached to. Also, some tips on larger logic creations: Install Vincling's Logic Tools and Parts Mod. It helps a lot. Also, install Better Wires. It decreases the size and increases the contrast of connections. It helps a lot to see what you're doing. A thing I also do when wiring a bunch of connections in a line is to place blocks on top of the connections you've already done, this helps you not accidentally connect things wrong.
I find that placing artificial constraints on myself - such as the limitations of a game engine - really improves the creative process and makes me hone in on what it is that I really care about on a project. There is no such thing as art without constraints.
A lot of that lag is caused by the big slab of blocks touching the ground. This is also true for your moving encoding touching the mashine, especially while moving. To fix this, try putting blocks in the corners to lift most of it off the ground.
Oh man, your data reading mechanism reminds me a lot of something I created in modded minecraft - a read-only drum hard drive. I basically started with a big ring of blocks with a laser/sensor pair that would act as the read head (transparent blocks were 1, non-transparent blocks were 0) and I would rotate the ring with computer-controlled piston blocks (the computer was necessary because the sequence to rotate the whole ring was kind of a nightmare.) Then I stacked 8 of them up side by side and used them to encode text via the ASCII table and read the output with a computer to display a message on a big monitor. Sadly the drum was limited in radius because pistons can only move a certain number of blocks at a time so the message was short. When it was running it looked like 8 stargates dialing up all at once, and the result was pretty neat, although I couldn't run it very often because it was a horrible, server-lagging abomination.
@@lennelbalando5615 "something I created in modded minecraft" not vanilla, so i think theyre being legit when they say computer controlled piston blocks lol
@@varion_ Yup, I used RedPower 2's computer (which meant I had to program it in Fortran which was kinda wild because it's an old stack-based language) to program out the sequence required to rotate the entire ring by one block and then repeat it as needed. The red alloy wires from that mod were super useful as well since you can run them on vertical walls or even upside down so you don't have to do stupid stuff with stacked redstone torches or w/e.
My Idea for what you could have also done instead of coding the notes in binary: - have one long line of blocks for each note of each instrument block - you paint on the line to code notes (black=no note / white=play note) - the lines are attatched to pistons and get pushed by them with a consistent speed - sensors read the lines as they get pushed past them - the sensors are directly connected to the notes Advantages: + a lot simpler to implement (no binary coding) + a lot simpler to write music for (you would basically just paint a MIDI-file, which you could also just copy off youtube. For longer notes just paint more consecutive blocks) + you can play as many notes at once as you want and as long as you want + no physics + looks nice when played (you can use pretty colors for each instrument), you could even have the box in which the player stands high up in the air with a glass floor to overlook the pretty note lines + changing the speed of the pistons changes the speed of the music The only downside (i think) is that: - it uses a LOT more space (a area of at least 25 notes * 4 instruments * 2 modes * song length = 200 lines * song lenght)
@@resiknoiro7506 Thats one way too, but I think it would then have a problem where it could not play the same sound on two different instrument at the same time
One thing you could do would be to have sensors on both the top and bottom reading different colors - this way, would would be able to do base 3 and store much more data. You could even use spud cannons to destroy the cardboard and have 3 different color sensors and then be able to use base 4 and significantly increase the data you could store on one block. Love seeing the scrap mechanic vids!
I absolutely love seeing how you've progressed over the time ive watched you. You keep pushing yourself further and further and achieve more and more. Sensational stuff my dude!
i have a bit of experience in this game and can tell you that the lag propably was because that whole sheet of wood you where storing the data on was laying on your contraption and the contraption itself was laying on the ground. in scrap mechanic for some reason if you have a big contraption, the more surface area is colliding with the ground ore another contraption the more lag it creates. to prevent this most people either weld their stuff to the ground (make sure to extend it by at least one block at one spot so it is raised from the ground, then you can still disconnect it from the ground if you remove the one block) or you just put some one block feet under you contraption to reduce the surface area that touches the ground
if you make a second version, I think it's easier if you give each note two memory cells. The first one stores if the note should play currently and the second cell stores if the note should play on the next run. Then when you write your "program" there are two types of commands. First activate / deactivate notes. Second play current state. The "program" would then look like this: 1. note C# on 2. note F on 3. play notes 4. note C# off 5. note G on 6. play notes
The lag came from the way scrap mechanic handles painted blocks. That big slab of cardboard is considered a single physics object, but when you paint it, the painted area basically becomes a separate physics object. So the more separate painted blocks there are, the more physics objects there are and thus more lag, because it is touching the ground. If you were to put it on legs or suspend it in air in any other way, the lag would decrease.
You can use timers as pretty effective storage devices. Loop [TIMER > OR > TIMER > AND] and from there you can turn the system on/off via the AND gate while using OR as the output to read from. Only down-side is that you have to re-program the loop after every power off, so in the context of a music player colored sliders can pre-program these loops, then just read them whenever melody calls for one. This way you get a set of looping chords to chose from, not just individual notes.
there is a mod in the scrap mechanic workshop called vinclings which would've saved you HOURS of time connecting things, it has features to connect logic gates automatically like whenever you had to OR together the rom you couldve coloured all the gates one colour (which can be done with a piercing connect tool also in the mod) and then colour the or gates a different colour and using the mod you could connect the two gates instantly.
Something's to note, having big structures in scrap mechanic will create lag even when welded to the ground. Separating one large structure into multiple can drastically help, even if it's just by 1 block gap and even if it's still welded to the ground. Drastically simplifying structures and logic goes a long way. Sometimes even making something mechanical can reduce lag. I am pretty sure you can turn off the lights on the logic gates. When everything is done turning off the lights can increase performance.
You could continued to use the databar... but instead of a disconnected databar being pushed forward through your sensors, you could have have your sensors moving over your databar on pistons... the lag was due to the databar being an unconnected mass and laggin the physics calculations... if you used the pistons moving the sensorbar over the databar on the slowest setting it would have also made the music flow better and be less... robotic, in it's timing.
I'd recommend to place the heads in 2 sides where you have a side with all c, d, e, f#, g# and a# and a side with the other notes. Thereby the structure of a chord makes a more stereophonic effect.
To make arbitrary data length, you could have tried a drive-by scanner. Whether you choose to put the data on rails going by the scanner, or use the data as rails for the scanner, you would have a lot more storage space. Electric motors have the most consistent speed for this type of task.
You have an insane amount of patience and determination to be able to link up all those connections individually. And just the thoughts of making a single mistake and messing up a connection... *shudders*
My idea for data encoding chords and durations is something akin to MIDI where the data represents events such as turning on a note, turning off a note, or hitting a drum. This would solve chords and note durations, but you might need to add a frame system so multiple notes can be switched at the end of a frame. Data speeds would need to be really fast, though.
8:00 I am certain you could make somewhat retro music with only one note at a time, and I do recall hearing some strange music that was nothing but noise, not so much instruments, just without words, which tricked the unaware into hearing words. Basically you had to really focus on the noises generated to not hear the words, at least in my case. First part is referencing your "problem" and second part is just an interesting tid bit I thought some might enjoy to know of. Its impressive af to see what people can do in sandbox games now a days... only watched up to 8m so far, so gonna finish as this seems cool af.
Oh hey reid, ive got smt you might like. Ive designed vanilla physical hard drives in sm before. Up to 64 byte cartridges Due to the fact that its just cartridges. I made one capable of reading four bytes at once from four cartridges, or individual ones from a specific of the four. In a little bit ill share the steam link to my designs if youd like to check them out. If you're wondering the speeds of the designs each design of tested and found at the fastest speed you can read from them without missing information. As well as any other speed information on it. The best part imo is the writer (though it uses quite a bit of glitch welding to not be the size of your entire music studio lol
im realizing that since this game basically has logic and pistons, you can make a Gimbal, and since there are vehicles, you should try to make a vehicles or even a house on wheels with a Gimbal style suspension
I don't know much about that game specifically, but a in a lot of games, especially sandbox ones, lighting is a stupidly costly calculation to make (especially if its something that has a light radius, with overlapping radii in such a way that light levels arent uniform). While I doubt it was your main problem (seeing as you were doing some complex logic), its something to keep in mind if the game ever starts lagging. So this depends on how lighting is done in the game, but im guessing if you are working with things that make light unavoidably, lighting everything up fully, so the lights turning on and off makes no difference, should minimize the lag caused by it. also anything that involves physics calculations (like moving, breaking, etc.) blocks is probably also pretty intense. But worth experimenting if its more laggy than alternatives, as you did :)
For a video suggestion: you might like from the depths! I think it would be interesting to see you play another game that was designed to make the stuff you usually make anyway(custom guns, custom engines, *boats*, planes, etc) Some guy even made an imperator class titan from warhammer 40k on the steam workshop... the possibilities of that game are endless
Reid literally built a hybrid music box punch card and digital cassette tape reader buffer before having to build a digital MP3 player for it because it lagged too much... and here I am taping 3 AA batteries together and calling it done.
I can see you didnt heard of mod called Vincling's Logic Tools & Parts. Its a life saver . It saved me at least 100 hours from wiring logic gates. There is also mod that makes the wires more visible.
The reason it lilely got so laggy when you started paniting is that im scrap mechanic a big area of dragged blocks becomes one big collider. However these combined colliders can not pass through different colored sections. So painting many different small blocks exponentially multiplies the amount of colliders. And tve slider was a loose object
If you see this it might help with managing the struggle against the game in the future Scrap mechanic uses a lot of resources to calculate collisions(surprising given the quality of the collision). So the data panel you used lagged the game since it was calculating the collision for every block that was touching the main machine, or the entire panel. For this reason it would be beneficial to go into things knowing you shouldn't have large parts that are not directly attached. My guess on why this is makes sense(to me at least) I think that every object in the world gets a class/function that it calculates the collision with itself in, and then all of the creations are in a class/function that does the secondary calculation between all of the separate creations. If that makes sense. Second, I'm sure you have noticed how finicky the collisions can be, stuff like the spud guns apply a lot of force and the game really builds up that force or torque with some systems. For example one of the most popular bugs is the steering glitch. Utilizing a suspension piece with a block on the end, where the main end is connected by a block on a turn bearing. Turning the bearing will move the suspension, and if the block on the end of the suspension collides with something when it turns, it will apply a huge amount of torque to the entire creation to turn it. In your helicopter video you tried to use bugs to help it fly, and if you want to, you could try researching some of the known bugs like the steering glitch, or suspension glitch stabilizers. Personally I am nowhere close to as good as you at logic based things in general so I can't speak for the technique. But I do have almost 1000 hours on scrap mechanic so I wanted to give input for something that might help with these videos in the future. Hope this helps with understanding the game.
Could've just move the sensors with a piston, to read all your data that is welded to a floor. Rather than moving the whole data on static sensors. Since the data is a very large loose object, it makes the game very laggy. In scrap mechanic, try to minimize the amount of loose objects as the game does not like it. Anyways great video all around 👍
i would like to see some scrap mechanic survival content i believe you could create some interesting solutions to problems the game gives toy throughout
I made the same thing a year ago. But I also tried to make a rhythm game but it never worked out so maybe you could do it? Also I didn’t like how un optimised your logic was so I wish I could show you some tricks?
sm likes to crash when too many sounds are playing ( 4 electric engines on a lift used to crash games because sound bug and i think in the fix or smth they managed to stop it from happening and also cause too many sounds to not load)