Brad Wardell's Blog


Demigod nears its second month

Published on Thursday, June 11, 2009 By Brad Wardell In Demigod Journals

image

Greetings!

Yesterday, we released the long promised connectivity update.  And the results seem to be very positive.

On Launch day

To illustrate what has happened since the launch day:

Demigod on launch day was a pure peer to peer networking game in which everyone connects to everyone else. This reduces lag since you are talking directly to the other user rather than through a server. 

Developer Gas Powered Games had previously used a program called GPGNet for Supreme Commander. GPGNet is an external program that handled all of the connectivity features for that game.  Unfortunately, it had essentially been retired so it wasn’t an option for Demigod.  To solve that, we licensed a third party solution to take its place.  We won’t dwell on the details of how things went since it’s been covered a great deal.

That put us all in a very difficult position.  The connectivity issues had to be solved (obviously). It also became pretty clear that a largely new system from scratch that was far more robust was needed and needed fast.  So who would develop it? There were four obvious options: Gas Powered Games, Stardock, Atari or Raknet.

If GPG had to develop it, that would take time and resources away from updating the game itself. That would mean fewer new features.  Raknet could do it but it would take time and it’s not “their game”.  Atari is a traditional publisher and it did not make sense to ask them to intervene at the 11th hour.  That left Stardock. Since Stardock develops games and already has a robust networking program (Impulse) it was the logical choice.

So over the last 6 weeks, we have created a new connectivity system.

How it works now

Bob tries to connect to Jill.  If they’ve both set up their routers right, they connect and all is well.

else

Bob and Jill now call what we call CVP (Common Virtual Platform) which now talks to code developed by Stardock to find a way to connect them together.

if that still fails..

Then Bob and Jill will actually connect through a proxy server. I.e. the game becomes quasi-client/server as we host the traffic for them.  To make that work, we had to set up servers in Europe, Australia and North America (for starters).

Then, we had to write software (and license some) that would, based on your IP, give us the player’s latitude and longitude (I kid you not) and then go to the nearest proxy server.

So that’s what was released yesterday.

Ramifications

So the good news is that pretty much anyone can connect to anyone else.  If you still have problems connecting you need to let us know because at this point, we’ve done basically everything that is theoretically possible including making Demigod a hybrid client/server game for players.

If you are currently using /serverproxyonly you can get rid of it now (and should) because it will now likely work in one of the other methods and if all else fails, it’ll still go to the client/server type setup.

Version 1.1

I have in my hands a release candidate from Gas Powered Games for v1.1.

Here are a few things we are looking for in v1.1

  • Team concede.  If it looks like you’re going to lose, your team and vote to concede and end the game so you can go to the next.
  • Speed debuffs have a minimum move speed now.
  • Better chat handling for better visibility
  • When you sell a minion idol, existing units are destroyed.
  • Updated computer AI
  • Random Demigod option
  • Bunch of other tweaks, fixes, enhancements.

High on our list is the handling of replays.

The demo version of Demigod is also in our hands based on this same code.  So over the next few days we’ll be going over this.

Demigod: How games are made

Published on Monday, June 8, 2009 By Brad Wardell In Demigod Journals

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. 

Elemental – polishing for Alpha 0

Published on Monday, June 8, 2009 By Brad Wardell In Elemental Dev Journals

image So much going on this week and at the same time, so little. A lot of vacations here at Stardock pop up in June since this is one of the prime months here in terms of weather. 

On a sad note, Trent (Mittens) had his last day today. He’s off to Salt Lake City to take a position as a designer at a new game studio.  We’ll miss him.  Combined with the people on vacation, the studio area feels like a ghost town.

My executive planner and marketing manager gave me a “CEO make over” today with a bunch of new clothes. I guess trade show shirts and ratty shorts just aren’t good enough anymore.

Right now, we’re looking at dozens of issues that need to be addressed before we can even do the alpha build of the game.  Everything from the fonts looking crummy to setting priority on what should be on the setup.

For instance, if someone wants to create a custom civilization and in there choose “good” or “evil” that’s fine. But I’m having them get rid of being able to have pre-existing factions be good or evil because it would literally double the writing involved for each faction’s back story.  While that’s interesting to have, I would rather have more depth per faction rather than half the depth but a mirror universe version of each one.

The screen you see here will likely be significantly altered between now and release. But this gives you an idea of how iterative the process is.  I’ll probably eliminate the appearance area and put that into the custom race area. Right now, “design your race” is the only option. There isn’t a formal “choose your faction” area.  Elemental comes with 2 built in races and 12 factions but we plan to let people create their own races and factions as well, but that should be a separate area that is a lot richer. If you try to mash too much stuff together, it’s confusing to new players but still too weak for experienced users.

I have a new respect for the police

Published on Friday, June 5, 2009 By Brad Wardell In Blogging

So I got a scanner recently (Uniden 396XT) and it’s amazing how professional the police are despite having to deal unbelievably stupid people.

Tonight I had it on and the cops were reporting on a lady who was running down the street screaming (while naked) that she could fly. The police reporting this remained calm, cool, and detached.

That’s an extreme case but they deal professionally with all kinds of crazy or stupid people.

Future House progress: May 2009

Published on Friday, June 5, 2009 By Brad Wardell In Building a home

IMG_6169
Ashley at the house.

IMG_6172

Getting ready to go inside

IMG_6195

The “extended stay” room.

IMG_6190

A look at the backyard.

IMG_6191 IMG_6175

Looking down into the pool room.

 

IMG_6174

Ashley in the “great” room.

IMG_6220

Walking one of the paths into the woods behind the house.

 

IMG_6222 IMG_6225

The little apple/pear orchard that’s deep in the woods.

 

IMG_6212

Ashley and Debbie on the far left looking on the back of the house.

IMG_6236
Ashley and I walking in the “orchard”

 

IMG_6231
I think this is a pear tree but I’m not sure.

 

IMG_6226
Now I can finally say I have a Macintosh.

 

IMG_6194
Ashley looking out her future bedroom window.

 

IMG_6221
Another path going the other way.

 

IMG_6211
Looking behind the house.

 

Can you be an environmentalist but be a global warming skeptic?

Published on Friday, June 5, 2009 By Brad Wardell In Politics

One of the sites I hang out on is called TreeHugger.com.  People who know me in person know that I’m pretty into helping the environment.  However, I just don’t find the evidence of humans materially affecting the climate to be persuasive.

Most of the discussions are about things like making your home more energy efficient or how to improve your local environment.

But every now and then, you get a global warming discussion and the militancy of the global warming advocates comes out. 

For example, one post entitled “How do we get through to these people?!” discusses the frustration they have in convincing people of the need to pass legislation that drastically reduces our carbon footprints because of the way carbon is affecting climate (in their opinion).

After numerous people responded pointing out how dumb the average person was and that was the reason I came on and wrote:

The reason so many GW advocates get the cold shoulder is because of the sheer arrogance many of them show. The GW issue is one I've followed since before it was remotely mainstream (like many here I presume) and there's nothing more aggravating than having some family member see 'An inconvenient truth" and then have them talk down to me as if they suddenly became climatologists because they watched a movie.


I think the best path is simply to try to get people to want to reduce their footprint (Carbon or otherwise) on the earth's resources. But having people who really are often come across as being brain washed insulting people who are skeptical or disagree (I mean really, how infantile is it to call people like me "climate change deniers" as if we're akin to holocaust deniers).


Incidentally, during the little ice age, heads of state officially blamed witchcraft as the cause of the earth cooling. Humans have always believed that they had the power to control the weather whether it be from gods or controlling CO2 emissions.

Another user had then come on and said that the environmental movement needs to combine its efforts to get effective legislation passed:

My proposed solution today is to bring all the fractured factions of the environemntal movement under one umbrella and provide a warm welcome for converts to join in and participate with a grass-roots effort that allows them to buy-in to it. This may be accomplished by clearly demonstrating affordable and viable sustainable energy solutions and other ways to save money at home with energy efficiency in the short run that offer them immediate returns. In essence, such an effort involves buying the hearts and minds of the people, which is a common business ploy many comapnies use today to gain a customer base.


Then, with a ground-swell of support in shear numbers that can't be ignored, a meaningful lobbying block may be created to rouse the attention of Congressional leadership. Finally, the entire effort must have a feeling of inclusion and provide the necessary money motives that converts and supporters alike can appreciate. It may be high-time to put aside self-righteous indignation and environmental snobishness that serves no purpose in fulfilling our unified goals.

I responded by saying:

The problem is that there is no homogeneous environmental movement. I consider myself an environmentalist but am extremely skeptical about human induced global warming. And I'm not alone. Most of my colleagues who have a similar technical or scientific background are skeptical as well. That doesn't prove anything other than to say that there's a lot of people who fall into my category of being environmentalists but don't think humans are materially affecting global temperatures.


In my opinion, having the government force us to do things "for our own good" is tyranny whether it's in the name of "security" or for "the sake of our planet".

Moreover, environmentalists often strongly disagree on solutions or are totally impractical. Wind energy and solar energy, for instance, won't do the trick any time soon. But try to build a nuclear power plant (0 emissions) and suddenly they get creamed by the envirnomental movement (either reducing our carbon foot print is life or death or it's not - clearly it's not to a lot of people in the movement).

A user responded to this and my other post by saying:

Ultimately it doesn't matter what anyone believes about Global Warming, it's going to happen regardless of what anyone believes about it, and believers and deniers alike will suffer the effects alongside each other. Being a denier simply makes a person appear less intelligent in the meantime.

In other words, because I’m a “denier” I just appear less intelligent.  He went on and said:

Well one thing we've learned is that denialists haven't actually looked at the same data. While we look at data put out by NASA, NOAA, USGS, and other scientific research groups, we've noticed that denialists get their data from oil industry lobbyists, and while some of the data is the same, the data they give has been cherry picked to leave out the data which makes it clear that A: rapid climate change is happening, and that B: human activity is a primary factor.

So you see, if you don’t believe in global warming, you're just not intelligent or you’re brainwashed by big oil. 

Bing vs. Google: First impressions

Published on Thursday, June 4, 2009 By Brad Wardell In Personal Computing

So Microsoft has relaunched and rebranded Live Search as “Bing”.

First impressions:

 

Layout:

image

Like most things Microsoft makes, Bing has too much unnecessary junk on it.  The background idea is clever but distracting.

I also don’t like the layout changing when you go to one of the categories. If the categories are on the left side, keep them there.

Basic Search

image

Again, Microsoft’s stuff always feels like it had to get approval by 50 committees. Why does MSN need a link? Why does Windows Live need a link? Why is there a “Web” image in the top corner?  Ah because that shows what I’m currently viewing. But on Chrome it looks weird.

How does Google do?

image

By default, it’s much cleaner.  If I want more, I can click on “Show options”

image

image image

The quality of the search is hard to judge.

On the one hand, Microsoft has put in more effort into finding people on Facebook and other engines.  But the overall quality of Google’s searches seem better or at least have more depth.

I’m going to call it a tie though because it’s close enough that it’s purely subjective.  Live Search was clearly inferior but Microsoft seems to have really upped their game.

Verdict: Tie.

 

#2: Questions!

One of the things I wish search engines were better at is answering questions. They are getting better and Bing seems to be quite good at it:

image

vs.

image

Another:

image

vs.

image

and one more:

image

vs.

image

Verdict: Bing (by quite a bit)

In test after test, Bing was significantly better at handling questions and getting quick answers to facts.

 

#3 Images

image

vs.

image

Verdict: Tie.

This is a tough one because Bing’s image gallery is just much better to use in most respects but the Google image gallery is vastly larger.  Google’s use of drop downs is nice but the screen space used is crazy and the options limited.

 

#4 Videos

image

vs.

image

Verdict: Oh this isn’t even close. Bing blows Google away here.

First, Bing lets you  mouse over videos and they play right in the search. Very impressive tech.  Second, it gets much more on screen. Third, Google now uses half the space to spam users with irrelevant junk.  Which surprises me because Google has YouTube to back it up.

 

#5 Shopping

image image

vs.

image image

Verdict: Tie. They both do a great job here. I wish I could combine the two. The Bing cashback feature sounds interesting though.

 

#6 Finding locations

image image

vs.

image image

Verdict: Google by a mile

 

Other

News: Google by a mile

Efficiency:

image

Certain search items are categorized and give additional information which is very interesting.

image

If Google has something like this, I’m not aware of it.

Overall

Overall I am leaning towards Bing which I am surprised. I had a bit of a bias going in because let’s face it, Live Search wasn’t that great. I remember in the early says of Live Search I would type in Stardock and it would bring up some magazine review of WindowBlinds on ZDNet or something.  But it’s come a long way and Bing is very close to being pretty ideal.

Microsoft still needs to get rid of some of the pointless clutter and they need to index a lot more. The news section on it is pretty basic and it copies Google so unapologetically that I feel a little dirty for using it.  Windows may borrow concepts from the Mac but Bing is basically Google done as a web 2.0 project.

The real winner is all of us.  I like Google a lot (I use Google Chrome) but I wouldn’t want them to be the only game in town.  Bing is a worthy competitor and I find myself in the odd position of having Bing be my default browser for Google Chrome. How backwards is that?

Demigod: Short-term preview

Published on Thursday, June 4, 2009 By Brad Wardell In Demigod

It looks like tonight there will be an update from GPG that addresses some of the in-game issues introduced in v1.01 (mainly chasing down opponents and such).

Next week, we should have an update that improves connectivity further for people with multiple IPs, intelligent proxy server handling, and better interaction with the pantheon.

In the meantime, Gas Powered Games is working on version 1.1 of Demigod which is scheduled to have:

  1. Concede option
  2. Random Demigod setup option
  3. Improved pathfinding
The demo version of Demigod will be based on v1.1.
Beyond that we plan to look at having observers and replay handling better as well as a place for people to upload their replays.
My own presence on the Demigod forums and journals will be decreasing after v1.1 pretty dramatically as I begin to focus on Elemental.  But Stardock will continue to have forum support people around to help and Gas Powered Games will be continuing to work on updates which include additional Demigods (no ETA yet) for a long time to come.
I will say that I've instructed the moderators to take a somewhat harder line on the forums regarding rage posting.  Especially since most often users have no idea what they're talking about and since I'm not likely to write a tell all book any time soon, they will continue to not know what they're talking about.  
Before v1.1, we will be posting a new series of pinned topics based on everything we know.  
Below is a summary of legitimate issues Demigod has that we are aware of.  
  • When players leave the lobby, the kick message sometimes gets called twice which can crash the lobby. (high priority).
  • When joining pantheon or skirmish games if a player aborts after the connection is made it can mess up the game (high priority).
  • Path finding around edges can be flakey with certain demigod/map combos.  Being looked at but considered a high priority.
  • Finding ways to deal with "Rage quitters" that is equittable to all (v1.1 is the main thing there).
  • People who have two NICs have problems connecting (high priority, ETA is next week).
  • People who can't connect normally end up using a Proxy server but Europeans and Australias get high pings (high priority, ETA late next week).
  • Favor points aren't tracked if you play onlin against only AI players (known, working as designed).
  • Cases where the game crashes in game (being looked at, rare for most people but common for the people who get it, high priority).
  • People can connect to everyone but one other player in a lobby (high priority, cause is unknown).
Features for Demigod that are high on our list:
  • Much better friends handling (ETA June)
  • Multiple in-game channels (ETA June)
  • Ability to get messages from friends in game outside the game via Impulse (ETA June)
  • Display of a player's experience rating in connection dialog (ETA June)
  • Display of a player's disconnect % in connection dialog (ETA June)
  • Support for Group Skirmishes/Pantheon (ETA July)
  • More Demigods (ETA not known, working with GPG on this)
  • More maps (ETA not known, working with GPG on this)
So that's where we're at.  
In the meantime, see you online.

Minor update

Published on Wednesday, June 3, 2009 By Brad Wardell In Demigod Journals

The team got us a minor update today that improves connectivity. They also identified an issue in the lobby where a user exiting the lobby can cause a game error. We consider it pretty serious. It’s been there for awhile and it revolves around timing and the type of connection and various other things but in a mixed gaming environment it happens enough to be a major issue IMO. So now that we’ve identified the cause, it’s gone up the priority list.

GPG also got us an update tonight (that wasn’t able to go in the build) that improved some of the command queueing and following a demigod. I haven’t got to try it yet. There’s a lot of moving parts as you can imagine that kind of thing. 

But the big thing about tonight’s update is improvements in connectivity between a user who is using the proxy server and users who are not.

For next week, I am hoping we have the intelligent proxy handling in in which it will choose the proxy server closest to you.  Once we do that, we’re going to seriously evaluate whether to just have it proxy by default (right now, it only uses proxy servers if you set /serverproxyonly as a parameter in the short-cut) since people are reporting that proxies largely eliminate connectivity for people who have problems.