Friday, January 10, 2014

Lots of Programming

I've been spending much of my time this week programming and work and at home. I'm afraid I do not have many interesting topics to talk about this week.

At work, I've written a few more metrics and maintained some. Additionally I'm really digging into the state of the game's economy. I won't be talking about that here, however.

At home, I've been working on Project S quite a bit. I must say that being involved in the construction and shipment of several game projects is EXTREMELY helpful when you are making your own. Nothing can replace the experience of actually doing something. No book, no degree. You have to do it to understand it.
Anyway, everything is coming together slowly and steadily. An hour a day for personal projects such as this can do wonders.

When I can squeeze it in, I have also started reading The Pragmatic Programmer by Andrew Hunt and David Thomas. So far it is early, but I am impressed with it.

Oh, and one last thing. My wife and I are toying with the idea of moving into an RV. It solves some problems, in exchange for other problems. Well see how that works out.

Friday, January 3, 2014

It's a New Year, Old Man

Hi everyone!

Well my wife, kids, and I spent the holidays celebrating Christmas, our 4th anniversary, our son's 3rd birthday, and the new year. Well, we spent everything after Christmas Day being sick. Our boy got so many toys from us and from relatives due to the double-whammy that he lost his mind.

Project S

I spent several hours on Project S over the holiday season, which was wonderful. My friend Rob Galanakis (who has a great blog here) mentioned that he dedicated an hour each day to his own projects. I took his advice and the results have been wonderful. While the length of time always seems too short, the evidence of progress is undeniable.

What is project S? Well it is a game. In it's current state, I can say that the S is for Sucks.

Using your Console

Not that console. I'm talking about the basic I/O functionality provided by a command-line type of interface. I stumbled upon something I find interesting about it and thought I should share.

I decided that I would like a UI at some point for Project S. One thing I don't have any desire to tackle right now is how to craft an interface in something new, now that XNA is going away. Sure, I can still use it, but the interest level is low. What I am interested in is modelling the game side of the game.

In order to work on it and test it, I do need an interface, so working through the console is a natural choice. I have discovered, though, that it forces me to make sure that my model code and my interface code remain very separate. Since I need to implement the "real" interface later, it would be really myopic to tangle up my temporary interface in the implementation of the game's functionality. I have also discovered that forcing this separation upon myself is going to make it "easy" to have multiple interfaces for the same game. One person could play the game against someone else, one using a text-based client (if they really wanted to, ugh) and another using Unity2D.

That reminds me, I really need to block out some of that personal time to brush up on Unity. So many things to learn!

Thursday, December 19, 2013

Excel, You Complete Me

Work

Yesterday, after lamenting the "sunsetting" of Warhammer Online, I worked on getting the costs for one of the systems in the game balanced properly. Sometimes a system does not get implemented exactly how you'd envisioned it and it requires a little bit of hustle to get it working once it is fixed.

The task involved loading up a bunch of data into Excel, figuring out how much these entries should cost over time, plugging those numbers into the spreadsheet, and then entering those values into the game. Would you be surprised to learn that this process is much of system design in general?


Today has been spending even more time trying to help people find answers to question, reviewing code, and killing every creature in the game over and over and over and... well, I'm doing it in code. You didn't think I'd sit there and do it by hand when I can get the computer to do my bidding, did you?

Home

So, yeah. I went home and slept. Then I woke up and came back to work. So there is that. Same thing tonight. :)

Wednesday, December 18, 2013

Goodbye Warhammer Online



A little bit more than six years ago, I left my apartment in Virginia Beach and drove up to Fairfax to hang out with one of my best friends and go to a job interview. The interview was with Destin Bales, Mark Davis, Bruce Maclean, and many other people at Mythic Entertainment. The game was Warhammer Online. At the time, I had just split up with my first wife and had little direction. Most of my goals were intertwined with my ex-wife's goals. I knew I liked games and had been involved with gaming in some form for most of my life. I had little game design experience and had only volunteered as a game operator for Mythic on a game called Spellbinder. I was in school, working on a Computer Science degree in order to get the know-how I needed to make games. It was the perfect time for a life change.

Needless to say, Mythic took a chance on me, and I moved across the state to find my way again. I jumped in feet first. Jess Daniels taught me how to script using Talk Index, and then they shuffled me off to Matthias Dohmen's team, (with Thomas Lipschultz and Andrew Hoffman) informally dubbed "Team Throbsac" (it's a spider name). I began to build friendships that have lasted. We built up much of the content in Warhammer Online, my hands have touched more parts of that game than I can remember.



As the game approached launch, I ended up doing content systems support with my friend Anas Alkhatib. Basically, this is systems design and a little bit of technical design for systems associated with progression and to assist the more "creatively focused" content developers with technical challenges. In other words, it was a problem-solving shop. I took over some of the progression systems (like handing out experience points and figuring out how much contribution should be given out by public quests). I continued to do this and other systems design work after the game launched and onward.

So much had changed in my life since moving out to Fairfax and it seemed to me that I had, with Mythic's help, put myself on a course that was my own. The game industry is always unstable, like a sea in a storm. After launch, EA merged Mythic into BioWare. Soon after that, I was asked if I would like to interview with some other good friends for some job openings in Austin working on Star Wars: The Old Republic. It seemed like a good opportunity and needless to say - like any good geek - I freaking love Star Wars. BWA made an offer and my new fiancee and I left for Austin.

Working at Mythic on Warhammer Online changed me. I learned so much about game development - both the right and wrong ways to accomplish something. I met so many new friends who have now scattered to the four winds so thoroughly that I feel as though I know someone no matter where I go. I was a broken, emotional wreck when I went to interview at Mythic. I left there sublimely confident, moving to Austin - where I knew practically no one - filled with excitement, and with a new fiancee! Everything changed for me.

And today they are shutting down Warhammer Online. I had long since stopped playing it, as I am sure many of you have too. It makes me sad to see it go, but so many of the people that have worked on it have gone on to bigger and better things. Many of my friends from Mythic are right here at Carbine working with me on WildStar. Many of them are in Austin working on SWTOR. They are everywhere, and they are all family to me. We might mourn the loss of the thing that brought us together, but that project will definitely be a part of me forever.

Goodbye Warhammer! I love you!


Tuesday, December 17, 2013

Making Time

The older I get and the more responsibilities I take on, the less time I have for my own pursuits. I imagine everyone goes through this in one form or another. Maybe that's why so many of my peers opt out of having children. I love my kids and wouldn't trade them for more time to dig into Unity3D or spend time travelling, but it doesn't make me want more programming time or cultural experiences less. The constant stress of trying to balance my work, home, and personal pursuits is difficult to handle sometimes.

Home

I tried to give Alison a "night off" last night, but it did not go very well for her. Alison made bread and I cooked dinner (just fish and veggies, nothing amazing), got Fletcher in bed, and cuddled with Maris. She started to prototype a craft project, but then fell asleep with Maris. I took pictures.



I tried to do a little bit more work on Project S. However, by the time that everything settled down, it was too late and I was too sleepy to concentrate on what I was doing. I went to bed pretty much as soon as she did.

Work

Today I am working on adding some more log events in C++ for WildStar. It isn't easy because in order to add the events, you have to figure out how the system you are observing works. Some systems are very simple, others are very complex. For example, systems that deal with inventory or other things where some unscrupulous players will attempt to cheat us are going to be very complex, with checking and cross checking. Systems that only deal with a server side event or where we are just trying to detect, say, when someone joins a world are very simple. Anyway, I'm working with the mail system today, so you can probably imagine the crash course I am going through right now (no pun intended).

Also, I need to update some pricing in the game and also do some balancing of the loot that creatures drop in the game.

Project S

I started this project last week. Project S is a game that is more or less already designed, and something I've wanted to do for a very long time. It is moving right along with the game model. The interface side of the game is non-existent, though it is an excellent candidate for me to bring into Unity3D in order to learn the basics of that engine.

Project G

Project G is still in the initial design stages. I need to do a lot more research in the coming months before the design can be roughed in, since this project is focusing on accuracy and detail. I'm working on it when I can, but focusing on Project S because I'm much more likely to finish it in a reasonable time frame.

Friday, May 31, 2013

WildStar's Economic Game

I've written an article for Carbine concerning WildStar's economy. Check it out!

http://www.wildstar-online.com/en/news/wildstars_economic_game.php

Thursday, May 30, 2013

Journey of T'Bao, Part 2 - Star Trek Online

Observations

I'm pleased that Cryptic didn't give Star Trek Online two different systems for dealing with character injury and ship injury. It keeps it nice and simple, and the injury levels are a welcome abstraction. I ran through my first set of random quests, and they are quick and easy (not necessarily a bad thing). As they come in there seems to be enough initial variety in these random missions to keep me entertained for a while.

Speaking of entertainment, I am going to try to make up stories to go along with the typical MMO grind. I find it makes both playing and writing about it more enjoyable. Hopefully, it translates into a more fun reading experience as well. Also, I am going to put the observations up here so that if you hate reading about my adventures, you don't have to slog through it. Although, I assure you, today's post is better than yesterday's. It even has pictures!

T'Bao's Progress

We pick up Lt. T'Bao's story at Earth Spacedock, on her way to see the Chief Medical Officer. He gives T'Bao some regenerators and explains how to treat injuries. As he finishes his talk, he advises her to seek out the Chief Engineering Officer to discuss ship injuries as well. T'Bao discovers that ships can sustain "injuries" which are repaired in almost identical fashion to personal injuries. The Chief Engineering Officer then asks T'Bao to go speak with the Assignment Officer to learn about different mission difficulties and a vague detailing of the risks involved. With her business completed on Earth, T'Bao contacts Ensign Threya and returns to the Thermopylae. She then makes for the Delta Volanis Cluster to see if she can deliver aid in the form of shield generators to a needy planet.

Lt. T'Bao waits to report to the CMO.

Upon arrival in the sector, the Thermopylae is contacted by a Tellarite named Lieutenant Grall. He asks Lt. T'Bao to explore three systems in exchange for 1,440 units of dilithium ore, a pat on the back, a wink, and a nod. T'Bao logically accepts. After all, that was what she came here to do anyway. Many anomalies are present within the star cluster, so T'Bao picks the second star on the right and punches it.

Unknown System

T'Bao spends some time cataloging anomalies in the sector and happens upon a planet where Starfleet lost a deep space probe. Starfleet requests that the Thermopylae investigate the crash site and return any recoverable data.

(L to R) Ens. Threya, Ens. Stewart, Lt. T'Bao, Ens. Voss, and Ens. Ricky

Beaming down to the surface, the away team quickly finds and eliminates any threat posed by the radioactive pieces of the destroyed probe. They manage to avoid the locals, take some selfies, and look at the pretty blue flora before returning to the ship. Ens. Stewart discovers five mineral samples as well. He is very pleased. Ens. Threya nearly punches Ens. Ricky however, when she catches him staring at her rather than being on the lookout for trouble. This might be the last away team assignment for Ens. Ricky.

System Xi 082

Starfleet asks Lieutenant T'Bao to contact a research station in the area to see if they require supplies. As they approach, they catalog more anomalies. Ensign Stewart botches a waveform match because he was fumbling with a string cheese at the console. Orion pirates show up to pick a fight, but are quickly destroyed.

System Psi Mu Z

Upon arrival in the system, the U.S.S. Thermopylae discovers and is challenged by an Orion pirate. While fighting, Lt. T'Bao invents the T'Bao Maneuver. This simple maneuver involves taking a mine armed ship and moving in reverse. One ends up in a cloud of mines and, given an obtuse enemy captain, a quick victory as the cloud of mines swarms the closing enemy. Lt. T'Bao uses this maneuver to dispatch six more pirate vessels in short order. She is unsure if "throwing it in reverse and letting the enemy be stupid" really qualifies for maneuverhood, but that is what the crew started calling it. She is also unsure why the Orions would arrive in the system one after the other, rather than forming a fleet and crushing the small Thermopylae. T'Bao concludes that Orion pirates are definitely very stupid, and very bad at piracy.

After completion of the mission, Lt. Grall (representing Starfleet) awards Lt. T'Bao with a crate full of dilithium ore. Score!

The U.S.S. Thermopylae searches for a system that isn't filled with Orion pirates.

Sigma Berenices P122-Mu

Starfleet reports that a medical transport had been attacked and crashed on the surface of a planet in this system. The U.S.S. Thermopylae is dispatched to look for survivors. Crates of valuable medical supplies are neatly grouped in piles on the surface but there is too much interference to beam them up. For some strange reason, it seems perfectly okay to beam down an entire team of living beings through this interference so they can wave a tricorder at the boxes and make them okay to beam up. The crew is suspicious. This also creates a great opportunity for another ambush by I'll let you guess who. Here's a hint: they're green. After three or four skirmishes with the worst pirates in the history of the universe, all of the crates are blessed by tricorder energy. No survivors are found and none of the you-know-whos survived either.