My month in Lisbon really brought me some inspiration for my first commercial game, so stay tuned – gameplay is nearly complete, and an initial private demo will soon be released to the playtesters (in other words – random selection of my friends). So there is still hope that soon you’ll get to see the actual game happening. Just wait a little more.
In the previous post I said that if the Serpent Scribe of Kyoto was a success, I’ll try to continue making language-learning games. Unsurprisingly, I couldn’t help myself and didn’t wait for it to succeed. I’ve been working on some nice things that might become available soon.
I think it’s really an interesting experience with some lessons to be learned about memory and learning. I’ve tried several alphabets with the Serpent Scribe, and I think I can say that about 30 minutes with a game like this can bring me from knowing nothing in an average alphabet, to knowing it all. However, if I stop there, I’ll forget it all about an hour later. So the next challenge would be retaining the knowledge. This brings me back to what I asked a long time ago about mnemonics – if they can help us learn so much in such a short time, can we use them repeatedly and learn an entire language in a month?
It seems like the way to retain such information is to create associations – see the information in as many contexts as possible, not just in the simple flashcard or dictionary entry. One of my favourite examples is music – I’m often amused by how my vocabulary in languages I don’t know is affected by my favourite bands in the language – in German I can speak of death and blood, but I can’t ask what time it is. In Hungarian I can talk about flowers and birds, but not much else. In Portuguese about forests and hunters, in Indonesian about love and spirituality, and so on.
The Serpent Scribe starts working on it by providing challenges – chances to use the symbols learned in new contexts. But more work is needed.
This is why I think most structured language learning methods are useless on their own – I think the best way is to drown yourself in a huge array of different methods, each one bringing new associations to pick up new words from. But more importantly, I think you need to learn the language while doing something other than language learning – associations need to be between two things, so there has to be something else happening while you’re learning. It could be an especially frustrating level in a game, could be an awesome guitar chord in a song, or anything else. So my goal is to make games that are fun on their own, and as a side effect make you encounter loads of different words in the language you’re learning. We’ll see if I can make that happen.
Here it is – my first HTML5 game is available, combining two of my hobbies – gaming and language learning. The Serpent Scribe of Kyoto will allow you to feel like you’re wasting your time to the addictive void of snake, only to later find out you learned something – in this case, the Japanese writing systems Hiragana and Katakana. It works so well that I can now read both even though I had no intention of learning Japanese (yet) – it just comes naturally, that’s why I love the combination of gaming and learning so much.
Anyway, it’s available on Kongregate and you’re welcome to try it – it doesn’t matter if you want to learn Japanese, I think even playing a little game of snake and then being able to brag about your Japanese reading skills at the next party you go to is already worth it. I’d love to get some feedback, and to hear if you started reading Japanese because of it.
If it turns out to be a big success, you might see more of those coming in the future. Otherwise, they’ll probably come mostly to help me learn whatever I’m trying to learn at the time.
 Yes – as usual, it’s an old idea I recycled. I like doing that.
 Clearly, I’m a master of impressing people at social events.
After a long while, it’s time to announce my upcoming commercial project. The game will be an abstract shooting game based on my previous project, Ring of Marbles. Before boring you with words, here’s a sample level:
The point of the game is to shoot the targets thrown at you in each wave, without destroying your own armor – everything in the game is made of colored marbles, and your own health bar is a ring of marbles hovering around you. So if you’re not careful, you might end up destroying yourself instead of the targets!
In addition to several different campaigns, it will also include survival mode, and local multiplayer, and for the perfectionists among you – local high scores and achievements. Being my first commercial project and a fairly casual game, expect a very casual price point (no more than 5 US dollars).
The development is mostly complete, and since I’m on vacation now, it is in an extended testing phase. Release will hopefully be by the end of the year.
I was going to wait until after the results were announced before writing my summation of the Liberated Pixel Cup experience, but right now it’s not quite clear how long that’s going to take, and I want to do this while I still remember anything, especially since my life might get a little hectic starting this week.
I don’t really know if I have a chance of actually winning anything. My entry was not as polished as I had hoped to make it, it lacks a strong single player mode and I’m aware of two significant bugs that did not appear on my testing system. However, I can definitely say I’m happy about it. I think it reached the three most important goals I had in entering the contest: It’s a playable, fun game, it is very much built for the contest art and uses it naturally (although, if I had more time for polish, I’d have to make some graphic effects to reduce the “squareness” of the tiles, caused by the nature of my chosen game type), and I think it’s a creative idea – it’s very different from anything else I’ve seen submitted to the contest. Either way, I learned quite a bit from the experience, and here are some conclusions:
- The contest itself was a great idea. I truly salute the organizers (who are, if I’m not mistaken, Bart Kelsey and Chris Webber) and hope they will be happy with the results.
- There were some great entries to the art phase, but I still found myself using mostly the art initially provided by the contest organizers. I’m not sure what conclusion to draw from that – I guess we’re still not quite at a point where free art can defeat professional art.
- That said, I can only praise the art initially provided for the contest. I was initially a bit skeptical about the style – I’m not a fan of the retro, Nintendo-like style. But after working on it I realized the success – making the unified style, standard tile structure and standard character animation structure really allowed creating a big variety of art with less work than would be otherwise necessary.
- Unfortunately, my last-minute project change meant I did not have time to use some very good art entries. I had some big plans for Casper Nilsson’s beautiful Japanese set, for example, and for Daneeklu’s farming sprites. Maybe some other time.
- I got a reminder how important UI elements are. Usually when people think about game art, UI elements aren’t the first thing that comes to mind – but Pennomi and Laetissima’s UI elements turned out to be some of the most important parts of the art repository for me.
- The LPC blog was very quiet, after a reasonable start. At some points I was actually wondering if something was wrong with the contest. I think it might have been better to talk there more to keep everyone updated and make it clear that everything is going well, but it’s not extremely important.
- Apparently, several people complained that the time frame given (one month for the coding phase) was too short – I completely disagree with that. I think a contest is good for making you step away from your daily routine and work strongly on something in an attempt to win. You can’t do that for a long time – I don’t think anyone would put their personal projects on hold for months just for the chance of winning a relatively small-scale contest. Even a month was borderline, in my opinion.
- In his recent post, BartK mentioned how the contest made him reevaluate his dislike for Java because of the difficulties in compiling some of the C and C++ projects. This kind of echoes my post from a while ago about my own barriers for entry to the open-source scene. I hope there’s yet a chance for an additional open-source scene, based on less hardcore-Linux-programmer principles. Not to replace the existing scene, but to augment it. When I become a little more stable financially, I’ll of course try to make that happen myself.
Finally, my general impression of the contest – did it achieve its goal?
I think the contest was a great idea, well executed and provided some good new products for the open-source world. But one thing I think is a little unfortunate – in the code phase, the contest advanced one of the least-lacking things in the open-source gaming scene – new game projects. In my opinion, it would be better to focus efforts on some other things – general tools and game engines, coding less attractive or more difficult elements for games (like UI and AI, respectively), and other things that are difficult for open-source developers to do on their own, but might happen with some encouragement.
And just a clarification, in case I won’t be understood as I intended – any criticism I might have expressed here in no way affects my huge appreciation for the contest organizers, who put a huge effort for the benefit of all of us. I write this with the assumption that discussion about ways to improve the open-source world are good for everyone.
Some of my favourite projects are tiny ideas I consider over a bus ride or two, then take a few hours to code them on the following day. Here’s one of those – I’m always looking for ways to use games to learn cool things, and one of the things I like learning is languages. So I decided to make a little snake-like game to practice foreign alphabets:
As you can see, the name of the letter is written in the middle, and you have to direct your snake to the right letter, avoiding the randomly generated incorrect answers. Nothing too complicated, but it’s good at forcing you to practice your memory constantly until you remember the script perfectly. I already tried it with Devanagari, Hangul, Hiragana and Katakana (Ge’ez doesn’t seem to work for some reason, I’ll need to check how Java works with fonts), and it’s quite nice.
The only problem is that I can’t come up with a good aesthetic design for it (the screenshot is with placeholder graphics, of course). Any ideas?
Time is running out, and the project is advancing nicely. I changed a few of the things I thought about the last time – the game will be a little bit simpler in mechanics to make sure it’s well balanced. There will be no special abilities or advantages to having more tiles at any given time, instead I’m going for a more complete Reversi style – tiles which you step on will change only if they haven’t already been changed – so once all tiles in the screen changed from the original terrain type to one of the two players’ types, the game is over and the winner is the one with the higher percentage of the board. To prevent developing an easy always-win strategy, the structure of the level will be randomly generated each time – in addition to ordinary tiles, there will be obstacle tiles which can’t be walked on, and can’t be part of a connecting line (so, if you have the rightmost tile and the leftmost tile in a certain row, you don’t get all tiles in the middle if there’s an obstacle somewhere in the row). Multiplayer levels will always be symmetric to prevent unfair advantages to any player.
On the single player front, the main opponent will be trees. Trees are stationary, and constantly alter the terrain immediately around them, slowly advancing outward. On each single-player level you’ll need to hurry up and get the strategically important tiles before the trees capture them. Here as well, your goal is to get a majority of tiles on the board.
Here’s what it currently looks like:
On the screenshot, the player is spreading farmland terrain and the trees are spreading volcanic terrain (the default being grassy terrain). I hope to change the trees to be more appropriate to each terrain type (also, I seem to have screwed up the shadows, I’ll fix that). The level currently has no obstacles – obstacle generation is my main challenge for tomorrow. Also, I’ll want to generate some non-obtrusive things for the level, simply to make it more interesting aesthetically.
All together – I’m feeling good about it. The game is starting to feel fun, I think it looks quite lovely (I’d love to hear what you all think), and I think I’ll be able to complete it in the remaining time.
As promised, I’m still in the Liberated Pixel Cup. After abandoning (hopefully not forever) my previous project due to lack of time, I’m now officially declaring my new one – it will be smaller in scope to allow me to finish it in the little time remaining, but I believe it has a lot of potential.
The game will be called Terramancers, and it’s based on a game idea I tried to develop a few months ago with an artist I met, but it didn’t reach anything beyond basic planning. Here’s the concept:
Basically, the game is kind of a real-time action-Reversi. You and your opponent each have a character associated with a certain terrain type. You start in a grassy arena, and each of you, simply by walking, can alter the tile under you to your terrain type. Like in Reversi, if you alter a tile which has a straight line connecting it to another tile that already has your terrain type, all other tiles on that line will also be altered. The goal, of course, is to alter the entire arena to your terrain type.
So far it’s quite simple, but I’ll need to add a few things to make it practical and fun. First of all, the more tiles you have on your side, the more powerful you are – you move faster, you can use more special abilities. This makes sure the game won’t go on forever – once one character gets an advantage, they’ll be able to extend it more and more unless the opponent does something unexpected. I haven’t implemented special abilities yet, but I have a few planned. Not sure yet if different characters will have different abilities, I probably won’t have time for that.
Of course, the above description is for the multiplayer mode, which is where the basic idea comes from. However, being just one person it will be very hard for me to properly balance a game for multiplayer (and I won’t have time to make a proper AI). Therefore, I’m hoping to be able to produce a single player mode that works a little differently, where instead of one equally-powerful enemy, you have waves of simple monsters that alter the terrain against you, and you need to eliminate them before losing all your terrain.
That’s the basic idea. I have very little time left, so let’s hope something good comes out of it!
 Which actually makes it much newer than the previous project, which I actually tried to develop back in high school (that’s over 10 years ago). I had a basic engine working, but absolutely no graphics – the UI was textual menus, and the combat screen was made of ASCII visuals. I’m not even sure if it was written in C or Basic.
Characters moving on the screen!
Most of the work today went on tweaking the combat engine, but I started some graphics and animation as well – mostly to be able to better test the engine, and also partially as a break from engine stuff (because let’s face it, making people move on the screen is always more satisfying than seeing a proper arithmetic operation succeeding, even if the latter is still quite satisfying).
One of the interesting things coming up now is ethnic diversity. One of the important graphical features for this game is creating many different characters, in fact infinite different characters – due to the nature of the game, you might get a new member on your team after a while, and he / she might be with you for a long time, so I would want them to look unique and interesting. However, the graphical resources are quite limited of course, so I knew from the start I wanted to make a mechanism for generating random characters – take the existing bases, randomly add clothing, hair and accessories, and randomize all colors so that as much as possible, any one of the many characters in the game will look unique. After all, the game will feature a league with at least 10 teams, each team with 5-10 members, and new characters constantly available for you to hire. Also, when the contest is over maybe I’ll look into making a general tool for doing it and publishing it for the community – I’m sure many people would want an easy way to make a lot of unique characters.
I haven’t started the sprite combinations yet, but my basic color randomization is working. Working only with the bases, this mostly means skin color – and I love the results. Quite unsurprisingly, the characters submitted to the LPC art phase were almost all blue-eyed white people (much of it was probably caused by the base published in the LPC style guide, which I assume most people left unchanged). Of course I don’t have anything against blue-eyed white people, but I think some human diversity would be very welcome:
This is the result of randomly generating 10 characters from the bases, with random genders, skin colors and eye colors (I didn’t constrain it to natural eye colors, but maybe I should prevent getting red eyes, they look a little disturbing).
I hope to use the weekend for final tweaks in the combat engine and more work on the character sprites, and next week I’ll get serious with the team management stuff – which is really the main point of the game.
Tested it today – and indeed, Ring of Marbles works well on Linux (tested on Knoppix). Also, here’s what happens when you release something when you should be sleeping – I said it was open source, but forgot to actually attach the source. So I’m now adding a link to the source as well.
Other than that – Have I mentioned how happy I am with how that turned out? It’s certainly not the most polished thing I’ve ever done, but of all games I made so far, this is the one I enjoy playing the most. Maybe when the LPC is done, I’ll polish it a little and release it as a serious game.
By the way, if there’s a Mac user out there who wants to try to run it and let me know if it works, that could be very nice…