Tuesday, November 22, 2016

New Silent Death Online clone!

Well, this is exciting! I found a new Silent Death Online clone on Facebook! It's called "Stellar Dominion Online" (Clever, huh? It managed to keep the same 3 letter acronym.)

They apparently had a "free weekend" a while back, but I was unable to get a "free access key." They sell early access keys on their website (of the same name.) but I wasn't about to do that. I'm a little offput by the lack of updates on the Facebook page, I would have expected to see some captures from their recent testing... so I don't know how well that went or if it even went at all.

I know from personal experience that making online games is hard, and publishing them, especially self publishing... is not for the faint of heart. There are a LOT of details to make work in there! As such, I'm really hoping these guys can get a game going there, and am rooting for them. You go, Chris! Good luck! I'm rooting for you!

Monday, November 21, 2016

I want to make a quick post about the tools I use to develop. I write code for both the client and server, and use similar tools for both.

On the server, I use CentOS Linux. I like Red Hat, and CentOS is the open source distro of their enterprise version. The server runs on an old quad core pentium that I used to use as a Windows machine. This is usually my pattern, when I replace a desktop box, (Assuming it survived...) it becomes the next server. I use SSH and Samba to access the server from my Windows desktop machine. I only use the text interface on Linux, no graphical display, nothing. In fact, I usually have the monitor turned off.

The Windows machine is where I do all the work. I save all files on the Windows machine, do all code editing on the windows machine, and administer the server through SSH terminals on that machine. Having all my source files in one spot makes backups easier (I just dump the entire directory as a .zip archive to an encrypted flash drive on a daily basis.) I keep the flash drive with me on my key chain (hence why it's encrypted.) so as to provide off site protection in case my house burns down or something.

When I compile the server, I run a batch file that copies the server source to the server via Samba and run a BASH script on the server that compiles everything in sequence. There are 4 of these scripts, "cleanall"and  "buildall", which clean the .o files and rebuild the server processes respectively, then "start" and "stop" which start and stop the server. The game server is a group of processes, each specialized to do a certain task and connected together through sockets and a messaging protocol. I monitor the processes as they run by tailing the log file they generate as they go along.

As a source file editor, I use PSPad. I really like it. It's fast, has a nice project manager, and it's fast. Did I mention that it's fast? I have all the client and server files in one project.

Given that, as you can imagine... my server code is really low level. Although I use the C++ compiler, I use little C++ itself, favoring straight up C. File and socket access are strictly through the low level C routines like fwrite() and send().

I take the same kind of low level approach in the Windows side as well. I use the base C windows libraries, no "Frameworks" or "Object shells." As a compiler, I use MinGW running in a shell window, very much like the server side. Sure, the makefile is more complicated, but the interface is essentially the same.

So when I turn the computers on in the morning, I first connect Samba by clicking on the share and entering my password, then I start an SSH terminal for administering the server, and an SSH terminal for each log tail I want to run (How many depends on what I plan to do.) I then start up a cmd window for MinGW to run from and start PSPad. By now, my trusty coffee maker has done it's part and I can get a cup of coffee and get to work.

The work flow is straight forward, I edit code... then run the batch file to copy it to the server, stop the server, makeclean, buildall, then start the server. If I'm working on the client, I make it on the WinGW cmd shell and double click the executable in the Windows Explorer window to run it.

Heh. When people come to my house and see me work, they probably think I'm hacking the Pentagon or something. Nope! Just a totally old school guy working on some game code!

Sunday, November 20, 2016

That was quite a hiatus!

I stopped blogging after only a few entries not because I no longer wanted to blog... but because I lacked direction. You either have something coherent to say... something that carries a theme... or you should shut up.

I've been working on games off and on since then, a project I was working on for a while was "Dominion Pass", a text based client / server game (I specify "client / server" to differentiate it from telnet style muds that don't have dedicated clients.) I have considerable experience writing text game clients (I wrote Windows clients for Darkness Falls and Bladelands when I worked at Mythic Entertainment.) I also wrote a DOS client for AUSI's "Dragon's Gate" while it was on GEnie, but that wasn't widely used, or really got out of a beta state.

The wall I ran into with "Dominion Pass" was I'm not a good writer. There are 4 crucial game development skills, writer, artist, designer, and programmer. Writer and artist are "creative skills", where as designer and programmer are "engineering skills." I'm an engineer, I do engineering skills well. I can do the technical aspects of writing, like spelling and grammar, but bending the written word to produce an emotional response? Not so much. Art? Forget it. I thought I could get away with Dominion Pass because as it's text game, there is little art. But I forgot about the writing. Fantasy RP games are heavy on lore and writing, so it wasn't working.

And then there was the 800 pound gorilla in the room. There is a game I NEED TO MAKE. One I started 18 years ago and never finished. Well, I did "finish" it 17 years ago. But only as a simple spaceship based arena fighter where you fought as one of 4 sides in MOBA style matches. People loved that game, and have tried to redo it to this day. But there is so much more that can be done with that game. The MOBA matches are fun, and will be the initial thrust, but there is an RP game aspect to it that needs to be explored.

So here's how it's going to go down. I'm going to blog about the development of my new game, "Sol One." The game is based in a near future where space travel is available to the common man, and the Earth is controlled by a small group of mega-corporations that will loan you the money to buy your first ship. After that, it's up to you! The pinnacle of human engineering at the time is the "Bemaeshal Drive", which is a star gate under construction outside of the orbit of Pluto. It's designation is "Sol One", being the first star gate in the Sol system. The long term plan is to build star gates in other systems, too. But we have to get there first.

This is going to be quite a ride!


Tuesday, May 26, 2015

The problem with raiding is the boss drops.

The biggest problem with raiding is that people do it to get gear. That's a messed up motivator designed only to pile bodies onto it.

Imagine if pro sports players only played to get better uniforms, equipment, etc. No, they do it for the perceived fame it affords them through honest competition.

World of Warcraft's LFR? That's not even raiding. That's “Practice mode” I see no reason why you should NOT get gear from there. Certainly, doing LFR does not prepare you for actual raiding like practicing an actual sport would, but it would familiarize you with the mechanics to a degree, and give you a chance to get the gear you need to start raiding for a low cost.

What about the rest of the gear? The expensive, hard to get gear you currently get from raiding? Crafting. Using daily cooldowns. And daily per ACCOUNT, not this absurd per Garrison stuff Blizzard put into World or Warcraft.

You LFR until you have all the LFR gear, a few weeks tops, then you join a raid team for the real deal.

You kill bosses... and... nothing drops. Ever. You're not there for the loot, you're there to get better at raiding. To get gear, you earn gold through other means and buy it, or make it yourself. People that are just there for the loot have no reason whatsoever to show up. People that run raids have no incentive whatsoever to let your “alt” who “needs gear from this boss” to step in. Your “alt” that is better suited for this particular fight, and is geared and ready for it? The raid leader has every incentive to let you switch. Serious raiders would have a brace of alts available as you get into the higher tiers.

You would need a lot of tier levels, 5 at least, in order to accommodate teams at all skill levels. Me? I would probably be stuck at tier 1 or 2. But that's my choice because of the amount of effort I'm willing to put into it. It would be like being limited to AAA Baseball for my entire career.

What do you get from raiding? Ranking status. You team is ranked against all others in your tier. Gear is limited to the tier cap to prevent seeding teams with geared ringers. Once your team has dominated a tier, you can progress to the next one. You as an individual also have a “Tier rating” And can only participate in tiers you have progressed up to. You can drop down a tier, but are then limited to the gear for that tier.

The same basic principle could be applied to PvP Battlegrounds. Blizzard just banned hundreds of thousands of dip shits for botting battlegrounds. Why would people bot battlegrounds? Because all they have to do is show up and they get free rewards. You should be in Battlegrounds because you want to improve your Battleground ranking. Where do you get Battleground gear? Yup. Crafting again. You have to buy it or make it. Both methods require you to put in effort outside of the Battleground to be able to compete in the Battleground.

Just like in real sports.

Monday, May 25, 2015

I fly in Draenor all the time!

Unfortunately, I haven't been ably to blog because of work, and I haven't figured out how to do both at the same time effectively. So, I'm just going to put up a quick note:

I don't comprehend the "No flying in Draenor" attitude.

I can understand the dev's apparent point, that they want to force you to do what they want you to do, but I don't agree with it. I think it's self centered of them to force you lo engage in their content.

But I don't understand the players who claim to be OK with no flying in Draenor once you have explored a zone.

I fly in Draenor ALL THE TIME. I don't think I go anywhere without flying or using a teleport mechanic. I don't see the difference between flying 80% of the way on a Gryphon / Raven / whatever and flying 100% of the way on my own mount.

I also don't see why I need to kill every pissed off beast in Nagrand if all I want to do if gather wood for my Lumberyard. Even if I could fly, I would still have to kill SOME of them, because they guard those precious trees with their lives.

I just don't get it. The only reason that even starts to be valid is the "But then you would easily get to that hard to get to cave to do that quest..." Ok, fine. Put that quest in the list of quests you need to do to unlock flying. Solved.

I would bet money that the majority of players that claim to by fine with no flying in Draenor fly around in Draenor just as much as I do.

Monday, May 11, 2015

My problem with classes

I don't like classes. I think people should and will specialize their characters without having to be forced to. And then when a new situation arises that needs a different specialization, then they should be able to completely reuse the parts of the character that work, that they have already developed, towards that new specialization without penalty.

You should not have to level it up again, etc.

Eve Online is classless, there is nothing stopping you from training in any skill you want, and since only one character on your account can be training at a time (Unless you basically pay for two accounts) there is little point in training up two characters unless you need two for purposes of hiding activities from your main's corp or the convenience of never having to leave the trade hub.

World of Warcraft is not, you are forced into a skillset at the point of character creation. The problem arises when you need to do things your "class" cannot do. And since classes are designed to be unique and special snowflakes in relation to the other classes, you are then pigeonholed into those skills.

This arises conditions where your "casual raid group"... (And I'm going to define "casual raid group" as a group that does not prioritize raiding to the point that they create alts specifically to match the raid content.) does not have the class breakdown needed for the encounter. If you need "Hunters" for a raid boss, and you don't have any, you are in trouble.

Classes that are specifically designed to each be their own special snowflake cannot to "generic" enough to circumvent the need for specific roles. Blizzard had a campaign way back when when to "Bring the player, not the class." when they were trying to "standardize" classes more. What a waste of effort! They were basically saying "Yeah, we know classes don't work, but we're compelled to keep them."

In a classless system, people can step up and learn those roles as they become needed, without having to re-do their entire character. There's always room for more tools in the classless character's toolbox.

The pure “roleplayer” will say “But I like the fact that my class is different! There is lore involved.” Great! Build your character with a specific lore and history! Knock yourself out! You are free to do as you wish in a classless system.

There are also people that can't make decisions on their own and need to have their hand held. That's fine too! Have “templates” for the major defined “classes” that list out what skills would be important to that classical role and make them available. A player can just work off that list to develop skills. The advantage here is that without specific classes, any classical role... be it the classic rogue, wizard, or a specific one based on a fictional character can be modeled.

Fans would even step in with their own versions of their favorite fictional characters.

Thursday, May 7, 2015

Innocent until proven guilty

So, another blogger accepted a donation in WoW gold. Certainly, that's perfectly innocent in that no real money, good, or service was exchanged. It was a tip.

His opinion is that doing that is perfectly within TOS, and that even IF banned , he could prove his innocence. His belief being that we have rights and are "Innocent until proven guilty."

That works in a court of law because the prosecution has special abilities that can be brought to bear. Money is trading hands? They can get a warrant for your financial records, etc. Blizzard can't do any of that. Selling WoW gold for real money isn't a crime of any kind.

Certainly, the TOS clearly specifies that your rights as a customer are granted by them and can be revoked by them at any time. Of course they try to be fair about it and will allow you to appeal. They also have the ability to investigate only what goes on on their network. They cannot, for example, get a warrant for your bank or credit card transactions to find out if you really bought that game time legitimately or what have you. Their only real tool is to look for patterns of activity that points to possible out of game connections. There is no “Burden of proof” on Blizzard as if this were a criminal case. They do not have to prove you are engaged in RMT, mere suspicion is sufficient.

And accepting donations is going to look pretty suspicious. Suddenly you have a character that gets sent gold in the mail for no reason and can now afford to buy game time and vanity items? Let's assume they buy the whole “Those were donations!” line. You're still on a list. The first time you buy an item from another person that is being watched, action will probably be taken.

The more donations you accept, the greater the chance of that action being taken. It's just a bad idea to paint a target on yourself like that.

This leads me to my point. How draconian should a game company be in their “donation” policy? On one end of the spectrum, anything goes, and no records are kept or analysis done. That was the way it was done at first before anyone even heard of RMT and the world was viewed as innocent and pure. On the other end of the spectrum, totalitarian control where every transaction of any kind is analyzed to be sure it's value for value. Obviously, that would be unacceptable for players, as they would feel like they're being watched “Rockwell” style.

I think trades should be value for value with in a range of about 50% to 100%. Some transactions should be exempt, like transactions within the same account and transactions within the same guild, assuming guild hopping is not evidenced. Some transactions have to be investigated, like if you send your girlfriend's character 50K for a pet as a “Birthday gift.” The cost of that investigation is part of the cost of doing business. Some transaction patterns would be highly suspicious to the point of warranting an immediate ban, like hundreds of “gift” transactions in a month.

Now, you could come up with theoretical scenarios for pretty much any of these bannable events that are perfectly innocent, and that would be unfortunate if innocent people got banned and had to appeal. But you can't just throw up your hands and say “Welp! Can't do anything about RMT.” You have to investigate and be ready to ban.

This is a reason why I like the concept of the RMT token. If done right, (As I detailed in an earlier post.) and in conjunction with transaction analysis and investigation, RMT can be made to be so painful as to be not profitable.