<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>GameDev blog</title><link href="https://blog.helixsoft.nl/" rel="alternate"/><link href="https://blog.helixsoft.nl/feed/all.atom.xml" rel="self"/><id>https://blog.helixsoft.nl/</id><updated>2025-10-24T14:00:00+02:00</updated><entry><title>Getting serious about serious games</title><link href="https://blog.helixsoft.nl/getting-serious-about-serious-games/" rel="alternate"/><published>2025-10-24T14:00:00+02:00</published><updated>2025-10-24T14:00:00+02:00</updated><author><name>martijn</name></author><id>tag:blog.helixsoft.nl,2025-10-24:/getting-serious-about-serious-games/</id><summary type="html">&lt;p&gt;Over time, I have developed a small portfolio of serious games. Let's make a list.&lt;/p&gt;
&lt;div class="section" id="i18n-puzzles-com"&gt;
&lt;h2&gt;1. i18n-puzzles.com&lt;/h2&gt;
&lt;p&gt;&lt;a class="reference external" href="https://i18n-puzzles.com"&gt;i18n-puzzles.com&lt;/a&gt; is a serious game that teaches programmers how to deal with internationalization problems.&lt;/p&gt;
&lt;p&gt;Internationalization (abbrivated as &lt;cite&gt;i18n&lt;/cite&gt;) is the art of making software suitable for an international audience.
You can …&lt;/p&gt;&lt;/div&gt;</summary><content type="html">&lt;p&gt;Over time, I have developed a small portfolio of serious games. Let's make a list.&lt;/p&gt;
&lt;div class="section" id="i18n-puzzles-com"&gt;
&lt;h2&gt;1. i18n-puzzles.com&lt;/h2&gt;
&lt;p&gt;&lt;a class="reference external" href="https://i18n-puzzles.com"&gt;i18n-puzzles.com&lt;/a&gt; is a serious game that teaches programmers how to deal with internationalization problems.&lt;/p&gt;
&lt;p&gt;Internationalization (abbrivated as &lt;cite&gt;i18n&lt;/cite&gt;) is the art of making software suitable for an international audience.
You can think of translations, units &amp;amp; measurements, foreign characters, time zones, and so on.
These things are often sources of frustration and causes of tricky bugs.
I wanted to give programmers more confidence to deal with these topics.
So I started creating programming puzzles, inspired by the &lt;a class="reference external" href="https://adventofcode.com/"&gt;Advent of Code&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Initially this was for an internal training at TOPdesk,
but this turned out to be so much fun, that I decided to turn it into a public resource.
In March 2025, I hosted an event where I published twenty puzzles, day after day.
Up to 300 online participants competed to be the first to solve a puzzle each day.&lt;/p&gt;
&lt;p&gt;Now I'm speaking about the whole project at developer conferences.
Earlier I spoke at Devoxx Belgium 2025. You can watch the recording on Youtube:&lt;/p&gt;
&lt;div class="youtube youtube-16x9"&gt;&lt;iframe src="https://www.youtube.com/embed/XJMrMxlt-BQ" allowfullscreen seamless frameBorder="0"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;In the coming weeks, I will be talking at two more conferences:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="https://tweakers.net/plan/4494/tweakers-dev-summit-2025-de-rol-van-puzzels-gamification-en-internationalisatie.html"&gt;28 October at Tweakers Developer Summit in Utrecht&lt;/a&gt; (in Dutch)&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="https://jfall.nl/"&gt;6 November at J-Fall in Ede&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a class="reference external" href="http://i18n-puzzles.com"&gt;i18n-puzzles.com&lt;/a&gt; will remain publicly available in the future.
And I have a &amp;quot;bonus pack&amp;quot; with extra puzzles in preparation, although I haven't committed to a deadline yet.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="food-chain-farm"&gt;
&lt;h2&gt;2. Food Chain Farm&lt;/h2&gt;
&lt;p&gt;Food Chain Farm is a serious game for the biology classroom, that explores the fundamental cycles of biology.&lt;/p&gt;
&lt;p&gt;Biology can sometimes be abstract. Photosynthesis, respiration, the carbon cycle, the nitrogen cycle, these are unintuitive concepts.
The idea behind Food Chain Farm is that with a visual, interactive simulation, it's all much easier to understand.
The game is now regularly being used in the classroom.&lt;/p&gt;
&lt;img alt="Screenshot of Food Chain Farm" src="./media/2025/food-chain-farm-0.7.png" /&gt;
&lt;p&gt;&lt;a class="reference external" href="https://helixsoft.itch.io/food-chain-farm"&gt;Food Chain Farm 0.7 is available right now&lt;/a&gt;. That version was released in 2023.
I'm still planning to make a version 0.8, although admittedly progress has been slow while i18n-puzzles absorbed my attention.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="topscape"&gt;
&lt;h2&gt;3. TOPscape&lt;/h2&gt;
&lt;p&gt;TOPscape is a serious game designed to help a software company to adopt a new technology.&lt;/p&gt;
&lt;p&gt;At TOPdesk, several teams develop one big application in parallel.
Working together on a single product is not easy, it can lead to all kinds of bottlenecks and interdependencies.
That is why we introduced &lt;strong&gt;Micro Frontends&lt;/strong&gt;, a pattern in software architecture that helps to scale software development accross many teams.&lt;/p&gt;
&lt;p&gt;To introduce this concept to the origanization, I planned a game (assisted by a group of summer interns).
This game took place during a two-day hackathon. Pairs of programmers built puzzle screens, using the micro frontend concept.
In the end, all the puzzles were wired together to form a single large escape room puzzle.&lt;/p&gt;
&lt;img alt="Screenshot of the main hallway that you have to escape." src="./media/2025/TOPscape.png" /&gt;
&lt;p&gt;We ended up with over a dozen puzzles, from many developers. It was a great way to get all developers acquainted with the concept.
And the final game was a lot of fun to play.&lt;/p&gt;
&lt;p&gt;I will present a 5-minute ignite session on this project on &lt;a class="reference external" href="https://jfall.nl/"&gt;6 November at J-Fall in Ede&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="peppy-peptide-puzzle"&gt;
&lt;h2&gt;4. Peppy Peptide puzzle&lt;/h2&gt;
&lt;p&gt;Peppy Peptide Puzzle is a serious game that teaches how DNA translates to proteins.&lt;/p&gt;
&lt;p&gt;This game is a series of puzzles, where you have to mutate a DNA sequence in order to create the correct amino acid sequence.
The core idea was inspired by the &lt;a class="reference external" href="https://github.com/bitmask/amino-acid-card-game"&gt;Amino Acid Card game&lt;/a&gt; by Helen Cook,
which I encountered at a conference one time.&lt;/p&gt;
&lt;img alt="Screenshot of Peppy peptide puzzle." src="./media/2025/peppy.png" /&gt;
&lt;p&gt;&lt;a class="reference external" href="http://games.helixsoft.nl/game/peppy/"&gt;Peppy Protein Puzzle&lt;/a&gt; is publicly available and ready to play.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="dba-detective"&gt;
&lt;h2&gt;5. DBA Detective&lt;/h2&gt;
&lt;p&gt;DBA Detective is a serious game that teaches you how to write database queries.&lt;/p&gt;
&lt;p&gt;In this game, you join Detective Dick B. Anderson, in his forensic investigations to solve murders.
Your job is to support him from behind the computer.
You make use of the NYPD forensic database, which is filled with information about potential suspects, license plates of getaway vehicles, suspicious financial transactions, and more.
All you have to do, is come up with the correct &lt;cite&gt;SELECT&lt;/cite&gt; query, and the murderer rolls out automatically.&lt;/p&gt;
&lt;img alt="Intro paragraph of detective game, with illustration" src="./media/2025/dbworkshop.png" /&gt;
&lt;p&gt;The DBA Detective game is part of a training on database queries with SQL.
There are several detective stories, each with another murder to solve, and more SQL concepts to learn.
This is the first gamified workshop that I developed at TOPdesk, together with several colleagues.
We ran the workshop half a dozen times, and received lots of positive feedback.
It turns out that people find the story-driven approach really motivating.&lt;/p&gt;
&lt;p&gt;Currently, this workshop is available only internally at TOPdesk. If you're interested, let me know. If there is demand for it, we could probably make it open source with some effort.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="conclusion"&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;As you can see, I'm getting serious about serious games. I've had the chance to experiment with different target audiences and different game mechanics, from story driven games to puzzles to construction and simulation.
They take a lot of work to implement properly, but the pay-off can be very satisfying, both in terms of fun and educational value.&lt;/p&gt;
&lt;/div&gt;
</content><category term="Gamedev"/></entry><entry><title>Celebrating Food Chain Farm version 0.7</title><link href="https://blog.helixsoft.nl/celebrating-food-chain-farm-version-0-7/" rel="alternate"/><published>2023-04-10T21:23:00+02:00</published><updated>2023-04-10T21:23:00+02:00</updated><author><name>martijn</name></author><id>tag:blog.helixsoft.nl,2023-04-10:/celebrating-food-chain-farm-version-0-7/</id><summary type="html">&lt;p&gt;I just released version 0.7 of Food Chain Farm, my casual space ecosystem sim. &lt;a class="reference external" href="https://helixsoft.itch.io/food-chain-farm"&gt;Get it while its hot&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;So let's talk about this release. What's new in this release? What have I learned along the way? And when will the game be finally done?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What's new?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It's fair …&lt;/p&gt;</summary><content type="html">&lt;p&gt;I just released version 0.7 of Food Chain Farm, my casual space ecosystem sim. &lt;a class="reference external" href="https://helixsoft.itch.io/food-chain-farm"&gt;Get it while its hot&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;So let's talk about this release. What's new in this release? What have I learned along the way? And when will the game be finally done?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What's new?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It's fair to say that this is a pretty big release. I even took a 3-month sabbatical to work on the game.So what's new in Food Chain Farm 0.7?&lt;/p&gt;
&lt;div class="float wp-block-image aligncenter size-large docutils container"&gt;
&lt;img alt="image1" class="wp-image-247" src="./media/2023/04/Screenshot-from-2023-04-10-22-52-38-1024x651.jpg" /&gt;&lt;/div&gt;
&lt;p&gt;First of all, I've added a story. I wanted to motivate the player, to set a goal that you can engage with emotionally. So I've written some lore, and it goes as follows. You are Xlorp, a young alien boy, and you have to take care of a marooned interplanetary colonist, a rescued human. Being an alien, your biochemistry is very different from humans, and therefore you have to figure out everything from scratch. You have to build a supporting ecosystem. You'll start to grow some plants to generate oxygen, and some simple vegetables as food. Over time you learn to make better and more tasty food, and improve life quality for your human pet.&lt;/p&gt;
&lt;div class="float wp-block-image aligncenter size-large is-resized docutils container"&gt;
&lt;img alt="image2" class="wp-image-249" src="./media/2023/04/ALIEN_CHILD-586x1024.png" style="width: 293px;" /&gt;&lt;/div&gt;
&lt;p&gt;Secondly, I wanted to some sort of progression system in the game, a way to upgrade your systems and unlock new possibilities over time. So I've added this in the form of the pet store. Zed, the store owner, advices you on how to best take care of your human. If Zed sees that your human is doing well and you can handle the responsibility, then he will sell you some useful pet care amenities. Perhaps some livestock, or some kitchen appliances to produce better quality food. Zed is a helpful and knowledgeable being that really supports you while you're trying to figure things out.&lt;/p&gt;
&lt;p&gt;For the third addition, we have to dive more deeply into the science. I wanted to make the game system more complex, so there is more to explore and discover. Previous editions of food chain farm have focused only on the carbon cycle, now I've also added a nitrogen cycle. Nitrogen is an important compound for life, no living cell can be made without it. Nitrogen is all around us - the air we breathe is almost 80% Nitrogen. Yet most of this nitrogen is not in a form that plants can consume. Dealing with that is an interesting challenge.&lt;/p&gt;
&lt;div class="float wp-block-image aligncenter size-large docutils container"&gt;
&lt;img alt="image3" class="wp-image-248" src="./media/2023/04/Screenshot-from-2023-04-10-22-58-14-1024x670.jpg" /&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Outgrowing the classroom&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So just a bit of background: &lt;a class="reference external" href="https://blog.helixsoft.nl/192/introducing-a-new-game-food-chain-farm/"&gt;I started work on Food Chain Farm&lt;/a&gt; a few years ago, in collaboration with my sister who teaches biology in high school. At the time, my goal was to create a game to teach biological concepts in a fun and visually interesting way. Carbon cycle, photosynthesis, food chains, all of that can be quite abstract sometimes, but I wanted to make it really come to life. This has been quite successful. The game &lt;a class="reference external" href="https://blog.helixsoft.nl/202/bringing-food-chain-farm-to-the-classroom/"&gt;has been used in classrooms&lt;/a&gt; over half a dozen times, and another classroom session on the nitrogen cycle is on the schedule. (If you're a teacher reading this and you want to try it in your classroom, &lt;a class="reference external" href="mailto:martijn&amp;#64;helixsoft.nl"&gt;contact me&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;But, I've come to realize something about games for the classroom. They can get away with being less fun, because:&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;You have a captive audience.&lt;/li&gt;
&lt;li&gt;&amp;quot;More fun than regular class&amp;quot; is a low bar. Students appreciate anything that breaks the rut.&lt;/li&gt;
&lt;li&gt;The game needs to be entertaining for only one hour. By contrast, a store-bought game needs to be entertaining for a dozen hours, to feel like you got your money's worth.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;And that is also why the label &amp;quot;Educational game&amp;quot; has so many negative connotations. Marketing is very different for educational games. Educational games are sold to teachers and parents. They need to showcase educational value. The kids, who get these &amp;quot;fun&amp;quot; games hoisted upon them, learn to associate &amp;quot;educational game&amp;quot; with &amp;quot;boring, forced experience&amp;quot;. In other words, if you target parents and teachers, educational is good. If you target gamers, educational is best left out.&lt;/p&gt;
&lt;p&gt;And here's the rub. I'm gamer at heart and it stings to think people will think less of Food Chain Farm due to the educational label. I want to prove that games can be both fun and educational at the same time. That the educational aspects of a game don't make it less fun. And the only way to prove that, actually &lt;em&gt;prove&lt;/em&gt; that, is to make a commercially viable game - competing in the real world against games that are definitely fun.&lt;/p&gt;
&lt;p&gt;So, no more &amp;quot;educational&amp;quot;, at least not in the marketing materials. Instead, I'm going with the phrase &amp;quot;science-based game&amp;quot;. It's a real game, designed for having fun. However, grounded in science. Like my favorite book, &amp;quot;The Martian&amp;quot;, by Andy Weir. This book is, at the highest level, a gripping tale of perseverance and inventiveness in the face of almost certain doom. If you come away learning something about how to grow potatoes on mars using rocket fuel, then all the better, but that's really just a side-effect. I've not &amp;quot;given up&amp;quot; on making games for the classroom. But I realize that I can't be sure that the game is fun, unless I can also sell it as a regular game.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Future plans&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Let's be clear here - the game is not done! What we have at the moment, you may call an &amp;quot;Early Access Demo&amp;quot;. I'm releasing as a way to gauge reactions, and to show my plans. But there are definitely rough edges, and I have so many ideas for improvements. Here are some ideas I'm considering for a future update:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Saving and loading. Currently there is no way to save progress, if you close the game you have to start over. This is something I intend to fix.&lt;/li&gt;
&lt;li&gt;Bio-plastics for building pipes and tubes (you no longer get them for free)&lt;/li&gt;
&lt;li&gt;Blowing up asteroids with explosives to get extra resources and discover secrets. Many explosives are based on nitrate, which ties nicely into the nitrogen cycle.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What else should I add? Let me know! And if you want to stay updated on future releases, &lt;a class="reference external" href="http://www.helixsoft.nl/signup/"&gt;subscribe to the newsletter&lt;/a&gt; or join us on &lt;a class="reference external" href="https://discord.gg/cm44RnVfKs"&gt;Discord&lt;/a&gt;!&lt;/p&gt;
</content><category term="Gamedev"/></entry><entry><title>Developing an art style for food chain farm</title><link href="https://blog.helixsoft.nl/developing-an-art-style-for-food-chain-farm/" rel="alternate"/><published>2020-11-15T21:31:00+01:00</published><updated>2020-11-15T21:31:00+01:00</updated><author><name>martijn</name></author><id>tag:blog.helixsoft.nl,2020-11-15:/developing-an-art-style-for-food-chain-farm/</id><summary type="html">&lt;p&gt;Just a couple of weeks ago I released version 0.5 of &lt;a class="reference external" href="https://helixsoft.itch.io/food-chain-farm"&gt;Food Chain Farm&lt;/a&gt;! This release has been a year in the making and has a ton of new stuff. Today, I want to dive deeper into one aspect: the improved art style.&lt;/p&gt;
&lt;p&gt;The game has a lot of …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Just a couple of weeks ago I released version 0.5 of &lt;a class="reference external" href="https://helixsoft.itch.io/food-chain-farm"&gt;Food Chain Farm&lt;/a&gt;! This release has been a year in the making and has a ton of new stuff. Today, I want to dive deeper into one aspect: the improved art style.&lt;/p&gt;
&lt;p&gt;The game has a lot of graphics, more than any other game I've done before. Dozens of plants, animals, resources and other objects, all drawn in detailed vector graphics. And it's a huge challenge for me. I've always been programmer first, graphical artist second (and music is even further down the list...). For most games I worked on in the past, I've either limited myself to a small amount of pixel art, or I've outsourced the artwork to a partner. They say you need to put in 10000 hours to become really good, and I'm afraid I haven't put those hours in yet...&lt;/p&gt;
&lt;p&gt;And there are so many beautiful indie games out there. It's hard not to feel discouraged when there are so much awesomeness to compare with. Nevertheless, I'm going to stick with it. I'll be the first to admit that this art style is a work in progress. But with the 0.5 release, for the first time I'm happy with the direction things are going.&lt;/p&gt;
&lt;p&gt;As an example, let's look at how one item in the game has evolved over the past years:&lt;/p&gt;
&lt;img alt="apple tree original" class="alignnone wp-image-220 size-full" src="./media/2020/11/appletree0.png" style="width: 800px;" /&gt;
&lt;p&gt;The apple tree has been in the game right from release 0.1, back in 2018, and I put it together quickly in &lt;a class="reference external" href="https://inkscape.org/"&gt;Inkscape&lt;/a&gt;, from basic geometric shapes. The foliage is just the union of bunch of circles, the trunk was drawn as a polygon using the mouse. Inkscape makes it easy to adjust the curve of a given line, so I made the sides of the stem curve inwards. The apple itself is a modified circle, with a green-red-white radial gradient to give it a nice shine. I added a short brown line for the stem of the fruit. To top it all off I gave the foliage a gradient as well, as a cheap way to give it some highlights and shadow.&lt;/p&gt;
&lt;p&gt;This was always meant to be a placeholder, to get going quickly - it was never the intention that this would make it into the final game. But coming up with a better version took longer than I thought.&lt;/p&gt;
&lt;p&gt;I've experimented with various methods e.g. using a Wacom tablet, using the 'trace sketch' function in Inkscape, with mixed results. In the end I settled on a much simpler process: I first sketch on paper, I scan it, and then trace the sketch with the mouse, in Inkscape. The result looks like this.&lt;/p&gt;
&lt;img alt="apple tree sketch and final image" class="alignnone wp-image-221 size-full" src="./media/2020/11/appletree1.png" style="width: 800px;" /&gt;
&lt;p&gt;For inspiration and examples, I use images from the internet of course. But in this case I could actually take inspiration directly from my environment. I live next to a small orchard, and there is this nice old apple tree right in front of my house. The trees tend to be pruned to a flat wide shape (I guess it's easier to pick apples that way) and end up with crooked, gnarly looking branches. It's something that I tried to mimic in this sketch.&lt;/p&gt;
&lt;img alt="photo of apple tree" class="alignnone wp-image-227 size-full" src="./media/2020/11/P1090396-800px.jpg" style="width: 800px;" /&gt;
&lt;p&gt;The sketching phase is important. I've learned that I'm much better at coming up with ideas on paper first. Sketching digitally doesn't work well for me. And over time, my sketches have developed in a certain way. I'm making them more elaborate, trying to add more character, but at the same time I make them looser, more playful. I spend less effort making the sketches very precise. I don't worry about the exact lines until I digitize the sketch in Inkscape.&lt;/p&gt;
&lt;p&gt;To see what I mean, take a look at this bunny character. I started with a few quick sketches. These were drawn after photos and have realistic proportions.&lt;/p&gt;
&lt;img alt="rabbit sketches" class="alignnone wp-image-223 size-full" src="./media/2020/11/bunny2.png" style="width: 800px;" /&gt;
&lt;p&gt;Compared to, say, a cow or a pig, bunnies have a relatively small, narrow face. And, of course, large ears. By giving the head a more exaggerated shape, narrow at the eye level, and oversized ears, the essence of the character becomes more rabbity. I switched to a frontal perspective, this is a common theme for all animals in the game.&lt;/p&gt;
&lt;p&gt;&lt;img alt="image1" class="alignnone size-full wp-image-222" src="./media/2020/11/bunny1.png" style="width: 800px;" /&gt;I've tried to become less rigid, using more round curves instead of straight lines, even for things that ought to be straight. Take a look at the new oven drawing for example. Here I exaggerated the roundness of the countertop and the brick sides.&lt;/p&gt;
&lt;img alt="oven sketch and final image" class="alignnone wp-image-226 size-full" src="./media/2020/11/oven1.png" style="width: 800px;" /&gt;
&lt;p&gt;Below you see some sources of inspiration. The picture on the left is from Anton Pieck. This Dutch artist is known for a romantic style, with old fashioned candy shops, life-worn houses and snow-covered Christmas villages. His paintings put a lot of detail in building materials, making them atmospheric and full of character. I grew up with this art style - he was the original designer for the Efteling theme park, where I visited frequently as a kid. The image on the right is from the game &lt;a class="reference external" href="https://www.klei.com/games/oxygen-not-included"&gt;Oxygen Not Included&lt;/a&gt; (ONI). I love this game for the art style. Everything is full of character. Ladders, pipes, walls and floors - things that really should be straight - are higgledy-piggledy. ONI takes creative liberties to give it a unique character. By the way, ONI has more things in common with Food Chain Farm - more on that in a later post.&lt;/p&gt;
&lt;img alt="inspirations" class="alignnone wp-image-225 size-full" src="./media/2020/11/inspirations.png" style="width: 800px;" /&gt;
&lt;p&gt;Also, to get more practice (to get those 10000 hours if you will), I've been&amp;nbsp; taking some live model drawing classes. The pictures below were taken during a socially distanced drawing class this summer. Drawing live models is great sketching practice. You have to be quick - the model can hold a pose only for so long. One common warm-up exercise is to draw a succession of poses in two minutes. It seems impossible at first, but you really get better with practice.&lt;/p&gt;
&lt;img alt="Photo of drawing class" class="alignnone wp-image-224 size-full" src="./media/2020/11/drawingclass.png" style="width: 800px;" /&gt;
&lt;p&gt;Of course, for the game, I can change proportions for a more cartoony appearance. Here are some sketches I'm working on, for a future version of the game.&lt;/p&gt;
&lt;img alt="" class="alignnone size-full wp-image-229" src="./media/2020/11/peeps.png" style="width: 800px;" /&gt;
&lt;p&gt;Have a look for yourself, &lt;a class="reference external" href="https://helixsoft.itch.io/food-chain-farm"&gt;Food Chain Farm 0.5 can be downloaded from itch.io&lt;/a&gt;!&lt;/p&gt;
</content><category term="Gamedev"/><category term="Art"/><category term="Food Chain Farm"/></entry><entry><title>Bringing Food Chain Farm to the classroom</title><link href="https://blog.helixsoft.nl/bringing-food-chain-farm-to-the-classroom/" rel="alternate"/><published>2019-01-17T21:19:00+01:00</published><updated>2019-01-17T21:19:00+01:00</updated><author><name>martijn</name></author><id>tag:blog.helixsoft.nl,2019-01-17:/bringing-food-chain-farm-to-the-classroom/</id><summary type="html">&lt;p&gt;We tested Food Chain Farm for the 3rd time in a classroom setting, with great results. So, how does that actually work in practice?&lt;/p&gt;
&lt;img alt="" class="alignnone size-medium wp-image-204" src="./media/2019/01/havo5-annemarie-blurred-300x225.jpeg" style="width: 300px;" /&gt;
&lt;p&gt;We use a modified version of the game. The first three &amp;quot;levels&amp;quot; are really just simulations. Students have to watch clouds of oxygen and carbon dioxide …&lt;/p&gt;</summary><content type="html">&lt;p&gt;We tested Food Chain Farm for the 3rd time in a classroom setting, with great results. So, how does that actually work in practice?&lt;/p&gt;
&lt;img alt="" class="alignnone size-medium wp-image-204" src="./media/2019/01/havo5-annemarie-blurred-300x225.jpeg" style="width: 300px;" /&gt;
&lt;p&gt;We use a modified version of the game. The first three &amp;quot;levels&amp;quot; are really just simulations. Students have to watch clouds of oxygen and carbon dioxide move between farm animals and answer about 20 questions on paper. Starting with a questionnaire might seem like a boring way to present a game, but it works well. Not all students are natural gamers, and this way they can think about biology before they have to think about which buttons to click.&lt;/p&gt;
&lt;p&gt;The first few questions are extremely simple and are designed to make the students just observe what is happening on the screen:&lt;/p&gt;
&lt;blockquote&gt;
Question: Which two resources are produced by the tree? (Answer: Oxygen and Apples)&lt;/blockquote&gt;
&lt;p&gt;Further on, it gets a bit tougher and students are supposed to link what they see with what they've learned before.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Question: Which process takes place in the tree (Answer: Photosynthesis)&lt;/p&gt;
&lt;p&gt;Question: which cycle is simulated in this game. The carbon cycle, or the nitrogen cycle? (Answer: the carbon cycle)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;But then we get to the more interesting part. Further questions do not have a single simple answer. They are designed to make the students think critically, and are a great starting point for classroom discussion.&lt;/p&gt;
&lt;blockquote&gt;
Question: the tree converts inorganic substances into food, which the cow consumes and converts again into milk and inorganic substances. However after a while, the truck is full of milk and the cycle stops. Why does it stop? (Answer: If milk stays in the truck, then resources are taken away from the cycle. The cycle is actually incomplete, and must break down eventually)&lt;/blockquote&gt;
&lt;p&gt;After the questionnaire is done (after half an hour), students are free to play the regular game as far as they can get. They continue to play and build at their own pace. For an extra challenge, all scores are tracked and projected on a central screen.&lt;/p&gt;
&lt;p&gt;This is a game is about concepts like photosynthesis, carbon cycle, trophic levels,&amp;nbsp; producers, consumers, herbivores, carnivores, assimilation, dissimilation, food, and energy. But the game doesn't &lt;em&gt;explain&lt;/em&gt; these concepts. I wouldn't recommend giving the game to new arrivals without instruction, and expect them to be able to take a biology test afterwards. What the game does do very well however, is use what was already taught, and reinforce it, visualize it, provide a fresh perspective on it. The novel presentation keeps students engaged.&lt;/p&gt;
&lt;p&gt;I'm looking for more volunteers to test the game in a biology classroom. After three tries I'm very confident that I can provide something that is both engaging and educational. The question list can be adjusted to the level of the students to a very large extent. If you are a biology teacher, or know one, please leave a comment or &lt;a class="reference external" href="https://twitter.com/mpvaniersel/"&gt;send me a tweet&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Do you just want to play the game? &lt;a class="reference external" href="https://games.helixsoft.nl/game/foodchainfarm/"&gt;Food Chain Farm can be downloaded here&lt;/a&gt;. Version 0.2 is out now and 0.3 is coming soon!&lt;/p&gt;
</content><category term="Gamedev"/><category term="Classroom"/><category term="Educational Games"/><category term="Food Chain Farm"/></entry><entry><title>Introducing a new game: Food Chain Farm</title><link href="https://blog.helixsoft.nl/introducing-a-new-game-food-chain-farm/" rel="alternate"/><published>2018-10-10T07:23:00+02:00</published><updated>2018-10-10T07:23:00+02:00</updated><author><name>martijn</name></author><id>tag:blog.helixsoft.nl,2018-10-10:/introducing-a-new-game-food-chain-farm/</id><summary type="html">&lt;p&gt;&lt;a class="reference external" href="https://blog.helixsoft.nl/1/hello-world/"&gt;As mentioned before&lt;/a&gt;, my goal is to make an educational game. After more than a year of quiet behind-the-scenes development, &lt;strong&gt;Food Chain Farm&lt;/strong&gt; is ready to come out. It is a construction game in a fun farm environment, with a tinge of biology education.&lt;/p&gt;
&lt;p&gt;In the beginning, you see a …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a class="reference external" href="https://blog.helixsoft.nl/1/hello-world/"&gt;As mentioned before&lt;/a&gt;, my goal is to make an educational game. After more than a year of quiet behind-the-scenes development, &lt;strong&gt;Food Chain Farm&lt;/strong&gt; is ready to come out. It is a construction game in a fun farm environment, with a tinge of biology education.&lt;/p&gt;
&lt;p&gt;In the beginning, you see a pig, floating in a box in space. It needs food and oxygen to survive. Where do you get that from? A bit further, there is another box containing an apple tree. Connect the two boxes and transport apples and oxygen from the tree to the pig. At the same time, bring water and carbon-dioxide back. Thus, you form a sustainable loop. Animals and plants living together, each producing what the other needs.&lt;/p&gt;
&lt;p&gt;It's probably clearer if you watch the trailer:&lt;/p&gt;
&lt;div class="youtube youtube-16x9"&gt;&lt;iframe src="https://www.youtube.com/embed/LHDEgzkyz0k" allowfullscreen seamless frameBorder="0"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;Food Chain Farm is intended to be used in a classroom. Concepts such as photosynthesis, metabolism, and the carbon cycle are very abstract. The game visualizes these concepts in an appealing way, making the theory come to life for students. I collaborate with high school teachers, to try out the game in a classroom setting, to find the right balance between fun and education.&lt;/p&gt;
&lt;p&gt;&lt;div class="size-medium wp-image-193 figure"&gt;
&lt;img alt="classroom" src="./media/2018/10/fcf-classroom-300x169.jpg" style="width: 300px;" /&gt;
&lt;p class="caption"&gt;classroom&lt;/p&gt;
&lt;/div&gt;
&lt;/p&gt;&lt;p&gt;Food Chain Farm simulates photosynthesis and other concepts from real-life biology. The simulation is simplified, of course, but still realistic. Some may think that a realistic simulation is boring, and you need to introduce artificial rules to make the game fun. But I believe that this is not necessary. Nature itself is full of trade-offs, leading to interesting choices that make for an interesting game!&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://games.helixsoft.nl/game/foodchainfarm"&gt;Version 0.1 is ready for download for Windows and Linux&lt;/a&gt;. This is still the early access phase, so be sure to leave some feedback so I can improve the game!&lt;/p&gt;
</content><category term="Gamedev"/><category term="Educational Games"/><category term="Food Chain Farm"/></entry><entry><title>Optimizing OpenGL performance with apitrace</title><link href="https://blog.helixsoft.nl/optimizing-opengl-performance-with-apitrace/" rel="alternate"/><published>2018-03-22T18:20:00+01:00</published><updated>2018-03-22T18:20:00+01:00</updated><author><name>martijn</name></author><id>tag:blog.helixsoft.nl,2018-03-22:/optimizing-opengl-performance-with-apitrace/</id><summary type="html">&lt;p&gt;Today's post is for the programmers: it's a bit technical. I finally solved a long-standing performance issue&amp;nbsp; in &lt;a class="reference external" href="http://games.helixsoft.nl/game/usagi/"&gt;Happy Usagi&lt;/a&gt;, and I thought I'd share my notes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The issue&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This was the problem: Happy Usagi was sometimes a bit jittery or choppy. The graphics weren't entirely smooth, there was a …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Today's post is for the programmers: it's a bit technical. I finally solved a long-standing performance issue&amp;nbsp; in &lt;a class="reference external" href="http://games.helixsoft.nl/game/usagi/"&gt;Happy Usagi&lt;/a&gt;, and I thought I'd share my notes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The issue&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This was the problem: Happy Usagi was sometimes a bit jittery or choppy. The graphics weren't entirely smooth, there was a little interruption every second or so. On newer computers it was barely noticeable, but on some older models it was a real issue. And the graphics aren't complicated, so there really was no excuse.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Allegro and OpenGL&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Usagi uses the &lt;a class="reference external" href="http://liballeg.org/"&gt;Allegro game programming library&lt;/a&gt;. Allegro bundles a whole bunch of libraries for various aspects of games: sound, physics, joystick input, etc. For graphics, it depends on OpenGL (it can optionally use DirectX instead but that's not relevant for this story).&lt;/p&gt;
&lt;p&gt;Allegro wraps around OpenGL, and in effect hides its complexity. This is a double-edged sword. As long as everything goes smoothly Allegro makes things easy for the programmer.&amp;nbsp; But when there is a bug, Allegro hides what is really going on. So you need a way to look under the hood.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Enter apitrace&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://apitrace.github.io/"&gt;Apitrace&lt;/a&gt; is an open source tool for tracking all the OpenGL calls done by your program. Installing apitrace on linux is as easy as:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
sudo apt install apitrace apitrace-gui
&lt;/pre&gt;
&lt;p&gt;To start recoding a trace:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
apitrace trace --api gl build/debug/usagi
&lt;/pre&gt;
&lt;p&gt;This generates a file named usagi.trace (or usagi.1.trace, usagi.2.trace etc.). You can view this file with&lt;/p&gt;
&lt;pre class="literal-block"&gt;
qapitrace usagi.trace
&lt;/pre&gt;
&lt;p&gt;Which results in a screen like this:&lt;/p&gt;
&lt;img alt="" class="alignnone wp-image-183 size-full" src="./media/2018/03/Screenshot-from-2018-03-21-22-43-43.png" style="width: 1160px;" /&gt;
&lt;p&gt;Each frame (drawing cycle), apitrace records all OpenGL calls. In the screenshot above, you see that nearly all frames consist of 757 calls. It makes sense that this number is constant from one frame to the next, because each frame, the game builds up the scene in exactly the same way: draw the background, draw the bunnies, draw the interface buttons. Most OpenGL functions perform communication with the graphics hardware, which is slow, so it's important to keep this number as low as possible. 757 is probably a bit higher than I would like. Allegro adds a few extraneous calls that aren't strictly necessary, but this is part of the trade-off between the ease of use of Allegro and the raw power of OpenGL.&lt;/p&gt;
&lt;p&gt;What's noticeable though, is that there are a few frames with crazy high numbers of OpenGL calls. 19286 calls in one frame? Now that would certainly cause a jitter! Apitrace lets you examine these calls in detail, as in the screenshot below.&lt;/p&gt;
&lt;img alt="" class="alignnone wp-image-187 size-full" src="./media/2018/03/Screenshot-from-2018-03-22-08-45-12.png" style="width: 1093px;" /&gt;
&lt;p&gt;Looking through the calls in this bad frame, I notice a few that don't occur in the good frames. For example, there are calls to glPixelStorei(). Although I don't know exactly what it does, that doesn't matter right&amp;nbsp; now: the fact that it only occurs in&amp;nbsp; the bad frame and not in the good frames makes it a suitable starting point for further investigation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Zooming in further&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So I open Usagi in the GNU debugger (gdb) and start tracking back from glPixelStorei&lt;/p&gt;
&lt;pre class="literal-block"&gt;
gdb build/debug/usagi
# Set a breakpoint on the glPixelStorei function
(gdb) b glPixelStorei
# Start the program
(gdb) r
starting program build/debug/usagi
Thread 1 &amp;quot;usagi&amp;quot; hit Breakpoint 1 in glPixelStorei ()
         from /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
&lt;/pre&gt;
&lt;p&gt;Ah great, it worked! I caught the program red-handed exactly in the middle of a bad frame. Now I just have to trace back to the origin of the problem, literally, using the &amp;quot;backtrace&amp;quot; command:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
(gdb) bt
 #0 0x00007ffff4307980 in glPixelStorei ()
....
 #12 0x00007ffff67b3475 in al_draw_bitmap_region
 #13 0x00000000004518b6 in blitRow
 #14 0x0000000000451d3c in Bitmap::TiledBlit
 #15 0x0000000000469979 in Button::doDraw
 #16 0x0000000000467277 in Widget::updateBuffer
 #17 0x0000000000467092 in Widget::draw
 #18 0x0000000000460546 in Container::draw
&lt;/pre&gt;
&lt;p&gt;Here you see the chain of function calls that led to glPixelStorei. You have to know the code to be able to interpret this, but I can see right away that the call to Button::doDraw was completely unexpected and unnecessary. Buttons are drawn on a back buffer that is only redrawn whenever the button changes state. In the game, buttons may be enabled or disabled depending on how much money you have. For example, the &amp;quot;buy a block&amp;quot; button becomes available when you have earned enough money to buy that block. And money changes every second or so. Suddenly all the pieces fall into place: due to a mistake the game was redrawing all the buttons, every time your money counter changes, which is complete overkill.&lt;/p&gt;
&lt;p&gt;There is more. Why does the redraw of a button cause such a crazy high number of OpenGL calls? It turns out that the button was copied from System memory to Video memory, a big performance no-no.&lt;/p&gt;
&lt;p&gt;It's funny how a really difficult bug becomes really easy to solve with the right toolset. I've known about the jitteriness for a long time, but couldn't figure out what to do about it. Until I started using apitrace. Once you know exactly where the problem is, the solution is trivial. In the end it took about four lines of code to fix the main performance issues.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;New Release of Happy Usagi&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;These fixes are important enough to immediately released them. &lt;a class="reference external" href="http://games.helixsoft.nl/game/usagi/"&gt;Version 0.3 of Happy Usagi can be download here.&lt;/a&gt;&lt;/p&gt;
</content><category term="Gamedev"/></entry><entry><title>Tips for beginning speedhackers</title><link href="https://blog.helixsoft.nl/tips-for-beginning-speedhackers/" rel="alternate"/><published>2017-09-25T18:24:00+02:00</published><updated>2017-09-25T18:24:00+02:00</updated><author><name>martijn</name></author><id>tag:blog.helixsoft.nl,2017-09-25:/tips-for-beginning-speedhackers/</id><summary type="html">&lt;p&gt;This is the second part of my series about Speedhacking. &lt;a class="reference external" href="https://blog.helixsoft.nl/128/the-many-benefits-of-speedhacking/"&gt;Last week&lt;/a&gt; I looked at the reasons why you should participate, now I'm going to give some tips for beginners.&lt;/p&gt;
&lt;p&gt;Are you going to join a speedhack, or other type of game jam, for the first time? Here are some …&lt;/p&gt;</summary><content type="html">&lt;p&gt;This is the second part of my series about Speedhacking. &lt;a class="reference external" href="https://blog.helixsoft.nl/128/the-many-benefits-of-speedhacking/"&gt;Last week&lt;/a&gt; I looked at the reasons why you should participate, now I'm going to give some tips for beginners.&lt;/p&gt;
&lt;p&gt;Are you going to join a speedhack, or other type of game jam, for the first time? Here are some tips!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How to limit your scope&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In my &lt;a class="reference external" href="https://blog.helixsoft.nl/128/the-many-benefits-of-speedhacking/"&gt;previous post&lt;/a&gt;, I wrote about how important it is to limit your scope. But how exactly do you do that?&lt;/p&gt;
&lt;img alt="" class="alignnone size-medium wp-image-165" src="./media/2017/09/1024px-Edit_4x_rifle_scope-300x268.jpg" style="width: 300px;" /&gt;
&lt;p&gt;If you're really a beginner, keep it very simple.&amp;nbsp;If you think an idea might be just doable, cut it in half. Make your own variant of Snake. Pacman. Tetris. These are the type of games that are feasible in a weekend.&lt;/p&gt;
&lt;p&gt;Don't invent everything new, but remake a game you already know. Is it bad to make a clone? Of course not,&amp;nbsp; remaking famous old games is excellent practice. You won't expect a beginning chef to create delicious new recipes - first they have to master the classic ones.&amp;nbsp; Start with a remake, and if you find some extra time, you can always add your own flavour and twists to it.&lt;/p&gt;
&lt;p&gt;It's best to choose from the genres of arcade games or puzzle games. Arcade games are focused on reaction speed, and usually have just a single screen or a single mechanic that is repeated over and over again,&amp;nbsp; with increasing difficulty. This provides an interesting challenge without requiring you to design lots of extra &amp;quot;content&amp;quot;.&lt;/p&gt;
&lt;p&gt;By &amp;quot;content&amp;quot; in mean levels, graphics, storylines. Any genre that requires a lot of that is really tough to pull off in just 72 hours. Examples of these are platformers or RPGs. You may think that it should be possible to program a character like Super Mario in just a weekend. And you would be correct. The problem is that what makes Super Mario fun, are the levels. Designing levels takes time. And the amount of time you spend designing is directly proportional to how fun your entry will be. There is no way to speed up the process. And it eats away from your polishing time.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Schedule polishing time&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It's possible (although not very healthy) to spend a good 40 hours out of those 72 hours making games - that's an entire work week compressed in 3 days!&amp;nbsp; But working to the limit is a sign that you set the bar to high. With a lower bar and fewer hours of work, you can actually achieve better results.&lt;/p&gt;
&lt;p&gt;I've seen it happen that participants could only work&amp;nbsp;on their entry for one day instead of the weekend, for reasons (work, life, illness, whatever). And still ended up with a high-ranking little arcade game.&lt;/p&gt;
&lt;p&gt;It's usually not the case that you need a fantastic new idea to make a game work. Instead, what makes a game work is a decent idea with a lot of polish. Making a game fun means polishing it. The amount of time you set aside for polish determines the success.&lt;/p&gt;
&lt;p&gt;What is meant by polish? Playtesting. Balancing the game.&amp;nbsp; Take some time to actually play the game yourself. Let somebody else try it. Is it too difficult? Is it too hard? Is the goal of the game intuitive? Add finishing touches. Sound effects and music usually come in last but add a lot to the fun factor.&lt;/p&gt;
&lt;p&gt;So instead of planning a game that takes 40 hours to implement, plan for a game that takes 20 hours to implement, then spend any remaining time adding as much polish as you can. The good thing is that usually, this is the most fun aspect of game development. In this phase, every tweak, every added line of code immediately improves your game in a visible way.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How to use the rules to your advantage&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It's easy to see the random rules as annoying barriers that stand in the way of&amp;nbsp; the game you really wanted to make. For example, maybe you have decided that you wanted to remake Sim City. Then the rules are announced, and maybe one of the rules is that the theme must be &amp;quot;Gravity&amp;quot;. What do I do with gravity? How on earth do I combine Sim City with gravity? The trick is not to get too hung up on a single plan. Be opportunistic, not dogmatic. Keep your options open. Be willing to make any of a range of games - arcade games, puzzle games, etc. So maybe you can't make Sim City. Is that really the only possible game you could ever make?&lt;/p&gt;
&lt;p&gt;Another way to look at it is this: Don't see the rules as limitations, but as stepping stones for your imagination. This is an opportunity to think out of the box. It would be so cool to play Sim City on the flying rocks of Pandoran!&lt;/p&gt;
&lt;img alt="" class="alignnone size-medium wp-image-164" src="./media/2017/09/pandoran-simcity-300x169.jpg" style="width: 300px;" /&gt;
&lt;p&gt;&lt;strong&gt;I can't do art&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Worried you can't do good art? Again, what may appear as a limitation is really a stepping stone for your imagination. Focus on what you do know. Make a game that is focused around patterns of geometric shapes - like for example &lt;a class="reference external" href="http://circlesgame.com/"&gt;Circles&lt;/a&gt;. Even better, just use only text. There are some really cool games made with just text, like &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Dwarf_Fortress"&gt;Dwarf Fortress&lt;/a&gt; and &lt;a class="reference external" href="https://en.wikipedia.org/wiki/NetHack"&gt;Nethack&lt;/a&gt;.&lt;/p&gt;
&lt;img alt="" class="alignnone size-medium wp-image-168" src="./media/2017/09/Nethack_releasing_a_djinni-300x194.png" style="width: 300px;" /&gt;
&lt;p&gt;Make a word puzzle game, or&amp;nbsp; a text adventure. Focus on procedurally generated art. Or use a super-low resolution (but scale&amp;nbsp; it up for modern screens). It's much easier to generate a lot of art if sprites are only 8x8 pixels.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I'm not a good programmer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Worried that you're not a good enough programmer? Well, the bad news is, you do need to know some basic programming. Actually, you need a combination of skills to make a good Speedhack game, but programming stands at the basis.&lt;/p&gt;
&lt;p&gt;But then again, it's just a matter of matching the scope with your skills. As long as you're willing to learn, you can start really small. Can you write &amp;quot;Simon Says&amp;quot;? Can you write &amp;quot;Hang man&amp;quot;? Can you write &amp;quot;Higher, Lower&amp;quot;? These games can be programmed in Scratch! (Unfortunately I haven't seen Allegro bindings for scratch yet, so that would make them inadmissible to TINS. But you get the point). Combined with the right art, design and sound, you can still make something cool. Perhaps you're not going to win the competition with these games, but the challenge is purely your own: can you become a better programmer?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Teaming up&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Another way around a skill gap is to team up with somebody else. Some competitions, including TINS, allow this. Is it really possible to let teams compete against individuals? How can that be a fair competition? Certainly I've seen some very good TINS entries in the past that were made by teams. But don't underestimate the extra difficulties involved in teaming up. There won't be enough time to do all the meetings and huddles that usually involve joint programming efforts. You need to be able to rely on each other, and find ways to remove interdependencies so that you're not constantly waiting on each other.&lt;/p&gt;
&lt;p&gt;I'm not saying you shouldn't join a team. Just be aware of the complications. Teaming up may help you to work around a skills you lack, but requires all of you to have communication skills in abundance.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Here's that promo bit again&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So, did I convince you that it's feasible? Do you think you can do it?&lt;/p&gt;
&lt;p&gt;Why not give it a try? The next TINS competition will be held from October 20 to 23. Head over to &lt;a class="reference external" href="https://tins.amarillion.org"&gt;tins.amarillion.org&lt;/a&gt;, register and sign up!&lt;/p&gt;
</content><category term="Gamedev"/></entry><entry><title>The Many Benefits of Speedhacking</title><link href="https://blog.helixsoft.nl/the-many-benefits-of-speedhacking/" rel="alternate"/><published>2017-09-17T18:06:00+02:00</published><updated>2017-09-17T18:06:00+02:00</updated><author><name>martijn</name></author><id>tag:blog.helixsoft.nl,2017-09-17:/the-many-benefits-of-speedhacking/</id><summary type="html">&lt;p&gt;Speedhacks (a.k.a Game jams), are competitions where you design and implement a complete game, from scratch, in an extremely short time limit (typically one weekend, or 72 hours). I'm a frequent participant and organizer of these events for the Allegro community (including the upcoming TINS competition, more on …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Speedhacks (a.k.a Game jams), are competitions where you design and implement a complete game, from scratch, in an extremely short time limit (typically one weekend, or 72 hours). I'm a frequent participant and organizer of these events for the Allegro community (including the upcoming TINS competition, more on that below). I found them to be incredibly educational and fulfilling, and they've allowed me to grow as a developer. Here is why you too should participate in one.&lt;/p&gt;
&lt;img alt="" class="alignnone size-medium wp-image-156" src="./media/2017/09/cware-300x225.jpg" style="width: 300px;" /&gt;
&lt;p&gt;&lt;strong&gt;Getting things done&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Making a whole game in 72 hours, how crazy is that? For those who ever tried, the prospect seems daunting.&lt;/p&gt;
&lt;p&gt;Starting from early high school days, I've always wanted to make my own games. I was endlessly doodling level designs, and I had reams of elaborate technical notes. It was disheartening to look back at all those plans and aspirations, and see how little came of them.&lt;/p&gt;
&lt;p&gt;That feeling changed after my first Speedhack. For the first time I realized that, yes, I actually can make all these ideas come to life. Of course there are limits to what you can do in a weekend, but actually making something playable, as opposed to lots of half-hearted attempts and interminable projects, is extremely gratifying and a very powerful motivator.&lt;/p&gt;
&lt;p&gt;The problem is that you can't really show off a stack of design notes. Maybe you get some props if you have some cool drawings, but more likely your peers will recognize it for what it is: vaporware. A short playable arcade game is a lot cooler than the epic game that merely exists on paper.&lt;/p&gt;
&lt;p&gt;So how do you pull this off? You need developer skills, to be sure, but perhaps less than you think. What you need first and foremost, is to learn to limit your scope.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Limit your Scope&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In &lt;a class="reference external" href="https://www.youtube.com/watch?v=kNscZCrke4k"&gt;Extra Credits&lt;/a&gt;, game designer James Portnow talks about scope as being one of the six skills that game designers should learn.&lt;/p&gt;
&lt;p&gt;Every budding game developer is really a gamer who thinks: it would be so cool to play a game that is a role playing game combined with real-time strategy, with lots of mini-games and cowboys in space.&amp;nbsp; And it should have dragons and magic and tons of weapons to choose from. You know what, I'm going to make that game myself! It's so easy to fall into this trap. You design something grand and majestic that completely fails to see the light of day.&lt;/p&gt;
&lt;p&gt;Where does it go wrong?&lt;/p&gt;
&lt;p&gt;Know your limits. Even if you had all the skills required to pull off a grand project like that, it's just so hard to stay focused on a single project for years on end. Work or school or other real-life obligations intervene. Instead, plan for just the amount of time that you can completely oversee. Speedhacks teach you to work with a short time horizon. You can shield yourself from distractions for 72 hours.&lt;/p&gt;
&lt;img alt="" class="alignnone size-medium wp-image-157" src="./media/2017/09/Screenshot_-_08052012_-_031842_PM-300x180.png" style="width: 300px;" /&gt;
&lt;p&gt;&lt;strong&gt;Constraints make the creative juices flow&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Would you like to make games, but can't come up with ideas? Are all the cool game mechanics already taken? There is nothing like an imminent deadline to get the creative juices flowing. In the words of &lt;a class="reference external" href="https://rcrosing.home.xs4all.nl/calhob.html"&gt;Calvin&lt;/a&gt;: you can't turn on creativity like a faucet. You have to be in the right mood. That mood being: last-minute panic.&lt;/p&gt;
&lt;p&gt;At the start of Speedhack, random rules are drawn from a predetermined set. Your game has to adhere to these rules to be a valid entry. For example, a&amp;nbsp; rule may say that it has to be a puzzle game. Or that it has to have snow in it. Or that you can only use hand-drawn assets. Theoretically, the rules are there to prevent false starts. The idea is that you can't start on your game before the rules are known, so nobody can take an unfair advantage by starting early. But really, the rules just add to the fun.&lt;/p&gt;
&lt;p&gt;Rules force you to come up with crazy ideas. For past Speedhacks, I've come up with a platform game set inside a laundry machine, a space shooter where you have to defend Mars against the attacking Earthlings, a puzzle game where you have to choose a matching outfit from a perilous walk-in closet, or a two-player co-op battle game inside a space cheese. Coming up with ideas is not a talent that you're born with or not. Its a skill, that you can practice. And Speedhacks are a great way to practice.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Community&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If Speedhacking is so great, why don't you do it all the time? If you can make a game in a weekend, why don't you make a new game every weekend?&lt;/p&gt;
&lt;p&gt;You can't without motivation. Here is where the community comes in. Locking yourself away for a weekend may not seem like a very social activity, but it is. During a competition you interact with fellow Speedhackers. Reading the progress reports from others is fun while you take a break from an intense hacking session, and creates a shared experience. The fact that others will be waiting after the deadline to play and review your game, motivates you to not let them down.&lt;/p&gt;
&lt;p&gt;The community is your carrot and your stick. Failing to finish feels a bit like breaking a promise.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Oh, the things you will learn!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Speedhacks give you a chance to learn new algorithms, experiment with new techniques, or try out ideas with a prototype.&lt;/p&gt;
&lt;p&gt;Have you never applied the A* algorithm? Here is your chance to try it out! Always done hand-pixeled art and want to try your hand at some vector graphics? Now you have the perfect opportunity to do so.&amp;nbsp; Do a Speedhack every so often to broaden your skillset.&lt;/p&gt;
&lt;p&gt;Even if the game you make never ends up being more than a prototype, more often than not you'll find ways to apply the things you learn later on during your working life.&amp;nbsp; I first used A* for a train routing game I did for speedhack, but later found a use for this technique in a project for work.&lt;/p&gt;
&lt;img alt="" class="alignnone size-medium wp-image-158" src="./media/2017/09/game03-300x233.png" style="width: 300px;" /&gt;
&lt;p&gt;&lt;strong&gt;So where do I sign up?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Nowadays, there are &lt;a class="reference external" href="http://www.indiegamejams.com/"&gt;plenty of Speedhacks and Game jams&lt;/a&gt; being organized all over the Internet. Some focus on particular retro systems or screen modes. Some are face-to-face. One of the oldest and most famous ones is &lt;a class="reference external" href="https://ldjam.com/"&gt;Ludum Dare&lt;/a&gt;, and it attracts tons of participants every time.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Invitation to TINS&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As mentioned before, I organize a Speedhack semi-anually, called TINS.&amp;nbsp; It is going to be held again over the weekend from October 20 to 23. One thing you should know is that it's organized by the allegro community, and therefore using allegro is a requirement. Allegro is one of the most widely portable libraries, ranging from android to Windows to Mac.&amp;nbsp; &lt;a class="reference external" href="https://tins.amarillion.org"&gt;Head over and sign up&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;In case you're wondering, TINS stands for &amp;quot;TINS is not Speedhack&amp;quot;,&amp;nbsp; and references the &lt;a class="reference external" href="http://speedhack.allegro.cc/"&gt;original allegro Speedhack.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;See also part 2 of this series with &lt;a class="reference external" href="https://blog.helixsoft.nl/138/tips-for-beginning-speedhackers/"&gt;tips for beginning speedhackers&lt;/a&gt;&lt;/p&gt;
</content><category term="Gamedev"/><category term="Speedhack"/></entry><entry><title>Implicit Tutorials (Notes from Indie Game Show &amp; Tell)</title><link href="https://blog.helixsoft.nl/implicit-tutorials-notes-from-indie-game-show-tell/" rel="alternate"/><published>2017-06-20T21:03:00+02:00</published><updated>2017-06-20T21:03:00+02:00</updated><author><name>martijn</name></author><id>tag:blog.helixsoft.nl,2017-06-20:/implicit-tutorials-notes-from-indie-game-show-tell/</id><summary type="html">&lt;p&gt;When I discussed &lt;a class="reference external" href="https://blog.helixsoft.nl/104/what-makes-a-good-educational-game/"&gt;educational games&lt;/a&gt;, I omitted one very common type:&amp;nbsp; games that teach you how to play the game itself.&lt;/p&gt;
&lt;p&gt;Last week I participated in the &lt;a class="reference external" href="https://www.meetup.com/indie-game-show-and-tell/events/240178901/"&gt;Indie Game Show &amp;amp; Tell in Amsterdam&lt;/a&gt;. And there I learned about self-explanatory games, and also the fact that &lt;a class="reference external" href="http://games.helixsoft.nl/game/usagi"&gt;Happy Usagi&lt;/a&gt; currently sucks at …&lt;/p&gt;</summary><content type="html">&lt;p&gt;When I discussed &lt;a class="reference external" href="https://blog.helixsoft.nl/104/what-makes-a-good-educational-game/"&gt;educational games&lt;/a&gt;, I omitted one very common type:&amp;nbsp; games that teach you how to play the game itself.&lt;/p&gt;
&lt;p&gt;Last week I participated in the &lt;a class="reference external" href="https://www.meetup.com/indie-game-show-and-tell/events/240178901/"&gt;Indie Game Show &amp;amp; Tell in Amsterdam&lt;/a&gt;. And there I learned about self-explanatory games, and also the fact that &lt;a class="reference external" href="http://games.helixsoft.nl/game/usagi"&gt;Happy Usagi&lt;/a&gt; currently sucks at this.&lt;/p&gt;
&lt;p&gt;The idea is also called &amp;quot;Implicit tutorials&amp;quot;, and is an important concept in game design. There should be no need for a manual (nobody reads it anyway). The less explanation, the better.&amp;nbsp; By gradually introducing game elements in a clever way, the game should just explain itself . &lt;a class="reference external" href="https://en.wikipedia.org/wiki/World_1-1"&gt;Super Mario World 1-1&lt;/a&gt; is a very famous example of this.&lt;/p&gt;
&lt;p&gt;The first demo of the evening was by Jeroen Wimmers about the game &amp;quot;Circles&amp;quot;&amp;nbsp;(See the screenshot above). It really drove home the point of implicit tutorials. Circles is what you may call an example of &amp;quot;Constraint-based game design&amp;quot;, the constraint being that everything, every single thing, is a circle. Start of the level: a circle. Goal of the level: a circle. Level select menu - a bunch of circles.&amp;nbsp; In a relentless drive to eliminate shapes with corners, explanatory text has no place. How does the player know that you're not supposed to touch certain circles? Jeroen showed how he went through dozens of iterations, trying different visual cues (trembling, disappearing, expanding),&amp;nbsp; keeping this and reverting that, until the game was crystal clear. &lt;a class="reference external" href="http://store.steampowered.com/app/460250/_Circles/"&gt;Circles is out on steam&lt;/a&gt; if you want to give it a try. (There is a free demo).&lt;/p&gt;
&lt;p&gt;Another talk on a very similar topic was about &lt;a class="reference external" href="http://degoma.games"&gt;Reggie, by Degoma&lt;/a&gt; games. Reggie is a tomato with the ability to reverse gravity, in a cool little platformer. This game similarly went through several design iterations, incorporating feedback from players at conventions, until finally the mechanics were universally understood. You can watch the entire talk on Youtube:&lt;/p&gt;
&lt;div class="youtube youtube-16x9"&gt;&lt;iframe src="https://www.youtube.com/embed/FRBrhDTaPDM" allowfullscreen seamless frameBorder="0"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;But there is a downside to implicit tutorials. A tutorial can slow down the pace and make players give up before they get to the good parts. I can think of a few recent games that suffer from this.&lt;/p&gt;
&lt;p&gt;I myself was there to present Happy Usagi. There is no recording of the talk. But I showed this movie which is also on Youtube:&lt;/p&gt;
&lt;div class="youtube youtube-16x9"&gt;&lt;iframe src="https://www.youtube.com/embed/Ss7oLfvu84o" allowfullscreen seamless frameBorder="0"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;While showing this video I explained that the game has an &amp;quot;altitude-bonus&amp;quot; mechanic. It works as follows. When your bunnies are happy and well-fed, they jump more. For each jump, you get points. The points are multiplied by how high the bunny is. For a jump at floor level, you get 10 points. A jump on a stack of four blocks tall rewards you with 40 points. This mechanic encourages you to build. By building higher, you make each jump worth more.&lt;/p&gt;
&lt;p&gt;The audience asked me this insightful question: &amp;quot;How does the player find out about this mechanic?&amp;quot; After all, how can a reward incentivise players to do something, if they don't know that there is a reward? The truth is that this is an area where the game can be much improved. I did add a small hint: When a bunny jumps, a number appears at that spot to indicate that points were scored. But it's very easy to miss the connection between score and altitude. To a casual observer, it seems the score is calculated pretty much at random. Here the player needs explicit explanation.&lt;/p&gt;
&lt;p&gt;So that is some very useful feedback. And that's what made this event so great - not only to have the chance to present our work, but also to get feedback from fellow game designers, and to learn more about game design.&lt;/p&gt;
</content><category term="Gamedev"/></entry><entry><title>Progress Update: Usagi on Android</title><link href="https://blog.helixsoft.nl/progress-update-usagi-on-android/" rel="alternate"/><published>2017-05-24T11:04:00+02:00</published><updated>2017-05-24T11:04:00+02:00</updated><author><name>martijn</name></author><id>tag:blog.helixsoft.nl,2017-05-24:/progress-update-usagi-on-android/</id><summary type="html">&lt;p&gt;Just a quick post to show what I've been working on. I finally managed to get &lt;a class="reference external" href="http://games.helixsoft.nl/game/usagi/"&gt;Happy Usagi&lt;/a&gt; to run inside an android emulator:&lt;/p&gt;
&lt;p&gt;This is a huge step! So far I've only made games for Windows and Linux. Getting them to run on Android has been a major goal …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Just a quick post to show what I've been working on. I finally managed to get &lt;a class="reference external" href="http://games.helixsoft.nl/game/usagi/"&gt;Happy Usagi&lt;/a&gt; to run inside an android emulator:&lt;/p&gt;
&lt;p&gt;This is a huge step! So far I've only made games for Windows and Linux. Getting them to run on Android has been a major goal when I started this journey. Unfortunately, it is not trivial to get C++ code to run on Android. That's why I'm happy to show you this progress update even though it's far from complete.&lt;/p&gt;
&lt;p&gt;Wouldn't you like to see the game on the Android App Store? I know I would :) You have to be patient though. There is still a lot of work to do. Besides bugfixing, I also have to rework the game to a touch-based interface.&lt;/p&gt;
&lt;p&gt;But when all that's done, you can keep virtual bunnies in your pocket!&lt;/p&gt;
</content><category term="Gamedev"/></entry><entry><title>What makes a good educational game?</title><link href="https://blog.helixsoft.nl/what-makes-a-good-educational-game/" rel="alternate"/><published>2017-05-07T09:07:00+02:00</published><updated>2017-05-07T09:07:00+02:00</updated><author><name>martijn</name></author><id>tag:blog.helixsoft.nl,2017-05-07:/what-makes-a-good-educational-game/</id><summary type="html">&lt;p&gt;As I mentioned &lt;a class="reference external" href="https://blog.helixsoft.nl/1/hello-world/"&gt;at the start of this blog&lt;/a&gt;, in the future I want to focus on creating educational games. The term 'educational game' means different things to different people, and it's also somewhat of a buzzword nowadays.&amp;nbsp; Here I want to explain what 'educational'&amp;nbsp; means to me. What type …&lt;/p&gt;</summary><content type="html">&lt;p&gt;As I mentioned &lt;a class="reference external" href="https://blog.helixsoft.nl/1/hello-world/"&gt;at the start of this blog&lt;/a&gt;, in the future I want to focus on creating educational games. The term 'educational game' means different things to different people, and it's also somewhat of a buzzword nowadays.&amp;nbsp; Here I want to explain what 'educational'&amp;nbsp; means to me. What type of educational game would I like to make? I'll try to answer that by comparing with a few examples.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is Pacman a good educational game?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As a counter-example, let's start with&amp;nbsp; a well-known game that is not usually considered very educational. Pacman. If you think about it, there are many skills to be learned from playing Pacman. Timing and reaction speed. Hand-eye coordination. Basic spatial thinking. Pattern recognition. Each of the four ghosts moves according to predefined patterns, and &lt;a class="reference external" href="http://gameinternals.com/post/2072558330/understanding-pac-man-ghost-behavior"&gt;recognizing those patterns&lt;/a&gt; is the key to mastering this old classic.&lt;/p&gt;
&lt;img alt="" class="alignnone size-full wp-image-106" src="./media/2017/05/clyde-targeting.png" style="width: 144px;" /&gt;
&lt;p&gt;According to the book '&lt;a class="reference external" href="https://www.amazon.com/Theory-Game-Design-Raph-Koster/dp/1449363210"&gt;a theory of fun for game design&lt;/a&gt;', humans play games to learn. Playing behavior arose during evolution so that we could practice life skills in a safe setting. Each time you escape a ghost or eat a power pill, you are preparing for an encounter with a lion on the prehistoric savannah. You learn, and your brain rewards you with a puff of endorphins. We call this fun, but really, biologically speaking it's indistinguishable from learning.&lt;/p&gt;
&lt;p&gt;So &lt;em&gt;all&lt;/em&gt; games are educational in some way. The only problem is that many action games teach paleolithic skills. Reaction speed. Battle tactics. Aiming a weapon. Territorial dominance. We still get the fun from learning, but what we learn does not prepare us much better for life in the 21st century.&amp;nbsp; Gaming is a waste of time, not because we don't learn from it, but because we learn mostly outdated skills.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is Portal a good educational game?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Yesterday at the Amsterdam &lt;a class="reference external" href="https://www.meetup.com/Amsterdam-Indie-Game-Developers/"&gt;game developer meetup&lt;/a&gt;, we discussed educational games. &lt;a class="reference external" href="http://www.valvesoftware.com/games/portal.html"&gt;Portal&lt;/a&gt;, the 3D puzzle game with mind-bending physics, came up as an example of an educational game. One of the puzzle-mechanics in this game is conservation of momentum. Apparently Portal has been used in a classroom setting, to teach this physics principle to students.&lt;/p&gt;
&lt;img alt="" class="alignnone size-medium wp-image-107" src="./media/2017/05/Portal_physics-2.svg_-300x272.png" style="width: 300px;" /&gt;
&lt;p&gt;I don't think Portal is the kind of educational game I would like to make. To me, there are two problems with it:&lt;/p&gt;
&lt;p&gt;First, conservation of momentum is only a small part of the game. Yes, there are a few puzzles that are incredibly hard to solve if you don't apply this concept properly. But if you want to teach, then the other 90% of the game gets in the way a lot. Portal was never designed as an educational game. It was designed as a fun puzzle game that coincidentally happens to use a few classroom physics concepts.&lt;/p&gt;
&lt;p&gt;Secondly, it's&amp;nbsp; a very&amp;nbsp; limited use of the endless possibilities of games. Conservation of momentum means: an object in motion stays in motion until a force is applied to it. This is a concept close to daily experience,&amp;nbsp; almost intuitively understandable. There is no need for expensive optical equipment to study it. There is no need to take the class on a field trip to a distant museum. Just a soccer ball is enough to demonstrate it.&amp;nbsp; All the tools needed to make the concept insightful are already at the teachers disposal.&lt;/p&gt;
&lt;p&gt;And we can do so much more than that! Games allow us to open up entirely new virtual worlds where we can shrink to microscopic size and move through the human body (biology), walk around in ancient Rome (history), simulate entire cities (geography).&lt;/p&gt;
&lt;p&gt;That is not to say that teaching through games isn't a great way&amp;nbsp; to liven up a boring classroom. But then you're reducing the gaming aspect to just a gimmick, a psychological trick to maintain attention. When I was in high school, in English class we were rewarded with five minutes of watching Mr. Bean at the end if we paid attention the rest of the time (I suppose the intention was to convey English culture, because Mr. Bean doesn't convey much of the English language). There is nothing wrong with this approach per se, but it's a relatively poor use of the possibilities of games, and not the type of educational game I want to aim for.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Niche&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Let's get to one of my favorite educational games of this moment: &lt;a class="reference external" href="http://niche-game.com/"&gt;Niche&lt;/a&gt;.&lt;/p&gt;
&lt;img alt="" class="alignnone size-medium wp-image-108" src="./media/2017/05/screenshots_ludicious_21-small-300x169.jpg" style="width: 300px;" /&gt;
&lt;p&gt;In Niche you control a group of fictional mammals, and by properly selecting pairs of animals to breed, you can slowly improve the fitness of the population: stronger claws, better hearing and eyesight, better resistance to heat or cold. You make your group more resistant to predators and the environment. The more you play, the more you learn about genetics. The more you learn about genetics, the better you get at the game.&lt;/p&gt;
&lt;p&gt;Niche teaches concepts from population genetics without being explicit, without being too teach-y. The students are just playing a fun game where you have to protect your tribe of cute furry animals. Slowly, as you get better at playing the game, you start to recognize the game mechanics. These happen to work by simulating real-life biological concepts. By getting good at the game, you slowly develop intuition for genetic principles, such as phenotype and genotype, recessive and dominant alleles, mutations, disease resistance, incest and inbreeding,&amp;nbsp; natural and artificial selection, survival of the fittest.&lt;/p&gt;
&lt;p&gt;Not only that, but it is plain fun to play! Don't take my opinion for it, just take a look at the &lt;a class="reference external" href="https://www.youtube.com/results?search_query=niche+genetics+survival+game"&gt;reception on Youtube&lt;/a&gt;. Both fun and educational, what more could you want?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Future work&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In short, my &amp;quot;sekrit project&amp;quot;, my future educational game should have these features:&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;It is fun to play and not overly pedagogic.&lt;/li&gt;
&lt;li&gt;It teaches advanced modern concepts that go beyond the reaction speed, the fighting and territorial dominance of action games.&lt;/li&gt;
&lt;li&gt;And it makes use of the possibility of virtual worlds to visualize hard concepts, to take something that is not intuitive, that is remote from everyday experience and find a way to experience it.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;By the way, I'm always looking for interesting examples of educational games. Know another good one? Leave a comment!&lt;/p&gt;
</content><category term="Gamedev"/></entry><entry><title>B.U.N. - a game from a classic genre</title><link href="https://blog.helixsoft.nl/b-u-n-a-game-from-a-classic-genre/" rel="alternate"/><published>2017-04-25T14:03:00+02:00</published><updated>2017-04-25T14:03:00+02:00</updated><author><name>martijn</name></author><id>tag:blog.helixsoft.nl,2017-04-25:/b-u-n-a-game-from-a-classic-genre/</id><summary type="html">&lt;p&gt;This Easter holiday I took a break from working on a game about bunnies, so that I could.... work on another game about bunnies. Apart from the bunny aspect though, it's actually a very different kind of game. It's a &lt;em&gt;text adventure&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The game is called B.U.N. (Bunny's …&lt;/p&gt;</summary><content type="html">&lt;p&gt;This Easter holiday I took a break from working on a game about bunnies, so that I could.... work on another game about bunnies. Apart from the bunny aspect though, it's actually a very different kind of game. It's a &lt;em&gt;text adventure&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The game is called B.U.N. (Bunny's unbelievable narrative), and it's like a choose-your-own-adventure book. At every step, you're presented with a situation and you have to choose where to go next. Here is a video demo (kindly created by Gideon Weems from the allegro community):&lt;/p&gt;
&lt;div class="youtube youtube-16x9"&gt;&lt;iframe src="https://www.youtube.com/embed/DJykYXOE6c0" allowfullscreen seamless frameBorder="0"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;I expanded the storyline significantly since the initial release in 2015. The game is ready to be played now, and should prove a fairly challenging puzzle.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://games.helixsoft.nl/game/bun"&gt;Download and try B.U.N. for yourself by clicking here&lt;/a&gt;. It's hard for me to judge these things, so please let me know in the comments if you found it easy / difficult / funny / silly / interesting / challenging!&lt;/p&gt;
&lt;p&gt;Text adventures are the oldest genre, the 'silent picture' of video game history. It's a classic genre that is nowadays overtaken by much more flashy and glammy genres, such as the kill-everything-in-sight genre and the wage-war-against-the-whole-world-genre (I'm just kidding here, I love playing DOOM). Text adventures stem from the mini- and microcomputer age. It's no wonder. A picture is worth a 1000 words, but 1000 pages of text use the same memory as 1 picture. This mattered very much in the days when &lt;a class="reference external" href="https://www.youtube.com/watch?v=V0EfycbDhiw"&gt;it took about two noisy minutes to load a single picture from a cassette tape&lt;/a&gt; (notice how the colors are loaded separately from the b&amp;amp;w image in that video. It's soooo slow!)&lt;/p&gt;
&lt;p&gt;To spice things up, I did add some (very simple) graphics and graphics effects to B.U.N. The way text is mixed with graphics is directly inspired &lt;a class="reference external" href="https://www.youtube.com/watch?v=3f3PFfK-9Gk"&gt;by the classic Hobbit adventure&lt;/a&gt; from my old ZX Spectrum.&lt;/p&gt;
&lt;p&gt;If you're interested in text adventures, another great one is the Hitchikers Guide to the Galaxy, created by Douglas Adams himself, and &lt;a class="reference external" href="http://www.myabandonware.com/game/the-hitchhikers-guide-to-the-galaxy-42"&gt;it looks like you can play it online here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;And no, not every game I ever make is about bunnies. Some of them are also about cats and monkeys.&lt;/p&gt;
</content><category term="Gamedev"/></entry><entry><title>A usable 3D world for a casual game</title><link href="https://blog.helixsoft.nl/a-usable-3d-world-for-a-casual-game/" rel="alternate"/><published>2017-03-25T09:04:00+01:00</published><updated>2017-03-25T09:04:00+01:00</updated><author><name>martijn</name></author><id>tag:blog.helixsoft.nl,2017-03-25:/a-usable-3d-world-for-a-casual-game/</id><summary type="html">&lt;p&gt;&lt;em&gt;&amp;quot;&lt;/em&gt;Hallway usability testing&amp;quot; means doing a quick &lt;a class="reference external" href="http://www.sensible.com/rsme.html"&gt;usability test&lt;/a&gt; with somebody you found in the hallway, or in this context, my little nephews during a family visit. Let them play and observe how they cope with your software. Can they figure out the game without instructions? Do they get stuck …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;em&gt;&amp;quot;&lt;/em&gt;Hallway usability testing&amp;quot; means doing a quick &lt;a class="reference external" href="http://www.sensible.com/rsme.html"&gt;usability test&lt;/a&gt; with somebody you found in the hallway, or in this context, my little nephews during a family visit. Let them play and observe how they cope with your software. Can they figure out the game without instructions? Do they get stuck somewhere? Are they struggling to make the user interface do what they want?&lt;/p&gt;
&lt;p&gt;I did a whole bunch of informal testing like that with &lt;a class="reference external" href="http://games.helixsoft.nl/game/usagi"&gt;Happy Usagi&lt;/a&gt;, and one of the problems I observed most frequently was that players were struggling to place blocks in a 3D environment.&lt;/p&gt;
&lt;object data="./media/2017/03/blockcursor-v2.mp4" style="width: 640px; height: 480px;" type="video/mp4"&gt;&lt;/object&gt;
&lt;p&gt;For example, you can place a block on top of another block, or behind one. The &lt;em&gt;block cursor&lt;/em&gt; indicates where it is going to be placed after you click. This block cursor is always shown on top. After all, if it was drawn behind, you can't see it and it's not much of a cursor, is it? Behind or on top, the cursor looks exactly the same, and this caused a lot of confusion. I did add green guidelines to indicate the position of the block relative to the floor, but these indicators were almost universally misunderstood. So: big usability problem.&lt;/p&gt;
&lt;p&gt;Hallway usability testing is a great way to check your assumptions. You may think that the green guidelines are obvious and that people will figure them out soon enough. Well no luck, after observing the same issue over and over again, it was time to stop blaming the user and think of a different solution&lt;/p&gt;
&lt;p&gt;Lets take a step back. Why do we have a 3D environment in the first place? Maybe it's an odd choice for a casual game. Happy Usagi was inspired by &lt;a class="reference external" href="https://play.google.com/store/apps/details?id=jp.co.hit_point.nekoatsume&amp;amp;hl=en"&gt;Neko Atsume&lt;/a&gt;. In that game you have to collect cats, and the user interface is simple and easy.&amp;nbsp; You'll have no difficulty at all controlling it on a tiny phone screen. But no wonder, the cats never move around and can only appear in certain predefined locations on the screen. The Neko Atsume world is a static image with cats stuck on them in fixed locations, a bit like an advent calendar for cats.&lt;/p&gt;
&lt;p&gt;For Happy Usagi, I wanted the bunnies not just to sit there like lazy cats, but to &lt;em&gt;do something&lt;/em&gt;; to hop, run, slide, and generally move about. And that means the game world should be an actual three dimensional model. This is a challenge.&lt;/p&gt;
&lt;p&gt;I came up with the following solution for the block placement problem. I radically altered the block cursor. Instead of just a block, the cursor now has a bright beam that extends upwards. This way you can still (kind of) see the cursor even when the block itself is occluded. The video above should make the difference clear.&lt;/p&gt;
&lt;p&gt;Does this actually help usability? First tests (done on Olivia) are hopeful. But again, you should check your assumptions. I really won't be&amp;nbsp; sure about this until my nephews have played it.&lt;/p&gt;
</content><category term="Gamedev"/></entry><entry><title>Usagi No Yuki: What's in a name?</title><link href="https://blog.helixsoft.nl/usagi-no-yuki-whats-in-a-name/" rel="alternate"/><published>2017-03-18T09:40:00+01:00</published><updated>2017-03-18T09:40:00+01:00</updated><author><name>martijn</name></author><id>tag:blog.helixsoft.nl,2017-03-18:/usagi-no-yuki-whats-in-a-name/</id><summary type="html">&lt;p&gt;As you know, I'm working on a game titled &lt;a class="reference external" href="http://games.helixsoft.nl/game/usagi"&gt;Happy Usagi No Yuki Fortress&lt;/a&gt;. The other day a colleague remarked that this sounds a lot like &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Usagi_Yojimbo"&gt;Usagi Yojimbo&lt;/a&gt;, also of&amp;nbsp; Commodore 64 fame:&lt;/p&gt;
&lt;div class="youtube youtube-16x9"&gt;&lt;iframe src="https://www.youtube.com/embed/slBHx5_8fms" allowfullscreen seamless frameBorder="0"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;Well that makes a lot of sense! Usagi is simply the Japanese word for rabbit. Yuki means …&lt;/p&gt;</summary><content type="html">&lt;p&gt;As you know, I'm working on a game titled &lt;a class="reference external" href="http://games.helixsoft.nl/game/usagi"&gt;Happy Usagi No Yuki Fortress&lt;/a&gt;. The other day a colleague remarked that this sounds a lot like &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Usagi_Yojimbo"&gt;Usagi Yojimbo&lt;/a&gt;, also of&amp;nbsp; Commodore 64 fame:&lt;/p&gt;
&lt;div class="youtube youtube-16x9"&gt;&lt;iframe src="https://www.youtube.com/embed/slBHx5_8fms" allowfullscreen seamless frameBorder="0"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;Well that makes a lot of sense! Usagi is simply the Japanese word for rabbit. Yuki means snow, and No is a possessive marker. As a Gaijin, I couldn't tell you if that translates to &amp;quot;happy snow-rabbit fortress, or &amp;quot;happy rabbit of the snow-fortress&amp;quot;. I guess&amp;nbsp; we'll find that out after we conquered the Japanese market (yeah, right). But in the mean time, I hope the name conveys fun, cuteness and also a bit of silliness.&lt;/p&gt;
&lt;p&gt;Why the Japanese angle, you ask? Apart from us being a big fan of all things Japanese (from Nintendo to &lt;a class="reference external" href="https://www.amazon.com/Kawaii-Bento-Boxes-Convenient-Japanese/dp/4889962603"&gt;Kawaii bento boxes&lt;/a&gt;), there is also serendipity. We created the game during a competition - one of the &lt;a class="reference external" href="http://tins.amarillion.org/2016/rules/"&gt;random requirements of this competition&lt;/a&gt; was to include bits of Unicode, i.e. non-English text. Like so: 幸せなウサギの雪要塞. Easiest requirement ever.&lt;/p&gt;
</content><category term="Gamedev"/></entry><entry><title>Pixel bunnies</title><link href="https://blog.helixsoft.nl/pixel-bunnies/" rel="alternate"/><published>2017-03-12T12:10:00+01:00</published><updated>2017-03-12T12:10:00+01:00</updated><author><name>martijn</name></author><id>tag:blog.helixsoft.nl,2017-03-12:/pixel-bunnies/</id><summary type="html">&lt;p&gt;For the next version of &lt;a class="reference external" href="http://games.helixsoft.nl/game/usagi"&gt;Happy Usagi&lt;/a&gt;, we are giving each bunny its own look. I say &amp;quot;we&amp;quot;, but actually most of the hard work is done by Olivia, graphic designer and source of inspiration for many helixsoft games.&lt;/p&gt;
&lt;img alt="" class="alignnone size-medium wp-image-71" src="./media/2017/03/Screenshot-from-2017-03-12-13-00-35-300x210.png" style="width: 300px;" /&gt;
&lt;p&gt;Would you like to hear details on how we draw the …&lt;/p&gt;</summary><content type="html">&lt;p&gt;For the next version of &lt;a class="reference external" href="http://games.helixsoft.nl/game/usagi"&gt;Happy Usagi&lt;/a&gt;, we are giving each bunny its own look. I say &amp;quot;we&amp;quot;, but actually most of the hard work is done by Olivia, graphic designer and source of inspiration for many helixsoft games.&lt;/p&gt;
&lt;img alt="" class="alignnone size-medium wp-image-71" src="./media/2017/03/Screenshot-from-2017-03-12-13-00-35-300x210.png" style="width: 300px;" /&gt;
&lt;p&gt;Would you like to hear details on how we draw the graphics? For Happy Usagi, the bunnies are drawn with the very cool &lt;a class="reference external" href="https://www.aseprite.org/"&gt;aseprite&lt;/a&gt; editor.&amp;nbsp; It has all the features you might expect from a pixel art tool. Especially useful for us is that you can export each layer as a separate spritesheet. I programmed the game to recolor and recombine the layers again in every possible way. For example,&amp;nbsp; a layer for spots, a layer for droopy ears and a layer for upright ears can be recombined into a brown bunny with grey spots and droopy ears, or a white bunny with brown spots and upright ears.&lt;/p&gt;
&lt;p&gt;NB, I'm experimenting with sharing on social media. Like I said in the first post, I'm trying to figure out the best way to do this. If things are not to your liking, let me know, I can tweak it for the next time.&lt;/p&gt;
</content><category term="Gamedev"/></entry><entry><title>Indie Quest</title><link href="https://blog.helixsoft.nl/hello-world/" rel="alternate"/><published>2017-03-01T12:54:00+01:00</published><updated>2017-03-01T12:54:00+01:00</updated><author><name>martijn</name></author><id>tag:blog.helixsoft.nl,2017-03-01:/hello-world/</id><summary type="html">&lt;p&gt;Come and join me on my quest for the holy grail! Or in this case, my quest to develop and independently publish computer games! Ni!&lt;/p&gt;
&lt;p&gt;Developing games is my passion. When I was a kid I already wrote my own version of tetris on a &lt;a class="reference external" href="https://en.wikipedia.org/wiki/ZX_Spectrum"&gt;ZX spectrum&lt;/a&gt;. In more recent …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Come and join me on my quest for the holy grail! Or in this case, my quest to develop and independently publish computer games! Ni!&lt;/p&gt;
&lt;p&gt;Developing games is my passion. When I was a kid I already wrote my own version of tetris on a &lt;a class="reference external" href="https://en.wikipedia.org/wiki/ZX_Spectrum"&gt;ZX spectrum&lt;/a&gt;. In more recent years I have written several small PC games. Most of these were created during weekend programming competitions, a.k.a. &lt;a class="reference external" href="http://speedhack.allegro.cc/"&gt;speedhacks&lt;/a&gt;. These are always fun to do, and the result is usually interesting and sometimes even entertaining! But they also tend to be somewhat simple and incomplete.&lt;/p&gt;
&lt;p&gt;Now I want to take it to the next level. I don't want to just make games that&amp;nbsp; are &amp;quot;fun for five minutes&amp;quot;, after which you can lean back and appreciate &amp;quot;how cool that&amp;nbsp; it was made in such a short time&amp;quot;. No, I want to turn these into games that are lasting fun, maybe even addictive, and certainly worth paying for.&lt;/p&gt;
&lt;p&gt;With this blog, I want to show my progress. I want to document my inroads into the indie gaming business. And I want to use this blog as a way to gather feedback, to find out if I'm going in the right direction.&lt;/p&gt;
&lt;p&gt;So what are my plans? At the start I'm going to be opportunistic, and work with what I've got. I'm expanding one of the&amp;nbsp; most promising speedhack games: &lt;a class="reference external" href="http://games.helixsoft.nl/game/usagi"&gt;Happy Usagi No Yuki Fortress&lt;/a&gt;. So at first you can expect a lot of posts about this game.&lt;/p&gt;
&lt;p&gt;My long-term plan is to shift to a particular niche, namely computer games that are &amp;quot;Educational&amp;quot;. That term may mean different things to different people, so I will definitely follow up &lt;a class="reference external" href="https://blog.helixsoft.nl/104/what-makes-a-good-educational-game/"&gt;in a&amp;nbsp; future post&lt;/a&gt; to&amp;nbsp; explain what the term means to me. And I'm working on a&amp;nbsp; &amp;quot;sekrit project&amp;quot; that is going to be an educational game. In due time, you'll hear all about it, right here on this blog.&lt;/p&gt;
&lt;p&gt;I'm looking forward to comments! I'll publish this blog on various social media, so you'll know about it. But which social media would you like to see this on? And what would you find most interesting to read about? By the way, what do you think of the graphics in the header of this blog? I'm figuring this out as I go along, so please let me know!&lt;/p&gt;
</content><category term="Gamedev"/></entry></feed>