How The Game Is Played

http://blogs.sun.com/gameguy/date/20050329 Tuesday March 29, 2005

The problem with shards

I really had not intended to write two blogs today, so I'll keep this short.

I just got done writing my docs for the day and thought I'd blow off some steam by playing Matrix Online. Nope. No can do. Why? Because of something called sharding.

The architectures of modern MMOLRPGS are all pretty primitive on the back ends and cannot handle the user load of all the potential players. So they replicate the games making N separate game worlds, called "servers" or "shards" by the industry.

Each one is a totally independent instance of the game. This includes your characters. If you have a charcter on one "shard" or "server", you cannot play that character on another server. My character is on Method. Method however is over-loaded right now and won't let any new players in.

The result-- I'm sitting here writing a blog when I WANT to be using that service I'm supposedly paying monthly access for. This is a customer service problem.

The Sun Game Server fixes this problem. It dymaically shifts resources so that as long as the back end has some resources somewhere I can use them to do whatever it is Im trying to do. It will change the industry for the better.

I just wish we had released it a year ago and that MxO was running on it right now :(

Irascible old programmer rant 1: The rape of the english language

Okay,

I promised that this blog would be one third gamer journal. So far I've fulfilled that with my notes on Matrix Online.

I promised it would be 1/3 developer journal. I've sort of done that with my notes on moving to linux. Heavier stuff will follow as I get out of my doc writing phase and back into actual development.

And I promised it would be 1/3 irascible old programmer rants. So here is a rant. Actually its an irascible old writer rant but I'm a many facted ranter!

Wittgenstein said "meaning is use" but for words to have any meaning what so ever, that use must be reasonably standardized. Otherwise we are just grunting empty sounds at each other with less meaning then a chimpanzee's hoots-- those at least have a common meaning set.

Thats why the dictionary was invented and it used to be that no intelligent person would write anything without one by their side. My parents, professional writers for 40 years, still consider it a primary tool of their trade and have one at each desk.

In today's America however, it has become common practice to argue your political purpose by redefining words to mean what you want them to. There are many great examples. The classic, and the folks who IMHO probably started it all, are the anti-abortion movement.

Now I am not going to start a fight over that political point here. This is not a political blog, this is a blog about being intelligent and educated users of the English langauge. Thsoe folks however discovered a brilliant, if twisted, poltiical technique that I AM writing about. It is a movement against something. they don't believe in abortion. The believe it is murder and fundamentally wrong. Thats fine. What they discovered though is that people react negatively to the word "anti". Its a word with negative connotations. So they redefined themselves as "pro-=life."

I'm sorry, thats nonsense. Brilliant, highly effective nonsense. They aren't mobilizing to create life. By their own arguments, they are against something-- against what they see as murder. That is the point of their mission. Nor are the pro-abortion folks against life, They are just against having their choice to abort or not taken away. None of this changed when the anti-abortion movement changed the language HOWEVER they suddenly found themselves a lot more popular, even though the label they chose was less accurate.

Others have learned from this example. One of my personal favorites is the "open source movement." To quote another recent blog which will remain nameless:

"is it o.k. to implement OpenOffice.org features using the Java technology considering that Java is not fully open source in the pure sense"

What an interesting statement. What is Open Source in the purest sense ? The purest sense of English, as I already mentioned, is contained in the dictionary. Lets have a look:

According to Webster's online dictionary ( http://www.m-w.com ):

Main Entry: source
Pronunciation: 'sOrs, 'sors
Function: noun
Etymology: Middle English sours, from Middle French sors, sourse, from Old French, from past participle of sourdre to rise, spring forth, from Latin surgere -- more at SURGE
1 a : a generative force : CAUSE b (1) : a point of origin or procurement : BEGINNING (2) : one that initiates : AUTHOR; also : PROTOTYPE, MODEL (3) : one that supplies information
2 a : the point of origin of a stream of water : FOUNTAINHEAD b archaic : SPRING, FOUNT
3 : a firsthand document or primary reference work
4 : an electrode in a field-effect transistor that supplies the charge carriers for current flow -- compare DRAIN, GATE
synonym see ORIGIN

This is somewhat confusing until we recall that "source" in this case is a shortened version of "source code." Code is defined as follows:


Main Entry: 1code
Pronunciation: 'kOd
Function: noun
Etymology: Middle English, from Middle French, from Latin caudex, codex trunk of a tree, document formed originally from wooden tablets
1 : a systematic statement of a body of law; especially : one given statutory force
2 : a system of principles or rules
3 a : a system of signals or symbols for communication b : a system of symbols (as letters or numbers) used to represent assigned and often secret meanings
4 : GENETIC CODE
5 : a set of instructions for a computer

Aha! Now it makes sense. Reliable, english sense. Source = origin. Code = set of instructions for a computer. "Source code" == the original set of instructions for the computer.

Lets try "open":


Main Entry: open
Pronunciation: 'O-p&n, -p&m
Function: adjective
Inflected Form(s): open·er /'Op-n&r, 'O-p&-/; open·est /'Op-n&st, 'O-p&-/
Etymology: Middle English, from Old English; akin to Old High German offan open, Old English up up
1 : having no enclosing or confining barrier : accessible on all or nearly all sides
2 a (1) : being in a position or adjustment to permit passage : not shut or locked (2) : having a barrier (as a door) so adjusted as to allow passage b : having the lips parted c : not buttoned or zipped
3 a : completely free from concealment : exposed to general view or knowledge b : exposed or vulnerable to attack or question : SUBJECT
4 a : not covered with a top, roof, or lid b : having no protective covering
5 : not restricted to a particular group or category of participants : as a : enterable by both amateur and professional contestants b : enterable by a registered voter regardless of political affiliation
6 : fit to be traveled over : presenting no obstacle to passage or view
7 : having the parts or surfaces laid out in an expanded position : spread out : UNFOLDED
8 a (1) : LOW 13 (2) : formed with the tongue in a lower position b (1) : having clarity and resonance unimpaired by undue tension or constriction of the throat (2) of a tone : produced by an open string or on a wind instrument by the lip without the use of slides, valves, or keys
9 a : available to follow or make use of b : not taken up with duties or engagements c : not finally decided : subject to further consideration d : available for a qualified applicant : VACANT e : remaining available for use or filling until canceled f : available for future purchase
10 a : characterized by ready accessibility and usually generous attitude: as (1) : generous in giving (2) : willing to hear and consider or to accept and deal with : RESPONSIVE (3) : free from reserve or pretense : FRANK b : accessible to the influx of new factors (as foreign goods)
11 a : having openings, interruptions, or spaces : as (1) : being porous and friable (2) : sparsely distributed : SCATTERED (3) of a compound : having components separated by a space in writing or printing (as opaque projector) b : not made up of a continuous closed circuit of channels
12 a of an organ pipe : not stopped at the top b of a string on a musical instrument : not stopped by the finger
13 : being in operation ; especially : ready for business, patronage, or use to="to" _5="_5">
14 a (1) : characterized by lack of effective regulation of various commercial enterprises (2) : not repressed by legal controls b : free from checking or hampering restraints c : relatively unguarded by opponents
15 : having been opened by a first ante, bet, or bid
16 of punctuation : characterized by sparing use especially of the comma
17 a : containing none of its endpoints b : being a set or composed of sets each point of which has a neighborhood all of whose points are contained in the set
18 a : being an incomplete electrical circuit b : not allowing the flow of electricity synonym see FRANK, LIABLE
- open adverb
- open·ly /'O-p&n-lE/ adverb
- open·ness /-p&(n)-n&s/ noun

Wow, now thats a big one. Lots there. Most of which doesn't make much sense at all. It could mean definition 1, "accessible on all sides" but if we read further we see that this is aphyscial definition (an open field) and is really a stretch to naythign non-physical. It could mean definiton 12, not stopped by a finger, but thats even less likely. It could simply mean "ready for use" as per definition 13.

What I DON'T see anywhere is a definition that says "free of charge for any and all use" or "not covered by copyrights."

Yet this is EXACTLY what the other blogger meant. If thats not English then why did he say it? Because the term "open source" used to have an English meaning. It meant open as an open-book, definition 7. In other words readable source. Thsi is a term however that has been misused and abused for political purposes. The word "socialism" has negative connotations to americns while "open" sounds so much better to an American ear. But that's what the "open software movement" is-- a socialist software movement. A movement that wants to see software (all intellectual property, actually) moved to shared common property of the entire society.

Now again, I'm not going to try to comment on the politics here. Frankly I'm not ashamed to admit that there are a lot of things I personally admire in truly socialist societies. But hiding behind words stripped of their meaning and redefined is the argument of manipulative cowards afraid that they cannot defend what theyre ally mean in real English.

And I am way past sick of it.

In the purest sense open source software means that the source is readable. Thats it. And its high time we reminded the world of that. In the purest sense, Java is open source today. The source can be dowbloaded and read relatively freely. Its only in the corrupted sense, of truly socialist software development, that it is not.

http://blogs.sun.com/gameguy/date/20050327 Sunday March 27, 2005

Short Follow-up to last Blog

Word to the Wise: ATI support for Linux is royally screwed.

I'm struggling right now to get a second box working right with an ATI card.

If you have any option, go NVidia. If you don't, well, I share your pain :(

http://blogs.sun.com/gameguy/date/20050324 Thursday March 24, 2005

Leaving WIndows, a Linux tale

Alright.

I am officially sick of Windows. When it ate a critical system file AGAIN last week and put me out of commission for 3 days I had had my fill. Something I'm not sure that Sun execs have ever entirely grasped is that *most* consumers hate their windows machines. They stay with them for one, and only one reason-- games.

Windows is the primary game platform. Everything else you want to do at this point you can do under Linux but if you want to play your games-- and admit it or not thats what 90% of the consumers do with 90% of their processing time-- you need Windows.

Which brings me to the real topic of this week's Blog: Transgaming.

No, this is not a sequel to my semi-famous "cross gender role-play" blog. Rather, Transgaming is a funny little company that makes a widget that allows *some* Windows games to play on Linux. They call their widget Cedega (I have no idea why) and they call their population of users Transgamers. A rather questionable choice given the primary meaning 'Trans' brings to mind in this country. But they're canadian so maybe they speak differently up there.

Cedega is derived from Wine. Wine, the story goes, stands for "Wine is not an emulator." Recursive definitions are an old GNU gag so don't try to hard to wrap your brain around it. The important thing is what Wine is: Wine is a binary interface for Windows programs. Basically it "looks like" the interface Windows programs use to talk to the Win32 operating system but converts all those calls to appropriate Linux calls. Its a conversion layer that sits between Linux and a Win32 app and allows the Win32 app to act like its running under Windows.

Now Wine itself is not enough to play games. This is because games depend heavily on a special operating system interface Windows designed just for them. It's called DirectX. What the Transgaming guys have done is added DirectX support to Wine. This is not as easy as it sounds.

First off, DirectX is *notoriously* badly documented. When developers code games they write code they think might work that calls DirectX then play with all the emergent properties by trial and error. Its an ugly nasty coding process and as a result most games in one way or another depend on odd, undocumented behaviors of DirectX. (This ofcourse suits Microsoft just fine as it strengthens their lock-in position.)

Secondly, decompilation of DirectX is not an option. Nor is using any of the actual Microsoft executable code. Either would get the Transgaming guys buried in Microsoft lawyers before they drew their second breath.

Instead, what Transgaming does is reverse engineer DirectX behavior based on the games. For each game they work on they run it against their DirectX emulator, see what is broken, and then in the same way game programmers hack their code to work right with DirectX these guys hack their fake DirectX to work with the game.

This is all compounded by the ever present Linux driver problem. Linux graphics drivers, although better then they used to be, still tend to be a second or third order of concern for graphics chip makers. As such, finding the right stable graphics driver version can be important. I went back one version on my NVidia drivers to get Cedega working right with my NVidia 6800 GT. While most modern Linux distributions have an easy and automated wya to install what they consider "the latest" driver (which isn't always the most current one from the manufacturer), installing other graphics drivers in Linux generally involves rebuilding the kernel and is not for the technically timid.

The end result is that Cedega success varies a lot. First you need to get Cedega and your system talking nicely with the right match of graphics driver. After that, a few lucky games at this point work right out of the box, a bunch of slightly older have gone through the tweaking process and are now solid. Many more either don't work or work poorly and in either case will require further tweaking of the Cedega emulator by the Transgaming guys to really be playable. For $5.00 a month you can "join the community." Thsi gives you access rights to donwload the Cedega emulator, a nifty little game and emulator manager called "Point2Play" that makes it relatively painless to install and run the Windows programs as well as keep your Cedega emulator up to date, and the right to vote on what games Transgaming should make their highest priorities.

Now for the good news. When it works, it works a treat. I have City of Heroes up and running and I swear its faster under Linux then it was under Win32. I can't prove that easily, but its a gut feeling I have playing it. Matrix Online on the other hand I can't even get through the patcher yet on. Hopefully they will get to it soon.

So the conclusion is today I am still dual-booting. I am 90% off of Windows. If they can get MxO working under cedega then I will be totally off Windows.. at least until the next game comes around that I can't make work under Cedega.

More info on Transgaming's products can be found at: www.transgaming.com The community site and forums are: www.transgaming.org

http://blogs.sun.com/gameguy/date/20050321 Monday March 21, 2005

Episode 1: A new hope

Well,


Another day another blog page.


Some of you may know that I had a previous blog on www.javagaming.org. Issues with the cumbersome process that it took to both write and then get the blogs actually posted led me to abandon that log. (In fact, there are 2 posts you will likely never see even though I wrote them.)


I am going to attempt to start over here on The Street. My goals for this blog are to be semi-regular and cover 3 topics: my own engineering work in the game technology group, my personal game interests and involvements, and just general opinions on the state of software engineering.


Having said that, on to post 1:


My new obsession: Matrix Online


Matrix Online launched this weekend. I predict a run this week on 512mb memory DIMMs as it is unplayable with anything less then 1 gig of memory.


Once you have a gig of memory and a reasonably recent graphics card, it plays pretty well. There are some lag annoyances but not too bad so far. Here is my pluses and minuses:


Pluses:


The game does an admirable job of getting you into the "feel" of The Matrix. The three-way cold-war (Zion/Machines?Exiles) is a classic political triangle that has a lot of play potential. As you hose a side and ingratiate yourself to them more and Oreo of the real cold-war struggle becomes apparent.


The combat system is interesting. It is much more like playing a pen and paper game, and then seeing the results of your moves animated then it is like a traditional computer game. I personally like this as it lends the game a depth of strategy and thinking thats unusual and to me quite welcome.


The character development system is also interesting and unusual. It combines crafting with skill development in a nicely integrated fashion and allows you to freely experiment with many different approaches to your character's "build." (An OLRPG term that refers to your skill choices.)


All in all the game design in my book is a strong plus.


Minuses:


By the tail end of this weekend we started to see some lag issues and partial back-end failure issues. Whether or not their server design will long term hold up to the real world loads is an open question.


One typical lag effect is that your help robots (called "pets"

by OLRPG players) get stupid and refuse to engage the enemy in combat. This generally spells death for any character type who depends on their ability to create such helpers (as mine does.)


The world is still very bug laden. Most of these are content bugs (missing NPCs, doors that should open but don't, etc.) These content bugs mean you can get 3/4 of the way through a mission only to find it cannot be completed and must be aborted. This is very frustrating and will run many players away if not fixed.


The way the mission system works is a bit unusual, being half way between a "static" mission system like most of the older OLRPGs and the "spawned missions" becoming popular in newer ones.


Static missions are placed in the world in a given spot or spots and are always there. "Take a letter from the guard captain to the chief in the tower" is a typical example.


Dynamic missions have play-spaces that are duplicated once for each group running the mission and generally only exist as long as that group is working on that mission. All the "indoor" missions in City

of Heroes for instance are spawned missions.


Matrix Online has static mission spaces but they are generic. Into them get spawned the NPCs and items for a specific run of a mission for a specific group of players. The spaces contain "hooks" for the placement of those mission resources.


Unfortunately, when a play space is broken, things don't get placed right (such as missing NPCs) or behind doors that can't be opened. Because the location, and even the specific NPCs involved, are randomized with each spawn this makes it very very hard to report bugs on as each attempt to do the mission is semi-random and non-repeatable. It will be interesting to see how they handle getting these mission space bugs fixed moving forward.


Word to the wise: Avoid the city area known as "Zia" right now as its mission spaces seem particularly screwed up.


The deep character and combat systems are also a minus. IMHO this is not a game thats likely to appeal to the mass market. It takes too much learning and too much thinking. I expect it to be a niche success but not a blockbuster. .A wise man once said, “No one has ever lost money underestimating the intelligence of the average American.”



Odd Facts and Observations Department:

At the last minute Monolith and Warner decided to sign a hosting and administration contract with IBM. It will be interesting to see how well that relationship works as IBM has no experience that I know of with consumer services of any kind, let alone online games.


All in all Martix Online is an interesting, if flawed game and something new in a number of ways in the OLRPG space. How it does in the market only time will tell.