Open your xps file or generate it to a memory stream.
private MemoryStream XPSFile;
private const string pack = "pack://temp.xps";
private Uri uri = new Uri(pack);
var pkg = Package.Open(XPSFile, FileMode.OpenOrCreate, FileAccess.ReadWrite);
PackageStore.AddPackage(uri, pkg);
var doc = new XpsDocument(pkg, CompressionOption.SuperFast, pack);
Now you have an xps document in memory. You can set it to view in the document viewer, or print it off, or what else you can think of.
In the second installation of Making the next MMO, we’ll discuss solo content and a dynamic group system.
It seems contradictory to have solo content in a massively mulitplayer game; but it’s part of the game everyone takes part in and it is sorely overlooked. In WoW, it is the equivalent of questing alone. While some story lines are engaging, the battles that take place are trivial. You don’t have that sense of accomplishment when you wipe the floor with a supposed badass in mere seconds; but you do after an epic battle in a large group at the highest levels. To have engaging solo content, you need to capture that group feeling.
All end game content, or the real satisfying fights, are built around team dynamics. Or the MMO Triangle of gameplay: Tank, Heal, Damage. All roles, filled by a real person. If you can not find people for those 3 roles, then you can’t engage group play with success. If developers added a Dynamic Group System that places NPC’s in empty spots, then players would not need to spend hours looking for people. This system can also be used to create solo content, and create tutorials to teach players how to perform their role in a group.
Reducing the time to find a group.
Most people don’t like waiting around for an hour or more looking for enough people just to play the game they pay monthly to play. All the good stories are told through group content, and many players miss out on great stories and good battles by not being able to find people to play. New players don’t get much of a chance to experience old content, adding this dynamic group system would allow new players to see all the content. It would give value to content that is just taking up space on the server, and people can play the game on their schedule.
Solo Content
Since you are no longer limited to a specific number of players for group content, you can view group content as solo content. If one players wants to do an unpopular instance or they are undergeared to do the instances everyone else is doing, they can group with npc’s and gear up without needing other players. This system also encourages designers to create better content rather than just having mosnter’s that are easy enough to kill by yourself.
Role Tutorial
One issue when first starting a new character, you don’t have any idea how to switch from leveling mode into group mode and perform your role. I would also like to see solo content that teaches new players how to perform their roles for group play. A player would join a team of NPC’s to defeat a powerful enemy. The purpose is not only to defeat the enemy but to also perform your duties. If you’re a healer you have to keep your tank alive, if you’re a tank you have to learn how to hold the monsters attention, or as dps you have to learn to control your character so you don’t take the enemies attention, but not go so slow where your tank dies. Support characters would have objectives like keeping everyone but the tank alive, using the right buffs, interupting spells and etc. It could also be used so that new players can determine if they like their role before investing months into leveling their character. No one wants to invest that much time to figure out which class they like.
So by adding this dynamic group system, designers could make content to teach players their roles for group play, create solo content, and reuse old content once ignored by not being able to find other players.
In Mid-late January 09 I weighed 190 lbs. By March 3rd I was 165. I lost 25 lbs in a few weeks and I only changed my diet. A result I attribute to having found the last piece of the weight loss trifecta I thought I had been practicing.
I’m an athletic guy, I workout at least 3 times a week, run a couple nights and play soccer on the weekend. I’m 5’6″ and I weighed 190 lbs. I did not look my weight; many people who only weighed 15-20 lbs more than me were chubby with big bellies that ate anything. I thought I was just heavyset for my size, I figured I had to be since I exercised so frequently, sometimes twice a day; and I never eat junk food. I thought I had diet and exercise down and accepted that I was just heavy.
It finally sunk in around mid January. I was talking to my coworker when they said “most weight loss can be attributed to portion control and eating right.” I never did eat large portions, and I exercised a lot. That’s when I realized I wasn’t placing enough importance on what I ate. Once I had the last piece of the weight loss puzzle I lost weight; I finally found the trifecta of weight loss: Excercise, Portion Control, and a Balanced Diet.
Excercise
Everyone knows you need exercise, this isn’t news to anyone. I will say the most important part about exercising is pushing yourself hard. I do not agree that jogging is good enough, you should run. You don’t need to run lots of miles unless you’re training for a race. My rule when running is if it feels like a comfortable pace, then it’s not quick enough.
I do not lift weights, but I do sit-ups and push-ups and free weight exercises in my garage. Again, a set of each in rapid succession (withotu catching my breath) to get my heartrate up. You don’t need a gym to workout; and if you are afraid of attending one when you start you can workout at home without gym equipment.See the No gym no excuses article on Men’s Health.
I would even recomend staying away from lifting weights. Some people will tell you otherwise, but you should concetrate entirely on losing weight before you build muscle. If you take on too much at once, you’re likely to fail and quit. This doesn’t mean avoid the gym, as it might be your only place to do any kind of workout. You really don’t want to go on a quest to lose weight only to replace it with muscle weight, there is an extreme upside to knowing you are losing weight by watching the scale drop. This is a very important psychological state to your continued commitment to weight loss and a healthy lifestyle.
Portion Control
Luckily I was already very good at portion control when I started; this is arguably the hardest step, and I had it down. You can train your body, and you won’t have to sacrifice your appetite. I recall what lead me down this path to begin, but let me tell you the bits of information that lead me there.
The sensation for thirst is so weak it is often confused for hunger.
If you feel hungry, you might not be truly hungry. Try drinking water. Ever wonder how you were supposed to get those 64 ozs a day? If you drink every time you feel like a snack, you’ll easily reach that mark. I used to hate water and it’s tasteless sensation; but after drinking what felt like gallons a day (I was in college and didn’t have money for food) I became addicted to it! Yes you read that right. The more I forced myself to drink it, the more I grew to love it, and it helped me curb my hunger.
Eating more often, trains your body to believe it will receive food often and that it does not need to store the food in long time storage (fat).
This is the second and most important step in portion control. Know before you start eating that you will not finish. You might be hungry when you reach the cutoff point, but wait two hours and devour the rest. You can view the leftover portion as a snack to eat later.
Balanced Diet
This is the part I thought I had down but did not. I was eating too many carbohydrate’s; and I did not realise what it was doing to my body. I figured I needed them for all the excercising I was doing. I was wrong. Instead of buying spaghetti and mac & cheese, I bought bags of frozen veggies and pre cooked chicken breast strips. I also gave up lunches for a cup of yogurt. (The yogurt is just enough to get me to dinner by whic h time I am thoroughly hungry.)
I still drink beer as often as I used to, I’m not afraid to cheat at dinner, and I still eat pasta the night before soccer games. My diet is now balanced and I’m returning to a healthy body weight and just as importantly; shape. I may not have seen much change myself but I’ve had countless people tell me I’m thinner. Complements I was not expecting.
Another promising contender suffers a setback; after seeing yet another mmo close servers, I have to wonder when companies are going to realize you can’t beat the best at their own game. To understand why they’re the best you have to know how blizzard makes their games. First, they do not innovate, period. They take a promising genre and perfect it, they did it with real time strategy games (Starcraft), and they did it with action rpg games (Diablo). Neither was groundbreaking, but they made the games right. They did same with the MMO genre. They took what was already out there and perfected it.
To beat WoW, you need to redefine the game. In a series of articles I will discuss several systems that will turn an MMO into a casual yet demanding game that could trump WoW. It is a bold statement indeed, but what I present are not radical ideas; rather they are the next iteration in perfecting the genre. I have looked into wow and I can see a trend. I know what they are going to make for their next game, and knowing that will help companies start the next MMO race on the same level.
In this piece, I will discuss the leveling system. Simply put, there should not be one. Let’s delve into this in a FAQ style post.
What is leveling used for?
To determine when the player can train new spells, wield new weapons, and quest in certain areas. It is used to restrain the player to a specific route. Blizzard once wrote that wow is an amusement park; if that is so, then leveling is how they force you through the rides in order.
They also use this system when fighting other monsters/players. If a lower level attacks a higher level, their attack is reduced and the higher levels is increased. This part is just silly. The higher level player can easily take out a lower level since they have better gear, hit harder and have more health; why help them further?
If we don’t have leveling, how do we know when to give new spells?
Wow uses reputations nowadays to give rewards to players for earning a high status with that faction. You can turn reputations into how you ‘level’ up within your class. The more quests you do the more reputation you gain and when you attain the next reputation bracket, your trainers will teach you new spells.
Wow gives you 3 talent trees and skills within them, and when you reach the end game, you have the same class as everyone else. You can use this reputation system to customize your classes. If you select which reputations you wish to earn, then you decide which spells or abilities your class learns; making it your own.
How do we determine when a player can use a powerful weapon?
As a player ranks up, they also earn attributes like strength, agility and intellect. These attributes could be used to limit what items a player can equip or carrying a particular reputation level. There’s plenty of ways to limit this.
How will players know when they can particpate in end game raids?
Actually, why limit it. Let new players enjoy the end game, even if they don’t contribute as much as a higher rank, they can still participate and earn reputation as well. Not every end game content has to be like this, so you could limit some to a particular rank designation of their class, but it’s a nice way of including low level players in the end game.
Do monsters give experience? Wouldn’t giving reputation just replicate experience?
If you just renamed experience to reputation you would have the same system with a different name. While it is possible it should be avoided.
I would not give reputation or experience upon the death of a monster, only upon the completion of quests. When monsters no longer give experience; it will make botting much more difficult now that they cannot blindly and methodically kill monsters to level up. We want players to feel like they earned their hero status. Mindless slaughter or some random animal and collecting their pelts should not qualify the person as a hero. Defeating enemies, protecting the weak and bringing riches to the poor should increase the reputation of the player.
The leveling/experience system allows designers to be lazy; put forth a little effort up front and you’ll have a system in place that will open up the game to your players.
This is a simple extension method that can be added to retrieve a bitmap of any control. It can be as specific as a text box, or image viewer, or as general as your entire application.
public static Bitmap GetImage(this Control obj)
{
obj.CreateGraphics();
var bmp = new Bitmap(obj.Width, obj.Height);
obj.DrawToBitmap(bmp, new Rectangle(0, 0, obj.Width, obj.Height));
return bmp;
}
You can easily find the differences between datasets, dataviews, data tables or any collection using Linq and Enumerables. This is useful if you just want to view the changes that have been made, or if you want to determine if the two datasets match each other, say for testing purposes.
Our first example is a simple list. First convert both lists to enumerables. Then intersect the two.
Enumerable<SomeObject> diff = List<SomeObject>.AsEnumerable().Intersect(List<SomeObject>.AsEnumerable());
Our diff enumerable will contain all the elements that are different. If you already have enumerables, then this is as simple as calling intersect. Any elements in the diff list will be the elements that do not occur in both lists.
Assert.IsTrue(diff.Count() == 0);
If we have a count greater than zero, then our two lists do not contain the same elements. So if our resulting count is zero, our two enumerables are equal.
In order to do the same with datasets, dataviews and data tables we’ll first need to reference the DataTable Extensions methods library. This will open up extension methods to convert data tables to enumerables. Once we get our enumerable, we simply call intersect in the same manner as before.
var resultsDiff = DataSet.Tables[0].AsEnumerable().Intersect(DataSet.Tables[0].AsEnumerable());
Assert.IsTrue(resultsDiff.Count() == 0);
If you’re working with datasets or dataviews, you need to get to the underlying data table in order to use the extension method to convert it into an enumerable.
When gas prices soared in 2008 to four dollars a gallon everyone was worried about how we would reduce the prices, and while we were at it; remove our dependency on foreign oil. Everyone debated on which method would cost the least, what would give the most performance, where we would get it from. People wondered how we could choose the next energy source when a clear winner was not among the choices. The solution is simpler than most seem to realize; we use all fuel sources. If we can use any fuel, we remove our dependency on one source.
The reason we are dependent on foreign oil is because our engines are not very good at working with a multitude of sources with quality returns. There is a way to convert all forms of fuel into a single power source. Electricity is a universal power source that any fuel can be turned into. With electric engines we can move the dependency on the fuel out of the car and into manufacturing plants. Then no matter what fuel we find most efficient, or one we discover in the future, we convert it into electricity and it works for our autos, or homes, or phones, etc.
You can not turn solar power into gasoline, nor can you use nuclear power, or wind turbines to power your auto. However, you can take any of these, and turn their energy into electricity. Since movement can be turned into electricity, that means we could create any engine that runs on a specific fuel, and use the movement that the engine generates to create electricity. Then we can use whatever energy source that is most efficient for a particular region, Solar Power in hot areas, wind turbines in the plains, tidal power near the coast or corn oil in farmlands; and use it as power. Then we will have truly removed our dependency on one fuel.
Electric vehicles are the future, period. It’s going to happen. And I can’t wait. I love the sound and feel of electric engines. They have great acceleration and a smooth, quiet ride. However, they lack efficiency. A feature that is a by product of our lack of investment in the technology to date. Electricity will become more efficient and cost effective as they have the potential to do so. They currently compete in performance with today’s engines, and they have not had the development resources gas engines have had. The most important part of transitioning to an electric engine is we will have put into place a system that allows us modulate the power source without it affecting the end solution.
If I were to walk into the best buy in my home town, it would look just the same as it did 10 years ago. The format they use to sell their products, the format that made them the current top electronics retail chain, hasn’t changed in all this time. At least a third of their store is devoted to aisles and aisles of CD’s, DVD’s and software. Does this seem right when apple has since taken over the music market with iTunes and movies and software are quickly becoming the realm of digital delivery as well. Perhaps they should begin phasing out these sections, reduce the size of the store and staff, and concentrate in other areas. That leaves retailers to focus on hardware.
However, with internet stores selling products at better prices (which allows them to shop at home, save gas, and avoid traffic), it makes customers less motivated to buy from a store. That doesn’t make for a good story trying to generate revenue as a retailer. Being able to demo a product before buying it, having a real person identify the solution that fits your specific needs, and getting the item instantly are the only reasons to walk into a store now. Of those three, only one requires you purchase the item at the store. This is going to force retailers to now start charging for what was previously just a bonus and the right way to do business. Good customer service is going to come at a price.
Luckily, (because we know they didn’t plan this ahead) Best Buy has Geek Squad to capitalize on the other two, selling services. Best Buy currently sells Geek Squad services to install any product, or teach the customer how to work anything in the store. But these services are very expensive and basic, the same knowledge can be obtained through reading the manual. What you pay for is one on one time with someone answering your questions instead of a book. What Best Buy (or another retail chain looking to profit in this area) could do is sell time with specialists to talk to the customer about the products they are interested in. Now I know, they do this for free, but customers would pay knowing they have the employee’s undivided attention. Now since the store is selling this service, they don’t have to force the sale on the customer, they already got the sale.
Ok, we know they’ll still press the sale; its what they do. But, some customers will still walk out and buy the product online with their new knowledge, but at least the store would be able to capitalize a little bit on the sale.

Categories
Tag Cloud
Blog RSS
Comments RSS
Last 50 Posts
Back
Void « Default
Life
Earth
Wind
Water
Fire
Light 