Dienstag, 26. August 2008

How to enforce copyright?

So, there is a kid on youTube that used one of our logos as a backgroundimage for his profile site. No big deal, however we would like to have been asked. BUT what the kid did shows he is a tad bit unexperienced about good manners. Not did he only use our logo without asking, but he linked it from our server and generated quite a bit of useless traffic, without even providing a link to us. So what I did is change the image to another one promoting the sequel to the game whose logo he 'borrowed'. Lesson learned Zack?


Samstag, 23. August 2008

Beta testing - how it works

When developing a computer program, the people creating the software try their best, to keep annoyances as far away from their users as possible. At least if they have a good user experience in mind. There are huge companies that manage well, however my experience is that you find the biggest enthusiast among the independent software developers. Usually these people write solutions for common problems that are not, or have been not available from the shelf. But regardless if it is a major company or the one man home based tinkerer. They all rely on user feedback. And here is how it works.

The program is written and run through inhouse tests. These test are human tests and ideally so called unit tests, which are highly automated. Basically the program uses itself and writes error messages to a log file if it encounters any. In good software design these test are handled by some Quality Assurance guy. It really is a good idea to have the program tested by someone who has not written it, because intuitively a programmer will avoid behaviour the causes the program to bitch one him. If it does, he fixes what he sees. However there are ways a program can be used that the programmer has not thought of before. (Hand a bunch of impatient school kids a game and see what happens), so if a programmer has the chance to let other people test his stuff, it is a wise idea to use that help.

After the inhouse tests have been passed, the so called beta test phase starts. Usually copies of the program are handed out to people the creators know and trust. People that have provided valuable feedback before. In the case of the independent software developer it usually starts out with fellow developers, friends and family.

If the developer is lucky, he has a loyal userbase of other programs he has done. Phase 2 of a successful beta test lets these people access the test versions. Larger companies usually set up a bug database where registred users can post messages describing the problem through a web interface.

Phase 3 (even though it is often skipped due to time pressure) is running a completely open beta test. Once the obvious quirks are ironed out it is a good idea to have the program tested by a wide audience. This step is important to polish the shipping version and usually reveals one or two major flaws that have been overlooked beforehand. It makes sense to have a program tested on as many different computers running as many operating systems as possible, or support only a subset of the machines and OS that are on the market.

All 3 phases have something in common. They all rely on the testers giving feedback. So le me take the chance to thank all the people that helped us through the phases where coders run around like headless chickens, QAs are banging heads on desks and marketing would love to rush it all. You people really help us to do a better job!

Thanks.

Freitag, 22. August 2008

What I am up to today

Hi,

time to finally get started for today. :o)
Been drinking coffee and running my head around ideas for the upcoming stuff. I just did not translate them into code yet. These are the parts of my job as an independent software developer where my spousal unit tells me I would not work too much for the money I earn. Grmbl.
Well, I DO like drinking coffee and I am a bit lazy sometimes. But I try to stay productive *g*
Seriously. At the moment I am going through a phase that requires a lot of thought. We are currently *drumroll* finishing Zacharias stone. However finishing does not mean we will be shipping too soon. Finishing means we are ready to give the game to our quality assurance guy. After he gives his thumb up we start doing a so called beta test. I will tell you a bit more about how that works in a later post. Now I need to write an email to the artist that draws the graphics for the game after zacharias stone. That will be a nice one and a good opportunity to blog about the way we build a new game from scratch.

Bye!

Malte

Donnerstag, 21. August 2008

Deciding on music is sooooo tough

Ok, Zacharias Stone is making progress. I just finished a basic AI that plays the game in demo mode. It places the tiles in a way that is almost logical. I will need to fix the mechanics a bit though, as it loses all the time. *sigh* Shall discuss this with the rest of the team. However, it is time to decie on the kind of music that will be featured in the game. I have 3 tracks, but none of them seems to be the right fit as yet. I´ve uploaded the tracks to our myspace page. Maybe I will try to make another track and upload it tonight.

Mittwoch, 20. August 2008

The phone

It rang all day. Today has been pretty uproductive code wise, however it was necessary to alk to clients about future projects. Most of the are going on hollidays now. This will allow me to work on our own stuff with the team. Good thing. However it is a good feeling to know there will be stuff to do that puts food on the table when hollidays are over. Really good.

Dienstag, 19. August 2008

Done

Wonderful. The XML problem appears to be fixed. At least I can not reproduce it. Of course that does not necessariely mean it does not exist. Maybe I should have written a unit test, let it run for an hour or two and then leave the room without looking. However, as I told you earlier, computers are nasty little creatures, so it would not break, because I expected it to. My machines today are very well behaved though. I tested the XML stuff on 3 different operating systems and it really appears to be working. Also I finally managed to provide another client with an update to their software. And it is only 3 pm over here. The taste of success.

Talking to the artist was not too effective yet. I should receive the first sketches this evening. So I am really curious how it will look like.

However,

back to code with me.

Doing consultancy

Just got a call from a client. I need to do some research today to solve an XML problem. This will take me a while and I am not sure how much I´ll be able to write today. Once I have figured this one out I will go looking how much progress has been made with the other projects. I will need to call our artist to see how much progress he has made with the graphics for the game after Zacharias stone. That one will be cool. However the artist for that game is pretty busy with his new venture. He set up an online shop, where you can buy posters and other fun and lifestyle articles. The site is in german, but maybe some of you are interested in stopping by at gofrog.de
Really some good stuff there. I will keep you posted on the game graphics ASAP.

Hmm. basically I just wanted to post a quick note, that I am unlikely to write much today and I keep blabbering again. You see there is always different projects waiting for us, so I better get my act together and go back to code.

Laters!

Montag, 18. August 2008

What I have done today.

Today was a bit lazy. Family went on vacation and I feel like I should have gone with them. Tad bit hard to focus. I have been working a bit on the latest awesome mega mighty game. Zacharias stone. Our artist and me have discussed the different screens during the game recently and I have been working on the startup screen. This is what it looks like:

What does it take to make a game?

We like to create stuff that is fun to use. This is just the way we are. If we create a program we want to use it ourselves. If we create a game, it is because we want to play it. That is why we put a lot of time into thinking how to improve gameplay. Even though eye candy is nice (we DO love looking at nicely rendered real time 3d explosions!!!) we just think it is not what makes a game. The ideal game should reward its player. It should be addictive. Let´s take a look at drops!


This game has been tweaked and optimized since over a year. Version 1 had the bsic gameplay. However there were not many challenges and the scoring system was not rewarding enough. So we hired an artist to draw us something pretty. Once that was done we were thinking of ways to improve gameplay. The original version was addictive, but the introduction of time based challenges added so much. The early test versions were written in a couple of weeks. However that was just the beginning. we went through a very long phase of beta testing and made many changes on players feedback.

Why don't you just give it a try and tell us if you miss the eye candy?

So, what is an independent software developer?

An independent software developer creates, as you might have guessed, computer software. The difference to other software developers is, that he does not have a job. Let's face it. :O)

Seriously, there are different reasons why people decide to become indepent developers. I am because I am a specialist. I found my niche using a development system that is not yet wide spread. I learned a programming language that most people in the industry might have heard about, but not yet have used it themselves. I am using that system on a dayly basis since 2002 and am one of the folks in germany that train new developers and help out coding for other companies. Besides that, my company creates casual games. Those little games you enjoy playing during your coffee break. We have created an add on to our development system, that takes the hassle out of creating animation and solving geometric problems. We create software all the time. And we help with many different exciting projects. That's what I love most about my work as independent software developer.

Are we into websites? No we are not. If you are searching for someone to create a beautyful homepage, we are not your choice. We use internet technologies, we just do not build homepages ;-)

Hello world

Hi there, it's me.

My name is Malte, I run a small software company.
I would like to tell you how I try to manage to make a living as an independant software developer. If you ask yourself what an independant software developer does, this blog is for you.

We do stuff. We try to help people feeling at home with their machines. Means we develop software. Those icons you click when you want to write a letter or play a game, you know? ;-)
That does not make it magicians or HARDWARE engineers, though. If you want to ask us how to fix your Windows installation or get us into a debate which operating system is "better" or might want to drag us into an Open sauce war, I am afraid we must leave you with a *shrug*, because we simply do not know how to fix it or just are not interested in going that route.

We create computer programs.

In this blog I will try to explain a bit how that works. I hope you do not run away screaming.
I will not try to train you creating Software.

Unless you ask me to. I am not going to talk about writing code, so if you are someone looking for information, how to use the devlopment system we use most of the time, there are other places. Of course you are welcome to read on and I surely would be happy if you would, but this is not a classroom in a (mac)book.

I want to try to explain what computer programs are, why you need them, which one you may need, or just find entertaining. I would like to explain how things work behind the scene. I will let you look over my shoulder, to give you a bit of the bigger picture. I do not mean to annoy anyone. I will not be breaking any NDAs. I will not show how you get code to work, but what it takes to create something that works.

A computer program tells your machine what to do. Well, maybe "tell" is not the right word, it is a bit more like asking
"computer, would you pretty please do me the favour to display a field, your user can type into? I know you might have other stuff to do, but if it is not too much hassle, would you please?"
Other programmers might be a little more harsh than us, trying to play master and servant with your computer. They command them in languages more close to the computer mother tongue. I am in doubt most people would enjoy learning those commands. Trying to write computer Software is not for everyone. It may be for you and I encourage you to try, if you feel any interest in making software. However, one shall not forget that computers are nasty little creatures. Sometimes they are just bitching on us. They will refuse to cooperate for a long time, giving us strange messages or even crashes. Sometimes they are nasty enough to pretend to be working, just to play a mean trick on you while you are not looking.

Our job as software developers is to convince machines to behave. That is what we do for a living. And it is not always an easy job. Sure, we coders aren't paid badly. We make a decent income. This allows us to raise families if we want to.

Enough for a Hello world post I guess, otherwise I might be accused of verbosity, like so often.