Tuesday, September 28, 2010

Unity 3 is Out

As I was playing a little with Unity 2.6 yesterday I stumbled onto their site and noticed that Unity 3 had just been released! I downloaded it and tried to authenticate the free version but the servers seemed to have become completely overworked. A friendly support mail correspondence confirmed this and today I got my free license authorized. Nothing new regarding auto-complete in their own editor, at least not in java script, yet. I suppose it's a good idea to start working with java script to learn the basics and then move to C# and use Visual Express or something to do the coding which has lovely auto-completion and work extremely well next to Unity.

Bought new darker freezedried coffee, sort of interesting. What I don't like with the darker blends is that it sort of smells a little like cigarette ash in ordinary coffee. Tastes a lot better that it smells though.

Just waved my friend off at the train station. She didn't find any apartments, but she's just started looking on the other hand. Now I'm going to launch myself onto the couch and read up on the business planning course, I believe I'm a little bit behind on the literature. I never liked reading books... except reading all the Harry Potter books on my Nintendo DS (with an R4 chip) the other year. Yeah. I'm kind of proud of that accomplishment.

Saturday, September 25, 2010

Need My Space

Closing the door, leaning backwards in my chair, music in the speakers surrounding me, a small whiteboard at my side, computer humming, feet up towards the wall like in the old days when I lived with my parents in a very small room. A lamp. Maybe a small TV. Some pictures on the walls. Some books on programming and game development in a pile. Knowing that the only one there is me.

Maybe sing or hum or whistle along to some songs playing on the speakers. Thinking things out loud just to hear the ideas and reasoning, to easier reflect on them as they leave my head and then come back again. Knowing that the only one to hear any of it is me.

Only having to bother about when I feel hungry or sleepy, eating whatever I want whenever I need it. Organizing things my way, clearing my head of everything else at the very moment the door closes. Being able to focus on the present or to dream away, getting ideas like before, and not only when I sit under the shower. Being able to work with my job or my own projects, closing out everything if I want to, knowing that when I log out of messengers and the like the only line to me is my mobile phone which people seldom call to unless it's something important.

I really need to live alone. I can't reach my full potential otherwise. I miss the days when I had an idea and then sat down and gave it a decent shot. Maybe I never finished it, but I got far enough to get something out of it. Today, I can't dive that deeply, I can't get into it as much, because I always have someone else to think about. Someone else to relate to, to make sure I time everything with like eating and sleeping and watching TV. Someone that wouldn't like to listen to my music, someone that I wouldn't want to hear my thoughts as I speak them to myself, someone that does something distracting or watches shows on TV when I want to focus, someone that doesn't sit and play games when I'm irritated by some difficult job task that I simply must finish before tomorrow.

It's enough for me to be able to have friends or a loved one over, maybe for dinner, maybe for late nights of gaming, maybe even for several days and nights in a row, as long as I know that at the end of it I get to close the door and vanish into my own space for a while. To retire into my own black box.

This is where I try ideas and thoughts out, where I play out scenarios and events in my head, to see how they feel. This is where I can decide not to get dressed in the morning and stay that way until night falls. This is where I can eat whatever I want just because I want to. This is where I recharge my batteries which makes it possible for me to have the energy to do everything else.

If we live together, we'll maintain that lifestyle together. But there must also be lots of time and room to be alone. Completely, unmistakably and absolutely alone. Right now, I just want to live alone regardless. I'm tired of feeling part of my creativity and motivation constantly swirl down into a drain. There is no rest, I must constantly and actively keep afloat instead of just being able to relax and take a breather.

So there are actually more things on my horizon lately; more potential projects in the pipe. I like that. I'm ditching the course in book-keeping for sure. It was interesting in the beginning but I think I'll let those with a passion for it do it instead. I'm a ways into the business planning course, and I love it. It's in phase with my life and mentality. The Kanji project is drawing closer to an end, at least for my part, and I won't miss it. Another project has just begun but more about that later (again) as everything gets on track. Suffice to say it's game development, and there is not a single shred of academic studies involved for me, and I'll not even be the main programmer.

Currently I'm staring at my work computer next to me and at the compiler errors in Flash. I did something wrong in my code, got an error, and now it doesn't seem to matter if I correct it - it still gets stuck on the same error. I actually added in "vaginachildren" (in Swedish, of course) randomly to see if I could get it to fire more errors but nope, still the same error. I have no idea what it's doing, and if there's something I've learned with Flash it's that you can be sure that the error description you get usually have nothing to do with the actual error. I fucking hate Flash. The DOS based game I made 10 years ago did more than this piece of garbage, and when you did something wrong, you could usually quickly track the bug down and squash it.

I do have my own ideas I would like to cultivate during my free time. But, as it looks, I won't really be able to for quite some time. The little energy I have left when I get home doesn't really have a chance to recharge until I go to sleep.

I will write more about both my job and my own projects in not too long. Maybe not write so much about my private projects as I'll try to show them instead.

Sunday, September 19, 2010

Assorted Minecraft Suggestions

Welcome to AMS - my little insignificant corner of the world to which I'll scribble ideas and suggestions for the game Minecraft which is currently in its Alpha phase. Why here? Well, because I don't have much time to wander around forums. Instead of spamming posts or forums I'll just collect it all here. If Mr. Persson would happen to see it then it'd be great. The bottom line is however when I get ideas I must get them out or I'll burst so it doesn't really matter - I have to get them out anyway. So, let's get started...

Tile Graphics Variations
Each block gets a random number (say, from 1 to 10) attached to it at the time of birth. The tile set artist can then define several (in this example up to 10) different variations of graphics for the same tile. When the game is about to render a block it will check if there's an entry made by the tile set artist at the index that the previously mentioned random number points to. Of course, the artist doesn't have to define more than 1 graphic for a tile, but those artists with really awesome ambitions can add up to 10 variations for all tiles. I would guess that this wouldn't be a very complex feature to implement and it would easily give artists a lot to work with.

With variations, think grass that's not just green but might have small flowers in the textures or spots of brighter or darker grass. Think brick blocks, with evenly colored bricks or some with a lone brick of a darker color. Mineral ore blocks that looks slightly different than its neighbours of the same type.

Waypoint Blocks
Simply craft a certain block that when used will give the player a list of all other such blocks in the world, and the ability to name the currently used block (think something like waypoints in Diablo II except you can build them yourself). Select one of the blocks in the list and get instantly teleported there. Personally I think this block should be really expensive. Say, 1 diamond block in a circle of obsidian or something. Nothing you just build after the first 15 minutes of play. There could even be a cost to use the waypoint once (say, you need to put in redstone to power it, or coal, or milk...) increasing exponentially with distance. Exponentially because that will force players to build several in a sort of line to be economic ;-)

I got this idea before Notch mentioned doing something similar to the Ways from Wheel of Time which admittedly sounds really freaking nerdily awesome... but is probably a whole lot more work, but now I'm just guessing. Then again, who says there can't be more than one way to "fast travel". This might be the easy but expensive way, while the Ways would be the less expensive but butt-hurt difficult way.

Lava Powered Furnace
Just because it looks bad-ass, I have placed all my furnaces at the end of a stream of lava. It's like Ironforge, or whatever. From the moment I did, I had always wished that the furnaces would actually get power from just being in contact with lava. Notch did introduce powering furnaces with buckets of lava which is cool, but rather quite expensive in my opinion. Then again, getting infinite power from a pool of lava might be too cheap. Uh... balance it by making adjacent-to-lava smelting go slower? I don't know. I do kind of like the need of going out to find and mine coal though. Then again, you'll always need coal in large amounts anyway to make torches and you'll not have lava around at all times either so you'll probably power most of your furnaces with it anyway.

Election Cheating, as usual

And of course, some people around Sweden responsible for putting up boxes with every party's slips and gathering the votes have started cheating this election as well. They do this by placing the box with the "normal" parties first and then placing the "other parties" box a good distance away from them. Some even hide these boxes, or refuse to put them up altogether.

They usually claim that they didn't know better, and traditionally they get away with it because there's always someone else who told them to do something or some other until the point when the trail stops cold. It's of course they themselves that decided to do what they did but find it easy to just wave it away and disclaim responsibility. Much like Socialdemokraterna when Moderaterna passed the FRA-law (mass surveillance of the Swedish people and the ability to sell this information to other nations as the government sees fit - I'm not even kidding, this was big news in Sweden by the time), and many from S claimed that they were opposed to FRA even though it was they who had began the work of passing the law in the first place. It sometimes gets reported and the case goes through some procedure of envelopes and folders and "investigations" by some of the same people who doesn't mind election cheating, and yay, corruption.

Stop cheating, you cowards. Yes, you are cowards, and should be punished severely for it. You, personally, not some theoretical person "above" you that "misled" you. You know the facts and rules, then keep to them.

You can't limit freedom of speech and opinions without removing it altogether, and that's like saying "I don't like democracy". No, you don't get to put an "if..." after that sentence. There'll always be people who thinks in other ways than you do, and you can't justify dismantling what you think is democracy just because you don't like their opinions. I wouldn't want anyone to remove SD's (Sweden's nazi party) slips from the tables either even though I completely despise them and their endless hypocrisy.

Link in Swedish:
Some random election cheating on tape from this election, 2010.

EDIT: I just came back from voting and I must say, I was positively surprised about how perfect that particular place handled everything. All parties sharing the same box. A bit too perfect even; as Piratpartiet had snatched a place at the front of the box. Voting went fine, a lot of people there voting so it took a bit of time. Hopefully, the cheating that IS going on is not that common and hopefully most voting places handles things as good as mine.

Election, and Eventful Week Ahead

So tomorrow will be a sort of a dust off for the upcoming week. It starts with doing some final touches on cleaning the apartment, then meeting Syntium at the train, and afterwards probably lots of walking around in the city, buying food for the days ahead, etc, and pizza of course. Then before it's too late it's time to put my vote for what party I think should sit in the Swedish parliament.

I'll vote Pirate Party ("Piratpartiet") by the way, and I strongly disagree in that it would be a "wasted vote". Many Swedish citizens strongly dislike the recent shameless introduction of mass surveillance ("FRA") and how the entertainment industry (or rather the panicking middle-men of the entertainment industry) bought themselves far too much privileges to act as a privately owned police force ("IPRED"). Not to mention the upcoming ACTA treaty and the data retention legislation (or whatsitcalled) that will for example effectively turn your mobile phone into a tracking device (with a long and convenient history) for the government. Add to this that "We promise we're not nazis"-nazis ("SD") are blatantly marching into the political arena in Sweden with all sorts of anti-foreigner/anti-homosexual views and values. Do we really want a perfect control and tracking system in place that keeps track of where you were when you spoke to who and when when they get a seat in the parliament? In fact, do we want such a system, period? (The answer to that is No, by the way, we don't want that.) The government should be transparent to the people, not the other way around.

Regardless if the Pirate Party actually gets a seat in the parliament in any way, every percent of votes on them will make a clear mark that these questions are very important for a lot of people, and that the established parties can't keep ignoring these questions. The thing is that during the debates leading up to the election, there have been an active strategy not to bring the subjects of mass surveillance and private police (among other things) up. Naturally, since both the left and right side really want the same thing. The left side just call it that they'll "tear the mass surveillance down... and rebuild it but with new make-up so that you'll actually believe the bullshit that the mass surveillance is protecting your integrity or whatever". It's like saying hey, I put a camera over your toilet - but it's ok, it only records in black and white.

Yes, they are a focused party without an "all encompassing" political agenda. For some reason, some people claim that voting for such a party is an irresponsible thing to do. I don't understand that, because at the same time, when asked these people don't even know the entire agenda of the party they're voting for. So, I know my party's agenda and views, agree with them 100%, and I'm the irresponsible voter compared to someone who doesn't even know what they're voting for?

It is true; the Pirate Party's tactics is that they'll "sell" themselves to the side/party that are prepared to give them the best deal. In exchange for a strong voice concerning the Pirate Party's core principles in the parliament, they will automatically vote for whatever their "host" is voting for. Admittedly this is a bit scary, but it's a risk I'm willing to take. If I were to vote either right or left (and don't kid yourself - a vote on any left-wing party is effectively a vote on S and a vote on any right-wing party is a vote for M), I know there are hidden agendas and I know I'm actively and directly giving my support to people with views that I simply don't fully support. Both sides have huge faults (namely Thomas Bodström, the ultra sex moralist, and Beatrice Ask, the woman who suggested punishing people suspected of having bought sex by sending specially colored envelopes to them for the neighbours and family to see) who are probably secretly dancing naked hand-in-hand over meadows (metaphorically speaking of course) after their success in... "protecting" us. Guess what positions they held/hold (respectively)? Why, minister of justice, of course. What better place to put them than where they can do as much damage as possible.

The bottom line; it is certainly not a vote wasted. It's one of the most deliberate and concrete stands one can make in this election (the other one being the racist party probably even thought they seem to want to embed their true agenda in an all encompassing political bag of garbage like everybody else).

Anyway, after the voting there's bound to be a bit of chilling and whatever followed by bed and then Monday. That's when I'm going on a tour at Karlsborg's Fortress, but first there's probably a bit of showing J around town/the apartment/whatever. Again - if anyone knows of any nice apartments that she could rent, give me a shout.

Now, bed!

EDIT: Oh and apparently Minecraft has a free-to-play weekend while the developer Notch sorts some server hick-ups out. That means that you can download the game and play it until he's fixed things without needing a payed-for account! Get hooked! Join us! We have bread and sheep!

Saturday, September 18, 2010

The Day After Tomorrow

I'm about to go to bed, but thought I should write a little first. Tomorrow is Saturday (actually, it's Saturday now but for me it's still Friday until I've slept) and that's the last day before my best friend Julia comes to stay for a week. It was ages since she visited and I'm really looking forward to it. She's coming to look around for an apartment as she's decided to move from Kalmar to Skövde. A much needed move I must say, both for her and for me as well.  This town would just feel so much more like home would she live nearby, just a few minutes away and not several hours and several train rides away.

I'll take this opportunity to recommend the website of her book (it is at the time of writing only in Swedish). A few years ago she released her first book. It's about living with schizophrenia, about how it all shaped her childhood and growing up, about finally getting her diagnosis, and about a journey through a living nightmare until finally practically conquering the monster and standing strong.

I totally love you, J.
You're a great inspiration and the best friend I could ever dream of.

If anyone knows of any apartments (for rent) in Skövde, preferably close to Östermalm, then give me a shout! Regardless, visit her site and perhaps Flattr her if you like what she's done why don't ya!

- - -

Next week I'll get in contact with that Flash-developing company that were supposed to "help out" with the Kanji project. I'll try to understand how things are planned for once and see what I'm supposed to do now that the absolute majority of the application has been scrapped and remade. Considering I'm creating modules for the old application at the moment it feels a bit... broken.

Little school next week; like 2-3 classes and a trip to Karlsborg Fortress to take a tour, so I'll have lots of time to wander around town with Julia looking for apartments and letting her "taste" Skövde some. Seriously looking forward to it. It kind of feels like the first time I get to relax in a long while. Not that I won't have lots of things to do with school and work as usual - she just has a unique way of soothing me just by being close and by being happy. Hard to explain. It just kind of just is.

Now I should probably go to bed.

Tomorrow there's apparently supposed to be an update for Minecraft. One day late, but that's fine. Better new features a bit late and good than stressed and broken (or worse - without soul). People should really slap themselves and remind themselves that Minecraft is still in Alpha and not in Beta. Anyhow, looking forward to anything that enriches the already awesome experience.

And remind me not to buy potato chips again. I don't know why I do it. Every time I eat them it's like dropping little grenades into my stomach. The pain and bathroom occupation. Stupid.

Friday, September 17, 2010

Run Over

So, today I found out that my project leader (for the project I ranted about here) had taken the professional flash-developer company that were hired to help me finish the almost finished project, cut almost all communication with me, and gone ahead and told this company to do everything over from scratch (without looking at the existing code) because apparently a few bugs in the interface naturally means that EVERYTHING is broken (oh my god, one of the walls of the house isn't painted so let's tear the house down start over). The entire system, with assets and kanji database and everything. So... I don't really know what I'm doing at this point, and my employer (who hired me to do this project for the external project leader) just shake their head and wonder what's going on as well. More on that later probably.

Also, getting slightly run over at home as well. I'm so tired of getting less than half of what I'm asking for which is already relatively little - while giving my time, my effort, most of my money and now my sanity.

This has got to end, and I promise - I'm keeping my dignity.

I'm quitting one of my courses, the one about book-keeping. It's just not my thing, but it feels good to have gone to a few classes and at least learned some basics. I might not understand exactly how, but now I understand why. I'm still attending the course in business planning though, and it feels just up my alley. During last class's discussion about whether or not various business ideas would work I think I might have been a bit too eager to talk to be honest.

I love business ideas, and I tend to see possibilities and opportunities in things that others just frown about or see only problems that in my eyes are usually quite easy to work around. I even get frustrated when I see friends with obvious possibilities for success and they just... don't. I have a friend that makes awesome music, good enough to be able to sell easily and with a great shot at becoming popular at services such as Spotify but... nope. Or, my partner here, who is creative and has proven that he is able to produce accessories and even clothes that others say they love, and if he tried he could probably easily make a few of these a month and make a nice bit of money at it but... no. And it just goes on and on.

Personally, I feel I often have ideas but seldom the power to make use of them, something I'm hoping to change with the courses I'm attending and the upcoming project (which I'll get back to later as things progress). I believe I have an eye for seeing when an idea could potentially grow and kick ass, and when it probably would be a waste of time and effort.

Time to sleep.

Thursday, September 16, 2010

Buttons, Game Maker and Learning

Today I dug up a small archive of buttons I made for Game Maker in 2009 partly with the intention that the archive could be a potential resource pack for others, especially for educational purposes. Partly for my own use but I've not gotten around to using them yet.

If you find it interesting, you can find the zip archive for download here.

During the summer of 2009 as well as 2010 I worked as a teacher at Balthazar in Skövde where I taught kids how to make use of Game Maker in just a few days. I created a bunch of other assets for this occasion such as background images (simple photos that were darkened and blurred in order to provide interesting colors but nothing that would stick out too much and disturb the foreground of the games). Little did I realize however that the kids really liked doodling away and create their own colorful Paintesque masterpieces, so my backgrounds were only used by me in my demonstrations...

Now, the buttons weren't really made for these courses obviously. We're talking about kids at the age of 11 to 13 who had never sat with Game Maker before; they would probably not be creating their own editors with custom buttons inside Game Maker for... well, years. I made these for a slightly older audience mainly and put them up on some Game Maker forum. I also made an official looking banner for the post and everything! A bit overkill perhaps but it was fun (and I got to do some actual pixeling! I haven't done that since my old drawing app in QBasic!)

Personally though, I'll start moving more or less completely to Unity3D. I like playing around with Game Maker, but the things I do require some additional functionality that Game Maker simply doesn't give, especially 3D and physics. I will not give up Game Maker completely though - if nothing else it is a great educational tool for people who knows little to nothing about game development and/or programming but would like to learn, and I don't know why but I really liked teaching Game Maker both for students at the University and for the kids. Vastly different experiences and crowds which made it all the more interesting.

A funny little thing to note is that the first thing I taught both the university students and the children was to make their own Pong, and it was perfectly suited for both groups but in different ways. The university students  got a grasp of the workings of Game Maker quickly with a familiar game concept touching most parts of the application. The children, while obviously learning like sponges, got to make a simple game together in pairs that they could feel part in making even if only one of the kids happened to do all the actual "creating", as they would both get to play it. Another advantage with Pong when it came to the children was that I sort of guided them into the whole "competitive game" concept from the start. Why, you ask? Because programming computer controlled enemies is a b-tch and opens up a world of problems and an ocean of wasted time, and we only had four days to go from 0 to 100. If they would get stuck trying to make monsters behaving correctly they would know how to at least have fun with only players as actors.

Ah well, enough reminiscing. What I wanted to say was that I like that more and more people, especially kids, start making games and I think Game Maker really is a perfect place to start regardless of age. And I kind of get a kick out of helping people understand how systems work. I personally love when it clicks in my mind and I simply "get" something, and must say I love it when I can cause that effect in others as well.

Does that mean I want to become a full time teacher? Hmm... no, I don't think so. I'm a game developer primarily but I would probably love to teach somehow on the side.

Wednesday, September 15, 2010

It is dangerous out here, I wish I had a map

It's good to plan things ahead.  Designing games or any other system is, for me, a sort of planning. And designing takes a lot of time. You want to start building a system that will not have to be changed or remade after a little while but can instead be adapted easily. It needs to be smart and cover all the functions that you want from it and it needs to be easily extendable. This requires an overview of the project as a whole - you need to know everything that the system will need to do in order to plan a coherent system.

...there will be lots of it!

You need to know what a house needs to be able to "do" in order to be able to draw schematics and blueprints where all the walls, doors, windows, electrical lines, water pipes, roof, stairs, kitchen, toilets are all simply working. You can't just start building something with half the knowledge of what the house should look like and contain - that would be crazy. Suddenly you might realize that you forgot to put in a bathroom, or space to have stairs when you're supposed to build the second floor. It would be a bit absurd.

Say you build a house and after building the first floor your boss suddenly tells you to put one extra window in every room on the first floor. It's not only to cut holes in the walls and place windows there, the windows should probably be placed where they give the most light to the room, the best view, allow for good furniture placement - all the while keeping in mind where electrical wiring and pipes are. Maybe you even have to rewire some electricity in order to put some of these windows in, which might need a re-planning of those systems in the house as a whole.

It's kind of the same with software production. One project that I'm working on at the moment involves teaching Japanese Kanji through an e-learning application. The idea is rather simple. You log into the application and are presented with a bunch of lessons that teach Kanji. You can then take small challenges (minigames) in order to prove how much you've learned. Then, the application keeps track of your progress and unlocks further lessons and minigames, and so forth. Sounds simple, but that explanation is like saying "we want a red two floor house with 5 rooms, a bathroom and a kitchen, a balcony and a gravel pathway to the black front door". It says nothing of how to actually structure everything, how things should interact and work together to form this intended result. That is where architects come in and make sure everything is planned before construction starts.

When it comes to software and games it seems like this planning stage, the drawing of the blueprints, is often overlooked. Inexperienced people tend to want to go from the above description of the result and then say "hey, what I want is really quite simple, so just start making it and if you start now shouldn't you be done with the first floor by the end of the week?". No... no, I won't. Not unless I've done this exact same thing before and/or simply just have a huge repository of already-made parts for me to just puzzle together - and even then it needs planning because I won't know what parts I need until I've figured out the underlying system as a whole anyway and that takes time!

Of course, there can actually be too much planning as well in some circumstances. An old article at BoingBoing explains it beautifully. In short, sometimes one should just go for it, and not plan and mentally test every single part of the project before construction starts. In some cases it's good with a portion of randomness and exploration in order to, for example, find some new game play concept. This sort of requires that there is no really concrete destination in the first place so it's slightly off-topic when it comes to my rant.

The project I'm working on now is sort of like a nightmare in that aspect. It is an interesting project, but the longer I work with it, the more work is required by every little change or addition to the end result. While it's probably possible, it has become extremely difficult to keep everything "in my head". When I code I comment like an angel, and I'm not kidding. I almost always comment my code as if someone else is supposed to read it even though I know they won't. Regardless, after a while the project becomes so huge that it's impossible to remember how everything works because if you try to follow the workings of the code you get lost sooner or later when the code forks into lots of functions and loops and other classes - not to mention files in entirely different editors (AI, XML, AS, FLA, PNG, etc).

...I need some.

An example of how the frak the application I'm working on works; the Kanji application has a Main class that keeps track of showing and removing sections of the application as the user navigates between them. This could be from showing the splash screen, login screen, grade and progress overview, minigame overview, lessons front page, lesson slides, minigames themselves, and probably some other things that I've forgotten right now. There is also a parallel class named Database which takes care of loading all the information about hundreds of kanji and radicals from a bunch of XML files, and offers functions for the rest of the application to fetch important information about kanji or radicals. Such as image URL for kanji, what radicals a kanji uses, what their image URLs are, what their public name is, what lessons are referred to in a grade, what kanji is referred to in a lesson, and so forth. Not to mention, the Database sends information to the lesson section of the application.

The lesson part takes care of showing lessons, which is a package of a few kanji and their lesson slides. Each slide is defined in XML and tells where and when to show video, still graphics, text and when to play sounds. It can also define buttons and make every other item clickable as well. Video and sound can trigger the application to move to another slide when they're done playing, and some of the slides are hidden to the user until automatically navigated to, and so forth. This is a system that admittedly still contains a few bugs (namely in the preloader part, which is actually a whole different part of the application...), and is one of the most complex systems in the application. Of course, from the eyes of the user, this is simple. The sucky part is when an employer sees it in the same way. Then again, it is understandable if you've not worked with programming before (or Flash and ActionScript 3 which... no I won't even go there right now). It doesn't make it any less of a problem though.

Now I could go on to explain in detail how the asset loader works, how the rather huge file archive is organized, how the XML format is structured to be easily readable and modifiable by people with little computer experience, how the Database works to tie different heaps of information together (grades, lessons, kanji, radicals) while not completely crashing every time there's a slight error, and how the player progress class works with the Database and challenges to find out what kanji to send to the challenges and what progress data to update when a challenge is completed without forming a weave of spaghetti (instead of a spider-web of connections between the classes they send clean and and as stand-alone data they can), etc. But that feels hardly like an interesting read, even though it would be rather therapeutic to write about... ah well.

The biggest problem with this project is that the planning and construction of the software needed to be done at the exact same time in order to have a chance to keep up with deadlines and milestones, while at the same time updating and changing the vision of the end product. This is like starting to build a house before having all the blueprints of the parts you are building, while at the same time getting new updated blueprints of things you've already built. Every time some new addition or change is made, you need to go back and make a new plan of how to change/adapt both the existing plan, what you've already built and the new change so that they work as a whole.

This means that the more the application grows and the more complex the system becomes, every change and/or addition to the intended result requires more and more work to incorporate - even when the change might seem small. Add a light switch to the other side of the room as well? Sounds simple, but naturally requires you to put electrical wiring in the walls to that place, etc. The more actual construction you've made, the longer it will take to change it. You can relatively quickly change a blueprint (but as I said, even that might take some time and work).

...sadly has nothing to do with this.

At this point, the system is huge. I slammed headfirst into a concrete wall the other week as I started building another fairly simple minigame for the project which was in my mind just a slight alteration of one minigame that I've already made. A form of quiz. The first minigame showed kanji images and had the user type the correct translation. The second would simply show the kanji's radicals (parts) instead. Somewhere when I planned how the lessons worked and how information was stored about kanji and radicals I had taken a slightly wrong step. The Database (the part responsible for keeping track of kanji and radicals and their relations) can happily regurgitate what radicals a kanji contains, and even with some simple cross-reference searches through the databases find what kanji a radical is used in (as many radicals are part of many different kanji), and what humorous illustration to show to explain the meaning of a radical. But - the database has no idea what a radical actually looks like! This was a gap in the planning of the XML structure way back, when I decided that it was impossible to store any one image for a single radical in the radical XML definitions because of the fact that one radical could look slightly different in different kanji. So instead, I let the kanji contain all of its individual radicals. This worked perfect when manually defining all the lesson slides, but now when I need to ask the Database what image is which radical... it has no idea. It can make guesses that would probably be correct most of the times, but that's hardly good.

So, what do I have to do in this case? The easiest way proved to be to go through 20-30 XML files, find out what image frame is used for which radical in every kanji, and make new sections with XML keys (or tags or whatever you call it) in each kanji, defining in an easily fetchable way what I need to know.

Again, might sound simple, but not only did it take a while to get to that conclusion, I've noticed some cases where I know this won't work. Some kanji seem to use radicals that aren't defined in the radicals XML files, and I have no idea why that is since I wasn't the one writing most of these files (we actually hired someone to do this for us a while back so that I could concentrate on coding).


I would love a map right now. It seems that if Flash doesn't give me little random gifts of unimaginable inconsistent stupidity, then the system I've made so far just confuses the fudge out of me. It's big. At least for one person with no previous experience of making anything remotely similar. And when I work with one part of the system for a long time, I start forgetting exactly how the other parts work. This is fine, as long as they do what they should, but then you realize - such as in my latest problem with the radicals - that you need to dive into these parts again to make changes... without messing anything that works up.

Sunday, September 12, 2010

About signatures and living in the future

I might have managed to make the Flattr work since it no longer says "Inactive" on the individual post pages, but there's really no way to tell. That's until someone stumbles onto my site with a Flattr account and finds my rantings interesting enough to click one of the buttons. I wish there was a way to just test it myself, to simulate a click just to see if I've got things right. Anyway, doesn't matter much if they're all the same anyway for now, it'll just look a bit strange.

Also, I've been playing around with my site banner. Can't really decide which one to pick. I like clean and simple, but I also like to have footprints somewhere in it as well. The one with the print in the "o" was my first attempt at incorporating the symbol but I'm not sure. I like the middle one most at the moment of the two with prints, but I really like the first one with only simple letters. Maybe I should try some other variant where I don't touch the letters...

Oh, and I like living in the future, by the way. I'm watching Chris Hansen "To Catch An ID Thief" on YouTube on one screen, fiddling with my blog and stuff on the other, and working on my work laptop at the same time. On top of it I'm only using one set of keyboard and mouse on both computers through Synergy+ which really speeds things up. And, in the end, everything I work with gets saved onto Dropbox serving as a simple shared folder on both computers so there is no need to send files over using ftp or usb-memory sticks or whatever.

EDIT: Huh... As I forgot to put a title on the post at first the Flattr button said "Error", but none of the others did. I guess that's a sign that it probably actually works. I just thought I'd see it appear in the list of my submitted "things" on Flattr. Maybe that's just for manually added things?

EDIT: Added a quick forth version. Can't sleep. Possibly too much coffee today, even though it was hours ago I had my last cup. There's admittedly a lot going on in my head at the moment though.

Let's try something new

I just registered with Flattr, a sort of microdonation service. I got an invitation for it once that I didn't use until now. I don't know, maybe it's not invite only anymore. Short explanation of what it is... You deposit a bit of money to Flattr, and tell Flattr to take a bit of that money each month as your monthly Flattr amount. Whenever you see a Flattr button on someone's site, you can click it to give the owner a slice of that monthly sum that you set aside. Every click during that month will give a slice, but at the same time making the slices smaller - the total sum will never exceed the monthly amount that you set aside (the actual money won't be transferred until the end of the month). By depositing some money, you can put Flattr buttons on your own items (blog posts, stuff like that). An interesting and easy way to give some love to the things you like without the risk of losing control of how much you give.

So anyhow, I just hope I did this right. I followed some tutorial, pasted some code here and there, and here we are. Suddenly there are Flattr buttons next to each post title. Hopefully they're all unique and not all the same button... I guess time will tell.

I'm dead tired. Looking forward to not setting my alarm and just sleep because it feels like I need it. Tomorrow I have work to do (I'm trying to make a minigame work in the Kanji project) and the upcoming week will probably be quite intense. School gaining momentum, new projects starting up, trying to conclude some overdue things in the Kanji project, preparing the messy apartment before my best friend arrives next weekend. It feels like I have it under control though.

Looking forward to start playing with Unity more on top of everything. Oh, and play more Minecraft (which incidentally was my very first Flattr)!

EDIT: Crap, it seems they are all the same button, and that they only work on the main page - otherwise they're inactive. I get that, since I added the main page as a "thing" on Flattr, but I have no idea how to fix that. I could add all posts manually to Flattr which would probably make the individual pages' buttons work, but that would still not change the fact that the main page showing a summary of the blog will show an other Flattr button on each post. It won't make any difference for me nor anyone who decides to Flattr me, but it's comfusing.

Saturday, September 11, 2010

Dusted off the old blog

A redesign of the blog with brighter colors, and a whole lot of spam comments removed. I guess you could say I put out the old duster and cleaned the place up a bit. Before you read any of my older posts and say to yourself "hey, how can he claim to be any good at interface design with light gray text against white background" or something - my previous blog theme was mostly black, and I just don't care to change all my old posts and fix their coloring.

I'm currently working with Kanji Academy still - an e-learning application that teaches Japanese Kanji symbols. I only have two more months to go, and truth be told I'm quite looking forward for it to end. While it started out fine, it has turned into a strange grind of perpetual changes and updates and on top of it all Flash and ActionScript 3 is simply not... good. I honestly hate how it makes the simplest of things a bitch to do.

I'm also currently studying book-keeping and business planning. Over the years I've come to realize what I am and what I'm not, and cannot really see myself working in a bigger company - at least not yet. It's not that I think I couldn't pull it off, I just feel like I wouldn't be comfortable doing it for any extended period of time. I have a different way of thinking and quickly feel frustrated when people gets stuck in a "this is the way it's always been" mentality, and I'd rather try doing things my way for a while.

I do have other projects "in the pipe" so to speak because regardless of what I do I need money to live and survive, but more of those things as they progress.

On another note; I really wish to promote this Indie title: Minecraft

It's a game about running about in a randomly generated world, mining, building things, exploring, landscaping, and trying to survive the monster filled nights. Beautiful, kicks AAA-titles in the face, and I've probably spent close to 100 hours playing it so far. Also, it is the scariest game I've played in years next to Silent Hill 2. It's so extremely spot on and is one of those games that would NEVER be planned, produced and released by any conventional larger game company - it's just so different from today's usual games in every aspect.