Friday, September 15, 2017

Unity Session I - Animation

I realised that we've started quite a few game projects before, which have all been abandoned at a very early stage. But this time we're gonna make it. I just know it :)

Ok, so we've started working on a Unity 2D Tutorial where we follow video instructions and try to do the same thing as the guy on the video. The idea is to create a simple 2-dimensional game with the Unity game engine. I hope that after we're done with the tutorial videos, we'll be well equipped to start writing games of our own. So far, I have very limited Unity experience and I need the video tutorial as much as my daughter, so this'll be a great learning experience for both of us. My advantage over her is that I'm a professional coder at Reaktor (yes, we're hiring in Amsterdam, Dubai, Helsinki, New York, Tokyo and Turku!). Her advantage is that she's young, smart and has an almost unlimited supply of free time to throw at the project.

We had our first session the day before yesterday and we had a good time. We managed to create some basic animations for the player character and a couple of enemies.

After creating a couple of animations from the sprite sheet (basically a set of images) included in the tutorial, she was able to complete the rest by herself. After the one-hour session, she seemed quite enthusiastic about going on but it was bed time. I'm pretty sure we'll continue this soon. Stay tuned :)

Wednesday, September 13, 2017


A couple of days ago my daughter announced that she wants to create games that run on her phone. REAL games. I tried to steer her back towards Scratch and the like but she was adamant that those won't do, as she's about to start making real games. 

DAD: It's going to be really really hard and you'll be banging your head against walls for hours trying to make something work"
GIRL: That's exactly what I want!

She described a pretty complex game to me, containing several minigames and a main story. Then she showed me some graphics that she's drawn on paper. Fortunately I got her to understand that she needs to start with something smaller first, before creating her masterpiece.

When she went to sleep, I started digging, knowing fully well that I'm not a game programmer and need to do some catching-up before I can help her in her endeavours. I downloaded Unity and made a good start of a Pong-like ball game. It was surprisingly fun and easy, so I guess we're gonna go on with Unity.

Today we did the first few clicks of the 2D Roguelike tutorial before it was bedtime. Fun times ahead!

Monday, March 13, 2017

Script Academy

In a comment to a post on Reaktor Blog, a guy called Evgeni pointed me to a site called Script Academy. It's a site for kids to learn coding. And it looks promising! It has a treasure map too!

And it promises "After completing this course, your child will be able to create simple games and share them online." 

Well, we tried it with my 8-year old veteran coder girl who's used Vim at the age of 4 but since then gravitated towards other interests like 3D printing and playing the violin. Anyways, Script Academy starts in an easy way: Just click on buttons to generate Javascript that guides the (cute!) Owl to her baby. You can see the generated Javascript code and then run it. This was easy. Except the "run" button was a bit hard to find at first. For me. For the kid, it was peanuts.

Then came the part where you have to actually write the Javascript yourself. That didn't appear to be very hard, because example code was given. But here lied a surprising catch! Here's the result.

I guess there was a bit too much freedom this time. Give a kid a text area and she'll fill it with - well - anything on her mind at the time. I love her too!

Let's see if we return to Script Academy later!

Sunday, February 26, 2017

Black Hawk Down!

Btw, did you know I'm a helicopter pilot?

I have this 30€ helicopter from Clas Ohlson and I can totally land it on a dime. I mean, a two-euro coin. On a good day. But usually at least on the living room floor given enough room for maneuvering. My daughters, of course, share my passion for aviation.

I also have a spare chopper that has one of its main engines busted (not at all caused by a crash landing on my part). Or at least, had until today when my daughter wanted to build her own boat with a motor. So we had a long discussion about boat design, like, how should the weight be distributed (down), where the water line goes when it floats (dunna), where should the motor and the propeller be placed (down), how to make sure the axle hole won't leak water (grease?) and so on. Then she draw her boat with Tinkercad, with the intention to print it with our 3D printer. Here's how the design looks as of now. The design contains fittings for a little motor I had earlierly salvaged, that's something like 30*20*15 millimeters big.

You might notice that the motor compartment looks big for the tiny boat and the propeller placement isn't perfect: it'll be hard to get the whole propeller underwater. We are not boat engineers are we?

Then I remembered the spare chopper. It still had two (working) ultra-tiny motors, a control board and a Lithium Polymer battery onboard so it might be the perfect technical platform for the new little boat. So, we stripped all the unnecessary parts from the chopper and here's what we have now.

A nice radio-controlled motor-controller-battery package salvaged from a broken chopper! Let's see what comes out when we print the hull and combine it with the motor package. Do you think it'll float or sink?

Saturday, December 3, 2016

Going 3D with Tinkercad

I ordered a 3D printer for some of my own hobby projects and re-branded the purchase as a x-mas present for the whole family. Then I decided I need to learn some 3D design. I started yesterday with Fusion360 recommended by a colleague. I managed to create a shining box with rounded corners and could not remove the rounded corners. Gave me the same inadequate and stupid feeling I got with Photoshop before my friend taught me how to use it. 

So I "downgraded" myself to Tinkercad. And got it instantly. What a wonderful piece of software, running in my browser! This is what I created in a minute, as a proof of concept.

Today I told the kids about the upcoming 3D printer and they went mad. They already knew about such things and had seen one in the library. They wanted to print 3D Pokemons, of course, but I told them that the point is to create your own things, now just print stuff from the 'net. So today I showed Tinkercad to my 7-year-old and she was like "ok, looks a bit like Minecraft, what should I do in this world?". Well I told her that you can mess around just like in Minecraft. Plus the little bonus of being able to 3D print the result. BOOM! She went crazy.

Tinkercad was easy for me to learn and unsurprisingly it was easy for her too. So she crafted this little world in 15 minutes or so: 

After a bit she taught Tinkercad skills to her 5-year-old little sis too.

... and here's what the 5-year old came up with:

So, we had lots of fun and will have more tomorrow (bedtime came too early again). Cannot wait until the printer is delivered. I strongly recommend trying Tinkercad if you haven't done 3D design before or would want to let your kids try it too. It's online and it's free. A 5-year old can use it. You can too!

Have fun!

Monday, November 28, 2016

New Rules for Minecraft

In case you haven't noticed, offers tons of fun tutorials for wannabe coders. The newest thing is the Minecraft Designer. I decided to give it a try with my two daughters, now 7 and 5 years old. Minecraft is especially my older daughter's favorite game; she loves to create her own worlds from the simple 3D minecraft blocks. I thought that coding in the Minecraft world might inspire her. Guess what happened?

The tutorial starts as do many other tutorials, by presenting you with a problem domain and a task. In this case, there's this sympathetic Swedish coder Jens, presenting us the Minecraft world and the fact that the World Has Stopped. Your task is to bring the animals back to life by coding. Like this:

Now this is a simple idea and there was nothing new really: a simple 2D world and the familiar programming blocks that are similar to the ones we've used earlierly in Scratch and other Tutorials. Yet, when I showed this to my older daughter, it totally captivated her. I had to read here the English instructions, like "The chicken is frozen. Place move and turn blocks in the when spawned slot to get it to work. I checked if there's a Finnish translation but it was very much lacking at the time.

Anyway, she had a very good drive and quickly steamed through the 11 assignments, animating chickens with loops, randomness and sound, learning about events by making sheep drop wool when "used" and so on. The best part was yet to come, though!

The 12th assignment is in fact a full-blown game editor, where you can make different creatures appear at different times and positions and freely code their behaviour by dragging code into their event slots, like this:

Here, for instance, the Zombies chase the player and attack when touched. The Iron Golems, on the other hand, chase the zombies. Until morning, that is. That's when it explodes!

This freeform editor thing totally really hooked by daughter into designing her game and having the creatures do a lot of funny things. Chickens laying carrots instead of eggs was good fun!

She also made a nicer version of here game for her little sister, who was scared of the zombies. In that version, the zombies are nice and actually a bit scared of sheep, which was a lot of fun to watch.

Better yet, you can also save your work and share it as a mobile-friendly web page. Try it yourself! You can go directly to the editor here. After running your game, click the Finish button, then share the URL that's presented to you. Then you can get back to editing the game. Each time you click the Finish button, you'll get a new URL.

In conclusion, this was by far the most enjoyable tutorial from so far. I've never seen my kids so thrilled about coding!

Oh, and do you want to try (a version of) the game my daugther made? Try here. Use arrow keys to move and spacebar to attack/use. Wait until nightfall to see the zombies, creepers and iron golems. Have fun!

Wednesday, September 28, 2016

Kid 2, Teaching the Teachers

I started the Girls Can't Code blog about 3 years ago with my 4-year old. Now I have another 4-year old who can't use Vim yet, a kind of a clean slate if you like. Should I teach her Vim or Emacs? Start with the command-line or go for Scratch to begin with?

I have to admit that she's already exposed to some coding stuff though: we've played the Robogem board together quite a few times. That doesn't make her a coder yet, and she can't read or write much yet but certainly shows interest in learning to do so, so I think this is a good time to start pounding the keyboard.

Today we kinda started that by launching the lovely Bubble Bobble game on our good old Commodore 64.


I've put a sticker with instructions for starting games on the machine, so it was just a matter of writing exactly as the paper said. But it takes some effort to find all the keys on the keyboard and to type the quote characters which require you to hold Shift while pressing the key. She made it the first time though and got the game running. She's playing with her big sister as I'm writing this.

Btw we did a little Turtle Roy refresher with Big Sis couple of days ago. She had forgot most of her mad skillz since we haven't been doing our computer too often lessons lately. We still have our little Egg Alert game project to complete. If I remember correctly, we have some images scanned and uploaded to Scratch. Hope so, as her computer (old Macbook Pro) broke down and she has to use mine for now.

Oh and yesterday I went to the Kilonpuisto School to teach programming to the teachers. That was good fun and I got a lot of positive feedback along the lines of "I'm no longer scared of coding now that I got to try it". There's a lot of work to be done now that programming is a part of the national curriculum in Finnish schools, while the teachers are still mostly clueless on how to teach something they know mostly nothing about. But like the teachers discovered yesterday, coding is not rocket science; anyone can learn the basics and have fun doing so. 

Which probably applies to rocket science as well. Good luck Mr Elon Musk, I hope you get to Mars one day and come back alive, too!