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

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.

tirsdag den 1. april 2014

True Play - Bioshock (2007)

Heft. This word fits Bioshock so well. To me, it describes the entire arsenal of the game, the feeling I get controlling the player character, the weight of impact of weapons, and the word even sounds Bioshock-y. You know? Stuff from the 1960's had heft: Rusty, burdening. In other shooting games? Idunno... everything is a little light.

I saw the 2006 E3 presentation as what I was supposed to play the next year. In many ways Bioshock became what that video showed, while in many others, it was completely changed. According to this post mortem, for the better. According to me? Well, I never got to play the original, but it sure aligned better to what I wanted.

When I finished Bioshock back in 2007, I was so disappointed. It wasn't the meticulously detailed, free-roaming, thoughtful-choice-based shooting game I had expected. The many battles had made me tired and especially the final levels of the game were just drawn out. The moral choices were pedestrian, and the it seemed to stink of squandered potential. Oh my god, how I wish I could play the game I saw in the E3 video and which Alyssa Finley describe in the post-mortem, as having been seen as confusing by testers. She regrets they didn't realised Bioshock should have been a straight-forward shooting game earlier. I mourn that they ever realised it.

Replaying Bioshock today though, knowing what it is and no longer expecting what it isn't, I can say, it truly is a wonderful, and in many cases, thoughtful, murder game. I say murder with a wry voice, because of course I don't see it as training anybody to murder. For a first-person shooting game, dispatching opponents is just a very effective way to put interesting mechanics to fun use. There really are a lot of fun situations to put all the mechanics to use and feel creative for mixing up my arsenal and enjoying the ammo-conservation-encouraging game play. The moral choice of whether I murder little girls or not, was and still is severely boring. The choices where I have to decide how I'm going to navigate my continued play time, as in: Which part of my poor-man's-kitchen-like arsenal (ingredients always running low) do I use to keep alive now? Should I murder the Big Daddy now for an early upgrade, or let it roam a little longer? Those choices are fantastic.

These wonderful choices are made more amusing by the previously mentioned heft of Bioshock. Some how, the revolver in the game actually looks and sounds in such a way, that it manages to have a weight of carrying six bullets. And when I jump from the appearance of a sudden splicer, and empty the entire magazine, missing thrice, I really feel the weight of which bullet it was that took the life out of my opponent.

Bioshock is still a world that feels dynamic due to the heft of every weapon and the shortage of murder-ingredients. I like it.

onsdag den 22. januar 2014

Space to Play

Reading Howell’s Geography of Identities (not as thoroughly as when I was actually in university), I thought of the idea of connecting with a video game. Through both the game play and narrative, Link’s Awakening was something I connected with immensely. Recently 4 Heroes of Light and Mass Effect 2 too. Grand Theft Auto 4 though, only (not really a bad thing) through its game play.

Perhaps it’s due to a combination of the interactions and visuals. The intense degree of abstraction in Link’s Awakening and 4 Heroes of Light gave my mind an immense room to play, and the systems as well. Mass Effect 2 overcame its strive for visual realism by its hard work towards letting me feel in control of much of its narrative. Mass Effect 2 and Grand Theft Auto 4 featured very playful game play that allowed me to connect with the games and their settings, but the narrative of Grand Theft Auto 4 wasn’t play and the graphics as well, left no room for my imagination. This is all just musing on my own experiences, trying to reason with my own conclusions (not good detective work).
Writing my Bachelor’s Thesis on video games, I came across the notion of play being what happens in the mind as we observe art (Kant, I think?). Which means that playing games is like doing what happens in our mind in the event of art. And if John Cleese can be believed, creativity happens when we play, so a cycle begins.

But this notion made me think that the reason I sometimes don’t connect with video games, is because they don’t let my mind play. As in, because graphics are too realistic, there is nothing left for my mind to play with, so I don’t connect.

Why is connect in italics? That is because I’m questioning the idea of identifying with a game. This idea of relating to characters in games in the same sense as I do to characters in literature and film. Because I have this idea that the point of games are to play them, not to be exposed to them. I believe (for now. I’m young, I drink a lot and my mind keeps changing) that I don’t passively experience a game, but actively play with it, and therefore that it's unnecessary for me to identify with myself. I am the one playing and therefore the idea of identifying during game play is mismatched. When the narrative and game play are separate (which they often are), identifying becomes very essential (for the narrative), but then it is no longer the game I am connecting with.

Connecting though, is the wrong word as well. It is too easy to misunderstand. Identifying is when something external is presented and I (can’t help myself to) relate to it or not relate to it.

Space to play. That is what becomes important to me in games. I don’t play movies and books (even though they can continue to play in my head afterwards). But I do play games. Identifying with template characters like Link or avatars like Shepard isn’t what is essential if I am playing. Link’s world has space for me to play, and Shepard’s narrative (and the character itself) is a space for me to play. This idea applies to visuals as well: Realistic graphics allow me to identify with a character (or in the case of graphics that were once realistic, but are now laughable: not identify), but abstracted graphics give my mind space to play, and allows for creativity, making me, the player, in turn, the artist.