Author. Gamer. Thinker.

Saturday, December 1, 2012

Initial reactions to League of Legends

I love the art style of League of Legends and the gameplay seems pretty good. I was pretty excited about this RTS, right up to the point that I tried to join a player verses AI game.

After 10 minutes of waiting for a game to start, there were finally enough people to make a match and then after everybody accepted, nothing happened. At all. After a few minutes, I closed the client, restarted it, and it immediately prompted me to rejoin the game that I "abandoned." Presented with no other choice, so I clicked the "rejoin" button. The computer still shows that screen 30 minutes later. Ah well. The tutorial games are educational and the game looks really good.

My oldest son has been playing the second tutorial mission repeatedly for a few hours now and he's been having a great time. As my machine is simply stuck waiting, I've had plenty of opportunity to watch him duke it out with the AI. I think his Starcraft II micromanagement skills are shining through.

There do appear to be somewhere close to a billion choices you have to make when it comes to picking mastery points, skills, items, etc. It makes the game appear to have a lot of depth. I am a little concerned that my son is too young to really understand the repercussions of each of the myriad of decisions he's making at lightning speed, but maybe that's just because I'm too old and too cautious.

If you are looking to play this game, I recommend it. It's free, which is a pretty good price, and despite the fact that it hasn't worked very well for me with cooperative play, I think the game has a lot of potential. I'll warn you now that the install time is fairly long. I have a 50 megabit connection and it still takes a pretty long time to install and patch. I have friends who play PvP, so I know the game works, even if I have yet to experience it. I'll give it another try once the client allows me to play again.

Friday, November 23, 2012

First book free on iTunes

I know, I know. I haven't talked enough gaming lately. I've been busy with writing.

If you haven't read my first book, Tritium Gambit, it is free on iTunes today: https://itunes.apple.com/us/book/tritium-gambit/id578901362?mt=11

The second book is on Amazon and Smashwords and will be on iTunes and Barnes and Noble soon.

Thank you for downloading it.

Erik

Sunday, November 18, 2012

My new book

I am pleased to announce that, after months of toil, I have released:

The Kindle edition of Mercury's Curse is available on Amazon.com:
http://www.amazon.com/Mercurys-Curse-Max-Miranda-ebook/dp/B00A98FGZW

Eventually, I expect it will also be available on Barnes and Noble, iTunes, and Smashwords. I do not have an ETA. The paperback edition will be available in roughly a month on Amazon.com.

Sunday, November 4, 2012

The most expensive game I've ever played (other than EQ)

I can't even recall how many EverQuest expansions I've purchased. I lost track somewhere around Omens of War, but I've paid full price for most of them and then when I four-boxed, I had to purchase new copies. Hands down, I've spend more money on EverQuest than any other game. With the years of monthly subscription and in-game purchases of XP potions, I'm going to guess conservatively at over $1000.

However, I have a new runner-up. As I mentioned recently, I purchased copies of Torchlight II for my two boys, but the router kept crashing. Since the router worked for every other game we've played (and between the three of us, we have play a fair number of games), I was upset.  I ensured the firmware was up-to-date and checked the settings, but the best I could do was get two players in a group for ten minutes before the router crashed. If I tried to join their game, it would crash instantly.

Since my boys really wanted to play together, and I was planning on playing with them once I finished my manuscript, I bought a replacement router--the same near top-of-the-line $180 router (an Apple Airport Extreme) I had previously. (Why the same brand? Because it had always worked flawlessly in the past and it had the nice feature where I could transfer settings effortlessly. Hindsight being what it is, I should have known I was making a mistake.) Well, that didn't fix the situation for my boys and they were unable to play the game over the Internet. I was empathetic, but also busy trying to finish revisions on my story, so I didn't have enough time to really dedicate myself to solving the problem.

So, this weekend rolls around and my manuscript is at the editor leaving me with far more time than I've had since August 1st when I buckled down to finish that novel. I have plenty of work to do around marketing and distribution for my book, but I wanted to take a little time off and play games with my kids. Determined to solve the networking issue without resorting to Tunngle, I pulled out old routers from the cabinet where all discarded and extra computer parts go, waiting for that glorious day that they can be reused.  I don't think any of those spare parts ever get reused, but this was their chance. Pushing aside SIMM chips, I started with a 90s-style single-purpose 10/100mb switch, figuring that it would at least allow local play. By the time, I walked upstairs, I realized the flaw in my plan: Of the three computers only two actually had ethernet ports--the other one was wi-fi only. 

Irritated, but not to be deterred, I dug further into my cabinet of discarded toys, only to come up with a cable bridge and two ethernet-only routers. I must have recycled or given away past wi-fi routers, or my wife has been slowly and clandestinely clearing out the cabinet like Tim Robbins

Already $240+tax into the game (one router and three copies), I decided to buy a new router. So, I put another $180+ dollars down. The three of us played flawlessly for over an hour before the Major League Gaming Starcraft II matches sucked in my older son. Not that I mind. I love watching MLG.

I'm not sure if there is a moral to this $420+tax story. Maybe, don't buy the same router you already own if it didn't work the first time. Or maybe, put a lock on your computer-parts cabinet. However, now we should be able to get in some good, quality family time beating up monsters in Torchlight II. It was fun, even on the normal difficulty setting to just march around and slaughter hordes of monsters. With the blood splatters turned off, it reminded me of the original Diablo more than Diablo III.

Monday, October 29, 2012

Networking woes of Torchlight II

My two sons have been playing Torchlight II (with the blood splats turned off) and are having a great time with the solo game. They've been begging to group up and play together, but the game's out-of-the-box multiplayer capabilities are useless. The first 4 times I tried to set them up for internet play our router crashed. I've never had that happen before with any other game, so I didn't realize what was happening initially.

Now, I'm going to have to dig out an old router and set up a lan game for them on the internal network that I can safely disable all the security on.

Despite the game's high entertainment value, I feel like the online play aspect was completely neglected. I believe the game uses UPnP exclusively for multiplayer without any other options for route traversal. I haven't researched the issue very long, but frankly, I expect modern games to work out of the box.

I give Torchlight II five stars for single player fun and zero stars for multiplayer. Once I have my book safely out the door, I plan to spend some quality time with my boys playing the game, but I really hope that we come up with a better multiplayer solution than hooking up to an old router.

An Agile Story

Applying a development methodology to storytelling


I write software. I have been a developer on games, databases, distributed queues, web browsers/servers, proxies, voice over ip clients/servers, VNC clients, and even a search engine. However, in my spare time, I write stories.

With both my books, I followed some of the principles of the Agile development process:

  • Maintaining working a copy. From day one, I started with a one page summary of the story, and then, rather than start at chapter one and write to the end, I wrote sketches of each chapter all the way to the end. When I say "sketch", I don't mean that I pulled out Crayons. I wrote brief summaries for each chapter that summed up the action, the motivations, and the plot. Then each pass through the manuscript, I would flesh each of those sketches out more. At any point, you could read my story from start to finish and know what was going to happen. Were each of the half-dozen phases as dramatic, funny, or exciting as the final product? No. However, it was complete and told a story.
  • Iterate. I chose short two week periods that I set goals for myself on what I would accomplish on the story. Early on, I designed the characters with their motives, yearnings, codes of conduct, and for major characters I established what dilema they would face. Each iteration, I fleshed out different aspects of the story and brought it closer to completion.
  • Simplicity. Rather than focus on every possible detail of universe building, I waited to sketch out details until I needed them. I keep spreadsheets and documents with nothing but these universe building details, however I didn't write up anything that I didn't have to use for the current story. Not really the Tolkien way, I'll admit.
  • Focus on the customer. With every chapter, I try to pay attention to the entertainment value of the story. Is it funny when it needs to be funny? Sad when it needs to be sad? Exciting? Engaging? I happen to be my first and most critical customer, so the story has to entertain me. I know that I can't please everybody, but I try to be consistent with my work so that people who found my first book entertaining will find my second equally enjoyable.
  • Share with the customer. I selected beta readers and let them see the story in its form starting with the first draft that was rich enough to resemble the final product. This was around 45,000 words. The final product, after iterating through, is more than 70,000 words. This aspect of the process was probably not ideal. Stories take a long time to read and tales that resemble sketches lack the same entertainment value that a finished product will have. I'm not certain how I will address this in the future, but I see it as a weakness in my process.

I would say that, with the exception of utilizing beta readers too early in the process, I think that the process has been successful for me. I'm going to continue to refine how I write. I think the strength of starting with a working story and iterating over it to refine a finish product reduces the risk of making major mistakes that require rewriting the whole manuscript. I think the disadvantage is that you have to know when to call it done because you could spend your whole life polishing.

Friday, October 19, 2012

Pen & paper

I'm not sure where this feeling has come from, but lately I've had an itch to play one of the old fashion pen and paper RPGs. Any of the classics would work for me right now: D&D, Shadowrun, GURPS, or even Paranoia (the game where everybody is your frenemy.)

I don't remember the last time we faced the insurmountable odds of a frontal assault on Tiamat's lair while being improbably flanked by Orcus on one side and Strahd von Zarovich on the other. A battle that would take four hours to fight with the use of many twelve and twenty siders (that would frequently--and quite accidentally--fall to the floor whenever they teetered on the edge of a one), and six more hours to roll loot using the complicated treasure table where everybody would groan when they found art.

Our characters would then face the daunting task of trying to lug the billion electrum back to our castles. There would always be at least one girdle of giant strength and one girdle of gender change...and despite our abilities to alter realty at will, nobody could determine which was which.

Oh, and why is the effing rogue passing notes back and forth with the DM and smiling so much. Sure, we all should be happy we won the day against impossible (and rather unlikely) odds... well, except the paladin who died to friendly fire (oops), but the rogue seems more pleased with himself than usual, which is saying something. And to think, the entire adventure began in a tavern after a brawl with dwarves who didn't like the smell of our beer. No matter what devious attempts we made to avoid the DM's well laid plans, he kept his smile. Though, how we found ourselves in the fifth circle of hell, I'm still a little confused over.

Sometimes I wonder if MMOs are robbing the teenagers and twenty-somethings of the experience of playing games fashioned only in the absurd imaginations of their friends. These adventures, no matter how ridiculous they were, have left an enduring impression on me, even after twenty years. Unfortunately, these games take so much time to play and require physical proximity, that getting the guys together from across the city, state, or country is nearly impossible to schedule. Add in the scheduling complexity of the kids' ballet, basketball, soccer, karate, and then there is the all important wife-time. I'm not blaming kids or wives for the lack of RPG time. I'm just saying that growing up and having a family makes it difficult (and maybe a little, tiny-bit irresponsible)  to waste 40 hours in a weekend on fighting imaginary demons. At least I have those memories from college and high school.

Before they grow up, get real jobs, and get married (which if you are reading this you probably are still safe for a few years), I hope that kids today get a chance to get off their computers long enough to waste time with their friends IRL, eat pizza, drink soda, and laugh so hard that they made somebody very uncomfortable about touching that twenty-sider that's just been spit on.

On a personal note, I'm spending nearly every waking hour finishing my latest book. If you are interested in seeing what I'm working on, please consider stopping over at my kickstarter project: http://www.kickstarter.com/projects/966068625/mercurys-curse-book-two-of-the-max-and-miranda-ser

I'm offering the book for $1 for the first hundred people.

Thanks!
Erik

Monday, October 1, 2012

City of Heroes, Guild Wars 2, Torchlight 2, and Pandas

So, I'm behind the times. I read today that City of Heroes is going away. At first I felt saddened by the news and then began examining why I hadn't logged in in ages, even though they went free to play some time ago. I bought the game to play with my friends and it initially had seized my imagination.

What I think eventually turned me away from the game were a few factors. First, they attempted to build group roles into characters rather than let people explore completely new sets of abilities and finding a way to work together. I think this is one of the more recent flaws with other games like World of Warcraft. Early games like Everquest didn't so much set out with the goals of having a character be a tank or healer or whichever. The characters were designed around an idea. Some point of imagination and the roles sprung up around those ideas. Part of the fun and enjoyment of those early MMOs was discovering the characters, getting caught up in their uniqueness and flaws and then making them work. Sure, the games could be horrifically unbalanced at times, but it wasn't about balance. It was about having our imaginations run wild. To have possibilities and to sometimes abuse them a little.

I have played a little Guild Wars 2 lately. Very little, since I'm spending nearly all of my "free" time  working on the sequel to Tritium Gambit. Still, a guy has to play a little, right? Unfortunately, the game might be pretty, but it runs far too slow on my laptop to be enjoyable. The only reason I haven't uninstalled it is because even if eight-frames-per-second is agonizing, at least I get to spend time talking to a friend on Skype. Should I get a new computer? Probably. First, I need to sell a whole crap load more books.

Related to Guild Wars 2 being a complete turd on my machine, a friend of mine pointed out how much fun Torchlight II has been for him. He and I had spent quite a few hours playing Diablo III and that was enough to get me to install the game. I haven't had time to play it yet, but the first hour or so that I experimented with it were excellent. I'd highly recommend to folks to at least download the free demo from Steam. The game was built on the Ogre rendering engine, which I think is a fantastic accomplishment. Runic has said they will release a Mac version of the game eventually and I'll be first in line to purchase it.

I still play World of Warcraft weekly with my dad and two sons. My boys are loving the Pandarians. I think this really breathes new life into the game for them. Personally, it didn't really stir enough emotion in me to want to commit any extra time to the game, but I do appreciate that it gives my kids new material to explore and enjoy. From what I can tell, the starting quests aren't as painful as the ones for the Worgen or Death Knights. Yes, yes. You did the starting quests for both the Worgen and the Death Knights in less than two hours. However, you aren't six-years-old, like my youngest, and you didn't need to have your (very patient) dad read all of the quests forty-billion times whenever you decided to delete your character and start over. Why would anybody delete their character and start over? Apparently, because that's what you do when you are six-years-old.


Friday, September 14, 2012

The Nature of “Good” Code


Developers who are young and still starting their career often focus on semantics and formatting to help separate good code from bad code. They lack the ability to easily parse and absorb code at a glance and rely on formatting differences to create their definition of what is considered good or bad code in their eyes. I’m here to tell you that where you put your curly braces or your line length doesn’t offer clues as to the quality of the code.

When introduced to a new team with an existing codebase, you can expect most developers to start off making tactical changes. They don’t know the codebase well enough to have absorbed it all in one day, but if they have a reasonable amount of talent and knowledge, they’ll pick up on patterns that they’ve seen before and quickly find a reasonable place to insert logic that achieves the goals of a specific task set out for them. Meeting the requirements of a task doesn’t require understanding the entirety of a codebase. We want to cheer on these people for adapting and being productive quickly. Hold the applause for a moment.

Tactical changes—changes that don’t account for the overall health and quality of the codebase—are at best benign and at worst harmful. It is the job of the technical lead and other developers of that codebase to review new changes and offer strategical advice to that developer as they grow in their understanding of the codebase. I expect developers on my team to transition to more strategical thinking at their own rate—depending on their experience, the size and complexity of the codebase, and how many other people are in the codebase changing it from day to day. Developers who cannot make the transition as a strategic partner or who don’t have the same vision as the technical lead of the project can be a drain on the project as a whole.

Tactical code has a place in every project. In the interest of time and budget, we are often forced to create code that is strictly tactical in nature. We call this type of code “technical debt” because we know that someday we’ll have to pay to bring it into the fold.

We each may have our own strategic goals and I believe we should each set them for ourselves. The enduring goals of every codebase I contribute to include being maintainable, concise, specific, efficient, and self-documented. Strategic code furthers these ends. Tactical code completes a task without regard for any other factors. I’ll elaborate on my goals in the hopes that you may find your own.

Code that is concise needs to be legible. I’m not trying to incite people into using ternary operators and embedded incrementors in their array indexes. I’m trying to say that methods, functions, and classes should be short, to the point and directed at achieving a small amount of functionality. This makes the code more testable and legible. If we name things appropriately, we should see what a method is setting out to do and then see it do it by calling other methods named in such a way that we know what is in the box before we look. Long methods and classes take time for developers to mentally parse and absorb their meaning. With descriptive names, the code should read easily and without the burden of comments that will only go out of date and eventually be inaccurate. 

This leads me to self-documentation. When you are writing a framework for others to use, you may have to document APIs to offer a starting point, but even something as public as a framework should be usable by the names of classes and methods. If others can’t tell the behavior of a method or purpose of a class by its name then it must be renamed. If it cannot be renamed to be meaningful, then it should be broken up into smaller pieces or discarded entirely. 

Code should be specific in that it doesn’t set out to achieve every goal and make waffles, too. Achieve the goals set out for your application and don’t write a line of code more. Too often, I see people adding methods, interfaces, and classes for some future day that doesn’t come. IDEs are powerful and extracting an interface when you need it is easy and modern mocking frameworks don’t require you to have an interface to create a test. Make them when you genuinely need them. All the fluff only clutters up a codebase and makes it more difficult to understand and trace through. We aren’t in the 90s any more when refactoring code was a more manual process. I’m begging you: stop creating stuff we’ll never use. A smaller codebase is better for everybody.

Efficiency is something that is easy to go overboard on. I’m saying that, strategically, code should be efficient, but I’m not saying that every line should be optimized, rather I’m saying that it shouldn’t be wasteful. Assigning default values to be reassigned in a constructor? Creating order n^2 complexity functions? Bubble sort? Seriously. There’s no reason to be wasteful of memory or CPU. I’m not advocating that you profile every method and try to tune it to perfection. I’m simply asking people to use common sense. If the application needs to be profiled later, there will be less noise. Efficient code can be legible and should be. However, attempting to reduce one line of code while joining strings with commas is a pet peeve of mine. It won’t make it more legible. We’re computer scientists, we can read a loop with a single if statement in it.

When I say that code should be maintainable, I mean that it should be both testable and tested. Code that is testable can be refactored and, once tested, can offer new developers insight into the code. I am not an advocate of Test Driven Development. I believe TDD lends itself to tactical development. Some of the least strategic code I have ever seen has been done TDD and has also been the most error prone. It is easy to live in the moment of the one test and the one goal and lose track of the big picture. You can do TDD and be strategic, but the less experienced developers are easily focussed on edge cases and a specific goal. With mocking frameworks being what they are, you can force nearly any code to be tested but simply having a test doesn’t make code good either. Even if you can’t agree with me about TDD, I think most developers can agree that code must be written to be testable. Whether you write your tests first or second, I will leave that up to you.

You may find and value other strategic goals in your codebases. I think defining those for yourself and sharing them with your team may help everybody on your team be more successful.



Thursday, July 26, 2012

The best items in Diablo 3



Diablo 3 is not as entertaining as it was once you've beat Inferno difficulty and the only thing left to do is collect socketed rings. I have to admit that defeating Ghom was a huge pain in the butt.

I beat Ghom by spending about 200,000 gold in armor repairs and patiently learning to kite him very slowly around the small room. I had 40k health, 21k dps, 1200 loh (life on hit), 3% life steal, 6000 armor unbuffed (about ~10k buffed with keen eye), and 800 all resists. Here's the build I used against most act 3 and 4 bosses including Ghom. Here is the build that I used to kill Diablo three times (twice I helped friends and once I killed him myself -- and I feel like I could probably kill him solo whenever I wanted to get crappy loot.) Here's the build that I used for just killing elite packs in act 3 and 4. If I want to wander around act 1 or 2 to play with friends, I would go with a more agressive build. As a monk, I'd say a combination of life on hit and damage reduction (both from resists and armor) were my primary focus when looking for gear. Most of my skills served offensive and defensive rolls -- to boost my dps and still offer some aid in a fight. Using the terrain (doorways, stairs, etc.) was important. Also, using blind strategically to protect against the freezing balls from elites helped dramatically. (It's all about timing.) Good luck. Diablo was mostly a push over. Use Dashing Strike to get the heck out of the way of his firebreath, or out of the circles of fire, etc. He was nothing compared to Ghom who took hours for me to figure out.

In unrelated news, my book (Tritium Gambit) is available for Nook on Barnes and Noble's website: http://www.barnesandnoble.com/w/tritium-gambit-erik-hyrkas/1109407858?ean=2940014982054

Tuesday, April 10, 2012

The monk joins the party


The new monk class for World of Warcraft wasn't on my mind, but if you'd like to read about it, look over here.

The monk class for WoW does look interesting to me. I'm sure I'll roll one up, even if it's just to experiment with the class for awhile. I like the idea of healing the group as you do beat the crap out of baddies. Definitely a more exciting way of contributing than watching health bars. 

I'm typically the healer in our regular WoW adventures and would love to actually get in the fight. My guess is that the monk won't offer the serious healing capabilities that other true healing classes offer, but I hope that for non-raid situations the monk's healing will be adequate. I can't wait to test it out.



Sunday, April 8, 2012

Obligatory Easter Comic


I had a moment to whip up a comic for Easter and the day isn't even over. 

I played both EQ and WoW this weekend, which is quite a bit more than I can usually manage. I feel a little guilty because I should have been writing rather than playing games.

Regarding WoW: My dad and I went to Hellfire Peninsula with my boys and we managed to kill some 
bad guys in an instance.  We did wipe near the end of the instance and the kids were ready to call it a day.

Regarding EQ: I played my mage. My friend Mark and I went to Blackfeather Roost and beat up harpies. Lag was really bad at points. You'd think a 50 mbs connection would be enough to play a game from the '90s. I know that latency isn't the same as bandwidth, but there's an implied amount of performance when you pay extra for a connection of that size. At least my mercenary pulled her weight.

Thursday, March 29, 2012

aggro management

I have found time to play some World of Warcraft with my kids and my father, but I haven't played EQ with my friend Mark in at least a week. Doing an instance with a 7-year-old, a 5-year-old, and your dad can be a lot of fun. I'm the healer, which can be a little hectic because the kids don't understand aggro management very well. They also have the highest level characters in the group, so they really pump out the damage. I'm the lowest level because I play the least, of course. Half of the time I play, I'm in the auction house helping the kids make money for their next mount. (They like to have a variety of different color mounts, despite the fact that they all fly/fun at the same rate and serve the same function.)

Sorry that I haven't been actively posting lately. I've been swamped trying to polish one book that is mostly written but needs a lot of T.L.C., and get traction on a new book that I started a few weeks ago. To make things more crazy, my wife and I have been interviewing remodelers to have our bathroom redone. Ugh!

I want to get a new comic up, but it might be a few days before I have time. Thanks for your patience.

In the meanwhile, if you work an office job and want to read a comic, check out snrky: http://www.snrky.com/


Monday, March 19, 2012

Believe it


It's so fun to see so many folks playing EQ again. I hope they stay for a few months.

EverQuest... Full?

I'll post a comic tonight. I'm writing this from my phone because I'm too excited to wait.

Last night, I played EQ with a friend and it was crazy busy! It reminded me of the old days where you had to look at the ground to walk through PoK.

There were people claiming camps and groups walking around. It felt very nostalgic.

If you haven't logged in since they have gone free: do it!

In unrelated news, my book hit the scifi best sellers list on Amazon for its second time this weekend. I keep waiting for them to add a scifi/comedy category.

Tuesday, February 28, 2012

Book Giveaway

Goodreads Book Giveaway

Tritium Gambit by Erik Hyrkas

Tritium Gambit

by Erik Hyrkas

Giveaway ends March 03, 2012.

See the giveaway details at Goodreads.

Enter to win

Wednesday, February 22, 2012

LFG


The advent of computer run group members has redefined "multi-player" in massively multi-player games.

Sunday, February 19, 2012

Friday, February 17, 2012

Top "Last Plus Nineteen" of Awesome


My book Tritium Gambit finished yesterday at 119th on the best sellers list of free Kindle books yesterday.  Which is roughly as cool as finishing at "Last Place Plus Nineteen."  I extended my free promotion an extra day to try to break into the top 100.  For a Science Fiction book, that's tough to do.  Most top 100 books are anything other than Science Fiction.  

Tritium Gambit did finish in 3rd on the Science Fiction list, but that's a lot like saying "bronze medalist", which is cool, but not as cool as saying "gold medalist."

Monday, February 13, 2012

The REAL Zombie Survival Guide


No disrespect to Max Brooks, but the crowbar lacks pizzazz.  However, if you lack supernatural powers and fear the walking dead, it's worth a read.  Here is the link.

Sunday, February 12, 2012

EveryQuest going free to play


According to Sony's official site, EverQuest is going free to play. Not everybody is happy though.