How to make a browser game

Introduction

This page informs the reader about the process of browser games production.

About the Author

Highschool
I started with programming when I was in highschool. I had a Texas Instruments calculator for mathematics class that I also used for programming. The very first game that I made was a small text based game somewhat similar to Alone in the Dark. I sold the calculator to my math teacher. This was my first step into programming.

O'Reilly books
It wasn't until years later that I started to pick up on programming again, or rather scripting, when I was a Geography student at the university of Groningen. I got bored with some of the online games that I played, so I figured I should make my own game. I downloaded some O'Reilly books with Bittorrent. I first learned the basics of Javascript and HTML somewhere in september of 2007. It took me a few days to learn HTML. I found, that the hardest thing to figure out, was how frames work. I had a lot of trouble with that, until I came accross an online HTML tutorial of W3schools. I eventually made a map and a calculator for a roleplaying game on a now discontinued forum. It was easy to cheat in that game, because there was no way to check if the reported dice roll of the player was true, or false. So I knew, I had to learn ways of tracking and storing this. It is then that I knew, that I needed to learn SQL and I found out that the easiest way to work with SQL was with PHP. I downloaded another O'Reilly book about PHP and SQL with Bittorrent and I thaught myself the basics of PHP and SQL. PHP somehow came quite easy to me, more so than javascript, so it was easy to learn the basics of PHP.

My first game
Somewhere around november 2007 I started working on my first online browser game. I called this game Shugo after the Japanese word for governor, which I thought seemed an appropriate title. It was a really simple game that somewhat resembled Shogun Total War (one of my alltime favorite games). It had 65 provinces and players could pick one of about 80 clans and build a castle and recruit 6 different units. I did most of the scripting for Shugo during the Christmas holiday and I had a rough version of the game ready in early January of 2008. Then I waited and searched for a cheap webhost. I found a really cheap webhost called starthosting which wasn't that great, but offered enough support and was cheap enough that I figured I should try it anyway. I finally bought my first account on march the 8th of 2008. I soon noticed that my code had a lot of syntax errors and I removed those in the weekend. I announced my game to some people that I knew from Utopia, an old browser game that I then played. About 8 people showed up and 2 actively played my game, but it was a start nonetheless.

I expanded the game gradually with each new round, until during the Christmas holiday of 2008 I made some big changes to the whole game code. Somewhere in may 2009 I noticed an increase of registered players for my first game. What had happened is that some guy found the game with google and posted the link to my game on a Romance of the Three Kingdoms Roleplaying forum. People were so fond of Shugo, that in August 2009 I started to notice the limits of my webhost. The database connection couldn't keep up, when more than 25 players logged in at the same time. It started to get very cumbersome, but I didn't have the money to start buying an expensive account. Well I did, but I didn't want to risk the steep investment. By october 2010 the novelty of Shugo had worn off and I knew it wasn't going to last long. I decided to discontinue Shugo in December 2010. I did not renew the hosting account and by march 2011 Shugo was gone.

A new game
In the meantime however I had started to work on a new game called Roma, that I hoped to have finished and ready for Beta by march 2011. The game was a lot more grand and complicated than Shugo and as it turned out, it took a long time to finish. By April 2011 it was still in Alpha test. Major causes of the delay was the complicated code, particularly AI and pathfinding, but I also focused my energy into other things.

Volunteer Work
In january 2009 I did some volunteer work for a community internet cafe. It was not that great volunteer work and I quit it soon after I moved to another neighbourhood. Aside from Shugo I also worked on a blog on just about everything since january 2009, I had work to do on a paper and in 2011 I started doing other volunteer work for a historic society. This time it was more rewarding work and more fulfilling. What may have helped was that the membership board was a lot better than the previous boss I had worked with in Groningen. That boss would keep things as they were, even if that situation did not work. While the new board trusted my judgement and so we moved the website to a new webhost in february of 2011.

New Webhost
I knew this webhost personally and I had already got an account with that company for my own website. I met with the owner face to face because the company owner was my sister's boyfriend at that time. It is thanks to my sister that I managed to get a really good deal with this webhost, but even if he hadn't been my sister's boyfriend, I still would have moved to that webhosting company, because their support is so great and they have no bandwidth limitations. The fact that my sister told me about this webhosting company is what I call one of the great fortunes in my scripting life. This hosting company called mihosnet was a little more expensive than starthosting, but had the best support I had ever seen, and although slightly more expensive than starthosting, still cheaper than most other hosts I had worked with.

Freelance
I helped that historic society with their website. I also earned some money as a freelance webdesigner since 2011, doing small projects on the side whenever I had a customer. My first project was the creation of a website with old music. The financer for this project happened to be the chairman of the board where I did volunteer work. I already had done some work on other websites prior to my freelance business, most notably the website for the volunteer organisation in Groningen, but also some websites for friends and family.

More things to learn
I also worked on a recode of my first game Shugo. It was due to the alpha test of my new game that I learned some new tricks of the trade such as htaccess and a greater understanding of SQL and XML and with the retool of Shugo, I also learned more about the use of SVG graphics. I also started to teach myself some basics of Java, note that I say Java and not Javascript, which is of course a different programming language. I decided to learn more, because I knew text based games didn't appeal to many people. The trouble is that my strength is in logic and coding, but not drawing pictures. I discovered that I'm no sketch artist. So I knew, I had to think of other ways to get more graphics in my games and make them more visually appealing to the eye.

So now that you know more about the writer, let's continue with the business of scripting and webdesign itself.

What you need to get started

Insight
Many people falsely assume that you need to be good at mathematics to be a good programmer or scripter. While knowledge of mathematics does help you with solving mathematical problems, you will soon notice when you script or program, that most problems can be solved with good use of logic. As such, a logical mindset is important for a programmer or scripter. I noticed from philosophy classes that I followed in highschool that I tend to be very good at logic. So logic was never a real problem for me.

A scripter also needs to be able to read and write English. This is important, because a lot of the programming codes and functions are written in English and so are most of the books that explain these matters. So if English is not your maternal language, as it is the case with me, then at the very least you need to have a good understanding of it. Again, I used to do good at the English language classes in highschool, because I spend most of my summer holidays in the United States (I have lots of cousins, aunts and uncles who reside in Michigan).

One last thing you need to be good at is spatial insight, or what I call ergonomics of webpages. It is important that you have a clear understanding on what goes where on a webpage and that your visitors navigate on your webpages as smoothly as possible. I tend to be good at spatial insight and it is one of my personal strengths. This is probably why I studied Geography in the first place, because it is a spatial science. Smooth page navigation I have to be honest at, is not something I am really good at, because I tend to be somewhat of a non-conformist, which means that the look of the pages will often feel unfamiliar at first to many visitors, because people tend to be familiar with a design they know best, and because people tend to dislike searching. While I am somewhat of a non-conformist, I do conform with many cultural practices in my design of webpages. I tend to keep most of the navigational links to the left or top of the page and I try to have as few of those as possible, which does not make it really easy for people to move around between pages, because they get constrained to the use of a single link. It is hell for people who dislike scrolling and I am aware of that, but it is how I work. It also means that my navigation caters to a Western European public, who is used to reading from left to right and from top to bottom. Again that is unfamiliar terrain for Arabs and Japanese.

Men versus women (or functional and risky)
I noticed from my personal experience that women tend to be good at page navigation, but tend to be bad at logic, while with men it tends to be the exact opposite. Because both are requirements, it does mean that women can be just as good at webdesign and scripting as men, but that the strengths and weaknesses vary. For the feminists out there, it does not mean that I said you suck at logic, it does mean that the minds of men and women are different, due to the workings of the testosterone hormone. It is because of the long work hours, the lack of interactivity with people and the fact that the labourmarket regarding webdesign and programming tends to prefer solutions to logical problems rather than good navigation (in other words it does not regard how you get there as important, what is important is that it functions) that makes webdesign and programming or scripting a male dominated environment. Webdesign is also a highrisk and no longer a non-marginal market which is a market that tends discourage women. Despite the fact that it is non-marginal market it does not mean that wages and salaries are particularly good, because they are not. For economics students this may seem like a contradiction in terms, but it isn't (think about it). What it does mean, is that the occupation of a teacher or nurse is a marginal business, while that of a programmer isn't necessarily.

Software
Aside from knowledge and insight, you also need to have software and you need to know how to use that software. The most important piece of software that you need to have is a texteditor. With texteditor I mean software like Notepad and not Word. Microsoft Word tends to mess up the code, so don't use it. The more rudimentary and Spartan the texteditor, the more suited it is for programming or scripting, though I do recommend a texteditor with color coding such as Winsyntax. If you happen to be colorblind then you are in for a lot of trouble. All people make mistakes and at some time everyone will have to debug their code. Colorcoding makes this debugging a lot easier, especially if your file has a lot of code and because many pages do have a lot of code, you will appreciate the fact how troublesome this debugging is for the colorblind.

Perseverance
Perseverance is also important. Most projects are pretty big, if you realize it often involves thousands of lines of code. For many the start of any project may seem like a daunting task. What I tend to do in this situation is break the whole up in to little pieces and take it one step at a time. I know it takes a lot of time, but I know it will be completed eventually. It is the sheer size of the code that makes it very difficult to predict when a project will be finished and this failure to accurately predict when work is finished is the biggest cause of delays for the release of games. If you combine this with the fact that troubles are bound to occur at any time in the process of development, then it is something of miracle why some games do get released on time (which is usually for the Christmas holiday).

Money
Money is also a requirement, at some time you will need to pay your webhost, buy a domain or make funds available for marketing. It is particularly marketing that makes the launch of an online game a high risk business. Because the competition is so fierce and the market demand flexible it does mean that game programming is a marginal business (notice how I say game programming). The chances of coming out on top and be the new market leader with millions of registered players are as slim as having the winning lottery ticket. You are more likely to get hit by lightning.

Luck
So if success in the business of game production is so low, then why is there is so much competition? There are number of reasons for that. First of all, it does not take a lot to get started, lots of people have a computer, lots of people have Notepad, lots of people can read and write English and many people know how to find their way to a webhost and get a domain. The second reason is that while it is a high risk marginal market with a flexible demand (neither of which is a good thing if you wish to make a profit), the potential for reward is also high if you do manage to come on top. This is like asking why do people buy lottery tickets when it is an idiot's taxes. They do it because the investment is comparably low and they take the small chance for granted because there is at least a potential for a high reward. The third and final reason is that programming, despite the fact that it requires logic, is a creative job and many people like to be creative. It is a bit like asking why are there so many athletes, when there is often only one reward in a contest. People do it, because they like it and they are good at it. While in relative terms perhaps less than one out of hundred people actually likes programming, in absolute terms it means that's a lot of people and a lot of potential competition. For remember one out three people in the world has access to a computer and there are more than six billion people on this planet.

Happiness
One last reason is that people make games, because it gives pleasure to other people. This is like asking why there are comedians, they are usually not in it for the big bucks, but because they like to make people laugh and smile. There is no denying that some people get a rush out of the fact that their game attracts and amuses thousands of players. Though one should not overestimate this, because people also like to complain a lot.

Hobby or Work

So the reasons in the previous section beg the question, is game programming work, or a hobby? For many less fortunate I would argue that it is a hobby. The reasoning behind this, is that poorly visited sites don't make enough money for the creator and there are only about 200 or so browser games in the western world at least, that have a lot of visitors. The modus of many of these more succesful browser games attracts about 10,000 visitors, which would make it seems that there are only about 2 million browser game players in the western world. This does not seem like a lot, but there are about a dozen or so highly succesful browser games that attract crowds of a million or more players. Still it does mean that the market for browser based games is actually quite small compaired to more succesful massive multiplayer online games that aren't browser based such as World of Warcraft.

Marketing
So why is it that many of these games can't compete to attract a large crowd? Well, the lack of visuality compaired to games like WoW, is one thing, but it doesn't explain everything. I would argue that it has more to do with marketing, because many of these massive games are funded by large game studios, that have big marketing budgets. In stark contrast most browser based games are made by indie developers, who may have the skills, but who lack the million dollar marketing budget.

Indie Developers
For most of these indie developers their browser based game is not their main source of income. For a lot of these people, their main source of income is their work as: a teacher, IT consultant, systems engineer, helpdesk employee, textile embroiderer, custom wheel caps manufacturer and so on. In short anything and everything that uses some kind of programming language in their every day job. To most of them, their hobby is often also their second source of income besides their main job. In this context the embroider and wheel cap manufacturer seems kind of strange, but these too sometimes use their knowledge of programming, to program machines such as an automatic loom, or wheelcap inscribing robot. The IT consultant seems obvious, the teacher less so, but you'd have to consider there are also math teachers.

Time Constraints
What it means is that to many of them, their time is limited and 90% of these people are men, often they're single, hence why they have so much time for their hobby. As they find significant others, or as they get distracted by their main work, it means their time gets more limited, which in turn means they have less time to debug their code, or to develop good marketing campaigns for their game. With the ultimate result that their game suffers and is not as competitive in the market.

Specialists
Then there is another reason why their game isn't as succesful as they would like it to be. Most of these programmers are specialists, they know a great deal about programming, but often little about how to draw pictures, or how to make music. A lot of this media is copyrighted and so it isn't easy to get good graphics and sound the cheap way. There are essentially two ways to get around this problem. One way is to infringe on copyright, if you happen to be in a country where copyright laws are not as strict you're in luck. I would argue this is why some succesful game programmers come from countries like Sweden, or Bulgaria, or Russia, or Mexico, not because these people are so good, but because it is easier for them to get their hands on copyrighted material. The second way to get around this problem is to have friends or family who can make these things for you. There is this well-known story about how the game studio KOEI came about and ultimately was so succesful with games like Romance of the Three Kingdoms. After his family business failed, he moved into programming games, his wife just happened to be an excellent sketch artist. Hence what you get at the end of the production process is a good functioning game with neat graphics. While infringement is more common than you think, I seriously recommend against such practices. So if infringement is not an option, having friends and family does help you a lot.

Pitfalls & Precautions

Now that you know more about the business, it's important to understand some of the hazards in the business and bad ways that should be avoided whenever possible.

Budgets & Fiscal costs
A really cheap webhost package may seem like a good thing when you've just started, but most of these packages are so cheap for a reason. Cheap packages often have bandwidth limitations, database limitations, have limited access to programming languages that you can use, or they have other constraints. It is important to notice this, but if you just started out and you've got little prior experience with webhosts, then chances are good you'll pick a bad one, simply because of the fact that you don't know what to look for.

My advise is to shop around and to look further than the ones you already know. Cheap packages may look good, but if the quality of that package is really bad, you are better off taking a slightly more expensive one. For example lets say you've looked around and that you've found two different packages. The first package costs 1 dollar per month and has a bandwidth limitation of 5 GB per month. The second package costs 2 dollars per month and has bandwidth limitation of 50 GB per month. If your game attracts a large crowd, then you need a lot of bandwidth. In that case the second package is the better choice. Although the second package seems more expensive, because it costs you 24 dollars per year and the first package only costs you 12 dollars per year, the second package is the better package. Let me explain why, with a bit of elementary math. If you purchase the first package, it actually costs you (100 / 5 = 20) 20 cents per GB of bandwidth, while the second package costs you (200 / 50 = 4) only 4 cents per GB of bandwidth. So in other words cheaper isn't always better. You need to weigh quality versus price. Economists call this weighing of quality versus price the utility curve also known as the indifference curve. This curve is used a lot in microeconomics and can also be applied to lots of every day situations where you need to choose what to buy. So going cheap on yourself isn't always such a good idea. Don't be confused though in thinking that this means you need to buy the most expensive package there is, because then you still haven't grasped the idea of the utility curve. For example let's say there is a third package that costs you 5 dollar per month and has a limit of 100 GB of bandwidth per month. Let's do the math on this one (500 / 100 = 5 cents) and we notice that while the third package is still better than the first package, it is worse than the second package. However, if the bandwidth limit of the second package is too low for your game, because your game has so many players, then the third package is your only option. So you are looking for the highest accessible curve, not the lowest curve, or an inaccessible curve.

Sometimes things aren't as simple as weighing bandwidth against price. For example if you remembered that I told you that I have a host that has no bandwidth limitations, then how do you weigh two different hosts, when both of them have no bandwidth limitations? You can't do that, right? Well, you can, but it is more complicated. If you're just buying a hosting package with no bandwidth limitations, your package with a domain ends up on a server of that webhost. What often happens with these packages is that multiple packages end up on one server. So basically what happens is that you share a server with other webmasters. You don't want to share that server with too many other websites and webmasters, because the more people share that server, the bigger the stress is on that server. A website on such a server could get tediously slow, if you share it with lots of other well visited websites. So if you want to compare two packages of different webhosts with no bandwidth limitations, you need to find out with how many websites you're sharing a server with. So the next question is, how do you do that? Well, some webhosts have a portfolio of sites that are hosted by them. You could check some of those websites at random times to see how quick these websites respond, to give you an indication of how many websites share a single server. Be aware that this is only an indication, it is no guarantee, because the websites in the portfolio might be hosted on a quicker server, or may not have to share with that many websites, where as you may have to share with lots of other websites, because your site will be hosted on a different server. So the portfolio could be used to fool you. So then the integrity of the webhost becomes an important matter. Is he or she, "a cheating bastard", or "an honest entrepreneur", is something that you need to watch out for. An honest webhost will inform you of everything, that he can inform you of, and that you need to know to make a good decision, while a dishonest webhost will do no such thing. A dishonest webhost will only inform you of the basics and nothing else, (i.e. he'll try to elude you), or explain a lot of irrelevant information, or he will try to coax you with little extra's that you don't really need. To avoid such webhosts the trick is to notice where you have doubt of. In other words the lesson here is: "when in doubt, don't".

If you can't see a portfolio, you can try to find websites of that webhost with a whois and then check to see if these are expeditious.

If that doesn't work, a third and often more succesful trick is to find out how many clients they have and how many servers they have. You can then divide the number of servers by the number of clients to get an estimate with how many people you have to share.

If the third trick also fails, because it is impossible to apply because you lack enough information, then you can try to find out how old this webhost company is through a whois or checking the chamber of commerce registration, and you can also look at their dedicated server packages to see how old and how good their dedicated servers are. If the company is really old, has an established name, and has lots of old servers, then chances are great you're sharing the server, that your website will be hosted on, with lots of other clients of that webhosting company.

If the previous tricks aren't enough, you can check to see if the webhost offers a free package, or a really cheap package to first time users. Often these really cheap packages come with many limitations. Hosts that offer lots of free and really cheap packages, tend to apply an economic strategy that is called price discrimination. The more expensive packages with less restrictions tend to be more expensive than similar packages of other webhosts that don't use price discrimination. Because the vast majority of webhosts use price discrimination these days, it is often not a thing to look for, but I have seen some rare occasions where it can be useful to make comparisons.

One other thing you can look for is, if the hosting company actually has multiple other hosting companies. If the price classes of these different companies of the same host varies a lot, you are probably looking at what economists call horizontal competition. If that is the case, chances are great you are getting ripped off by this host.

One last thing that you can check for is, if the webhost hosts websites of clients that are government or semi-government. The thing to look for are counties, provincial governments, departments, state governments, central or federal governments, large foundations, hospitals, schools, universities and so on. If you happen to know that a webhost does have a lot of such clients, it is often worthwile to have a deeper look at the price of those host packages, because chances are great, these are too expensive. There are two major reasons as to why government or semi-government clients are attracted to bad and expensive webhosts, or vice versa why bad and expensive webhosts attract such clients. The first possible reason is that these clients know what they need to know about the business they are in, which is government, politics, charity, the public, or other government related stuff, but they don't know anything about anything else, and that anything else includes the internet and in particular websites and hosting. They are specialists and that makes them ignorant of other things. In other words they get attracted to such webhosts, because they are ignorant and because their decision maker needs to save his own skin, which means he'll choose the most expensive thing there is, thinking that the extra money thrown at the webhost will prevent things from going wrong, such as downtime, hacking, spam and so on. If you know that an expensive account offers no such guarantee, then you will realise the fallacy of such thinking. And now you also know why government or semi-government otherwise known as the soft sector is so full of waste. The second possible reason is plain and simple, it could be nepotism and corruption. Whatever the reason, it is best to avoid such webhosts like the plague, because they tend to be way too expensive anyway.

So in summary you need to ask yourself the following questions:

Is the utility curve of the package low?
Does the host offer free but low quality packages (price discrimination)?
Does the information offered by the host cast any doubts?
Does the webhost have lots of clients on few and often old servers?
Does the webhost operate with horizontal competition?
Does the host attract lots of ignorant, corrupt, soft sector clients?

If the answer is yes to any of those questions, it is very likely that you need to look elsewhere.

With that said about budgets and other fiscal costs, there yet more things you need to be weary of.

Marketing costs
OK now that I've mentioned the webhost, there is the costs of marketing that you need to consider. The most well known and common way is google. There are other less known companies out there, some of them honest and good like google, and others that you should stay away from. The real problem with online advertisements are what is called clicking schemes. Basically what happens is that bots instead of actual people click on your adds. What this means is that you end up paying someone for nothing, because a bot afterall can never be a player. These schemes are being fought, but it remains problematic. Having run some short marketing campaigns myself, I would estimate that 99 percent of the cases the adverts were clicked on by actual people. What that means is that even in the best possible situation with google adwords, I still estimate that about 1 percent are bots. That may not sound like a lot of fraud and it isn't a lot, but if you were to run a big multi million dollar marketing campaign for your website, then it does mean you lost thousands of dollars to what can only be described as fraud.

So while schemes are not a big problem, it is something you need to be weary of.

Running a good marketing campaign is a difficult and tricky business. What you really want, is that new visitors actually stick around and play your game. I've noticed that though hundreds may visit and take a look, few will actually stay around. I tend to use humour to attract new visitors and this seems to work really well, but actually keeping them turns out to be an entirely different matter. What I tend to do, to increase the percentage that stick around, is to cross reference the clicks with the website log, to see who stays and who leaves almost inmediately. Next I use my geographical knowledge in the analysis, to check for possible explanations as to why so and so IP adress stays and why so and so IP adress shows no interest. Since I can't really dictate where an advert is shown, instead I try cater to their needs, so they'll stay long enough to get enticed. The way to do that is to offer the right content.

The thing I haven't really figured out yet, is how much funds to make available and when the ideal time is to start a campaign. As for the timing of a campaign, I reckon I have discovered that the best time to start a campaign for a browser based game is in late august or early september and the worst time is to start in november or during the christmas holiday or in the month march. The are a couple of reasons as to why you shouldn't run a campaign in november, late december and early march. Your users tend to play a lot of single player games on CD-rom during the christmas holiday and so often halloween, thanksgiving day and the christmas holiday tend to be quiet and dull moments online. It isn't such a good idea to start a campaign when noone is around to watch it. You're better off starting your campaign, when players are done seeing their friends and family and are done playing with their christmas presents that they got from their mom and dad, which I estimate occurs about the second or third week in january. March and April also appear to be bad times to start a campaign. I reckon this is because the competition is so high during these months, because a lot of online games launch their beta tests during these months, and so it becomes harder to get noticed. I don't know why this is so, but I reckon it has something to do with the effect of increased exposure to sunlight on the minds of indie developers, though this is just a theory. September seems to be good month to start a campaign for a browser based game. My reasoning behind this, is that this when the schools start. As teens return to their every day lives at school, they may get bored during the breaks and in the weekends. If you keep the campaign going from late august to mid september, you're bound to drag in some of those teen players. Some visitors will not register inmediately, but will only do so upon their return, so if you keep the campaign going for a while they'll find their way back to your site, regardless if they remembered the name of the game or not.

The problem with running a marketing campaign for a prolonged period of say two weeks are the costs. If the budget is small, you either end up using your funds before the two weeks are over, or you'll pay a low fee per click. Low fees means you'll attract players of not the best visited sites, which can be a bad thing, but also a really good thing, it all depends on what kind of audience you'll attract.

Tweaking server use
Bandwidth usage tends to be high on some hours of an ordinary day. I tend to compare with the use of roads, you know you get traffic jams during rush hours. With servers it is no different. You want to avoid getting too many 503 errors on crowded hours, because it can scare players away. The easiest way to avoid this, is to try and spread the usage of the website over the course of an ordinary day. There are essentially two ways of achieving this.

One way to do this, is to divide your website into multiple sections with different content that you know attracts different players and visitors. For example if your game is about pirates, you could also make a second section with an encyclopedia about pirates, and a third section about pirate films, a fourth section where you sell model ships or something like that. If you know the encyclopedia attracts elderly vistors in the morning and the model ships section attracts old single men in their fourties in the late evening and game section attracts teens in the afternoon, then you have made a good attempt of spreading your visitors over the course of an ordinary day.

A second way to do this, is to attract an international crowd. Afterall this is the worldwide internet we're talking about. That way at least one out of three visitors would be asleep when the other two out of three visitors are busy playing your game. If succesful you can keep bandwidth usage down during rush hours by as much as 33 percent. A lot of large browser based gaming websites try to cater to their audience by giving them a server for their own country or language. My advise is, don't! Sure it does mean that someone from let's say Singapore is playing with someone from New York or London, but it helps to avoid rush hour peaks and 503 errors if bandwidth is tight. And if language really becomes an issue, you can still try to offer serveral language versions of the same game on the same server.

Advertisements & Income
We've looked at the costs, now we'll take a look at the other side.

If you have a browser based game website, there are essentially four ways to make money. That is (1) advertisements, (2) membership fees, (3) sell game related items, or (4) a combination of these things. There are upsides and downsides to all four ways.

Combinations have the benefit that you increase the odds that you get money from players or otherwise, but they have the disadvantage that it makes things more complicated. Essentially you're acting like a supermarket, but with the difference that is about games instead of groceries. The trouble here is that things get complicated and that you can't accurately predict how much money you'll make out of one form of income, because one form often affects the other. The problem here becomes in knowing how much to charge your players or advertisers. You can't really predict this. What you do is change things with small steps and check the difference with the ulity curve that I mentioned earlier. But be aware, predictions are risky even small differences can sometimes have huge effects. For example say you use a combination and you charge a 35 cent membership fee per month. Suppose you increase this fee with 5 cents to 40 cents per month and you notice a 5 percent drop in player numbers. There is no guarantee that the next 5 cent increase also decreases the number of players with 5 percent. The drop could be higher! Why? Because your market demand is flexible and this means that your price is elastic. Players may accept a 40 cents fee, but a 45 cents fee could be seen as too high. Remember your players have a utility curve too. Your competitor for instance may charge a 45 cents fee and have a better game than your game. If you charge 40 cents players may decide to stay, but if you charge 45 in this situation, then the answer is simple, the players will move to your competitor.

But again, this doesn't necessarily mean that cheaper is better for your players. You can charge a hefty fee and trick potential players into thinking you are offering a good game, when in reality it is of similar quality then other similar games. This is what WoW is doing in the market of high level graphics MMO's. Despite the fact that WoW is no better than its competitors in this niche it charges more per month, tricking potential customers into thinking that since it is more expensive, it must of course also be a better game, which in reality could be false.

Another example of why charging high prices can be a smart thing to do, is in selling rare items in the game. These rare and expensive items can become what is called Veblen goods. People who buy those goods, buy these items to brag and to show off, it is snobbery in its weirdest and wildest form. If you think this doesn't make a lot of money, think again, there have been reported cases of auctions in which game related items sold for several millions. Do I hear you say? "Crazy!" I know, it is, but it does happen.

There is also this effect called the band wagon effect, where a succesful game keeps attracting more and more players, because everyone else they know is also playing that game. The trouble is that this effect usually doesn't last very long, which means that your game could become a hype. And sure while a hype makes you lots of money, it doesn't last very long. The trick here is to stay thrifty and not to make extra expenses unless it is absolutely necessary. You don't want to scare off players, by postponing vital upgrades, but what you do want, is returning players and if that is uncertain, then you need to be careful. With that said, most games don't last long anyway. The average duration in which a good game is succesful and makes a profit is about two years.

Advertising is the most common way to make money for many free browser based games. It is easy but only makes a lot of money if you have a lot of players. And as you know lots players means a high bandwidth consumption. So advertisements alone means that your bandwidth costs becomes your main issue for profit. It isn't quantity alone that becomes important in this situation, for if less than 1 percent of your players actually clicks on an advertisement, then you need to think of ways to increase this percentage without scaring away your players. There are many things you should do and that you shouldn't do. Don't force your players to click on adverts. Don't do timed adverts in the login page. The best place for the adverts on your website pages is in the bottom centre of your page. In other words beneath the parts with information, but above the parts of the page that require user interaction. The trick here is to take advantage of impulsive traits that some players may have and the right time for this is when they switch from their thinking mode into their action mode.

Gathering income through advertisements becomes a lot easier if you have lots of players, because then the revenue per click becomes higher. Online advertising in this sense is like television commercials. Television channels make the most money out of commercials run during primetime television programs or other well viewed programs.

If you do place adverts on your website, there are things you need to be weary of, that google or other such companies don't tell you. By placing those adverts you do invite a small extra portion of con artists. They can see the adverts and hence can see you are making money. Another thing you need to be weary of, is that some advertisements aren't all they are cracked up to be. Despite google's best intentions some advertisements lead to your competitors, you need to weed those out. Yet other advertisements may lead to websites that may be infected with viruses, trojans and so on. You need to remove those from the list as soon as posible, or your public may blame you eventhough you are not responsible for it.

All good things come to an end
I mentioned earlier that a good profitable game on average lasts about two years. What this means is that if you wish to stay in the business of making browser based games, then on average you need to make a new game every two years. If the average success rate of a game that you developed is about 50 percent, then you are doing very good, but you still need to churn out one new game every year. This is what large gaming studios do. They churn out about a dozen or so games each year, hoping that at least one of those games makes a huge profit that will at least make good on the losses they made on the development of the other games. If the profit of the good game is higher than the losses you made on all the other games you developed, then you'll stay in business.

So the trick is to keep producing new games. Just because you current game is doing great doesn't mean you can dilly dally. The problem is that once your game has become succesful, you'll often spend a lot of extra time managing this large crowd of players. Where are you going to get the extra time that you need for programming a new game, that you don't have? You could hire another programmer, but he's expensive and what if he fails to make a new good game? An easier way would be to hire a thrustworthy moderator and administrator. If you program some manual and labour intensive tasks into an administration desk for your game, you don't need to do it all yourself, and you can hire someone cheap who likes things like pleasing crowds and deleting cheaters.

Understanding your public

So you got a good and succesful game, now what? How do keep your baby going as long as possible? What makes players return and cheaters and other rifraf stay away?

Encouraging Players to return
Encouraging players to return is probably the hardest thing of all. The best way to get them to stay is offer new and fresh concent. The easiest way to do this to make minor tweaks to the game rules and concept at regular intervals, this will prevent your game from going stale. Despite of this though most games don't last longer than two years anyway. The best way to keep them is not to frustrate your players. Don't make things too difficult and keep things balanced. Make use of the player's curiosity, by throwing something new at them. Replay value comes when players are done with a round, but have new things, or new avenues to explore. I find that the easiest way to do this is to have seperate and hidden sections in the game, that players can't see or situate themselves all at once.

The easiest way to frustrate players is when things don't work like they should. People will accept some form of grind up to a point, but too much grind is too much hassle. A game should be a game and not a job. Other things to avoid are bugs, a sloppy and difficul interface and server overloads. These things should be dealt with as soon as possible.

Discouraging Cheaters
Cheaters always spell trouble, they frustate other players and they wreak havoc on the game balance. On average one out of hundred players will attempt to cheat. It is important to remember that you don't want to discourage these players from returning unless you really have to, what you want to discourage is the behaviour. There are a couple of steps you need to take to stop the behaviour. The first is that you need to know who they are. Check the IP adress, check for proxies, check user agents, check passwords and usernames, check the entry page and exit page, check the login hours, let other players report suspicious activities and so on. If you are sure, you found a cheater, inform them of their wrongs in their behaviour, but don't inform them of your findings. If this doesn't discourage cheating, then the next step is to punish. The best way to punish is to punish in levels, each subsequent level of punishment being more severe than the previous one. This gives cheater an escape route out of their behaviour. If this still doesn't work, then the only obvious solution left is to block the cheater.

When and How to Block
The most predictable way to block a user is to check if the IP adress that you fetched from the registration page matches a known cheater in the database. In php and sql you can do this with a simple COUNT command and then use an if-else construction.

If you wish to completely block a certain IP adress from the entire site or sections from the site, then you can do a deny from command in the htaccess file that you uploaded to your website. For dynamic IP adresses this will not always work, but you can also block an entire range.

OK now that we know all of this, lets move on to the tools of trade. The next section lists some resources that I've found worthwile for the creation and maintenance of a browser based game.

About Online Resources

If you wish to make the simplest of an interactive browser game, then all you need to know are: the basics of webdesign and scripting. You will also need to download and install a good ftp uploader program, and find a good webhost. The recommended links in the list will tell you how to do that.

However once you're beginning to think big and if your game gets more successful you will need to learn more.

This list of online resources shows everything that I've either read or used over the years for the production of my browser games. It includes some very useful links to resources that you will defenitely need at any time in the future, if you wish to make a good browser game. These links will provide you with knowledge, software, technical knowhow, and solutions to problems that I've came accross whilst developing my browser games over the past few years.

Links to online resources

Basics

HTML & DTD:
HTML Tutorial W3schools (Recommended)
HTML relative Path (Recommended)
Nesting
DocType Declarations tutorial w3schools

CSS & Coloring:
Css Tutorial W3schools (Recommended)
DIV element (in Dutch)
RGB Color Values
CSS Color names

Scripting

PHP:
Php Tutorial W3schools (Recommended)
Php Freaks forums (scripting help)
Line Breaks

Database & SQL:
SQL Tutorial (Recommended)
When and how to lock tables
SQL Tutorial W3schools

Javascript:
Javascript Tutorial W3schools
miscellaneous javascripts
Javascript Keycode Checker Tool
Detecting keystrokes

Ajax:
Ajax Tutorial W3schools
Moving stuff about

Media

Sound:
Different Ways to Play a Sound from a Web Page
Background Audio
Windows Media Player Plugin for Firefox browser
M3u Playlist

Graphics:
Delayed Gif
Gimp changing background color
Axonometric projections a technical overview
Filmation math
SVG with Php
SVG filters
Full Map Fog of War
Download Gimp
Online Icon Maker

Hosting

Webhosts:
Mihosnet (Recommended)

Technical Setup

FTP:
Leechftp Download (Recommended)

Server Packages Installation & Downloads:
Php for windows
IIS Installon Windows Vista and Windows 7
Apache Configuration
How to install Apache on Vista
How to Install MySQL on Windows Vista and Configure PHP 5 to Use It
How to Install and Configure PHP 5 to Run with Apache on Windows
MySQL Download
Apache Download
XAMPP Download

Automated tasks:
How to create Cronjob
Setup a cronjob

Other Languages

XML:
XML with Php
XML DOM with Php
XML tutorial W3schools

Java:
Java Applet
JDK Java Tutorial
Php with Java
Trail Java Tutorial
JDBC Basics

Flash:
Flash 8 Actionscript 2 Language reference
Flex 3 SDK download
Compiling with Flex MXMLC
Flash with Php

Python:
Python Wiki

Security

Security, Protection & Anti-hacking Tools:
.HTACCESS files useful tips and tricks
How to Block Unwanted Bots from Your Website with .htaccess
Regular Expressions in .htaccess

IP tracing tools:
IP lookup
Convert hostname to IP
Email tracer
Whois tool
Geo IP multi lookup
Military Tracking

Protocols:
UDP versus TCP
TRANSMISSION CONTROL PROTOCOL
Open Gates (in Dutch)
live streaming

Game Design & Function

Game Programming:
Devmaster Forums
Amit Patel Game Programming Blog

AI Development & Pathfinding:
Designing AI Algorithms For Turn-Based Strategy Games
A* algorithm
Amit's Pathfinding
Tile Based games Pathfinding
Designing Artificial Intelligence for Games

History & Game Theory:
Claude Elwood Shannon wiki article
Evaluation Function wiki article
Go game wiki article
Minimax wiki article
Ply wiki article

Financial & Marketing:
Google Adsense
Google Adwords
Paypal
pbbgames.com
mpog100.com
kostenlose-browsergames.de