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.

The Evolution of Word Wide Web – WWW

Introduction

World Wide Web (WWW) is the system of interlinked hypertext documents containing text, images, audio, videos, animation and more. User can view and navigate through these documents using hyperlinks or navigation elements which have references to another document or to the section of the same document. In a broader sense “The World Wide Web is the universe of network-accessible information, an embodiment of human knowledge.”

History of World Wide Web

WWW was first proposed in 1990 by Tim Berners-Lee and Robert Cailliau while working at the CERN, the European Council for Nuclear Research. Both of them came out with their individual proposal for Hypertext systems and later on they united and offered joint proposal. The term “Word Wide Web” was first introduced in that joint proposal. The history of every invention has lot of pre-history. Similarly the World Wide Web has also lot of pre-historical gradual development of hypertext system and internet protocols which made the WWW possible. The gradual development started in the early 1945, with the development of Memex, a device based on microfilms for storing huge amount of documents and facilitating organizing those documents. Later in 1968 “Hypertext” was introduced, which made linking and organization of documents fairly easy. In 1972 DARPA (Defense Advance Research Project Agency), started project that connect all research centers to facilitate data exchange which later adopted for military information exchange. In 1979 SGML (Standard Generalized Markup Language) was invented to enable sharing of documents for large government project by separating content from the presentation and thereby enabling same document to be rendered in different ways. In 1989 Tim Berners-lee came out with Networked Hypertext system form CERN Laboratory. In 1990, joint proposal for hyper text system was presented and the term “World Wide Web” first introduced. In 1992 first portable browser was released by CERN, and that had picked up industry interest in internet development. Today web is so much popularized and has grown to be so invaded in to our lives; it becomes almost impossible to imagine the World without web.

Web Evolution – What and How?

Each technology has certain distinguished characteristics and features. Similarly web has certain features such as data, services, mess-up, APIs, social platform and more. These features are continuously and progressively evolving in distinct stages with qualitative improvements over the existing. Web evolution is categorized and hyped with some fancy marketing terms like “Web 1.0”, “Web 2.0”, “Social Web”, “Web 3.0”, “Pragmatic Semantic Web”, “Pragmatic Web” and many more.

Yihong Ding, PHD candidate at Brigham Young University, in his article on “Evolution of Web” explained the development of Web by analogically comparing it with the human growth. Yihong Ding stated “The relationship between web pages and their webmasters is similar to the relationship between children and their parents. As well as parents raise their children, webmasters maintain and update their web pages. Human children have their normal stages of development, such as the newborn stage, pre-school stage, elementary-school stage, teenage stage, and so on. Analogically, web has its generations, such as Web 1.0, Web 2.0, and so on.”

Along with technological advancement web design also changed over the period of time. Initial design was simple hypertext read only system which allowed users to read the information. User was just a viewer of what is presented on the web. Gradually images and tables added with evolution of HTML and web browsers, which allowed making better design. Development of photo-editing tools, web authoring tools and content management tools enabled designer to begin creating visually appealing website design layouts. In the next phase of development, web design changed with the change in usability and the focus is diverted on the users rather than the content of the website. User interaction and social touch is applied to the web design. Now user is not just a viewer. User can drive the web with feedback, information sharing, rating and personalization. Gradually we got the mature blend of function, form, content and interaction, called Read/Write Web. Continuing this evolution, meaning is added to the information presented on the web so that online virtual representatives of human can able to read and interprets the presented information. This kind of web where user agent imitating human behavior, can read and understand the information using artificial intelligence is called semantic web.

Web 1. 0 (Read Only Web)

World Wide Web is evolved in stages. First stage was the basic “Read Only” hypertext system also termed as Web 1.0 since the hype of Web 2.0. In fact in the original proposed web model, Tim Berners-Lee envisioned web as the Read/Write Model with HTTP PUT and HTTP DELETE method. These methods were almost never used just because of security reasons.

Some of the Characteristics of Web 1.0

1. In Web 1.0 web master is constantly engaged with responsibility of managing the content and keeps user updating. Majority of hyperlinks to the contents are manually assigned by the web master.

2. Web 1.0 does not support mass-publishing. The content on the website is published by the web master and thereby does not leverage the collective intelligence of users.

3. Web 1.0 uses basic hyper text mark up language for publishing content on the internet.

4. Web 1.0 pages do not support machine readable content. Only human who are web readers can understand the content.

5. Web 1.0 provides contact information (email, phone number, fax or address) for communication. Users have to use the off-line world for further communication with this contact information.

6. In Web 1.0, web pages are designed to react instinctively based on the programmed condition. Specific result or response is generated when the programmed condition is satisfied. Web 1.0 model does not understand remote request and can not prepare response for potential request in advance. To clearly understand above characteristics of web 1.0, Yihong Ding in his article on “Evolution of World Wide Web” has analogically correlated World of Web 1.0 with the world of a Newborn baby.

Newborn Baby : I have parents

Web-1.0 Page : Webmasters

Newborn Baby : Watch me, but I won’t explain

Web-1.0 Page : Humans understand, machines don’t

Newborn Baby : Talk to my parents if you want to discuss about me

Web-1.0 Page : Contact information (email, phone number, fax, address, …)

Newborn Baby : My parents decide who my friends are. Actually, I don’t care

Web-1.0 Page : Manually specified web links

Newborn Baby : Hug me, I smile; hit me, I cry (conditional reflex)

Web-1.0 Page : Reactive functions on web pages

Source: Analogy from the Article by Yihong Ding from http://www.deg.byu.edu/ding/WebEvolution/evolution-review.html#w1:1 “The web 1.0 pages are only babies.

Web 2. 0 (Read Write Web)

“Web 2.0 is the understanding that the network is the platform and on the network is platform roles for the business is different. And the cardinal role is user adds value. And figuring out how to built database and things to get better so that more people use that and it’s the secret of web 2.0.

Web 2.0 is the business revolution in the computer industry caused by the move to the internet as platform, and an attempt to understand the rules for success on that new platform.”[4]

In Web 2.0 the idea of Consumer (Users) and Producer (Web Master) is dissolving. Web 2.o is more about communications and user interactions. Web 2.0 is all about participation. “Content is the King” often cited quote during early web 1.0 days, is now turned in to “User is the King” in Web 2.0. In web 2.0 users communicates through blogging, wikis and social networking websites. Everything on the web is tagged, to facilitate easy and quick navigation. Web 2.0 is also about combining it all in one single page by means of tagging and AJAX with better usability via lots of white space, and a cleaner layout. The API ability makes it possible for programmers to mash up data feeds and databases to cross reference information from multiple sources in one page. In contrast with web 1.0, web 2.0 has collective intelligence of millions of users.

Web 2.0 is all about improved version of World Wide Web with changing role and evolving business model where users learned to communicate with the other users instead of just communicating with the publisher of the content.

Some of the Characteristics of Web 2.0

1. Web 2.0 is the second version of Web providing RIA (Rich Internet Application) by bringing in the desktop experience such as “Drag and Drop” on the webpage in browser.

2. SOA (Service Oriented Architecture) is the key piece in Web 2.0. Buzzwords around SOA are Feeds, RSS, web services and mash up, which defines how Web 2.0 application exposes functionality so that other applications can leverage and integrate those functionalities providing much richer set of applications.

3. Web 2.0 is the Social web. Web 2.0 Application tends to interact much more with the end user. End users are not only the users of the application but also the participants whether by tagging the content, whether he is contributing to the wiki or doing podcast for blogging. Due to the Social nature of application end user is the interval part of the data for the application, proving feedbacks and allowing application to leverage that user going to use it.

4. In Web 2.0 philosophy and strategy is that “The Web is open”. Content is available to be moved and changed by any user. Web site content is not controlled by the people who made the web site but by the user who are using the web site.

5. In Web 2.0 Data is the driving force. Users are spending much more time online and started generating content in their passive time. Web 2.0 requires some of the key technologies to be used in the development of web pages. One of the important technologies is the AJAX which supports development of rich user experience.

6. Web 2.0 websites typically include some of the following key technologies.

– RSS (Really Simple Syndication), which allows users to syndicate, aggregate and to set up the notification of the data using feeds.

– Mashups, which makes it possible to merge the content from different sources, allowing new form of reusing of the information via public interface or APIs.

– Wikis and Forums to support user generated content.

– Tagging, which allows users to specify and attach human readable keyword to web resource.

– AJAX – Asynchronous Java Script and XML, which is the web development technique, allowing exchange of interactive data behind the scene without reloading the web page.

To clearly understand above characteristics of web 2.0, Yihong Ding in his article on “Evolution of World Wide Web” has analogically correlated World of Web 2.0 with the world of a Pre-School Kid.

Pre-School Kid : I have parents

Web-2.0 Page : Webmasters (blog owners)

Pre-School Kid : Parents teach me knowledge (though often not well organized)

Web-2.0 Page : Tagging

Pre-School Kid : I understand but maybe imprecise and incorrect

Web-2.0 Page : Folksonomy

Pre-School Kid : I can deliver and distribute messages, especially for my parents

Web-2.0 Page : Blogging technology

Pre-School Kid : Who my friends are is primarily determined by my parents’ social activities and their teaching

Web-2.0 Page : Social network

Pre-School Kid : Multiple of us can be coordinated to do something beyond individual’s capabilities

Web-2.0 Page : Web widget, mashup

Pre-School Kid : I can do suggestion based on my communication with friends

Web-2.0 Page : Collective intelligence

Following table distinguish the difference between Web 1.0 and Web 2.0

Web 1.0 is about : Reading

Web 2.0 is about : Reading /Writing

Web 1.0 is about : Publishing

Web 2.0 is about : Feedbacks, Reviews, Personalization

Web 1.0 is about : Linking Content using Hyperlinks

Web 2.0 is about : mashup

Web 1.0 is about : Companies

Web 2.0 is about : CommunityCommunity

Web 1.0 is about : Client-Server

Web 2.0 is about : Peer to Peer

Web 1.0 is about : HTML

Web 2.0 is about : XML

Web 1.0 is about : Home Pages

Web 2.0 is about : Blogs and Wikis

Web 1.0 is about : Portals

Web 2.0 is about : RSS

Web 1.0 is about : Taxonomy

Web 2.0 is about : Tags

Web 1.0 is about : Owning

Web 2.0 is about : Sharing

Web 1.0 is about : Web form

Web 2.0 is about : Web Application

Web 1.0 is about : Hardware Cost

Web 2.0 is about : Bandwidth Cost

Web 3. 0 (Semantic Web)

Web is no longer linking and tagging of information and resources. With the advent of semantic web concept, special information is attached to the resources or information so that machine can understand and read just like human.

Timer Berner Lee envisioned

“I have a dream for the Web [in which computers] become capable of analyzing all the data on the Web – the content, links, and transactions between people and computers. A ‘Semantic Web’, which should make this possible, has yet to emerge, but when it does, the day-to-day mechanisms of trade, bureaucracy and our daily lives will be handled by machines talking to machines. The ‘intelligent agents’ people have touted for ages will finally materialize.”

Semantic Web has derived from his vision of web as the universal medium for exchange of data, information and knowledge. Web 3.0 or Semantic Web is an Executable Phase of Web Development where dynamic applications provides interactive services and facilitates machine to machine interaction. Tim Berner Lee has further stated

“People keep asking what Web 3.0 is. I think maybe when you’ve got an overlay of scalable vector graphics – everything rippling and folding and looking misty – on Web 2.0 and access to a semantic Web integrated across a huge space of data, you’ll have access to an unbelievable data resource.” Semantic web is the an extension of World Wide Web in which web content is expressed in machine readable language, not just in nature language, so that user agents can read, process and understand the content using artificial intelligence imitating human behavior. In other words Semantic Web is an extension of the web where content expressed can be processed independently by intelligent software agents.

There can be several agents one can program within the context of vocabulary of the vertical domain.

For example

“Travel Agent”, who keep searching chipset air tickets based on your criteria and notify you when it gets the perfect one.

“Personal Shopper Agent”, who keeps looking for the specific product on the eBay and get it for you once it finds the one that match with all of your criterions.

Similarly we can have “Real Estate Agent”, “Personal Financial Advisor Agent” and many more.

All user is doing is just creating their personal agent which talks with the web services which are exposed publicly and there by taking care of lots of repetitive tasks.

Precisely Web 3.0 = Every human + Every device + Every Information

Characteristics of Semantic Web

1. Unlike database driven websites, In Semantic Web database is not centralized.

2. Semantic Web is the Open System where schema is not fixed as it may take any arbitrary source of data.

3. Semantic Web requires using Meta description languages such as Web Ontology Language and the Resource Description Framework (RDF). Annotation requires lot of time and effort.

Web n.0 – a Glimpse of the Future

Let me add one more element to the previous formula

Web 3.0 = Every human + Every device + Every Information = Everything in the context of current technology advancement.

Web 3.0 is still evolving and it is going to encompass everything. One can not envision anything beyond web 3.0 in the current technology advancement.

Breaking all current technological capabilities Raymond Kurzweil, the inventor of OCR (Optical Character Reader) envisioned Web 4.0 as the Web OS with intelligent user agents acting parallel to human brain. Following figure illustrate the evolution of Web along with technology advancement and the semantics of social connections. Source: Nova Spivack and Radar Networks

Conclusion

The evolution of web has gone through phases as mentioned in this article and that has introduced numerous technologies and concepts in various areas; software, communication, hardware, marketing, advertising, content sharing, publicity, finance and many more.

In a way the World Wide Web has changed the way people were used to look at things earlier. I believe this evolution is never ending and moving towards excellence.

References:

Best Web Programming Languages: Every Beginner Should Know

The industry of computer science is flourishing in the global world, and the best aspect is it pays off excellent! There has been, and is always, the demand for qualified, sharp and intellectual engineers and that is the reason why youngsters are learning codes as it is the most appealing option. However, with new skills coming up in the industry, youngsters are finding it difficult to understand the ways to start.

When you are about to start, you need to know in brief about the programming languages. You definitely need to make efforts to master in the respected language (one or more), and the result will be a high paying job on your platter in the leading industry. Let us have a quick look at the 6 most popular and rewarding web programming languages of 2016 that you can go for.

1. HTML/HTML5

• It is the latest or advanced version of Hypertext Markup Language which includes behaviors, new attributes and elements.

• It helps with enhanced flexibility, offers features of- offline editing, drag/drop, improved messaging, and elimination of outdated attributes.

• Offers high speed optimization, styling, 2D and 3D graphics, connectivity, multimedia and integrated performance.

2. CSS/CSS3

• It is simple and easy to learn, and it compatible with any older versions.

• It has a speedy development, features can be changed easily, has a compatible browser and independent platform.

• Easy to add animations and images, texts and borders, which enhances overall appearance.

• Testing features is now easy with the latest version of CSS.

• New tools helping designers to experiment with their creations.

3. JavaScript

• It is not Java, rather is the powerful language which helps in enhancing the web pages. The JavaScript helps in adding effects in the various web pages, in creating functionality games and also in popping up messages.

• This is a worldwide used scripting language which works best with many major and popular browsers.

• It is used as the base in many new technology which helps in real time communication.

• Learning JavaScript is important for all, it helps in creating interactive pages.

• It has an excellent user interface that offers you to make fresh images, add scripts or animations, and make creative profiles.

4. JQuery

• It is an excellent language to learn for many web developers, both newbies and experienced.

• It can be used easily even with complex projects and can be combined with other languages as well.

• It has a huge library consisting of different functionalities which can be used.

• Easy to go through tutorials and documents, best for a beginner to learn.

• One can create Ajax templates using user friendly interface.

• Many plug-ins are readily available that helps in high speed development.

5. PHP

• All web developers should have knowledge in PHP language of programming, which is a popular and effective platform.

• The web can be expanded easily and within less time, and even with fewer efforts applied.

• It is the foundation language for many management systems.

• It is a profitable language which helps to many programmers and developers.

• The Hypertext Pre Processor language is for scripting which runs on any server and help in creating the pages which are previously in HTML format.

• It is a popular programming language and provides many advanced tools for the programmers and new learners.

6. MySQL

• In order to execute on Oracle, SQL Microsoft, one needs to learn about SQL language.

• The Standard Query Language will help in gaining proficiency which works in multifaceted and huge data bases.

• After JavaScript, MySQL is most commonly used by the worldwide developers.

• It helps to be used by small and big business, universities and also banks.

• A lot of mobile phone applications have SQL database access and various popular apps have been developed on it.

Conclusion:

So, what have you decided? Which programming language you want to learn as a beginner? Well, if you like getting into the field of web development then the best language suitable for you to learn will be JavaScript, irrespective of you like or not. On the other side, if you wish to go with the backend development of web then learn SQL language. If you are looking forward to make mine data websites then you can learn the Python language.

In addition to this, if you are looking to work in a company then you can learn Java. For building any things or for any jobs, you can start learning SQL, which is even good for Math students. So, now that everything is explained clearly to you, it is your decision to make on what programming language you wish to learn. Have a happy time in learning, and you will eventually earn huge profits from any language you choose.