So You Want to be a Multiplayer Web Games Developer?

In my first article “So You want to be a Games Developer?” (http://ezinearticles.com/?So-You-Want-to-be-a-Games-Developer&id=70920), I discussed various games genres, including Web/Email games. This is one of the easiest ways to start developing games- you aren’t restricted to one language or platform and the costs are pretty low. In this article, I’ll look at the various technologies that you can use, and give you an idea of what its possible to do and how you get started.

Web games fall into various sub categories- email games, browser games, and multi player games. Email games are by far the simplest- technically they aren’t web games and you don’t even need a computer to moderate them, just to send and receive. Browser games can be implemented in Flash, JavaScript (dhtml), Java and even ActiveX/COM. I’d guess that most single player games are implemented in Flash but I’ll save that for a future article. To start with, though I’ll take you through what is involved in developing Multiplayer Web Games.

Before you start, go and take a look again at the Multi Player Online Games Directory- http://www.mpogd.com. Its an excellent resource and gives you an idea of the type of games out there ranging from small free games to the massive games like Sony’s Everquest.

The big multiplayer games aren’t web based but they do work across the Internet. They tend to have their own custom written clients, with encrypted protocols, fast 3d graphics and large teams of customer support staff. I recommend http://terranova.blogs.com/ as an excellent blog on this- you’ll find articles and quotes from luminaries such as Richard Bartle who produced the first Mud (its short for Multi User Dungeon), and Professor Edward Castranova; an expert on virtual world economics. Muds also tend to use their own clients, usually based on Telnet. Although these are not web games, I recommend you widen your experience as much as possible. Muds in particular although not the most popular genre still do exist and provide a good model for interactive games.

Breaking into computer game design and programming is as easy as becoming a fulltime commercial game programmer- i.e. its not! But there is nothing to stop you developing your own web game, and MPOGD will be happy I’m sure to list it in their directory. If its Open Source you can set it up and find other developers on Soiurceforge.net.

There are two categories of web game: real-time and turn based, and this dictates the type of technology that drives it. Real-time is more complicated- the server has to support multiple connections at the same time and care has to be taken to synchronise actions between clients. If you attack someone and they’ve already moved but your client isn’t keeping up then your game is not going to be popular.

A crossover between multiplayer web games and custom client games is possible with Macromedia’s Flash. It is likely that multiplayer action games based on Flash will become more prolific- there are quite a few around now. Sadly sourceforge has many such ideas that have not got past the planning stage. Also what does exist may not be open source as creating such games takes a lot of work. Googling for flash, multiplayer game returns a couple of million results but add open source and it drops to a few hundred thousand.

Unless you are an excellent Flash developer and can write good server code as well, I suggest you stick to turn based games. The good news is that web based is an area where open source development is prolific. A search on sourceforge.net for ‘game servers’ returned several projects that are mature or beta. Fancy developing an RPG in Java? Use Arianne. Or if C# is more your style, have a look at Ovorp. The most popular languages are C++ and Java (for the server) but C# projects have now started appearing and you’ll find C, Perl, and Python as well. But don’t limit your searches to sourceforge- there are many projects elsewhere as well. An excellent resource for finding games is dmoz.org-= the Open directory Project. Have a look at http://dmoz.org/Computers/Open_Source/Software/Games/ and http://dmoz.org/Games/Video_Games/Roleplaying/Massive_Multiplayer_Online/Independent_Developers/

E.g. Black nova Traders, which is located on sourceforge at http://sourceforge.net/projects/blacknova and has its own url http://www.blacknova.net/ BlackNova Traders is a web-based, multi-player space exploration game inspired by the popular BBS game of TradeWars. It is classified as a turn based mud. It is coded using PHP, SQL, and Javascript. BNT is officially at Beta but is a pretty complete game that is just not finished. In fact it may never be as long as developers keep tweaking it!

If you are going to develop a web game you need a server. Yes you could do it online but thats slow. Best to setup your own server.

A good starting point with the most popular technology is the Open Source L.A.M.P. family. That is Linux, Apache, MySql and Php. If you are replacing your windows pc with a new pc, wipe the hard disk on the old pc and install a Linux distribution and hook the two up with a crossover network cable. What was a relatively sluggish Windows PC is now a good development server running Apache, Php and Mysql. Linux Guis are pretty friendly these days but if you are unsure of administering Linux, download webmin from webmin.com and install it. It makes all the Linux administration stuff like configuring Samba (if you want to share drives), adding virtual sites to Apache etc very easy. Or easier still is the W.A.M.P route with everything installed on your Windows box. For pros and cons of this have a look here. http://ezinearticles.com/?Windows-vs-Linux–Hosting&id=21972

One word of caution. You might consider exposing your web server to the internet down your dsl connection. Nothing wrong with that though it limits you to having two or three users at once. If you have a static IP its pretty easy to map a domain to it. It can also be done with a dynamic Ip connection as well. Search for dynamic dns to find out how to make that work. Be sure in either case that you have enough firewall protection. An unprotected Windows pc will likely be taken over in under 15 minutes. I strongly recommend that you buy a firewall router or invest in a professional software firewall at the least.

In future articles I’ll discuss the nuts and bolts of game software development and start developing an open source game.

Designer or Developer? Determining Your Skill Set As a Student

To this day, I don’t really know what I want to be when I grow up. I went to college with the expectation of graduating with a Computer Science degree, but instead I walked out with a Design degree. If anything, I found that my college career adjustments would be a indication as to how I would eventually fit into the web design field. Even now, I wear many different web hats, but they all fit.

But what about you? What do you want to do? Would you rather be a developer – writing code to solve problems? Or, would you rather be a designer – pushing pixels to solve problems? How do you find out which is more interesting to you? There are a lot of questions you should be asking yourself, but don’t expect anybody to give you the answers. You need to experiment to find out where your strengths lie; and in experimentation, many new things come to light.

Blur or Focus?

First off, what are you more comfortable doing? Again with my example, I started down one path and eventually changed direction, but I made sure a lot of what was learned came along for the ride. If you want to get your hands dirty with both disciplines, I recommend the following right out of the gate:

Join a Small Web Design Team

Being on a small design team forces everybody to wear many hats. To be successful, it’s sometimes required of all involved to adapt in their duties and help each other out. Understanding what your partner is doing and having the ability to step up and work on the same project is important. You work fast and you learn a boatload of information in a small amount of time.

My first job out of college threw me into this environment and I loved every minute of it. Even though I had a design degree, I was expected to help with Flash development, PHP, JavaScript, ColdFusion, HTML/CSS, and even some video compositing from time to time. Small team environments allow you to taste a bit of everything, hopefully finding a new interest in a particular area.

While this scenario allows for gained knowledge on a lot of topics, it also comes with a price: the old “jack of all trades” axiom. Sure it’s great to be able to have a lot of different skills, but you are never truly exceptional at any one of them.

Sure it’s great to be able to have a lot of different skills, but you are never truly exceptional at any one of them.

Join a Large Web Design Team

More often than not, larger teams mean a higher chance of specialization. Here you could have a defined role. You may be able to spend a lot more time in a single discipline, work with others with the same skill set (it’s doubtful that you are the only web designer there), then gain valuable experience and insight.

In either case, you get to try both the developer or designer tracks out. With a small team environment, the structure is mutable, so you can quickly move from the designer role to developer and back again. Be warned that you may not stay on one discipline long enough to get all you can out of it. The learning curve is steep and the skill retention is not very long.

With larger teams, you can more quickly build on your knowledge in one area, but you may not have as many opportunities to try different skills on for size.

Designer and Developer?

A combination of both skills is extremely valuable these days. The “double threat” of a designer who can code a bit or a developer who has an eye for design looks excellent on a resume and is sought after by many a company.

If you are primarily a designer, it would be in your best interest to pick up a web development book or two. Even if you would rather focus on the design discipline, having the vocabulary of a web developer will get you far. It can make the workflow smoother between the designer and developer, and your designs can be better suited to the project since you know a bit of the code’s capabilities. If the site will be in Flash, design for it. If the project will be an HTML/CSS/JS combo, then your designs will reflect this.

I don’t mean to say that you should stifle your designs to meet the code, but keeping in mind how the design will be built will help everybody in the long run. By all means, go nuts with your layout.

Conversely, if you are a developer, speak with a designer from time to time. Learn the lingo, understand the basic concepts of grid, typography, and color. Your CSS will be all the better for it.

This may be a different path to take, but it allows for greater focus in one discipline, while simultaneously integrating knowledge from the other side into your workflow. It can only help you. This isn’t the same as a “jack-of-all-trades” situation. You are primarily a designer or primarily a developer with a small bit of knowledge of the other side – enough to be dangerous. You shouldn’t be claiming to be able to do both at an equal skill level.

Conclusion

Well, up to this point I have been writing in generalities. This was not an accident, and this article wasn’t really meant to tell you what path to choose. The point here is to give you a heads-up on how to approach the choice. If you have a little bit of knowledge in each skill, then you are in a good position to make that next step. If not, here’s your opportunity to learn from others more experienced than you.

If you have already made your decision, good for you! But you may want to think about bringing in some of the other side. Ride the fence a bit. Take a look around and make a smart decision that will benefit all who work with you.

Website Development – The Main Stages Of the Process

Developing a website is not all about writing codes and programs. Before the code writing period and after the coding process, there are numerous others stages that ensure effectiveness of the website. If you need a website designed for your business, it is good to be aware of the basic stages of development. Below given is a brief elucidation.

On a broad basis, development can be divided into three stages – pre-development, development and post development. In between, the process includes client feedback and revision stages.

Predevelopment stage

Predevelopment stage is all about finding the right path for development. This involves analysing sensibilities of target audience, understanding goals and objectives of the client’s business, analysing competitor websites and their effectiveness, and several other factors. In other words, developers do the ground work in this stage.

Based on the ground work, a rough draft is drawn up. Layout of the website is prepared. This is only the first look of the website. Essential technologies and other technical aspects are not included at this moment. A project report is prepared and shared with the client.

If the client approves of the draft, the process moves to the next level, which is making technical decisions. In this stage, based on the data obtained from analysis, the technologies that are most suited for the website and its required functionalities are decided.

Development stage

This is the stage in which the actual development work takes place. The development plan and schedule drawn up in the predevelopment stage are executed. At the end of this stage, you get the beta version of your website. Documentation forms a very important part of development stage.

In addition to creating layouts and backgrounds, the development stage involves uploading content in the website as well. Texts, images and videos are uploaded. In short, the entire site is ready to go on to the web in this stage. However, your website is not released yet. It needs to go through thorough testing process in the post development stage before going live.

Post development stage

Post development involves thorough testing. The website is tested in all ways and snags are fixed. Testing is done in two ways – offline mode and online mode. Offline mode testing is done before the website goes live on the web.

Online testing is done after the beta version is released on the web. Some problems might arise in the website while loading it on to the web. These issues are fixed and all performance parameters including efficiency of hosting are tested online. In this stage, your customer cannot see the website yet. As a client, you can check various aspects of the beta version and suggest changes if any. Developers implement changes and fine tune the website as per your requirements.

If everything is found to be robust and like the way you want it to be, the final version of the website is released on the web. Your customers can see it at this stage.

When you hire a web development company, make sure that it follows this process. This way, you can be assured of a thoroughly efficient website.