Monthly Archives: November 2015

Brothers A Tale of Two Rans – Episode 4 – A Giant Tower

YouTube Link

It is surprising what can bother you. In this case the tower the brothers explore bothers me on a very basic level. Structures have to be built out of available materials, you can’t just scale up regular materials to achieve the same affect without some other built in reason. Especially when you contrast it with the remains of the giant battlefield, there weapons are clearly made out of regular sized trees and materials. We definitely know that giants are around, but we don’t see any giant trees growing anywhere.

It feels to me like seeing tiny people from a series like the Borrowers living in and using items and materials that were clearly custom made and sized to fit them. There simply isn’t the justification for it in the story and I find it surprisingly immersion breaking.

Indie Wonderland: Sakura Fantasy (Chapter 1)

Sakura Fantasy is probably the laziest Sakura game name I’ve seen so far. It tells me nothing. Oh, so it’s a game about a fantasy? I guess that sets it apart really nicely from all those other Sakura games. Like the one about spirits, and the one about angels, and the one about two large-breasted bisexual teenagers vying for the attention of Stockholm Syndrome Incarnated. Sakura Grounded In Reality, I like to call that set of games.

Yeah, yeah, I get that it’s probably intended as capital-F swords-and-sorcery Fantasy. Leave me with my spite. It’s all I have left.

Sakura Fantasy does immediately counteract its blandness with a bold implication of continuity. It’s not just ‘Sakura Fantasy‘: it’s ‘Sakura Fantasy… Chapter 1’. Meaning that, at the very least, the Sakura Fantasy experience was considered grand-scale enough to at least have to span two games. And maybe… maybe more?

Whether or not this is in any way a good thing, of course, remains to be seen.

(Spoiler levels: Narrative, somewhat high. Mechanical, rope-a-dope. NSFW level: really high, almost excessively so. And starting from the first page! So, er… tread with care?)

(Game source: Patreon. Have I not danced for your entertainment enough, you cruel art masters?)

After the break: on the one hand, more Sakura games means I get to extend this lazy-writing joke for even more weeks. On the other hand, if Sakura Fantasy is anything like Sakura Beach…

Brothers A Tale of Two Rans – Episode 3 – Trees Are Jerks

YouTube Link

This post is a little late because I have been packing to move house. This potentially could impact some of the future videos next week too.

The boys have had some amazingly poor luck in their journeys, they live in a fantastically hostile world where even the trees are jerks. It is interesting to see how little focus each of the elements are given in this tale. It shows where the focus is, even if I am unlikely to stop asking basic questions as they occur to me.

Brothers A Tale of Two Rans – Episode 2 – A Giant Romance

YouTube Link

The boss sections in this game are interesting, because for the most part they are fully aware of how difficult it is to finely control both brothers at the same time and so they just find a way to have the boss puzzle not require it.

The large brother needs to pull a switch and can be safe while the younger brother runs around acting as the distraction is used to pretty good effect here. I am really glad they opted for this kind of approach I found it difficult enough to control two independently moving figures, I have no idea how I would have gotten through even a moderately challenging boss that required both brothers running around on the field at the same time. I can’t split my focus well enough to manage that.

Brothers A Tale of Two Rans – Episode 1 – A Trip To Town

YouTube Link

I have been meaning to play Brothers – A Tale of Two Sons since shortly after it released to some very high praise, but for some reason I never ended up getting past the first roughly half an hour. It is a relatively short game with an interesting mechanical hook, a pretty world to wander through and a strong emotional hook despite no dialogue beyond Simlish, it seems like it would be right up my alley. Instead it has languished on my backlog, it was only on consoles, then I was waiting for a sale, then other games distracted me and I just never fuond the time for a couple of nice long dedicated sessions.

It is much easier to make time though when you are trying to do Let’s Plays so I finally sat down, plugged in my wired 360 controller and played from the start.

As beginnings go it works pretty well, you have a cutscene that shows your family have experienced loss recently and are likely to face it again soon, it introduces the fairly simple controls of the interaction button and thumbstick per character, it teaches you that sometimes both brothers have to work on the same object and sometimes they have to work apart and you take a trip into town.

Indie Wonderland: Sakura Beach

Week 3 of VNADS II: Sakura Harder is here, and we’re going much stronger than I’d expected. Sakura Angels was ‘somewhat okay’, and Sakura Swim Club turned out to be actually good. And I know you guys mostly came here to watch me suffer through six weeks of garbage, but… I’m kind of okay with this.

Also, I’ve been thinking. Sakura Swim Club beat Sakura Angels, which beat Sakura Spirit. And what’s the one element that’s been increasing over all three games? That’s right: water. Water fun activities, to be precise. Sakura Spirit only had one lazy pool scene, and it was bad. Sakura Angels had an extended cheesecake beach scene and monster battle, and it was okay. And obviously, give or take half of Sakura Swim Club involved swimming, and the nuances thereof. The trend is clear: ‘more water’ equates ‘more gooder’.

Let’s see if we can’t keep that trend up, alright. This week, let’s take a visit to a beach. A… Sakura Beach.

(Spoiler levels: Narrative, pretty high. Mechanical, nope^3. NSFW level: a little bit of underwear and some suggestive themes, but really nothing major.)

(Game source: Patreon.)

After the break: Sakura Beach actually has two distinct water sources! A beach, and a pool. So does that mean it’s double super good? Well…

Human Ransource Machine – Episode 6 – Zero

YouTube Link

Here we are at the end of the Human Resource Machine. I had a lot of fun with this, especially when I went back to try to get the remaining optimisation achievements. My biggest concern about it is that I am unsure  how much fun someone unfamiliar with programming will have. This is because it can be surprisingly light on hints, especially the basic ones, enough that I never talked to the bosses looking for more detailed cues, such as how you compare two letters, or different sort methods, and I am not sure how well those really work. The game also hints occasionally that you can get more information from Google and/or Wikipedia, but some people will find that kind of outsourcing of help especially annoying.

The other issue the game has is narrative, I mean seriously what is with the robots? The story never actually does anything with them, it just makes for some interesting interstitial cutscenes, there are a couple of levels where you seem to be outputting some kind of message, but there are never any hints as to what that message is for, nor really a purpose for completing the puzzles. It just seems like a bit of a waste to me.

As always you can find the optimised code over on the next page. I should warn you though that floors 38 and 41 beat me. I was unable to find an a fast enough algorithm for each. If you want solutions for those problems I suggest looking into places such as this GitHub repository. I shamelessly used their code for the fast solutions for those problems, I did attempt to understand what they are doing. For the floor 38 solution they cleverly set up the floor so that they can conduct their search by 3s, 30s and 300s. It takes more code but it dramatically speeds up the search. For floor 41 I remain somewhat baffled, I suspect it is simply using a sort technique I am unfamiliar with.

Human Ransource Machine – Episode 5 – Solution Expansion

YouTube Link

Progress slows down pretty drastically in the last 8 floors or so, the problems are much more complex and as a result so are the solutions. This means that it also takes a lot more work to optimise these, a lot of my evening free time during my Portugal trip was occupied with optimising these later levels and now here are a few tips you can use when optimising for size.

  1. Iteration is really useful. Start with a working solution, then tweak it.
  2. Don’t worry too much about edge cases. They take more lines to check for and we don’t care if they are incredibly slow
  3. Try to ensure that your code is as generic as possible, if you can reuse the same code section you also reduce lines
  4. Remember to use what you are holding after a check. Jump Zero means you are holding a 0, you can use that to reset counters and pointers. without an extra copyfrom
  5. Jump statements can take you in the middle of a loop, not just at the start. Consider where you want to enter a section of code the first time around

As always head to Page 2 for the optimised solutions.

Human Ransource Machine – Episode 4 – Programming to Success

YouTube Link

I am not showing any of my optimisation run in this series, which means that you unfortunately miss a lot of staring at and running of code while I ask myself questions like “What am I doing here?” and “Why did I do that?”.

Often my basic solution can be modified to meet at least one of the goals, though sometimes one must rethink your entire approach. Sometime the changes needed for code that meets one goal to meet the other are surprisingly subtle. See the code I have provided for floor 32 for an example.

Here are a couple of tips when going for speed:

  1. Iteration is really useful. Start with a working solution, then tweak it.
  2. It can be worthwhile to check for edge cases which are trivially solved.
  3. Try moving your output steps to the beginning and use a jump statement to skip them the first time. It is the same number of instructions, but fewer of them are used each time.
  4. Remember to use what you are holding after a check. Jump Zero means you are holding a 0, you can use that to reset counters and pointers.
  5. Jump statements can take you in the middle of a loop, not just at the start. Consider where you want to enter a section of code the first time around
  6. While size and speed are generally correlated, often you can speed things up using specific, if slightly redundant code.
  7. You may be able to have a counter or pointer value do double duty, especially towards the end of the program.

What tips for speeding up your apps have you found?

Check Page 2 for the optimised code

Indie Wonderland: Sakura Swim Club

The second week of my harrowing Sakura Adventure starts with a decided ratcheting down of the supernatural. In Sakura Spirit, time travel brought me to a feudal Japan where fox spirits battled ooze monsters for the affections of an incumbent judo champion. And in Sakura Angels, scantily clad celestial guardians fought shadowy monster, and succubus sorceresses from beyond the veil of history, for the affections of a lazy high school student with absentee parents. Colour me surprised, then, when the next game in the series seems to take place in a mundane high school swim club.

Well, ‘mundane’. A Sakura Swim Club. Mundanity probably still won’t factor into it.

Which forgettable white-bread protagonist will I control this time around? What particular style of anime nonsense plot will he fall into? And what are the unique and quirky attributes of the women that this time will try to win his affections?

(Spoiler levels: Narrative, pretty high, with a marked speedbump. Mechanical, still a visual novel. NSFW level: a few examples of ‘convenient objects obscure nipples’ full-frontal.)

(Game source: Patreon.)

After the break: the answers to these questions, and ‘more’, are revealed!