Brad Wardell's Blog


Happy Memorial Day

Published on Saturday, May 23, 2009 By Brad Wardell In Demigod Journals

Greeeeeeeetings!

Well tonight we updated the new network system a couple of times. Micro updates via Impulse are totally the way to go. 

Anyway, the proxy server system is working far better than anticipated. But to go any further with improving the networking, we need some changes that GPG is putting into v1.01 which I mentioned in a previous journal.  I don’t have a set day for that but I am hoping this next week. We already have the release candidate for it.

I was able to verify that tonight’s update does fix favor points and favor items as I finally started to be able to buy some better gear though I still prefer swift anklet to almost anything else.  I think more favor items are going to be needed down the line but that’s another story.

One of the things the Impulse team (which, as some know, was assigned the task of developing a new network connectivity system after the…unpleasantness of the game’s launch) wants to do is have the game more aware of when people are using the /serverproxyonly flag. 

Personally, I’m almost inclined to just have all games be proxied. The big fear we had was that it would add too much lag. But we’re not seeing that in practice. A number of people can hopefully attest that it has totally turned things around for them.  But it works best when everyone uses it.  The downside (for Stardock) is that obviously we have to pay for a bunch of bandwidth around the world. 

In my mind though, it’s simple economics. Stardock’s name is on the box. Nobody cares who made what or why there’s a problem. It’s our job to get in there and make good.

Coupons

The Demigod coupons went out today. There’s been some mixed reviews as some people didn’t understand the rationale.  The idea is that between launch and last week, there were a lot of people who just couldn’t play the game.  Those people could have asked for a refund but they didn’t. They stuck it out.  Now that the multiplayer connectivity is largely fixed and people can play (and yes, we know there are some people who still can’t but the # of games being played nearly doubled overnight since the Impulse team’s code was delivered so we know it’s working a lot better) we want to reward those people.

To everyone else, including people still having issues but have decided to stick it out, we are also going to be sending discount coupons to anything on Impulse.  A lot of the coverage has neglected to mention that part.

Weekend off

It’s supposed to be nice this weekend and it’s memorial day. The crew has the weekend off to relax and recover from the past month.  I don’t know how many games of Demigod I’ll have time to get in this weekend but I’ll probably be around.  If you hang out on the chat channel you’ll occasionally see me on there (make sure it’s an op with my handle and not some random person with a similar handle). 

A lot of the progress this week is thanks to a handful of people who have ISPs/routers that we weren’t familiar with. I won’t mention everyone but here’s a few shout outs:  Boxleitner, pugmastaflex, Dopefish, Gank, Hoverdisk, JudeTepes, Lionheart, MrRyan, and many others who gave us lots of helpful data that has made a big difference. 

Have a great weekend!

Elemental: Internal debates made external

Published on Saturday, May 23, 2009 By Brad Wardell In Elemental Dev Journals

So how complicated (as internal critics put it) or sophisticated (as internal advocates put it) should the Elemental economic system be?

We have the code in for handling a pretty sophisticated/complicated economic engine.  But the debate is, is the system sophisticated? Or just complicated.

Let me give you the arguments of each camp.

 

Camp #1: “Sophisticated”

1. Everything in Elemental is a resource. Food, metal, swords, armor, horses, you  name it. 

2. Resources can be processed into other resources.  Iron Ore into a Sword.

3. Part of the fun of the game would be running a proper empire (or letting AI governors take care of it). 

Example:

A mine is built on an iron resource. The mine produces 10 units of iron ore per turn. That iron ore is then directed to go to the city of Torgeto where a blacksmith is able to produce 5 swords per turn. The unused iron ore is stored in a warehouse that can store up to 100 units of iron ore.

Those swords can be directed to be shipped to various other places (with sliders or other UI  means to determine what ratio goes where). 

In some of those places, the swords are issued to soldiers. In other places, the swords are sent to an alchemist workshop who, taking potions that have been shippped in from Wellford which in turn had taken Aeoronic crystal mined in another town to turn into those potions.  The resulting magical swords are then shipped out to various places with the player (or governor) able to control the ratio in which they are shipped.

Caravans appear on the map to show the items being shipped. If those caravans are attacked, the items are lost.

image

 

Camp #2: “Simple and Fun”

image

1. There are only natural resources (food, iron, crystal, horses, etc.).

2. When a natural resource is controlled, the player assigns that resource to a specific town.

3. Only that town can make use of it. Towns that don’t have a resource assigned it cannot build units that require those resources.

Example:

Unlike camp 1, there are no ratio sliders to mess with. A resource is assigned to a particular town. That makes certain towns more strategic than others and a lot less micro management.  On the other hand, it means that there will be many towns that can only build weaker units.   Players can research technologies that increase the base (weaker) unit that cities can build over time but some cities will simply be more important than others.

Caravans would still flow from the natural resource to the target town and if those caravans are attacked, the enemy player gains a bonus and the victim player would get a penalty to their production until the next caravan arrives.

The Argument

Camp 1 argues that a lot of fun can be had in putting together ever more sophisticated and specialized items. If natural resources can be processed into new resources that can in turn be processed again and again and again, you can reward players who might be able to equip elite crack soldiers with very rare but very powerful weapons and armor.

Camp 2 argues that while some people would enjoy that, it would result in a lot of people who would find that system burdensome and turn them off to the game entirely. It also says that those who do like the camp 1 system would still be satisfied with camp 2 where those who like camp 2 would probably be totally turned off if the camp 1 system were used.  In addition, they argue that Elemental has so much other “stuff” to it (sophisticated diplomacy, tactical battles, quests, etc.) that many players might find they have to rely on AI governors which would put a heavy burden on having really “smart” AI.

Now personally, I could go either way.  I do like the idea of players having to choose certain towns that are absolutely strategic.  But I also like the idea of being able to have “processed” manufacturing that can keep specializing things until you get some rare but very valuable things.

On the other hand, I’m also worried that a complex system could turn out to fall apart in actual practice (the user interface for it would have to be incredibly good) and then we’d be stuck having to go to camp 2 late in development.

What do you think?

 

UPDATE: 5/21/2009

Camp #3: The Merchant

image

 

Today we looked at the feedback from here and Quarter to Three and came up with a way that may satisfy both camps and increases the fun overall. 

1. Everything is a resource.

2. Resources can be processed into other resources (iron to swords, crops to food, crystal to potions).

3. Resources are sent automatically to other towns based on the resource needs of that town. No micromanagement, no AI.

4. The fun of this portion of the game would be in watching your empire grow organically.

Example:

There are no ratios to set. If I build a town with a blacksmith, then one presumes I did that because I want to produce stuff that requires a blacksmith. If I build (or upgrade) more blacksmiths, then one presumes this town is a place where I want to crank out a lot of stuff.

Similarly, if I build a town with multiples barracks it presumes I am trying to train soldiers which means that stuff should be shipped there, particularly if I’m in the process of building a particularly type of soldier.

Caravans (which aren’t player controlled) send out regular shipments of resources to the various towns.  When these shipments arrive, they’re available for use on demand or, if the town has a warehouse, they are stored.

When players design a unit, they choose a category of weapon and that category of weapon (whether in the field or in a warehouse) will automatically upgrade as my tech gets better.  A short sword doesn’t become a long sword or anything like that. But A short sword would automatically become a better short sword if I research tech that improves is in order to remove the complexity of having to “upgrade” units.  However, the cost of keeping a soldier in the field will be fairly high and since soldiers come from population, there’s a real down side to keeping throngs of soldiers idle.

In addition, by building roads, my caravans will arrive a lot quicker (3X faster).  Similarly, I have to keep my supply lines secure.

This also opens the door for a lot more trading. Rather than just having “food” you can have “crops”.  Crops are processed into food and can be traded with other civilizations or used by special buildings (Inns, restaurants, etc.) to increase prestige (which adds to influence).

It also allows players to have the game be very simple (just keep everything local) or highly sophisticated (have weaponry go through multiple processes – a magic sword processed by a Aereon Forge doubles its damage. The town with the Aereon forge is the one that would get on the priority list of magic swords and the Aereon blades produced would be sent to the town with the barracks that is producing your “Night Guard” or whatever you call your designed unit.

But in this way, there’s no real UI other than providing players the ability to close down shops in a city or expedite their priority to get more stuff sent to them. The player remains the king/emperor and not a logistics manager but at the same time is the architect for success of their kingdom’s economy if they so choose.

UPDATE: 5/23/2009

Camp #4: Quarter To Three concept

Having read a lot of posts both here and QuarterToThree we’ve thought of another way to do it that might be interesting.

1. Everything is a resource.

2. Resources can be processed into other resources.

3. Controlling a resource automatically makes it available throughout your empire at a basic level. The more resources you control, the more that basic level is provided.

4. If there is a road to a city that connects you to where the resource is provided, that city gets a bonus amount of that resource.

5. Cities can build improvements that have caravans deliver bonus amounts of that resource to that city from the source.

6. Cities can optionally build warehouses whose only affect is that they can store caravan deliveries for later use. I.e. if I’m not currently building death knights, I can store caravans of “stuff” so that when I do build them, I instantly get the bonus at that point.

Example:

I want my army to be filled with trained knights who have plate mail, steel swords, plate helmets, etc.  Those things are expensive. If I control an iron deposit, I can build them though any town with a barracks. Let’s say it will take 30 turns to create that unit.  10 of those turns is the training of the soldier and the other 20 is the production of the equipment.  If I control 2 iron deposits, that production is knocked down to 18. If I have a road that connects this town to the the iron resource (directly or indirectly) then I can knock it down another turn for each resource.

I can also build a blacksmith shop. By doing this, caravans will be sent from the iron resource production area to the town with the armory. When that caravan arrives, it will reduce the time even further.

Similarly, if I want to make a magic sword that requires Aegeon crystal to be turned into a magic potion then as soon as I build 1 Alchemist lab in any town, then any town can build magic swords at a base level.  If I build 2 alchemist labs, I won’t get any further bonus unless I control more than 1 Aegeon crystal.

So basically, it’s a much simpler system that provides fairly straight forward bonuses for players who want to create a more sophisticated economy.

Happy Memorial Day

Published on Saturday, May 23, 2009 By Brad Wardell In Demigod Journals

Greeeeeeeetings!

Well tonight we updated the new network system a couple of times. Micro updates via Impulse are totally the way to go. 

Anyway, the proxy server system is working far better than anticipated. But to go any further with improving the networking, we need some changes that GPG is putting into v1.01 which I mentioned in a previous journal.  I don’t have a set day for that but I am hoping this next week. We already have the release candidate for it.

I was able to verify that tonight’s update does fix favor points and favor items as I finally started to be able to buy some better gear though I still prefer swift anklet to almost anything else.  I think more favor items are going to be needed down the line but that’s another story.

One of the things the Impulse team (which, as some know, was assigned the task of developing a new network connectivity system after the…unpleasantness of the game’s launch) wants to do is have the game more aware of when people are using the /serverproxyonly flag. 

Personally, I’m almost inclined to just have all games be proxied. The big fear we had was that it would add too much lag. But we’re not seeing that in practice. A number of people can hopefully attest that it has totally turned things around for them.  But it works best when everyone uses it.  The downside (for Stardock) is that obviously we have to pay for a bunch of bandwidth around the world. 

In my mind though, it’s simple economics. Stardock’s name is on the box. Nobody cares who made what or why there’s a problem. It’s our job to get in there and make good.

Coupons

The Demigod coupons went out today. There’s been some mixed reviews as some people didn’t understand the rationale.  The idea is that between launch and last week, there were a lot of people who just couldn’t play the game.  Those people could have asked for a refund but they didn’t. They stuck it out.  Now that the multiplayer connectivity is largely fixed and people can play (and yes, we know there are some people who still can’t but the # of games being played nearly doubled overnight since the Impulse team’s code was delivered so we know it’s working a lot better) we want to reward those people.

To everyone else, including people still having issues but have decided to stick it out, we are also going to be sending discount coupons to anything on Impulse.  A lot of the coverage has neglected to mention that part.

Weekend off

It’s supposed to be nice this weekend and it’s memorial day. The crew has the weekend off to relax and recover from the past month.  I don’t know how many games of Demigod I’ll have time to get in this weekend but I’ll probably be around.  If you hang out on the chat channel you’ll occasionally see me on there (make sure it’s an op with my handle and not some random person with a similar handle). 

A lot of the progress this week is thanks to a handful of people who have ISPs/routers that we weren’t familiar with. I won’t mention everyone but here’s a few shout outs:  Boxleitner, pugmastaflex, Dopefish, Gank, Hoverdisk, JudeTepes, Lionheart, MrRyan, and many others who gave us lots of helpful data that has made a big difference. 

Have a great weekend!

Making your own worlds

Published on Friday, May 22, 2009 By Brad Wardell In Elemental Dev Journals

EarlyMapEditor1

I’m a map junkie. I love making maps.  I even bought a program called Campaign Cartographer years ago just to make maps.

One of the features of Elemental is, not surprisingly, a map editor. But the map editor is also being designed so that you can export your creations so you can easily print them out and such.

The map editor will let users build theri own mountain ranges, forests, swamps, you name it.

EarlyMapEditor1_WithList

Of course, it’s also useful that you will be able to then play on these maps with your friends and share them online but just the ability to make your own worlds sounds fun to me anyway.

Demigod: v1.01 Preview

Published on Friday, May 22, 2009 By Brad Wardell In Demigod Journals

Gas Powered Games is hard at work on Demigod v1.01.  These are done separately of the recent updates Stardock has done to put in its own connectivity library to help the online multiplayer experience.

Here are some of the things already being tested:

  • Bandwidth used reduced by 35% (more people with marginal connections able to play). This should reduce some of the “stutter” some people run into when they play with someone with a marginal Internet connection.
  • Updated the way stats are submitted to make stat reporting significantly more robust.
  • If a player loses connection with another player (or one player with a group of players but not all) only 1 user is disconnected instead of multiple.
  • Demigod is better at detecting the difference between quitting and a disconnect (no connection dialogs when someone leaves).
  • Significantly better handling of users who have shaky connections to keep them in game without adversely affecting in game performance.
  • Favor Points, Achievements, Items stored on server more reliably (thanks to the updated stats system).

I don’t have an exact ETA as there needs to be a lot of testing on this (next week maybe).  But so far, it’s looking pretty good.

Weird stuff in the land of networking

Published on Friday, May 22, 2009 By Brad Wardell In Demigod Journals

image

I’m in love.

I’m in love with proxy servers.  They didn’t just solve a lot of problems for people (and if you are out there and have any problem getting connected to people in the lobby you need to tell us specifics because we’re increasingly finding it difficult to find anyone who is having a problem getting into the game lobby (this discussion has nothing to do with people who drop in a game or pantheon or rage quitters, we’re just talking about getting player A to see player .

First, proxy servers are, relatively speaking, cheap. Second, it turns out, they don’t add nearly as much latency as we thought. Maybe 10%. But don’t take my word for it, maybe someone who’s used them already can testify in a comment about it.

We’re increasingly tempted to do away with NAT traversal entirely and go with a system that where you either can directly connect to someone or we just host it for you. NAT traversal is slow and while I’m a network noob, I just don’t trust it given what I’ve learned in the past week about how crazy some network connections have gotten.

In the good old days of Starcraft, people had either phone modems or a cable modem that connected directly to the Internet. In those days, security was so bad that I could go to Network Neigbhorhood and go on to my neighbors computers if I wanted. Not that I did of course…

Anyway, over the years, ISPs have changed. Security is better and bandwidth is higher thanks to things like multicasting.  People are behind various kinds of routers and on top of that people run various firewalls of various degrees of quality.

The nice thing about the proxy servers, however, is that it doesn’t care about any of that.

Do you know why so many people couldn’t connect before the proxy servers went up? The answer is that many ISPs (Cox cable for instance) use multicasting.  Your Internet connection becomes many Internet connections.  This is a good thing for consumers 99% of the time because you can get much better performance if the ISP can pick amongst many different sub-providers in real time.  Blended bandwidth is how I often hear it called. 

But it is, in my opinion, the death knell of pure peer to peer gaming in the long term because more and more ISPs will be using this. Heck, *I* use this on my machine right now.  I have 3 NICs on my computer each with its own ISP. I have a T1, a Comcast Cable and  a US Signal and Windows automatically goes between the 3.  Try doing a NAT punchthru on that.  Now, the ISPs obviously put all this stuff back together on their end to send the packet back to you. 

But consider this:  What if you’re playing your friend Bill and you did a direct connect to him and during the connection phase, the ISP, using multicast, happened to connect to Bill on an IP known as 79.134.34.5:7092.  Forget what your external IP is from your router. That’s irrelevant in this example.  Bill thinks your IP is that.  But if you then send another message and the ISP sends it through a different sub-provider because it happens to be the fastest at that moment Bill is going to see he got a packet from 209.69.142.34:8073.  Well, that’s not you right?  Bill’s computer might assume that that’s a different person. So what happens? Bad things.

Now, some network engineer is likely yelling “Yea but you can fix this with an intelligent NAT server.” Sure, you could keep band-aiding that stuff forever.  But a proxy server doesn’t care about how many IPs you transmit at.  It just has a record of you with your various blended IPs and sends back to the one it received it from and life is good.

Don’t take what I’m writing here as gospel. I’m still a network newbie here and this is just a blog where I’m seeing just how crazy connections have gotten since even a couple years ago. 

If any network engineers reading this want to comment, by all means, do so.  But from what I’m seeing, in the long-term, I think it makes a lot more sense for even synced RTS’s to just use dedicated servers because you can set them up anywhere in the world and the ping times today are nothing like the old days and bandwidth is cheap.

Incidentally, we are hoping to put this to the test today by having Pantheon games only use the proxy servers.  So we’ll be able to find out pretty quickly if this works. 

I don’t know about you but I find this extremely cool stuff.

Yes finally!

Published on Friday, May 22, 2009 By Brad Wardell In Demigod Journals

image

The dev team says that only people who have serious connection issues should use this (and we’ll have a smarter parameter shortly) but we now have:

/serverproxyonly which will force Demigod to have our servers host your connection. You put this as a parameter for your Demigod shortcut.

We spent the evening playing with people online who have previously been unable to play with fantastic results.

Everyone up there who has the word “(proxied)” in the above screenshot are likely people who would not have been able to connect previously.

Mr. Glass Half Empty

But not all is perfect in Demigod land. 

First, this update is only for connecting people together. Developer Gas Powered Games is cooking up v1.01 that has a lot of in-game networking changes. No official ETA on that yet.

Second, there’s still some logic changes needed IMO for Pantheon games because it’s still hit or miss. We got a lot of good data tonight but I’d say Pantheon (and skirmish too) are still pretty crummy in terms of reliably getting a 6 or 8 person game going with qualified people. I’m tempted to just have all pantheon/skirmish games hosted by us but that’s a bit of a last resort.

Possibly tomorrow, we may put up a Memorial weekend update with some new parameters. And yes, we do plan to have these parameters make their way into the game itself once we finalize them and set things up with Gas Powered Games (we did some voodoo to let us get those command line parameters in the first place without having to change the game EXE).

Hope you guys like what you see.  We are seeing some strange things from Version DSL and Cox Cable ISPs in terms of how they do their connections so we’re looking at that. 

Goodnight/good morning. Cheers!

Of proxies, NATs and more.

Published on Friday, May 22, 2009 By Brad Wardell In Demigod Journals

image

I recall someone saying that it would take many months for someone to develop, from scratch, their own client/server proxy system and even then, the publisher couldn’t do it because it would require changes to the game.