Simoroshka & games

May
20

Identity change

So, many things happened from the beginning of the year, and many more haven’t. If I want the story in this blog be more or less complete, I should probably write a longer post, explaining how come I am now focused on web development instead of pursuing gamedev jobs. There are many factors and reasons.

The first reason is that I already tried to apply and send open applications to local gaming companies. In most cases I didn’t get any answer, then I got an invitation to a video interview that I failed, and an invitation to another interview for a job that I also didn’t get (not enough experience, alas). These results are not a reason to give up, of course (how else would you get more experience?), but here comes the second reason.

The second reason is all about money. Unfortunately one needs it to pay for housing, food, coffee, and many other things, and if you don’t get it from somewhere, it will eventually run out. So I really cannot afford spending another year developing skills and hoping to get a job when I turn 29. As there is no guarantee that I will get a game job anyway, the most reasonable solution is finding something I am already reasonably good at and with more job openings. I happened to have both interest and experience in web development. I actually like it very much. It just doesn’t sound as cool. =)

The third reason is something I understood during all those job applications and interviews. I am not sure I want to make just any game. I want to do something special, something with a soul and deeper meaning, not an F2P mobile game the only purpose of which is encouraging procrastination and impulsive money spending in people. This probably means I should be an indie who makes games as a hobby and makes all decisions herself. Or, which is much less likely, I need to find a team with values aligned with my own.

So from there comes a slight change of identity. I am now a web developer (with a passion for modern web technologies) and a hobbyist game developer (with a passion for meaningful game design). By the way, I made a web portfolio.

May
13

Guess what?

In the quest of restoring my good old web-development skills (yes, I decided to get a real job) I made a small and stupid game of color guessing. It is great for training your understanding if RGB colors, but it is not really a game. Where is the score? Where are winning conditions, for gods’ sake? A timer? A scoreboard? Anything?..

Maybe, if I had the time, I would make a different version. The color could be shown in the header, and then you need to choose the same one from the blocks below. Of course, with each guess the difficulty increases and colors become more and more similar. But, unfortunately, I don’t have time to do this, I need to study new things.

Anyway, you can play it if you wish. I’ll go and learn some AngularJS.

colorgame

P.S. I handed in my thesis (finally, I was kind of sick of it already). Also, I missed the Ludum Dare game jam due to an important social event, and it makes me a bit sad. =( So far, Ludum Dare was my favorite game making experience and I would really like to do more and better games on my own.

Mar
15

Thesis progress

I found out that for me writing is easier in the wordpress. Has something to do with the blogging experience, I believe.
I have these drafts that are parts of my thesis. I am not going to publish them here, because, in my opinion, they are too formal and academic. I also don’t feel all that excited about my thesis anymore, as you may guess. And I have less than a month to hand it in for review. Writing cram mode is on.

thesis drafts

Mar
15

How I failed my first Global Game Jam

The most important thing about failures is that you learn from you mistakes. And you get a more accurate vision of reality and how things work. So it doesn’t make sense to put memories about failures aside without first reflecting on them.

Why I failed? Well, when there is no game that you can share and maybe even mention in your portfolio, and when you had no fun whatsoever, I consider a game jam failed. It was stressful and result sucks. What else there is to say? Let’s better go to the details and my learnings.

Clinching to an idea

When the theme was announced, I instantly knew what I have to do. “Ritual” was exactly what our autumn game idea was about, it fit perfectly, it already had the design document and all logic written down, and it was certainly, definitely going to be THE chance to make it happen. Because game jams are great and powerful. I didn’t change my mind when I haven’t got any artists on my team. “It is the game I want to make and if needed, I will make it alone”. Oh how wrong I was.

You need to be flexible. If there is not enough resources, maybe you should put your perfect idea aside and join another team and have fun doing something crazy. The point is not making the game, the point is making something, learning new things and having fun.

Making a content driven game

Let’s face it, point-and-click puzzle games are not good for game jams. It is not the sort of game where you can quickly make a prototype and then just improve it. Every logical connection has to be programmed separately, every object drawn in a certain way and placed carefully, every puzzle has to be programmed from scratch. It is also very easy to make a point-and-click unplayable if your visual clues are not refined enough. Graphics were paramount, and they don’t come quick.

Next time, if I am alone or in a small team, I’d rather focus on a mechanics-driven game. Or just something very small, but fun.

Not using an engine

I never made a point-and-click adventure before. But I thought: “okay, I’ve done Grow Christmas in javascript, it was easy, I can reuse code, it will be faster than trying to use Unity for this, or an entirely new tool”. As a result, I was trapped with trivialities of programming interface, scene changes, causalities and other things that would be much easier with a proper tool. There was no time left to improve interactions, puzzles, animations and graphics, and the game-feel in general. In other words, there was no time left to do things I actually enjoy.

From now on I am going to make use of engines, tools, and libraries. Using what you know might make life easier, but learning new things during a game jam is also the positive part of the experience. Tools should be appropriate for your goals.

Stressing too much

The world is not going to end if you don’t make a perfect game in time. But I felt like that and translated this message to my 1.5 team-mates. I also could not sleep properly and exhausted myself completely. Looking back I know that it was not worth it. I love making games, and there is no reason to make it feel like cramming before an exam. Takes the fun out and reduces creativity and productivity.

This is it. Live and learn, that’s gotta be my life motto.

The game can be actually tried to play here. Despite us cutting at least one-third of the original idea, the end can be reached. Although it can be quite impossible with the impressionistic graphics like that.

Feb
23

I am back

I have been silent. The winter wasn’t that easy on me. Let me make a recap of what was going on.

C++ wasn’t that difficult to pick up again. After all, it was my first programming language and I used it for quite a while during my undergraduate studies. The most difficult part was to find the right IDE, install a proper compiler and learn how to use external libraries. Never before a working “Hello World” program was that exciting and rewarding! I experimented with SDL graphic outputs, tried out a couple of tutorials, wrote a flocking simulation, and got a very useful code review from a good friend.

blurred flock 2

I participated in Global Game Jam and made way too many mistakes for one weekend. So I have no project to show. But maybe I will write about this experience later. Reflecting always helps to learn from your own mistakes, and sometimes you learn more from bad experiences than from good ones.

I am volunteering in media team at the local IGDA branch (one of the biggest ones, and probably the coolest). I like being useful instead of just trying to casually hang out and feeling out of place. I am not very good at networking, but I have my ways of connecting with people. Like actually doing things together.

Also, I am trying to write my master’s thesis, which is coming along way too slowly and which I have to submit in 7 weeks or so. The topic is quite interesting, I am just not a fan of academic writing. And I thought that I might try something different to boost my work and to give this blog a bit of life back.

Soon(ish) I am going to write a post about co-creative game design, using the materials for my first chapter.
And if there will be time and inspiration, I’ll also tell why I think my first GGJ was a failure.

Dec
18

Ludum Dare!

After all the hype has faded I guess it is time to finally write a huge post about my first Ludum Dare experience. All in all: it was unexpectedly good, and pleasant, and I like what I have done. And people seem to like it too, all the comments on the entry submission page warm my heart and make me smile.

PLAY!

I wanted to participate in Compo, not in Jam. First of all, it is more challenging and challenges make me work better and achieve more. Second, I didn’t have a team. Third, I had other plans on Monday anyway. And I already had a game jam experience that lasted less than 2 days, and I knew how it works for me.

I woke up at 6 am on Saturday and read the theme. IT’S A TIE! Hmm, strange theme, what can I do about it, a game about ties?.. After 30 minutes of trying to come up with something sensible I read the email again and this time got it. We had 2 themes! Growing and 2 Button Controls. I personally don’t think that the last one is a good one, too many people took it as a simple restriction of controls available to the player, not a proper theme for a game. But I was determined to, first, make both of the themes into a gameplay, and second, make a complete and nice to play game that I can actually finish alone during the weekend.

I finished brainstorming by 8 in the morning. The idea was a perfect fit for both themes and I decided to go with it, despite the fact that it was more about art than programming. But hey, games are not just programming!

However, I decided to start with a prototype, so I could be sure that all code things work and I have everything I need before I could jump into design. And also at 8 in the morning after 5 hours of sleep I cannot come up with ideas and art, but I certainly can code in javascript. By lunch I had my super ugly but working prototype. Most importantly, I made sure I could easily plug in all assets and add logic parts, so later I didn’t spend much time on coding or any on debugging.

prototype

My next challenge was to come up with game choices. And this is where I had to scope the initial thinking down. Having even one line of depth 10 would be impossible to implement in a weekend (and probably too much for a player to get through). After trying to manage the logic on paper sheets and spreadsheets I got a working solution that helped to finally fill the blanks and understand the scope:

IMG_5678

I was drawing in parallel with designing the game logic. Nicola suggested that I could use the huge blackboard in his room and I thought – why not? Otherwise, I would use paper and pencil because there was no way I could do so much digital drawing with the mouse I have. The blackboard idea turned out super well and gave my game a certain distinct style, and I just love the final look.

58943-shot1-1450032952

I expected sounds and especially music to be the most frustrating part with the worst outcome since I had no experience whatsoever, but it went very smoothly. For three sound effects I recorded chalk sounds and a “poof”, which I edited a bit in Audacity. I also came up with a very simple music loop, using basic rhythm logic and my own intuition.

I finished at 8 in the Sunday evening, 7 hours before the deadline. There was nothing to add, nothing else to polish. I was happy and content.

What went right

  • Scoping. I knew how much I can do in a weekend with this kind of project. First I made a working prototype, then the main line, then I added other ideas in the time that was left. And I was working in cycles, making sure that the end product looks like I wanted and I can make it fast enough. The last bit is the reason why I have just one animation piece – it would be possible to have more, but it was time consuming and everything apart the one I have was not essential.
  • I decided to go for quality over quantity. It is a very simple and small game, but it is nice and people enjoy it.
  • I was relaxed, had walks and didn’t cram. You can probably see my mood in the game.
  • Using Javascript and keeping things as simple as possible. It’s a tiny browser game, one shouldn’t use Unity for things like this and it’s good to have a choice of tools.

What went wrong

  • I tried to save edited pictures in PNG, because I thought transparency will make things easier. Well, PNG is bad for photographs, they were so heavy, that I decided to redo them into JPG by fusing with a piece of the background, and spent at least another hour on that. But imaging working in a team and discovering an asset problem in the last moment.
  • I tried to keep it nice and tidy and in different files, but in the end my code was all scrambled and I was too worried about drawings to do anything about it. Code works, but it doesn’t look nice. The game does, though.
  • I forgot to make an opening screen. It didn’t even occurred to me! It would be nice to have one.

Takeaways

  • Sometimes it is not about advanced programming at all. It doesn’t mean that it’s not worth it. I had a moment when I though that I am wasting my time because game is too simple and even stupid.
  • Making something that you can finish and polish in the given time frame is extremely rewarding. Reading comments of people who enjoyed your game is the icing on the cake.
  • It is nice to have the code base or prototype done and checked as soon as possible, so you can be sure that the game is working. Then you can have all the time left to make it look great.
Dec
09

Level up yourself already

If you want to get somewhere in life, if you want to reach your dreams, chances are you need to break out of your comfort zone. Again and again, making it wider as you grow above your fears. You need to try new things, you need to learn, you need to do something you have never even thought is possible for you.

I accidentally met current students of Intro to Game Programming at IGDA gathering. I can see my old self in them – they want to make games, they want one day to work in a gaming company, but they have no idea how they can start. Or they have a vague idea, but it is far from reality of life. The truth I learned is that you don’t need anything special to start making games. You can learn tons of things on your own. You don’t need to wait for a Game Project Course to be organized in your university where you will be on your own anyway, apart from the strict deadline for delivering your project (maybe that’s what most people need. I love deadlines too). But for many people it is just outside of their comfort zone. Making games is hard. I don’t know how. I am not experienced in programming. I am not enough just yet. That’s what the fears say.

Get out and do what you want to do. Don’t wait till you know it all. It will never happen if you stay where you are, if you don’t learn new and maybe scary things.
No idea how Unity works? Open a tutorial and follow through, then try to change things around and experiment.
No programming experience? Pick up a course or something.
Would like to design great games but have no idea where to start? How about a book?
Never had a team experience? Go to a game jam.
There is nothing to be afraid of. It’s fun.

P.S. Ludum Dare is in 2 days! I literally can’t wait!
P.P.S. Also I started re-learning C++. It’s been a long time.

Nov
30

My first game

I was supposed to start my blog with this game post. But I didn’t and now it is time to fix it.
This project is important, because it is the first game that I have finished. After making this I was absolutely sure that this is what I want to do with my life. Games. Also for the first time in my life I knew that it is what I can do, and not something from a parallel universe where awesome people create new worlds with some sort of magic. I had my preconceptions about the whole game development thing, I admit.

But back to the game. Take two nerdy girls with a shared love for Doctor Who, put them in a game project course, and let them do whatever they want. Advise them to use Unity or something similar. And leave them for a few weeks. By the set deadline you might get this.

Nana, my project partner, was a game-designer. She proposed the initial design, made the 3D models, got sounds, wrote texts and came up with a name.
For me it was easier to play with code and game logic, and I did just that, solving problems one by one. I never opened Unity or any other game engine before. With a help of some official video-tutorials I have put together something that resembled the idea we had in mind and on paper. It wasn’t all too easy and I spent days and evenings and a weekend during the last week, but it definitely was fun.
The game is a collection of tiny and big bugs and problems but it does what we wanted, at least partly. We had so much more in mind, but simply didn’t know how to do it, nor did we have the time with all other courses and exams. But we loved it. It was ours. It was the first.

One awesome thing that we did was the progress log. We couldn’t meet too often and had to work separately, so it was easier to track our progress this way. And it the end it was much easier to reflect and write the required postmortem. I still love to re-read it. It is inspiring to see how we went from “we have no idea how to do anything” to “I’ve done these things and am doing these”.

I look at our game, see all the imperfections and you know what? I have a sudden but a very strong urge to re-make this game with my newly acquired knowledge about game physics and unity. I will make a separate post with an analysis and plans. Aah, excited!

Nov
27

Thesis? Games, please!

After 2 or 3 months of reading scientific papers, taking notes, reading more, making plans, rewriting them, reading more, and so on, I can finally say that I have my master’s thesis on the way. At least now I know what I am writing about. And I want to share, because even if the about section here says that this is a blog about computational creativity, among other things, I haven’t said a word about it so far.

Let’s say that computational creativity is a subfield of artificial intelligence studies. As I see it, it is actually a combination of many different things: AI, psychology, algorithms, art, philosophy. It studies creativity in humans and attempts to make computers creative, or at least model some aspects of creativity. That’s it. You can imagine that the area of application is as vast as it gets: starting from art generation and ending in creative problem solving.

And of course it has strong ties with games. Computational creativity and games walk hand in hand, and benefit from each other. In fact, that old thing called procedural content generation (PCG) that gives us endless sets of levels, is an example of computational creativity in its infancy. The procedural systems are not being very creative as we understand it, but it is a start. One day computer software will be generating complete games, making its own creative decision and even participating in competitions. Oh, wait… it already does.

I am going to do some research on creative idea generation, particularly on how to generate ideas for games. Preferably interesting ideas, those you wouldn’t probably think about yourself. Oh, and they should make sense. And be connected to the providied theme or keywords. So basically I am going to dive into linguistic computational creativity and then try to make use of all sources like ConceptNet, WordNet, MetaphorMagnet and alike. We will see if anything cool will emerge from this.
Sadly, master’s thesis in computer science should be about reading and writing and then, maybe, just a little bit, about practical implementations. I am a practical person, all that scientific writing slightly upsets me, I would rather do things instead.

Okay, back to writing. I mean… blog posts don’t count as work, even if they are about the topic. Right?

Nov
25

I must do more

The time has come when I start actively looking for real job opportunities. As it goes, if you want a summer internship, you need to start looking for it in December. But this is not the only option I have. I can also send open applications to game companies that accept them and hope for the best.

So I did some research and created my spreadsheet of all game companies in Helsinki, excluding very small ones. About a dozen of those I found accept open applications and maybe will have a look at mine. Suddenly a dozen doesn’t look like a very big number. I start to question my learning path and the quality of my portfolio, because I am not sure, how impressive it is. Unfortunately, I have nobody to ask for a professional opinion.

However, I created an online portfolio, went through my CV and LinkedIn again, updated everything there was to update, wrote a cover letter, and posted an open application for Finnish gaming industry in general (fortunately, there is an option to do this on one of the major recruitment websites). Just in case.

But I have to make a change of plans if I want a better chance of succeeding. I need to become a better game developer and a better candidate.

  • I am starting a Game Physics course. It looks very interesting, advanced and like something that can be extremely useful in the future.
  • I will go to the IGDA gathering in December and try to network a bit and maybe ask for an informational interview.
  • I will learn more Unity3D things.
  • I will have a look at mobile game development, since most of the companies make games for mobile platforms.
  • I will think about refreshing my C++ knowledge and updating it to the current versions. But, unfortunately, it is not something that can be done in a month.