The Forums Are Now Closed!

The content will remain as a historical reference, thank you.

Demigod: How games are made

By on June 8, 2009 5:59:32 PM from JoeUser Forums JoeUser Forums

image Well I said I was going to start going lighter on these journals since each one seems to give the poorly informed an opportunity to flame me or Stardock for whatever woes they have without realizing what’s really going on.

It just goes against my grain to not keep people up to date with what’s happening.  The only thing I will say is this: I’m just the messenger.  My job is a lot like herding cats.

So that everyone is on the same page of who is doing what:

Stardock

Stardock, who I work for, is the North American retail publisher of Demigod as well as the digital distributor of it via Impulse.  Our job is to take the game, put it in a box (or online) for people to purchase at the store. We also are responsible for the marketing and technical support for the game.

However, in the case of Demigod, we also agreed to provide a website to take posted data from the game and display it (rankings, favor points, etc.).

In addition, Stardock developed Impulse which, amongst other things, includes impulsereactor.dll which has what we call a Common Virtual Platform (CVP).  CVP is designed as an interface to a series of web services.  An application calls a CVP function to send XML to servers as well as receive XML from servers that the game can then display in-game.

Here are some examples:

A game might request a team game. The game developer would call something like CVP.RequestMatch() which would then look at players in the queue and send back an XML with the players and their IP addresses for the game to connect to.

A game may want to record how many kills or how much damage they did. It can use CVP to post this data to our servers.

Now, in the case of Demigod, some special code was added to handle connecting players together because Demigod does not have this. GPG used GPGNet in Supreme Commander but it was not available for Demigod.

Raknet

To take the place of GPGNet, we looked at several options including GameSpy Arcade, Games for Windows Live, and Raknet.  Since Demigod’s original ship date was February, we couldn’t use Games for Windows Live as it was too far along. The team ultimately decided to go with Raknet because it was used successfully with The Political Machine.  But The Political Machine is a client/server game.  Demigod is a peer-to-peer game just like Supreme Commander, Warcraft 3, Company of Heroes, and the Dawn of War series. 

So we worked with the developer of Raknet to use that library for Demigod.  I won’t go into the details here other than to say that obviously everything didn’t go as planned on that.  The basic issue was scalability.

For you web developers, the way I would describe it is imagine setting up a really elegant looking new website that runs great during your testing phase. Then you release it and when thousands of people are on it at once, it crashes and burns.  That’s basically what happened with Demigod. 

I still highly recommend Raknet. If someone makes a website using Ruby on Rails, for instance, they should know what the pluses and minuses of it.  Same here.  Ultimately, Stardock and Gas Powerered Games took the lead on this part of the game and so it was our responsibility.

With that, bear in mind, our anticipated technical involvement with Demigod was essentially that we would provide the website, a database, and finding players to connect to each other.  We treated the connectivity the same as you would any other “engine” you license (i.e. Unreal engine, Fmod, Bink, etc.).

Snowball 

In Russia, the publisher of Demigod is Snowball.  If you bought the game in Russia at the store, Snowball is the equivalent of Stardock there.

Atari

Everywhere else it’s Atari. Whether you bought it at a store in Australia or in the UK or on the continent of Europe, Atari is in charge there.

Gas Powered Games

And of course, the game itself is Chris Taylor’s Gas Powered Games which designed and developed the game. They make the demigods, the maps, the items, etc.  Demigod is their game (i.e. they own it). They are the Stephen King to Stardock’s Del Ray books.

I think most people would agree Demigod is an awesome game. Gas Powered Games is one of the top independent game developers in the industry. You’re talking about total pros here.  If it sounds like I’m a fan, it’s because I am.

My point is that when people have some problem whether it be single player, multiplayer, whatever I will do my best to direct the feedback to the right group.  My default position is that everything is my fault and therefore Stardock’s fault.  But that doesn’t mean we literally coded it. I’m just saying that the buck has to stop somewhere.

However, our ability to exact change is limited by how much of our own resources we can put in to help GPG or Raknet.  Customers of our partners Atari and Snowball benefit from these efforts but I’ll tell ya, I get pretty annoyed when some guy who bought the game in Europe at the store (therefore an Atari customer) is flaming Stardock for whatever problem.  It’s like flaming the fireman for not putting out the fire fast enough.

The Pantheon

The area of pain we’re dealing with this week is the Pantheon. 

Custom game connectivity works very well now and with the updates for this week, they’ll likely reach the point of diminishing returns (i.e. if you still have problems in custom games after this week’s updates, it’s on your end). 

But Pantheon sucks. So does skirmish.  Istari, one of the Stardock developers pulled from Elemental to help on Demigod along with others here have been going through pantheon nonsense all last week and today.

As some of you know (but unfortunately not most people) when things hit the fan with Demigod’s online experience, we brought in developers from Impulse and Elemental to work with GPG and Raknet to get things resolved more quickly. It was a tough call because you don’t necessarily want to have too many chefs in the kitchen but on the other hand, fixing things quickly and well is very expensive and it was either putting the burden on GPG or Raknet and at the end of the day, if I’m making the journals and our name is on the box I feel more comfortable if the people working on it are people responsible to me.  It’s a tough situation all around and everyone is working very hard under difficult circumstances.

Anyway, here’s a typical Pantheon experience:

  1. User hits “Fight”
  2. They wait awhile while the system tries to match them with people of similar skill.
  3. They see 4 people on the connection dialog.
  4. One of them disappears.
  5. They end up in a 2 v 1 game.

Here’s another typical Pantheon experience:

  1. User hits “Fight”
  2. They wait awhile..
  3. They see 4 people
  4. One of them can’t connect back.

Sometimes you get both.

Here’s a report between Jeff and Istari on the subject:

This log finished off with the following:

PlayerName: Istari PlayerID: 11122 SystemAddress: xxx.204.71.133:64840, Connected to: 46966,52623 PendingConnections:

PlayerName: KutsuShita PlayerID: 46966 SystemAddress: xxx.209.39.38:6112, Connected to: 52623,11122 PendingConnections:

PlayerName: F3kay PlayerID: 52623 SystemAddress: xxx.147.232.59:6112, Connected to: 11122 PendingConnections: 46966

KutsuShita and F3kay DID connect. But part of the 2nd-round handshake failed. If you were to lookat F3kay's playerlog, my money is on that you'd see PLAYER_ID_PONG packets in the packet log, but no PLAYER_ID_PONG in the impulsereactor log. = The packets are coming in, but not getting processed.

This is the same problem I've been trying to track down with a couple users by working one-on-one. The problem appears to have to do with ordered packets not all arriving, causing all future messages to not process. There is a SIGNIFICANT chance that this is also the cause of the disconnects-from-faciliator, but I have no proof of that at this point in time.

Additional information about this problem includes that it most open happens to specific players, that other people show connected in their list (e.g. it says they're connected to everyone) but that they sit as "pending" in other people's list.

**My current theory is that their unreliable connection causes permanent packet-loss on some multi-part ordered messages, and once that happens all further messages fail to get processed as RakNet waits for the prior message.

What you see here is one of the problems with debugging a third-party library. We could either send this error to the developer or we can dig into the library’s source code ourselves and try to fix it.  We’ve been increasingly opting for the latter (mainly because for us, time is of the essence and we have a lot of experienced developers in this area who can do this pretty well).

But this gives you an idea of the kinds of things we’re dealing with.  What we find are not “bugs” but scaling issues. So I want to emphasize that we’re not going through other people’s code and saying “Oh, so and so has terrible code!” What we find are simply cases where Dev A didn’t expect Dev B to do a particular thing.

So this is probably more information than you wanted to know but it gives you an idea of the kinds of things we’re trying to help with here. 

+912 Karma | 84 Replies
June 10, 2009 1:42:47 AM from Demigod Forums Demigod Forums

Quoting MrBoingy,
What I find sad is that if you complain, you are called a flamer, poorly informed, negative, ignorant, bitch, whiner.

Pantheon is a WHOPPER part of this game (to the extent that it's given a tab all of it's own on this website) and we all know it doesn't work and never has worked properly.

When did it become ok for the customer to be flamed when he complains about things that are not working?

How much should the customer care WHO does the fixing and how much effort is being put into fixing it (unless of course there is a GPG website where people should be complaining).
The best leaders surround themselves with people who challenge their ideas and suggestions. Steve Jobs is a classic example of a leader who fires the yesmen and fanboys and hires the few who are willing to stand up and tell him that his stuff stinks. I remember when Jean-Louis Gassee was head of Apple France and Apple USA released Apple Office. It was a disaster but most of the American dealers were like fanboys on a forum who praised the company and "stood by them" during the difficult launch. Jean-Louis said "F this" and refused to release Apple Office in Europe, chastising him for a shoddy release and instead of "standing by" the company, stood instead behind the many, many customers who were flaming the company for a failed launch. Gassee told his customers that they were right and that Apple was wrong, and he refused to release the product in his country.

A lesser leader would have fired Gassee and criticized his customers for being "uninformed" and "ignorant". Instead, Jobs promoted Jean Louis to Vice President of Product Marketing and brought him to the US to run things here.

Dissent and "flaming" are not bad things. They reveal problems and perceptions of customers that give a leader an opportunity to improve his product or service. The unhappy customer didn't have to bother posting his complaint. He could have walked away from the product and just given up, and never given the developer any idea that there was a problem. Instead, the unhapy customer who posts a complaint or a flame is obviously someone who wants the product so badly and cares enough that he takes the trouble to post and complain and b*tch and moan. A good leader recognizes this and wlecomes the criticism and politely ignores all the "yesmen" and fanboys around him that give him false encouragement with their sugar-coated reality. And then he thanks the unhappy customer for taking the time to criticize and challenge him. Because even though he may *want* the fanboys and their moral support, he knows that he *needs* the information coming from the few unhappy customers still willing to tell him that his sh*t stinks.

June 10, 2009 2:03:52 AM from Demigod Forums Demigod Forums

I have to say there are some great posts in this thread.

Quoting RegnorVex for truth :

Dissent and "flaming" are not bad things. They reveal problems and perceptions of customers that give a leader an opportunity to improve his product or service. The unhappy customer didn't have to bother posting his complaint. He could have walked away from the product and just given up, and never given the developer any idea that there was a problem. Instead, the unhapy customer who posts a complaint or a flame is obviously someone who wants the product so badly and cares enough that he takes the trouble to post and complain and b*tch and moan. A good leader recognizes this and wlecomes the criticism and politely ignores all the "yesmen" and fanboys around him that give him false encouragement with their sugar-coated reality. And then he thanks the unhappy customer for taking the time to criticize and challenge him. Because even though he may *want* the fanboys and their moral support, he knows that he *needs* the information coming from the few unhappy customers still willing to tell him that his sh*t stinks.

Quoting Deadghost :

Not a single word about Demigod or future expansions. That's why i'm worried.

And i don't want to be rude or anything, but may i ask how many people at GPG currently work on Demigod? If that's not a company secret...I'm asking this because i know GPG is a relatively small company and they allready have a big project, like SupCom 2.

I do agree that it would be more comforting if GPG gave unambiguous strong singals (like Stardock) as to their (GPG's) long term committment to Demigod. And by committment, I mean financial committment - not just empty words.

June 10, 2009 3:11:29 AM from Demigod Forums Demigod Forums

So does that mean because I bought the game on Impulse yet live in the UK, I should go on the Atari forums? Other than that, an interesting post.

June 10, 2009 7:14:47 AM from Demigod Forums Demigod Forums

Quoting angryandroid,
So does that mean because I bought the game on Impulse yet live in the UK, I should go on the Atari forums? Other than that, an interesting post.

SD has stated that they are responsible for all digital downloads.

June 10, 2009 7:21:34 AM from Demigod Forums Demigod Forums

I'd like to suggest another thing, to avoid unnecessary flames and endless discussions about the same problems. It's really fairly simple.

Create a "READ BEFORE YOU POST: Reported bugs" thread as a sticky on several (applicable) forums.

* Problems that are technical/on the user's end can have a simple link to a topic teaching them how to solve it.

* People can read which problems have already been reported and have been picked up by GPG/SD as broken

* They could, if they wish, add some form of ETA on the bug, or something like "will be fixed in v1.02".

 

People that for instance experience Pantheon to be broken will want to post on the forums about it, telling them it sucks. They will however (hopefully) read the above topic and see that the problem has been reported already, and Stardock is aware of it (Pantheon is Stardock's responsibility iirc, correct me if I'm wrong) and they are hopefully working on it. The annoyed poster will then in turn feel understood and will not post a new thread about it, which would 90% of the time have resulted in a flame thread both ways.

June 10, 2009 12:33:11 PM from Demigod Forums Demigod Forums

SD has stated that they are responsible for all digital downloads.

Okay, thank you.

June 10, 2009 1:04:12 PM from Demigod Forums Demigod Forums

Glad to hear Pantheon is getting some attention. I have a couple of (semi-technical) questions.

  1. Isn't there a good chance that the scenario that ends up in a 2v1 game is as a result of a player's poor connection rather than a failure in the match-making system?
  2. What about the scenario where you sit at the "Waiting for Players" screen when loading the map and after a good amount of waiting (5-10 minutes) a bunch of players are disconneted (1-2 in my experience, of a potential 4 player game) and the game finally loads?
  3. Would it not be beneficial to build some connection diagnostic into the game to determine whether players have a connection issue or whether the problem lies in the game somewhere?

Quoting Annatar11,
RE: Community mods - With strict enough guidelines and limited powers from Stardock-employed moderators, this may not be a bad thing.

Quoted for emphasis.

June 10, 2009 6:11:45 PM from Demigod Forums Demigod Forums

Glad to hear Pantheon is getting some attention. I have a couple of (semi-technical) questions.

Isn't there a good chance that the scenario that ends up in a 2v1 game is as a result of a player's poor connection rather than a failure in the match-making system?

What about the scenario where you sit at the "Waiting for Players" screen when loading the map and after a good amount of waiting (5-10 minutes) a bunch of players are disconneted (1-2 in my experience, of a potential 4 player game) and the game finally loads?

Would it not be beneficial to build some connection diagnostic into the game to determine whether players have a connection issue or whether the problem lies in the game somewhere?

When it ends up as a 2v1 game, it's because someone dropped or quit but the code to replace the player with an AI player failed.  We're working on fixing this.

When you're stuck at the map loading screen with "Waiting for Players", this sometimes means that the proxy server connection timed out because it didn't receive any data in a certain amount of time.  For now, we've increased the timeout time but we're looking into why the timeouts are occurring.  This may also be caused by problems with trying to replace a dropped/quit player, which should be easier to determine now that we've increased the proxy timeout.

There's also a third issue where the connection code doesn't detect if someone never connected to the NAT facilitator after they were added to the game's player list.  This is often because someone quit before connecting to the NAT facilitator, or failed to connect.  I'm working on this but it wasn't ready to go for today's update.

 

June 10, 2009 9:45:07 PM from Stardock Forums Stardock Forums

RegnorVex hit the nail on the head, good job.  Hats off to you Frogboy, I have never seen a guy be so involved as you, especially in the game world, thats cool.  But callin your disappointed customers(ppl who spent their hard earned cash on your product) flamers isnt very becoming.  My "woes" are the fact that I paid out $130.08 for 3 copies of DG and because I complained about it I am a bad person.  WoW I guess thats gratitude 4 ya eh?  I love the game. Actually Im hooked on it. But I think its time to spend my cash somplace else.  I work for a very large company and they figured out that when something is made by someone else and it turns out to be crap they dont point fingers,they get rid of the crap and take care of the customer. Why? Because the customer is the 1 who PAYS our salary. Customers dont care where it was made, who invested in it , they only care about WHOM they gave their money to.  Longevity is in your customers hands and its your job to listen to the complainers because a complainer is a customer on the verge of becoming a NON-CUSTOMER. When the scale tips in the NON-CUSTOMERS side thats bad 4 you.  I go to buy a car I DONT CARE how many hours it took I DONT CARE how many side companys were involved with it . I CARE about that my investment WORKS and is PROBLEM free and will btring me many many hours of PROBLEM FREE service. I PAID for it and thats WHAT I DESERVE.

 

This is my form of "tough love", I love this game and I have much respect for Frogboy. Through your journals I kinda feel as though I know ya mmmaaannn.  Keep up the good work and your info logs are great but need a little polish. Dont let us get you down but let us make you stronger

Stardock Forums v1.0.0.0    #108435  walnut2   Server Load Time: 00:00:00.0000125   Page Render Time:

Stardock Magazine | Register | Online Privacy Policy | Terms of Use

Copyright © 2012 Stardock Entertainment and Gas Powered Games. Demigod is a trademark of Gas Powered Games. All rights reserved. All other trademarks and copyrights are the properties of their respective owners. Windows, the Windows Vista Start button and Xbox 360 are trademarks of the Microsoft group of companies, and 'Games for Windows' and the Windows Vista Start button logo are used under license from Microsoft. © 2012 Advanced Micro Devices, Inc. All rights reserved. AMD, the AMD Arrow logo and combinations thereof are trademarks of Advanced Micro Devices, Inc.