Welcome, hi, good day, hello, what's up?! I'm the Sketchwhale!
I make games, talk about them, draw comics and post sketches.

fredag den 16. september 2016

'The Last Guardian' Can't Succeed

Games like 'Half-Life 3' and 'The Last Guardian' (TLG) have been a long time coming, and seemed to have become industry jokes for never releasing and disappearing without explanation. And then suddenly TLG had a release date (which got pushed a little recently). This morning I saw the creator of the Momodora series lament the hype-hate-train (my term) of TLG.

It wasn't something I'd noticed, but I can only imagine Momodora-persona being correct, that previewers were hating, and I thought 'but of course'. Not because I have a critical view of games journalists (although I do) but because of history.

Many years ago I read about a PS2 game called Ico. Shadow of the Colossus had just been announced and the writer was pining for this new experience after 'feeling' so much though Ico. I had to try that game. I tracked down a copy in good condition and popped it into the PS2 and proceeded to hate every single second of it. The controls were clunky, the main character annoyingly slow, the camera a bother, the graphics were blurry, the environments were empty and the difficulty was janky. I quickly quit and a friend borrowed the game for a few weeks, but didn't get anywhere himself.

Eventually I got it back and tried again, completing it in a single day. I had let the game's oddities settle and suddenly I appreciated the game for its less than stellar aspects while loving what it tried to do: The hand-holding mechanic, the scarce music, slow and deliberate pace. This was an acquired taste and didn't give a damn about how to create a pleasant interactive experience. I posit that this game truly gave rise to the aspect of indie games concerning walking simulators and attempting to let players experience serious story telling. I contend that others have succeeded, but Ico succeeded in what it did. Eventually coming to love the game, I too looked forward to Shadow of the Colossus and appreciated that as well for all its quirks while succeeding in what it was trying to do. Clearly it was more 'game-like' in its execution, but still it had clunky controls, blurry graphics and empty scenery.

Time has passed though, and although Ico and Shadow were re-released, few game are made like them. Games with little regard for how games are supposed to be made and only focused on what the creators are interested in succeeding. Games are more often than either good or bad at being enjoyable experiences.

It might sound obvious, but I suspect TLG will continue in the vein of Ico and Shadow. And after so many years of getting games that are designed to succeed in a certain mannerism, it is going to be hard to argue that TLG can get away with being in development for so long and not be a truly pleasant and well-designed experience like most action-adventures are striving to be. I don't know what took almost ten years in this game's development process, but I suspect it won't be appreciated for what it is doing right away.

fredag den 26. august 2016

Tiny Lua Program for People Who Don't Know Code

I 'sketched' this program yesterday on the train, and thought it'd be fun to share, because it's simple and easy to comprehend for people who are new to code. It's written in Lua, but if you know other languages, it's easy enough to decipher. But since you might not know other programming languages, I thought I'd explain it in light detail. I've whited out the unimportant code, that simply makes the program read aloud itself.

The program instructs you to give it some text (handing it some eggs) and will then scramble whatever input you give it, into garbage and output this (scrambled eggs).

To scramble, it picks a random index in the string _s and inserts this character, yolk, of string _s into a new string eggs. It then concatenates the text before and after yolk into a new string _s, and repeats this action until eggs contains all the characters of s.

It's a silly program, but a little cute, and by using the os.execute() function with the say program (does Linux have this as well?), it gives a little more showmanship.


function Scramble (s)
  local _s = "" 
local eggs = ""
_s = s
for i = 1, s:len() do
rndIndex = math.random(_s:len())
yolk = _s:sub(rndIndex, rndIndex)
_s = _s:sub(1, rndIndex - 1) .. _s:sub(rndIndex + 1)
eggs = eggs .. yolk 
return eggs

function Cook ()
instruction = "\nHand me some eggs, will you?\n\n"
say = "say"
os.execute("say Hand me some eggs, will you?")
sentence = io.read("*line")
os.execute("say '" .. sentence .."'")
eggs = Scramble (sentence)
io.write "\nHere you go\n\n"
os.execute("say Here you go")
io.write(eggs .. "\n")
os.execute("say '" .. eggs .. "'")
io.write("\nWhoops, seems I got some shells in there.\n")
    os.execute("say Whoops, seems I got some shells in there")


Cook ()

søndag den 24. juli 2016

Year 1 of Computer Science (datalogi) at Aarhus University

If you're interested in studying Computer Science (CS) (datalogi is the term used in Denmark), ‎here are some reflections on the first year of CS at Aarhus University (AU). I'll address workload, difficulty, expectations, and some grievances.

About the Danish Education System.

For the most part, education is free in Denmark (elementary school, secondary, higher education) for citizens. To enter a university, the field you study might have a limited number of spots and if so, a minimum grade average is set, based on your high school performance. Fields like CS have for many years had trouble attracting enough students, and so there have been no formal limit for neither number of applicants or grade average.

About Me

I have a previous bachelor's degree in Japanese Studies, so I'm a few years my classmates senior and probably ha‎ve a different concept of what is important in university.
I didn't have any programming experience until two years before starting CS. By the end of my first undergraduate degree I had begun playing around with C# (which, for the uninitiated, is a programming language created by Microsoft and used in the Unity game-making program) and eventually landed a small job that, although unrelated, got me into noodling around with both JavaScript and databases.

Beginning at a Possible End: Dropping Out

CS is said to be tough. The dropout rate is high and I can now personally attest that you need to want it, be smart, and work hard to pass even the first year. The dropout rate is a running joke at AU and people often attribute it to freshmen misunderstanding CS, thinking it's about learning how to make video games. From my experience, this misunderstanding is not that widespread. In all university fields, people quit for a myriad of reasons including but not limited to: illness, family troubles, financial problems (yes even in Denmark), lack of interest, change of mind, and difficulty of subject. If you quit, you quit. I don't believe it's anything to feel bad about, it just wasn't right. But the sooner you realise you aren't  in the right place, the better. If it doesn't feel right, trust your instincts.

Structure of Computer Science

For the past years CS has been divided into half-semesters (let's call them quarters) for the CS subjects and possible whole-semester subjects for later subjects further down the education, including supplementary classes in different fields like mathematics. This means that the first year has 12 classes, 3 in each quarter, each quarter ending in a exam period. This in turn, means that unlike most other studies at AU, you don't get any vacation until summer. Nothing in autumn, winter or spring. No Christmas nor Easter. Oh yes on paper you get vacation, but not in reality. Adding to this, each class has a weekly mandatory hand-in that might be manageable in the first quarter, but quickly becomes rather tough later on. If you don't hand it in on time and all hand-ins aren't approved by the  beginning of exams, you won't be eligible for the exam. In other words, hand-ins quickly become like constant exam-like situations, so the first year quickly becomes one long exam. This is very, very stressful. So much that some have to dropout due to the stress.

The Subjects of Year One

From here, it might be best to simply describe each class of the first year, so give an understanding of the workload, contents and difficulty of CS.

First Quarter

  • Perspectival Computer Science (Danish: Perspektiverende Datalogi)
Tools: Some archaic database stuff.

Thought of as an easy subject and often derided as being to close to humanities, this is an introduction to writing academically, it gives you a chance to learn LaTeX (program to write academic documents professionally and useful for writing mathematical symbols). Yes, it is relatively easy, although some of hand-ins can be tough to wrap you head around at this point. You get a real quick introduction to many of the subjects later in the education, many of which I have yet to have had. Basically, if none of the subjects makes you even a little interested, CS isn't for you. The exam is just having completed all hand-ins.

  • Introduction to Programming
Tools: Java

Very basic introduction to Java programming, using some playful learning programs (Greenfoot and BlueJ). The class is a waste of time for people who already know some coding and isn't very good at teaching coding for those who don't know. But this is your best chance to wrap your head around the basics of coding (variables, loops, if-statements, functions/methods) and some algorithms. Take advantage of the easiness to get really good, the lull won't last. The exam is silly. It's a speed test about writing some predefined simple programs.

  • Calculus 1
Tools: Math software of your choice.

Continuation of high-level high school math. I found it tough, but am continually angry at myself for listening to the advice my seniors gave me: They said I shouldn't use a computer, because doing the work by hand would teach me better. This is idiotic and applies for Calculus 2 as well. Use a computer and focus on understanding the math instead of doing it by hand and wasting time on finding small mistakes in your homework.

Second Quarter

  • Computer Architecture

Image of how stacks work. From Structured Computer Organization, fifth edition.

Tools: IJVM, Java, C, Assembly

Tough subject. Big hand-ins. Large curriculum. You work in groups of 2-3 people. Don't let one person do the hand-ins, be firm about this. Only this person will be prepared for the exam. The subject is about how a computer works on the lowest levels and gives you a great respect for what the hell is going on inside all of our devices. You'll work with various assembly-like languages and maybe a bit of C, although that's too high level for most of the class. Multiple-choice exam.

  • Programming 2

Coding an applet in Java. Horrifying ugliness, gratifying results.

Tools: More Java

Introduction to Programming gone wild. This class is much more difficult than Introduction to Programming. So much in fact, that it seems silly they're allotted the same amount of time. It's a very bureaucratic class with an oral exam. The weekly hand-ins can be a little confusing in what they're asking for, but the execution isn't that complicated.

  • Calculus 2
Tools: Math software of your choice.

Calculus 1 and 2 should be one class with a single exam. Pure continuation of Calculus 1. The exam is a 4-hour doozie. The way the questions are phrased can (in my opinion) differ widely from the preparation material, making it difficult to prepare. Not really advice, but be aware.

Third Quarter

  • Interaction Design
Tools: Your imagination, pen and paper, web design tools.

If you ask around, most people dislike this class, claiming it be too reminiscent of humanities. This if of course ridiculous. Most people in CS have no clue of what humanities are and I can attest that Interaction Design at AU is simply a pale and unprofessional sibling of any of the humanities. The class is supposed to help you understand and describe design and work with it iteratively. It fails at this and the exam is simply about trying to get into the mind of the teacher. You can in fact easily pass the exam with mere guess work, as long as you attend the first lecture and get an understanding of the teacher. It's a bit mean to be so critical, but I was left with little to make me respect the class. There's room to use you HTML, CSS and JavaScript skills from the concurrent Web Technology class.

  • Algorithms and Data Structures 1
Tools: Mostly just pen and paper.

Visualisation of an algorithm. From Introduction to Algorithms, thirds edition.

Now things start to get computer science-y. Learn about a lot of algorithms and what they do. There's a lot of information and the book is dense as fuck. By now you will also be quite tired from lacking rest (remember, you haven't had real a break in more than 6 months now). This class is to me, the definition of CS. You use programming, but simply as a tool to perform tasks. You might even marvel a bit at what you can do with very little code in this class.

  • Web Technology
Tools: Oh boy... too many.

A weird class. You work a website both front-end and back-end. So many web technologies to wrap your head around, it's dizzying. Again, like computer architecture, groups of 3, don't let one person do all the work. As mentioned, you get to use CSS, HTML, JavaScript, Java and various other tools.

Fourth Quarter

  • Programming Languages
Tools: Emacs and Scheme

Not too difficult, but the hand-ins can be enormous, making it tough. Your first introduction to how the linguistics of programming languages. You work functional programming languages and use Scheme. You'll also be pushed to learning emacs. I didn't enjoy emacs but some start to swear by it. Enjoy.

  • Algorithms and Data Structures 2
Tools: Pen and paper.

Like Algorithms 1, just bigger and badder. Like Calculus 1 and 2, they really ought to be one class.

  • Regularity and Automatons
Tools: Pen and paper, Java

Works together with Programming Languages to give you an understanding of compilers and how a computer interprets languages. The formality of the class can make it extremely difficult and many people simply freeze at the oral exam. The hand-ins are manageable but the subject itself is really really difficult. There can be a lot of Java programming in this class.

Finishing up

So that's year one. I hope you get an idea of the amount of work, the focus that goes beyond mere coding and the breath of classes. If anyone ever reads this post and has questions, I'd love to answer them. Can I recommend CS at AU? Yes with a but: I don't quite believe the workload needs to be so severe. Most of what I learn gets put in my short term memory, and I'd rather get a little better at less stuff and remember it for later on. But as far as I understand, the first year and a half are simply introductions to all the fields of CS, so it makes sense to put us through all this work, to get a wide perspective.

fredag den 29. april 2016

Doki Doki Densha Sekai


The Reasoning

Some weeks ago, Nordic Game Jam 2016 took place, and even though I'd said to myself that the NGJ wasn't really my... (fuck)... jam (god damn it), I was sufficiently starved for creative endeavours that I was willing to give it another shot. This time however, I'd decided to bring an idea. Enough with game design taking a backseat to the simple stress of making pixels move.

For this game jam, I was gonna bring an idea, convince some people to help me and create something that matched my vision. It sounds slightly egotistical and if a game is about a group of people molding an idea together, then yes. To me, a jam can be many things, and even though I don't see it so often, I think there's room for a mini-scale version of the auteur taking the reins.

The Idea

Ever since I first rode the subway in Tokyo 5-6 years ago, I've felt inspiration from its atmosphere and the representations of it, I saw in manga, games and anime. But how do you translate the idea that the Japanese subway is nice to ride, into a game anybody would want to play?

A few years ago I was convinced some sort of puzzle game, a match-carts-and-commuters thing might be it. Looking back, that didn't make sense. Thematically it would be related, but it would hold none of what inspired me. The simple and difficult solution, seemed to be direct: Make the subway.

Another concept I've been struggling with, is that I love Zelda games and the two Little Big adventure games. They are what action-adventure is truly meant to be, according to myself, and yet I can't simply do copies of their gameplay, that would be uninspired. So I've been going back and forth in my mind: What is the core idea of these games, what makes them what they are before they become what they are. At the NGJ, some designers from Blizzard some of iterating on the core 30-second gameplay of a game, yet that doesn't make much sense in Zelda, you'd end up with a video of someone from though a door, running down a hallway and switching an item in a menu. That's hardly what I like about them. This is a bigger topic for another post, but for now, what I can say is that I thought it make sense to try and represent a bigger world, living, designed world with as few mechanics as possible:

A game about travelling to various train stations and delivering messages and packages. It sounds small like that quickly you realize: various can be a lot, and what constitutes a train station? Delivering parcels is its own system and travelling means movement. Besides, don't you need other commuters and... It escalates. So here's what I said to myself:

1. If we make a train cart with commuters, we've succeeded.
2. If we can travel between two stations, it's a massive achievement.
3. If various commuters can board and get off different stations, we've blown my mind.
4. Anything beyond this is just showing off. Really, it'd be awesome, but it's just a game jam, let's take it easy.

We got 1, 2, and 3 done. I'm still mind-blown.

Here's a couple of watercolors I used to convince Jon and Astrid to help me make Doki Doki:

The Jam

NGJ still is both amazing and not really the kind jam event I want. It's a bit too short and whole voting which project is best, doesn't really suit the idea of being creative, which I consider most important in a jam. Yet the atmosphere is great and people are high on creativity and insane ideas with virtual reality hats and games written in C and assembly. It sounds weird to criticize the the competition part, because Doki Doki became a finalist in the main competition and that was fucking amazing. It was overwhelming to get recognition for the game being worth a damn and it was fantastic afterwards to hear people I admire and respect, praise the game and its ideas.

I'd actually convinced Jon to help me before the jam and we discovered Astrid on the second day. Luckily we were apparently just as much the type of game she was searching for as she was the type of musician we needed. Both Jon and Astrid seemed to like the game idea from the start and the many additions Jon made to gameplay, both to actually make it play and it make it play better (such as when you walk in a cardinal direction, the character will sort of wobble to show it is moving) were amazing. But I feared trying to get a musician on-board. I know so little of how to convey my ideas in music, I fear giving the musician the wrong impression and wasting both our time. This was not the case. Astrid really understood, like Jon, what setting we were going for and how the play was hopefully supposed to feel when idling in a train cart.

I hope you will enjoy Doki Doki Densha Sekai. It has received some fine-tuning and bug fixes and Jon was able to implement some path-finding for the other commuters, so it's slightly more alive than the version we finished for the jam.


lørdag den 12. juli 2014

If You Like Turning Knobs for the Act of Turning Knobs

Or... Monument Valley in Which no Surprises Lay in Store.

Monument Valley is really beautiful and controls well. Unfortunantly for me (and only me, since everyone else loves it), it's just a digital jack-in-the-box in an Escher-inspired setting. It requires little to no skills (cerebral, reflexes or otherwise), except rudimentary touch interface understanding, to complete. Some would say it's difficult to navigate it's areas, but the game is so linear that that is just plain false. I had a pretty little experience with it, but I wish there was game to go along with the design. Because that's what it is: a beautiful design object. The final level (of ten) required some thought, but no more than a little trial-and-error could negate. Honestly the app is beautiful, simple and lasts about 40-50 minutes. If that's what you want then it's great.

Oquonie is a beautiful, well-controlled, weird-structure (Go in from right, go out... another place). It requires thought to complete. Play that. 

søndag den 20. april 2014

Jibanyan figurine

I saw this on Tiny Cartridge today. It is Jibanyan, from Japan's current fad, in the vein of Pokémon and Tamagotchi, Yokai Watch. It's such an interesting example of Japanese pop culture. First of all, it's a really pretty figurine with a character with a very interesting design (look how the mask portion of the face is sort of a smokey spirit!). I can see why the looks of the characters in Yokai Watch are popular.

Beyond that, the character is holding some sort of bathing-suit pin-up magazine with cat-girls, reminding me how the notions of cute, sexy, mature, lewd and kiddy always seemed to be different sizes in Japan than what I was used to in Danish culture and on the American internet that I mostly read.

Shonen Jump (I think it was), the weekly teenage boys comics anthology would feature girls from the massively popular group AKB48, in cloth like on the Jibanyan figurine, and oftentimes, images that I thought were to be considered sexy, seemed to convey cuteness, since college-age girls would simply and giddily comment how cute they were. Perhaps it's not the correct understanding, but it seems to me that the idea of cute in Japan can sort of hold an ambiguous meaning, where cute can be sexy (as in conveying sexual appeal), innocent (even at the same time) and quotidian (as in, it just is and isn't worth contemplating).

Jibanyan is pretty cute. But it isn't sexy. The cat-girls are sexy though (the girl part at least), but I would venture a guess that they would be considered cute as well (the girl part too), in Japan.

source: http://game.watch.impress.co.jp/docs/news/20140417_644715.html

søndag den 6. april 2014

Tutorial: How to setup Unity3D for pixel-perfect low-resolution 2d art.

Disclaimer: I have no idea if I'm explaining something obvious, obscure or useful. It just took me so long to figure out all this stuff or look it all up, that I thought it'd be better if you only had to look in one place.


This is what we're gonna make. A 320 x 200 game in Unity3D. In other words, really low resolution pixel art, something Unity3D really doesn't want to do very easily.

The image has a 64 x 64 sprite, a pixel font, (kindly made by the good people of the Mother 3 Fan Translation), and everything is completely pixel-perfect. Pixel perfect means, that every pixel is the same size and sit perfectly next to each other and nothing is blurry. As in, any SNES or GBA game was pixel perfect.

From here on it's like a tutorial, but also sort of a reference guide.

1. Drag 'n drop your image into the 'Project' Tab. Here, use mine if you need something to use.

Image and video hosting by TinyPic

2. Set it up like this:

3. 'Pixels To Units' is set to 64, because in this scene, the size of this animation is a standard unit. I'll get back to that later.

4. Cut the image up in 'Sprite Editor'. Click 'Slice' in the top left corner, set 'Type' to 'Grid' and size to 64 x 64. Click 'Slice', then click 'Apply in the top right corner.

5. Drag the newly cut frames into the 'Hierarchy' tab and save it when Unity prompts you to.

6. In the 'Scene' tab, click the on the gizmo where it is yellow in my picture below and click on where it says 'Persp', so it says 'Back'.

7. Select the 'Main Camera' object in the 'Hierarchy' tab and make it like this in the inspector:

What 'Size' in the Camera component means
8. We're making a pretend-game that has a resolution of 320 x 200. This is where the 'Pixel To Unit' thing comes on, and the 'Size' box in the Camera component. 'Size' is "half the amount of units we can vertically see on screen". I.e., our vertical resolution is 200px, a unit is 64px, so 'Size' should be 200/64/2 = 1.5625.

9. There. Now the game is actually set up nicely to be a pixel-perfect 2d game.

Weird problems when getting sharp pixel art in a unity3d build
10. If we make a build (cmd + B on Mac... something else on windows), we'll get a Resolution Dialog Box. If we select 1280 x 800 and press play, the game will be perfectly Sharp and look like it has the intended resolution, even though it's actually 4x that.

11. But if we go into 'Edit' -> 'Project Settings' -> 'Player', and in the 'Resolution' tab, set the resolution to 320 x 200, and in the 'Standalone Player  Options' set 'Display Resolution Dialog' to 'Disabled', and make a build, we'll go from a sharp image like this...

to something horrific like this...

I have no idea why. So... don't do it...

12. Okay, that was it for Part One. In Part Two I explain how to get pixel perfect pixel-fonts.