So I build a computing thingy, takes Brainfuck commands (except input as explained) and does them to poor little molecules. Took around 60h, half of that shifting things around to finally avoid all those arms and atoms colliding.
(Sorry for signal noise when talking, not really a casting setup here. Also I'm astounded how bored I sound, but that's just the way I talk)
Parts: Inputs and Outputs 00:34 Overview over machine 02:00 Internal setup 03:35 Demo program 04:35 Program end and final words 25:45
Regarding execution speed time: Cycles per command: 109 Skip time: 2 instructions skipped per full command cycle, beginning on same cycle as loop command was decoded; leaving loop skipping uses up one more turn, as only after trying to enter code to the skip system the fully skipped code is grabbed for transport back. So skipping over [ - ] takes 2 turns. If you're willing to make cycles-per-turn longer you might make 3 skips per turn; but you need cycles where the skipping is inactive for the code feeding and returning.
Further comments about building this: - I started with the memory operations. I would now build them further out, because they are really fast, but everything else now has to grab the current cell sideways, pushing the data to the output was really harder than it should have been. - Went well: Inc & Dec, 6 cycles per bit, I think that's good. Both are basically the same, carry bit just handled the other way - Went well: Output core op, 4 cycles per bit. Although it took me longer than inc/dec to get right - Really nice: having both forward and backward skipping work on the same action token, which then handles the counting... just nice - Bad, related to last point: that made the inner area under the action token really crowded, took a while and introduced some wait times - Command token: stayed with that layout from the start, changed encoding once - General: Stacks worked really well, in SpaceChem I had to do some tricks for that - Useful to keep some areas clear of stuff to be able to move the long code chains by rotation
So I build a computing thingy, takes Brainfuck commands (except input as explained) and does them to poor little molecules. Took around 60h, half of that shifting things around to finally avoid all those arms and atoms colliding.
(Sorry for signal noise when talking, not really a casting setup here. Also I'm astounded how bored I sound, but that's just the way I talk)
Parts: Inputs and Outputs 00:34 Overview over machine 02:00 Internal setup 03:35 Demo program 04:35 Program end and final words 25:45
Regarding execution speed time: Cycles per command: 109 Skip time: 2 instructions skipped per full command cycle, beginning on same cycle as loop command was decoded; leaving loop skipping uses up one more turn, as only after trying to enter code to the skip system the fully skipped code is grabbed for transport back. So skipping over [ - ] takes 2 turns. If you're willing to make cycles-per-turn longer you might make 3 skips per turn; but you need cycles where the skipping is inactive for the code feeding and returning.
Further comments about building this: - I started with the memory operations. I would now build them further out, because they are really fast, but everything else now has to grab the current cell sideways, pushing the data to the output was really harder than it should have been. - Went well: Inc & Dec, 6 cycles per bit, I think that's good. Both are basically the same, carry bit just handled the other way - Went well: Output core op, 4 cycles per bit. Although it took me longer than inc/dec to get right - Really nice: having both forward and backward skipping work on the same action token, which then handles the counting... just nice - Bad, related to last point: that made the inner area under the action token really crowded, took a while and introduced some wait times - Command token: stayed with that layout from the start, changed encoding once - General: Stacks worked really well, in SpaceChem I had to do some tricks for that - Useful to keep some areas clear of stuff to be able to move the long code chains by rotationMy first S-Rank on Thumper Level 9+Haiaiai2021-05-30 | WARNING: If you have photosensitivity issues DO NOT WATCH! Flashing lights ahead! (I'm not an expert on those things, but better safe than sorry)
A little different from what's usually uploaded here, today I got an S-Rank on 9+, the hardest level in Thumper, for the first time. Headphones recommended. Gameplay description at the bottom.
To qualify, one has to get an S (or S+) on every individual stage, but the run is quite far from perfect: - 1st stage collected a thump I could have easily crashed onto. - Already got damaged on the 2nd stage... - I've reset a lot of S-attempts when having been that sloppy that early, but the thump sequence before that had felt quite good. I know the damage doesn't prevent the S rank for that stage if you get enough points, but it just feels like a bad run - stage 11 (10:11): took damage after thumping down shortly before a curve and trying to get the curve perfectly. A common weak point in my timing - stage 13 (10:44) was rather bad, even crashed into a red bar, to be honest I was suprised I got an S. It's a long stage, so there are enough points to collect to compensate - stage 21 (17:06): hugged the lane to long, dropping the lane switch and missing a thump, another common mistake for me - stage 22 (17:47): another bad curve after a thump-down - stage 24 (19:10): I'm pretty sure the thump I miss at 19:20 here is the one thump I miss the most. I know it's there, but still... - stage 25 (20:35): Another one I felt unsure about when it ended, because although I "only" took damage once, it is a short stage
Final stages... heart racing, here is my chance at the S-Rank (usually I dropped some earlier level at this point) 21:40 - Endboss - played it safe, staying on the ground, taking curves early 23:40 - Stage 27 - I like this stage so much! Stayed on the ground too, still fun 24:25 - Infinity - Not much to say about it. Played it often enough with S rank, know where I'm likely to fail, concentrated, got it. 26:24 - Final Score - not my highest, but I don't mind. I think I never had 5 S+ in a run before too.
Gameplay, short version, xbox controller buttons: - tldr: Take no damage, collect all thumps :-) - press A (without holding beforehand) on the thumps (white glowing squares) to collect them, scoring and building up multiplier. Miss one, multiplier resets - hold A (you see the bug tugging the rail then) in curves and steer in the curves direction - hold A to crash through red bars - press up when collecting a thump and holding A gets you flying, enabling you to collect the blue rings for score. You can then crash down on following thumps by pressing down when over them. This gets you extra score and sends out a shockwave which charges up one of the following thumps - taking a curve perfectly (steering only shortly before crashing into the curve) gives extra score and can make you fly around corners. You hear a squeaky noise when you take a curve perfectly - One layer of health, your golden wings.Take damage, you lose your golden wings and your multiplier resets, meaning you have to charge it up again before you can earn them back - taking damage without your golden wings means death, ending the runOpus Magnum - Slow computation of a fast growing functionHaiaiai2020-04-07 | This time: the Ackermann function (en.wikipedia.org/wiki/Ackermann_function). I had this idea since I had made the Fibonacci computation, just haven't come around to do it, though it was not that much time in the end.
00:00 - A(2,1) 03:30 - A(2,2)
Left side in red is the parameter m, right side in green is the parameter n. From the computation one can see that the parameter n is not reused between recursions, so this is the output too! Which also makes it unnecessary to move some output to the n-area for recursive calls.
Just one thing before I go into the details: This thing is slow as hell, not even counting the fast growth of the returned value. Computing A(3, 2) = 29 took a little over 2 hours. Adding a counter to the test code that matches the implementation revealed it took 1390 rounds to compute. In the recursive version it takes 541 calls, so that is just inherent to the function.
I think the implementation itself is decent, kept the rounds short and delivery of pushed code seems quick and nicely packed. But if you're an Opus Magnum expert, feel free to optimize!The quint output is there so the computation is not interrupted be the finished-dialog.
I worked forward from code as I explained in the How-to-Fibonacci video. Recursive implementation, given m and n ----- Code ------ if(m == 0) { return n + 1; } else { if(n == 0) { return A( m-1, 1); } else { return A( m-1, A(m, n-1)); } } ----- /Code ------
Basic transformation to a stack machine like this, calling the function by pushing its code on the stack (which is just one command, as all the rest is pushed in that ones branches): ----- Code ------ stack.Push(Cmd.check_m); while (!stack.Empty()) { switch (stack.Pop()) { case Cmd.check_m: if (m == 0) { stack.Push(Cmd.inc_n); } else { stack.Push(Cmd.check_n); } break; case Cmd.check_n: if (n == 0) { stack.Push(Cmd.inc_m); // after recurse, fix m stack.Push(Cmd.check_m); // ... = A( stack.Push(Cmd.dec_m); // m-1, stack.Push(Cmd.inc_n); // 1) } else { stack.Push(Cmd.inc_m); // after recurse, fix m stack.Push(Cmd.check_m); // ... = A( stack.Push(Cmd.dec_m); // m-1, stack.Push(Cmd.check_m); // A( m, stack.Push(Cmd.dec_n); // n-1)) } break; case Cmd.inc_m: m++; break; case Cmd.dec_m: m--; break; case Cmd.inc_n: n++; break; case Cmd.dec_n: n--; break; } } return n; ----- /Code ------ When we decrease m for a recursive call we increase it afterwards so that we do not modify it from the perspective of the call site of the current function.
Then one can fold the operations on n (not m though, as those are executed only after recursions) into the execution of check_m and check_n. Further in both branches of check_n there are the same three commands pushed to the stack, which do the only or outer recursion of the cases A(m,0) and A(m,n); since this will happen no matter what, this can therefore be moved upward and pushed directly with the check_n command in the execution of check_m. This eleminates one site where further code needs to be pushed, and the remaining case is reduced to decreasing n and recursing, which is simply (as in the beginning) pushing check_m. The result is this: ----- Code ------ stack.Push(Cmd.check_m); while (!stack.Empty()) { switch (stack.Pop()) { case Cmd.check_m: if (m == 0) { n++; // A(0,n) = n+1 } else { stack.Push(Cmd.inc_m); // after recurse, fix m stack.Push(Cmd.check_m); // ... = A( stack.Push(Cmd.dec_m); // m-1, stack.Push(Cmd.check_n); // ... ) } break; case Cmd.check_n: if (n == 0) { n++; // ... 1) } else { n--; stack.Push(Cmd.check_m); // ... A( m, n-1)) } break; case Cmd.inc_m: m++; break; case Cmd.dec_m: m--; break; } } return n; ----- /Code ------
This is what is implemented here, 4 different commands, only two of which need to push anything and only two different things being pushed, including the initial call. These commands are: 4 atoms: check_m - if m is 0 the handling atom of the operation is used to increase n, else it is it used to grab the command block and push it to the stack. 3 atoms: check_n - if n is 0 the handling atom gets reused as the new value 1, else it grabs n to be decreased (can't be done without the atom, or else n would be decrease every round) and then grabs the single recursive call for the stack 2 atoms - decrease_m 1 atom - increase n
And that's it! There is a comment section below if you have any questions :-)Prime Mover - MultiplicatorHaiaiai2018-07-16 | Quick multiplicator. First optimization is simple math: 0+A*B = A + A*(B-1). In other words, instead of adding A to 0 B times, add A to A (B-1) times.
Instead of wrapping the Add function in a loop, I put out all the values at the start and then add them up. The 0 value returns the accumulated value. Split, trigger next, output, done.
I tried to build the next row of values earlier, but ran into lots of timing issues, so this must suffice for now.Prime Mover - ReorderHaiaiai2018-07-16 | First try with alternator cells and output leaving through the selection value (input B) line. Works, but the cells are slow and one IC only holds 2 values (except the 4th, were I can save the negation; might work with negation between cells).
Second version (2:05), slightly different cells, so now values fill up do down, seperator value enters and leave through the right side and chosen values go out on the left.The dense layout doesn't afford a fast way to trigger the next number from the selection values side.
3rd version uses cells based on separators, which has a lot of advantages (only disadvantage I can think of is they're not self resetting, which doesn't affect this level). The value can reside on the cell, which saves space. You are free to choose to direction the value leaves without interfering with the selection lines layout. They're faster and cheaper. Also the selection layout, counting down before entering the cells, speeds up the process a lot. The next value gets triggered when the selection value gets 0, not after the output value is chosen.Prime Mover - MaximumHaiaiai2018-07-16 | My very first version (not shown) had me subtractiong one number from the other to decide which was greater based on the sign of the result. This requires special handling of a zero result if the number are equal.
Then I realised that I could decide which is lower based on which would become 0 first when both were counting down together. As you can see, that is quite an easy layout in the IC. This design simply let's both sides finish, the let the second value call in the next pair.
The next step (1:00) was to let the second value stop counting when the first was finished. Because the seperators don't reset themselves, I had to make the triggering value go over the button twice. There's an easier setup where the triggered value resets the separator, but that doesn't reset properly when values are close to another and the second one leaves the loop before being triggered.
The last step (2:34) was to double the processing speed by doing the calculation in parallel. Since I only need to use one value per processing line (the latter value triggers within the IC), a single alternator is sufficient to keep the correct order. Note that you need to lock the output decision network now, else two values may collide in it and deadlock.Prime Mover - NegatorHaiaiai2018-07-16 | To negate a number, get a zero as fast as possible, then add or subtract you source value (technically it's subtraction both times).
In the second version (1:38) I reused my layout for Sign to get the faster 0 from the first two inputs of a sequence, the replicate that for each value. Add/sub is the same as in the simpler version.
To be honest, I'm lucky here that the largest number come last in the sequence. In the general case, since add/sub stages work in parallel, a small number might get to the output before a predecessor.Prime Mover - Copy IfHaiaiai2018-07-15 | Three versions of Copy If.
First version lets the selection value switch the second lane. In this setup this is really synchronization heavy.
Second version (1:13) builds pairs of the source element and the alternative, where the order is decided by using a different wire length if source is -1. The first item of the pair then triggers the next pair, the second one is used as output (~20 cycles faster than the other way around).
Third version (2:08) goes back to switching, but due to different layout and input ordering needs no synchronization between input pairs. Adding 1 to the deciding value allows for a smaller layout. If the decision value is used, 1 is subtracte before output.Prime Mover - ReverseHaiaiai2018-07-12 | To reverse a sequence (that you only access one item at a time in order) put all items on a stack and then flush it.
Second version (0:55) improves by starting the next sequence before reseting the stack to read direction while the next sequence is already coming in.
In both versions the input is kinda slow, but I needed the slow wire or else one item after a 0 would get through before the top separator is switched.Prime Mover - Modulo 2 - Bonus: Parallel AddHaiaiai2018-07-12 | Remainder of division by 2 is decided by which one of two ping-ponging seperators puts an item out of the loop.
Since the algorithm is so simple the only idea to improve was to introduce parallelism (1:09) . Splitting the input stream in two and processing both at the same time often gains some speed. Alternators are usefull here to guarantee reodering of results if one stream finishes too fast.
After that you gain less for more cost for multiplied parts and synchronisation overhead. Putting in 8 circuits is clearly overkill (2:26).
Parallelism is in general suited for problems where there's one result per one input set. So I go back to the Add Puzzle (4:15) and use it there, I'm suprised that even for 2 in parallel the gain is not that big. I suspect that is due to one side dominating the operation time.Prime Mover - AddHaiaiai2018-07-12 | When you have only increment and decrement operations (BF anyone?) adding numbers is always this: decrease one number, increase the other, until the first one is zero (provided the first is positive). Here are two versions of this.
The second one makes the loop take 6 instead of seven cycles, but would break down on 0 or negative numbers; 0 and positive could be handled by adding 1 before the loop and reducing by one after the loop.
You can save 1 cycle per RST by putting a splitter before the button which releases the top input, as the split off value wouldn't spend an extra cycle on the button.Prime Mover - And GateHaiaiai2018-07-12 | First idea: If A is 1, use B; if A is zero, change B to 0
Better idea (0:43): If A is 1, use B (let B pass through). If A is 0, send A to output while discarding BPrime Mover - TransistorHaiaiai2018-07-12 | First solution first, then (0:46) a better version of that.
Finally (1:24) I made a more free flowing solution, where there is no direct synchronisation (locks) between the input lines and the only interaction is the switch itself. Had to put in the lock in the controlling line though in order to make both lines work in sync (the self switching alternator introduces a lag in the signal wire, which the self switching lock mimics).Prime Mover - Nil CleanerHaiaiai2018-07-12 | 2 versions of the same idea. Not much room for improvement. Even doing the fast version in two parallel instances doesn't help.
So whoever is that guy left to me (and many more) in the cycle graph... let me know what you did :-)Prime Mover - Flow ControlHaiaiai2018-07-11 | Quick solution, fast and cost efficient.Prime Mover - SignHaiaiai2018-07-11 | First version: Quick and simple build, cost effective.
Cycle count is dominated by reducing the bytes. Next version (1:17) instead copies the first number, reduce one copy to zero and from that one spawns one zero for each number in the sequence in the upper IC. In the second IC the number from the sequence then switches the path of it's following zero to either make a -1 or +1.
Getting the first 0 is slow though. The final version (3:39) therefore doubles the input reducer and gets copies from the first t2o numbers. Both are reduced to zero and the first of those 0s is used as before, the second one discarded.
If I recall the graphs correctly, 2nd version was tied in cycles, 3rd version is a new record. You could of course try to get the 0 even faster from more inputs.
I also had a version where I tried to select a -1 or +1 from an infinitely producing cycle, triggering the right cycle after the separator operation (-0+); didn't work as the numbers where still on the board when RST occured. They'd both need to be wiped, so instead I went for the single produciton of 0 with sign selection as a sceond step.Prime Mover - ClockHaiaiai2018-07-11 | New series! Consider this my recommendation of the game :-)
Skipping the tutorial levels, the Clock Puzzle is one of the first challenges you'll encounter in Prime Mover.
From the Website: Prime Mover is an open-ended puzzle game about designing circuit boards. Work your way from transistor to processor, uncover the story of the Byte of Burden!
4bitgames.com/primemoverHow to Fibonacci in Opus MagnumHaiaiai2018-01-30 | Here I explain how recursion works for the Fibonacci computation (see youtu.be/EPTR4rg3Muc), with some showcases at the end (8:33). Finally got around to put this together.
Content: 0:00 - Overview 2:07 - Code begins 3:23 - Return simplified 3:47 - Parameter usage 4:49 - Command form 6:29 - Final code 7:25 - Implementation in Opus Magnum Demos: 8:33 - Fib(0) 8:45 - Fib(1) 8:58 - Fib(2) 9:29 - Fib(3) 10:18 - Fib(4)
Final notes: Call instructions: As a call be be done after an if as shown here with the joined call/branch instruction, you don't necessarily need one call instruction version per call target.Still, the instruction is limited in where it can go.Recursive Computation of 9th Fibonacci NumberHaiaiai2017-11-26 | I saw someone compute the Fibonacci sequence with an iterating algorithm here: reddit.com/r/opus_magnum/comments/7dweqs/the_golden_ratio_calculated_with_gold
That made me think how it is used so often as an example of recursion, so I made a recursive version :-) In depth explanation here: youtu.be/QCkfLwI_GKQ
This video just shows it running for Fib(9), represented by the 9-atom-green-input, feel free to skip ahead :-D
Some notes, though I will make an in-depth video with C# code to explain the logic: - To simplify the base case: Fib(0) = Fib(1) = 1 - think of your normal implementation, then remember that although stacks are easy to do in Opus, accessing a deeper element is hard. Which means in this case that returning values on the stack is complicated, because you need what's deeper in the stack for the second recursive call. Therefore I basically used a global variable that gets incremented instead of "return 1" when your parameter is 0 or 1; this also gets rid of having to add return values - To recurse twice you would need to copy the parameter. Since I use unary counting (stacks of atoms) this would take enormous time probably, unbound in the general case. So I use another global to pass the parameter; recursive case becomes: decrease parameter, recurse, decrease again, recurse again, increment parameter by 2; so after every call the parameter has the same value - call by pushing commands of called function onto the stack - inlined into the call is the "if" of the called function and the "result++" of that "if"s then-branch, which is the recursions base case - if need to recurse after call (else-branch) push that branches commands onto stack
Commands are differentiated by length only, colors for better readability: - 1 atom, water: decrement parameter - 2 atoms, air: increment parameter by 2 - 3 atoms, fire: check parameter, if smaller than 2 increment result, else push commands onto stackOpus Math - Binary increment/decrementHaiaiai2017-11-24 | Here you learn how I implemented arithmetic operations in the BF interpreter. There I used 8 bits and the data cell connection atoms as over/underflow bits, but the logic behind it is the same.Opus Magnum Computer, zoomed out demoHaiaiai2017-11-22 | The same program as shown in the first video, seen from a better perspective. I like how the flow control part in the upper area still doesn't quite fit :-D For those waiting for details, a video about inc/dec and output is in the pipeline.
I managed to zoom out, but you can see the frame rate tank occasionally. Since this time I recorded in full screen at 1920x1200, OBS conveniently cut off the instruction tray for 1080p.
How I zoomed out? WARNING: This is a hack and you are responsible for any damage to your system: I doubled the resolution settings in the file config.cfg in Documents\my games\Opus Magnum\, interestingly it still rendered in normal resolution, but in the way you see here.Brainpipe - 99 GlyphsHaiaiai2012-12-20 | Finally a video in which I fail to get all glyphs, missing just one... the last one, the unhumanity glyph! Well, to be exact, i don't miss it... I die before I get to see it, while having collected all glyphs up to that point.
This concludes this little series, since there is basicly not much else to show you.
Get brainpipe here: http://www.digital-eel.comBrainpipe - All Glyphs, then instant deathHaiaiai2012-12-20 | In this playthrough I do again get all the glyphs, but within a second after grabbing the final one crash into the barriers behind it and it's game over. No bonus level... meh, got all, that's what counts :-D
Get Brainpipe here: http://www.digital-eel.com Again, headphones recommended (or well placed stereo speakers) to fully enjoy the sound.Brainpipe: A Plunge to Unhumanity - All GlyphsHaiaiai2012-12-20 | This is the first of three videos I'll upload in which I play the game Brainpipe: A Plunge to Unhumanity. Headphones recommended!
The objective in Brainpipe is simply to dive down the tunnel you'll see, getting faster as you proceed, while avoiding a variety of hazards, randomly placed in the levels, while at the same time trying to grab so called glyphs, glowing balls with even glowier signs on them. Each of the ten levels contains 9 small glyphs and a final major glyph, that is bigger and has a more complex sign.
After a level you slow down a bit while seamlessly proceeding to the next level. The only way to lose is to get to many hits in a short amount of time, since your health is regenerating. Missing a glyph only costs points, and of course the "story compoment" of not having achieved for instance transhumanity, major glyph of level 6.
In each video I begin in level 1, play to level 10 and more or less successfully try to grab all 100 Glyphs the game presents to me. In this first one I get them all and go on to the bonus level, where eventually, and as far as I know unavoidably, die.
Get Brainpipe here: http://www.digital-eel.comEnglish Country Tune - Freestyle BHaiaiai2012-08-18 | Ok, this is it, the last world of the game, the final part of my walkthrough.
Most of them were not really hard, I managed to solve some on the first try. I'm a little bit disappointed. But most of them were interessting, I still had fun.English Country Tune - Freestyle AHaiaiai2012-08-18 | Finally, everything's getting mixed.. Larva, Whales, Cutting, (Half sided) Planting, Freezing and Resonators! Only Painting is absent, but he will come back for the final world, named Freestyle B.
I choose that big cube thing as the final level in here, and gave two solutions. The first one is more oriented towards sides, in the order front side (where you start), sides and then back. I end on a side again, but you can easily handle the last field earlier and make a different way to to fill the back.
The second solution handels corners as a whole, while filling fields of the middle parts of each side after each corner. Order is front middle, front/side corners, sides' middles, back corners, back middle. You could do a different order on the back, i.e. walk over the back middle field when you're done with the sides and then do the corners, or leave different openings to do the middle than I did.English Country Tune - Resonator and LessonHaiaiai2012-08-17 | Since Lesson is only one level I put it together with Resonator. You can watch two solutions for Lesson at 4:10.
Resonator: we introduce a timed mechanic, waves that carry you along. They allow for movement without rotation. In other cases, avoidance is the key. The waves go over frozen objects, this path change modifies the timing of the waves. Note that freezing/unfreezing resets the waves.
Lesson: The first one might be the easiest solution of all, since I think one needs at least 4 tower to get an additional ghost tower, although all ghosts in this solution are formed from at least 2 towers' waves. If you know an easiert solution, please post a reply!English Country Tune - Freezer Pt. 2Haiaiai2012-08-15 | It's getting even colder! And with colder I mean... I don't know. Would say "harder", but that's not really the case. Or maybe it is and I simply got better... you tell me! :-)
Anyway, the first and third level in this video are my favourites in the game so far.English Country Tune - Freezer Pt. 1Haiaiai2012-08-15 | Looks like bootcamp is over... We have Larva! We have Whales! And it's freezing outside!
What does that mean for gameplay? First, we can build bridges! And second, with freezing we can prevent larva from falling into space and whales from vanishing.
I split this world into two parts again, since it seems that the later levels are a little more time consuming again.English Country Tune - Advanced CuttingHaiaiai2012-08-15 | Okay.... that was by far the hardest stuff until now, at least in theory. What I mean by that is that earlier, single levels in some worlds were about as hard, but this time it was hard all the time.
Mainly did it with lots if trial and error, undoing when I was wrong. Then optimizing pathes and connecting single steps, memorizing it until I could do it in one go, then recorded it. Helps a lot to memorize basic moves for some rotations.
But I have a theoretical way how to solve a level, were you play on four parallel existing fields that handle different orientations, switching between them by walking over the raised cube. It simply takes longer than *playing* since it's lots of paperwork. I might make a video about it.English Country Tune - PortraitHaiaiai2012-08-15 | Something different inbetween Cutting and Advanced Cutting, but not that different since some cutting does occurs, and the orientation of upside/downside is important in the Cutting levels too.English Country Tune - CuttingHaiaiai2012-08-14 | New mechanic again, nothing tricky for now.
Although I was a little shocked, you'll see why. I'm german, we're raised to be sensitive towards that stuff^^ Don't worry, I'm not really offended.English Country Tune - Half SidedHaiaiai2012-08-14 | Ok, it's getting harder, especially the 4th level. If somebody has a different solution there, please post a video answer!
In the first level, when I turn the view around, I wanted to show that you exactly half of the level is done, after that I simply repeat the steps I did before, except the finish move back into the corner. This is the smallest level possible to build, since you need a corner to finish a level.
The first time I actually finished the first level, I used the layout that I show in the bonus level at the end. Went back and made it like shown here to train for area 2.
Note that the finish of levels 1 to 3 is the same moves. Likewise, level 4 begins the same as level 2.English Country Tune - L and WHaiaiai2012-08-13 | Combining whale with larva makes for pretty difficult puzzles.
Took quite long just to play through, even though I already had the solutions. The last level alone needs 3min 30sec.
Next on the list: Half Sided, CuttingEnglish Country Tune - Advanced PlantingHaiaiai2012-08-13 | The complicated version of planting in space. Took quite a bit longer to do than the normal version.
Next will be "L and W" (that's Larva and Whale), so stay tuned for updates!
Done in three segments, therefore the fades and the change in the levels done (the ones which are white on the selection screen).English Country Tune - Planting - WalkthroughHaiaiai2012-08-13 | The short version, solutions nonstop!English Country Tune - Planting - PlaythroughHaiaiai2012-08-13 | No "Advanced Garden", Planting instead. This is a playthrough, as I played the levels for the first time, uncut. The next video will be a clean and fast walkthrough.
Lessons learned: 1. You must end in a corner. 2. On single block "strings" you can walk multiple times, leaving a single path towards a choosen endpoint. Just make sure to get the corners right. This is better seen in the advanced levels.English Country Tune - Garden - PlaythroughHaiaiai2012-08-12 | Well, it is green. And things grow. So I guess, within the abstract world of English Country Tune, Garden is an appropriate name for this world.
This video is a little different. After the first level, having seen the mechanic and the size of the world, I decided to record my first playthrough. That's why you see me pause sometimes and reset twice. Other than that, my impression was correct and I went through the world pretty quick.English Country Tune - Advanced WhaleHaiaiai2012-08-12 | Advanced Whale - Quite different from 2d whales, since now not whole slices of the level react to the players movement. Three lessons are learned...
Level 1: We learn that in 3D space, the whale is removed when none of its beams hits a surface anymore.
Level 2: Solid blocks block the beams, one has to be careful not to maneuver the whale into enclosed spaces.
Level 3: It is important not to push the whale off to where you can't reach it. That's why in this level we move the whale along those sides of the cube which have blocks standing out of them. These blocks give elevated positions, which are needed to push the whale onto other sides of the cube or into it.English Country Tune - WhaleHaiaiai2012-08-12 | Hooray for new gameplay mechanics! And the first one that was not part of the demo, since only Larva and Advanced Larva where in there.English Country Tune - Advanced Larva Pt. 2Haiaiai2012-08-12 | The last five levels of Advanced Larva.
If anything is missing, please post a comment or send me a message.English Country Tune - Advanced Larva Pt. 1Haiaiai2012-08-12 | Levels 1-8 of Advanced Larva.
I decided to split the longer worlds, since in general I want to present a relatively error-free walkthrough, without much resetting or undo. With a single-part walkthrough, whenever I'd make an error in the later levels I'd have to start all over, and I don't want to spend ages recording. Therefore, before too much might be lost, I split the video.
Too bad that the levels don't have exact names though, can't tell you which ones are in which part. But I try to keep roughly the same order that one would play through when he plays for the first time.English Country Tune - LarvaHaiaiai2012-08-12 | New puzzle game English Country Tune by Developer increpare games.
What seemingly starts as a Sokoban clone quickly develops into a 3D space twisting dream... or nightmare, if your brain can't work that way. In that case, I present to you my new series of puzzle soultions :-)
Comments and suggestions are welcome!Splice - Epilogue 4 - Strand 7Haiaiai2012-06-19 | I did it! I have now beaten all of Splice!
Turns out, I was simply to fixiated on an early idea I had, to fix up something with the splitter. And thus I always destroyed the pattern that included the splitter. It's the one that is missing on the upper right.
When I got out of this and saw the pattern (due to a tip to look at the splitter again), it was easy. Even though I saw that situation right after the split action a dozen times and more before.
Remember: don't always fix things as early as can.Splice - Epilogue 4 - Strand 6Haiaiai2012-06-18 | Ok, one down, only one more level in this game that I haven't beaten.
This time I wanted to show you my think process for the solution, so before I solve it (0:35) I show you one of the main patterns in the final strand, and which strand (normal-splitter-expander) replicates it. Then I focused on keeping that pattern and splicing it to the right position.
Another help is when you have exhausted your splitters to count how many cells you have and need, to know how much more or less to replicate with the splitters: If you miss 3, add 3 to the final split. If you miss 6, add 6 to the final or 3 to the second to last split. You get the idea.
With the pattern in mind and counting cells I actually only needed three tries to get it right :-DSplice - Epilogue 4 - Angelic SolutionsHaiaiai2012-06-17 | Last video in this series with angelic solutions. They're all here now.
If you find some different and interessintg ways to solve any level in Splice, feel free to post a video answer, or drop a link in the comments.Splice - Epilogue 4 Strand 1-5 - Normal SolutionsHaiaiai2012-06-17 | Ok... I'm not done with the entire Epilogue 4, still missing strands 6 and 7 here to complete the game. But I wanted to have this uploaded and maybe spend one or two days without soothing piano music. But I'll keep working on it!
Anyway, Angelics for epilogue 4 are done as well and will be up shortly after this. This means I really only have to finish 6 and 7 for completion.
PS: Epilogue 4 strand 2 is until now my favourite level I think.Splice - Epilogue 3 - Angelic SolutionsHaiaiai2012-06-17 | Here are the Angelic solutions for the Epilogue 3.
Sadly they were not hard to find. The first was the hardest, but I found the other two (strands 3 and 4) before I found "normal" solutions there.Splice - Epilogue 3 - Normal SolutionsHaiaiai2012-06-17 | And another one done. Strands 6 and 7 were complicated, some others were not.Splice - Epilogue 2 - Angelic SolutionsHaiaiai2012-06-16 | Ok, Epilogues half done.
I'm working on the other two epilogues, having done some angelics, but not all, not even all normal solutions. So... sty tuned for more!