Wednesday, December 14, 2011

Savable Detachments are Here

With the today's release you can now save your detachments in your game account -- you no longer have to store them manually on your computer. You can create and manage your detachments in your headquarters, and then choose from your detachments when participating in a battle. For the time being you can design detachments using any craft you wish, in whatever quantity you wish.

On a related note, I have also reduced the number of maximum detachment size choices that are available when hosting a battle.  This is intended to increase the competition to design the best detachment for each maximum size.

My next move will be to put together basic player profiles, which will open when you click on a player's name. More soon!

Thursday, December 1, 2011

Accounts are Here

Today I deployed a new version of Catastrophe X that implements phase one of the accounts system. As with most of the work I do on Catastrophe X, the accounts system core has taken considerably longer to build than I originally anticipated. However, I think the time spent will be a worthwhile investment, since the system has been built to perform, scale, extend, maintain, and internationalize well.

Early in the project I decided that registration would be required to enter the game. My initial impulse had been to allow both registered players and guests to sign on and battle, but when I delved into the project I saw that this would significantly increase complexity and yield relatively little in return. Although mandatory, I have made the registration process as quick and painless as possible – you only need to choose a username and password and you will be instantly signed in using your new account. No email verification or long forms.

In its current form, the accounts system is basically just a username reservation system. Soon you will be able to save your detachments in your account, view player profiles with battle history and ranking, send private messages, and other good stuff. Once I have some of these features in place I am planning to go on a promotion blitz to beef up the player base, but I am going to hold off for now since key features are still missing.

Tuesday, November 15, 2011

Accounts Almost Finished

Just a quick update to say that phase one of the accounts system is nearly complete, and should be online within the next few days. Although it has taken longer than expected to build (as always), I have put things together in a way that should perform well and scale well. More soon!

Tuesday, November 1, 2011

Accounts Still Under Construction

Phase one of the account system is taking longer than expected, and is not yet ready for release. I am working full-time on the project, but I underestimated the amount of planning that it would require. In particular, it has taken a lot of time to design a system that will be able to support a large number of users and a potentially huge amount of data (since, for example, I expect that players' battle histories will accumulate very quickly). I have also invested a lot of time into making everything multi-language friendly. Tackling these challenges has been time-consuming and a short-term solution would have been to ignore them, but I think it is best to make the investment now and avoid a costly overhaul down the road.

I am hoping to be finished this weekend, but it could be sooner or later than that.

More soon!

Thursday, October 20, 2011

Accounts are Coming

It has always been my plan to implement an account system for Catastrophe X, and over the past few days I have gotten started on this large undertaking. The account system, once in place, should add much a much-needed element of longevity to the game. Battles will have more significance because you will be ranked against other players, and as a result there should be more incentive to develop strategically effective detachments.

I intend to deploy the kernel of the account system next week, and then add to it in phases.

Phase 1 (next week)
Basic account registration and sign-in capabilities. No actual account functionality other than reserving a username.

Phase 2
Ability to save custom detachments to your account and use them in battle.

Phase 3
Basic player profiles.

Phase 4
Record battle history and display battle stats in your headquarters and on player profiles.

Phase 5
Devise a good rating system to rank player performance.

There will be more to add once these features are in place, but I won't get ahead of myself. More soon!

Monday, October 17, 2011

Craft Orientation Changes

A while back I added an arrow to indicate the current direction of a craft when choosing a deployment or move target. However, for a few craft these arrows pointed in the wrong direction. This occurred for craft that did not have the usual 3 o'clock default orientation, and instead faced 12 o'clock in order to obtain different craft shapes. For example, the Falconcraft had a 12 o'clock orientation so that its shape could be long and skinny:


I have decided to change the craft with the 12 o'clock orientation to use the 3 o'clock orientation (there were only three to change: the Falconcraft, Twin Turrets, and Gatling Fighter). In my opinion, it is difficult enough to try and form strategy when thinking about six distinct directions (1, 3, 5, 7, 9, 11 o'clock), without having another class of craft that using six more distinct directions (2, 4, 6, 8, 10, 12 o'clock). As a side benefit, this change also fixed the incorrect arrow directions for these units.

Pictured below is the Falconcraft in its new 3 o'clock configuration:


More soon!

Saturday, October 15, 2011

Hex Tile Improvements

As mentioned in my last post, the new HTML5 canvas-based graphics system had a few issues that still needed to be resolved. In particular, the seams between hex tiles were sloppy, as you can see below.

Before:






I have spent the last couple of days tightening up the tiling system, and the tiles now render seamlessly down to the pixel:

After:





In making these improvements, I have also resolved most of the tile "artifacts" that would show up as the tiles were re-drawn when you moved your mouse around the screen.

For those who are curious, the problem was due to the fact that a hexagon has a height-to-width ratio of 1.1547... (many decimal places, maybe going on forever). This means that you can't generally have a true hexagon with both an integer height and an integer width, which is a problem when you want your hexagonal tiles to line up perfectly pixel-by-pixel. I solved the problem by displaying near-hexagons that are ever so slightly squished, and taking this squish into proper account when calculating all pixel coordinates.

Wednesday, October 12, 2011

Change in Graphics Technology (SVG to Canvas)

Back in September I invested a chunk of time into building a faster graphics system for Catastrophe X. However, there are still some situations where the graphics get sluggish, particularly in Firefox. The fundamental bottleneck was the underlying graphics technology (SVG/VML via Raphael.js), which was not designed to cope with the large number of shapes needed to fill the viewport with map tiles, craft, actions, etc.

I have spent the past few days creating a component that displays graphics using a technology that is better suited to games like Catastrophe X (HTML5 canvas).  In older browsers that do not support this technology (including Internet Explorer up to version 8), the previous graphics component is automatically used as a fallback.

The new graphics system is really, really fast. Once the map has been loaded there is no longer any lag whatsoever when scrolling. This speed opens up new possibilities for future craft complexity and visual effects. And I haven't even fully tweaked the new component yet.

Having just implemented the new system, I am starting to see a few kinks. In particular, there are some artifacts that fade in and out as the canvas is repainted, and the hexagonal tile rounding system needs some work. Fortunately, these issues should not be too difficult to correct.

More soon!

Blog Downtime

As you may have noticed, the Catastrophe X blog has been unavailable for nearly the past week. Apparently Google's robots wrongly detected it as a spam blog and shut it down without question. I immediately filed an appeal and jumped through all the text message and image recognition hoops to prove that I am, indeed, mostly human. However, an actual person at Google had to review the blog before it could be brought back online, and that only happened today.

Now, I understand the trade-off between false positives and false negatives when detecting spam, and I don't take it personally that this blog was marked as spam. However, it is completely unacceptable for the blog to have been immediately shut down, and for my appeal to have taken six days to process. Owners of blogs detected as spam should have their blogs read-only locked, and should have a couple of days to prove that they are human and file an appeal before the blog is taken offline. And when somebody does the human verification and files an appeal, it should be reviewed within hours, before the blog is taken offline. Just my two cents.

Bad, Google.

Wednesday, October 5, 2011

Forums

With Catastrophe X being a real-time game, there has been no way for players to communicate with each other without being online at the same time. Not exactly ideal, especially given the relatively small number of players that the game has right now. So I have created a third-party forum to provide a place for discussion of Catastrophe X. Consider this a temporary venue, as I intend to integrate forums into the game itself once an account system is in place.

Drop by and introduce yourself -- let's get the discussion going.

Tuesday, October 4, 2011

UI Improvements

Today I implemented a few user interface updates that have been on my list for a while.
  • When you are in the process of deploying or moving a unit, there is now an arrow indicator showing which direction your craft will face. This removes any potential confusion about which side of a craft is the front.
  • When you are in the process of performing an action, the box reading “please select a target (cancel)” is now tucked away at the top of the screen. This box would occasionally obstruct players' choice of targets.
  • Ticks are no longer printed to the chat console, as these notices often pushed more important information off the screen.
I have also updated the generator craft, which now gives a bonus +3 energy per tick when placed on a colored energy tile (for example +3 blue per tick when placed on a blue tile). This should give players more reason to fight for control of the map when using the introductory pre-built detachments.

More soon!

Sunday, October 2, 2011

Game Promotion Progress

I've spent the past few days promoting Catastrophe X. The best results came from making an update post on reddit, where people seemed to be pretty enthusiastic about the game. After posting on Saturday, I spent most of the weekend playing against the redditors that came online. At one point there were nearly ten players online with multiple battles going on, including a three-player battle for the first time -- exciting! Things have now died down a bit, but I have reserved a sponsored link on reddit's /r/gaming for later this week that should help generate some more buzz.

This week I will continue to focus on promotion. It's time-consuming, but there is no point focusing solely on features until more players are around to use them. To make the game playable despite the lack of opponents, I have set up an alarm on my computer that alerts me when a new player signs on. When anybody comes online during the day (in North America), I should usually be online within a few moments for a match.

Expect new features to be deployed over the next few days – more soon!

Tuesday, September 27, 2011

A Multitude of Small Changes

I implemented a bunch of smallish changes over the past few days. Most importantly:

  • The bug that prevented players from exiting battles and upcoming battles has been fixed.
  • The error message that occasionally popped up when surrendering has been corrected.
  • I have revised the pre-built detachments to make them simpler for new players (i.e. fewer different types of craft).
  • The last tick / next tick view mode selector is now easier to understand.
  • The tick interval now defaults to 30 seconds. This is probably too short for more advanced players, but is better suited to newcomers who are trying to get a feel for the game.
  • I have added a three-player map called Tristar.
  • Deployment indicators (the concentric circles overlaid on a new unit) are now white if the unit is to be deployed next tick, and green if the unit was already deployed last tick. They were previously always green, making it difficult to tell if the deployment had actually occurred.
  • Buildcraft now have a larger building range, instead of only the one tile directly in front of them.

In my last post I wrote about my plans for upgrading the craft action / tick system to accommodate some of the fancy craft capabilities that I have in my head. That will be important, but it's difficult for me to ignore the fact that the game is usually empty right now. Looking forward over the next couple weeks, I am going to put a lot more work into promoting Catastrophe X and accumulating the critical mass of players that the game needs to be fun. The game isn't ready for prime time just yet, but it would be nice to have at least a handful of players online at any given time.

Wednesday, September 21, 2011

UI Spruce Up and Craft Adjustments

I have spent the last few days polishing up the UI. As part of this, I have renamed the Server screen to the Hub screen, which I think better communicates its purpose. In addition, clicking on your display name at the top-right now brings up your Headquarters screen. The headquarters screen doesn't contain much right now, but down the road it will display your army, detachments, maps, and so on.

I have also made adjustments to some of the craft definitions. As players have started using custom detachments, it's become obvious that craft need to be better balanced. I would like to ensure that there is a diverse set of winning strategies, and that winning strategies involve armies with combinations of craft rather than only one type of craft. Achieving balance will be an ongoing effort.

Today's craft changes:
  • Strikers, launch pads, fighter bases, and generators take more space in detachments.
  • It is more expensive for buildcraft to create generators.
  • Added the Arrow craft, which has a large moving range but a weak attack.

Looking forward, I am going to priorize building a larger, more balanced set of craft with much more diverse capabilities. Right now too many craft have the same basic move and attack capabilities, and in order to implement some of my new craft ideas I will first need to make the action system more flexible. More on this soon.

Saturday, September 17, 2011

Video Tutorial

In an effort to make Catastrophe X more accessible and appealing to new players, I have released a video tutorial and have given the homepage a bit of a face-lift. Next on my agenda is to spruce up the game interface as well. More soon!




Tuesday, September 13, 2011

Faster Graphics

I have spent the past two and a half weeks working on the speed of the Catastrophe X's graphics system. Prior to today, moving to a different part of the map would result in a slow rendering spiral starting in the center of the screen. The rendering speed was tolerable in some browsers such as Chrome, but made the game almost unplayable in other modern browsers like Firefox.

The new graphics system changes all this. Shapes are indexed spatially for fast retrieval and display when you move around the map. And if things do slow down a bit, the system focuses on rendering the most important shapes first, before moving on to purely aesthetic details. The new system is very fast in all modern browsers, though Internet Explorer still struggles.

While digging around the map system, I also replaced the hated mouse-based map scrolling with keyboard-based scrolling using the arrow keys. I have also added some other hotkeys for convenience (N/L toggle between last tick and next tick view, C focuses on the craft deployment box, D signals you are done the tick).

More soon!

Wednesday, August 24, 2011

New Feature: Custom Detachments

I have just released the custom detachments feature, which allows players to specify the set of craft that they start each battle with. I apologize for finishing a day later than I announced on Monday.

Here's how it works:

  • You can create a custom detachment definition using the "Custom Detachment Editor" button at the top-right of the game screen. Using the editor you can choose how many of each craft you want in your detachment, and then you can save the detachment definition code to your computer.
  • When you are hosting a battle, you can choose the maximum detachment size for participants. This prevents players from using extremely large detachments.
  • When selecting a detachment for a battle you now have the option to paste a custom detachment definition, or you can select from a list of pre-built detachments as before.
The obvious short-coming of the feature is that you have to save your custom detachment definitions on your computer. Once I implement an account system you will be able to save your detachments on the server instead of fiddling around with copying and pasting. Also, for the time being you can build detachments using any craft that you wish. However, once an account system is in place you will need to have a craft in your army before you can use it in a detachment.

I have now started work on improving the graphics system, which is much too slow for my tastes. More on this soon!

Monday, August 22, 2011

Custom Detachments Coming Tomorrow

I have spent the past few days working on a basic custom detachments feature, which will allow players to customize the group of craft they bring to each battle. Since there is no account system right now, you will have the option to copy your detachment definitions to your computer once you have finished designing them. Then, when choosing a detachment to use for a battle, you will have the option to paste in one of your detachment definitions.

This feature is nearly complete - check back tomorrow for details.

Thursday, August 18, 2011

Updates for August 18


Yesterday and today have been largely about organization. With my to do list approaching twenty pages, it was difficult to decide which tasks needed to be given priority. I've spent time organizing my documentation and lists, and I have published a revised development roadmap

I have also deployed a number of changes:
  • Players now receive an automatic +1 to each energy type every tick. This way newer players aren't up a creek if they deploy something other than a generator or a reactor with their initial allotment of energy.
  • I have added a Missile Silo craft to the game, which can perform long range, high-damage attacks. However, the craft is very costly.
  • I fixed a bug that was causing damage to be inflicted on incorrect tiles. The bug only affected certain craft certain orientations, so it didn't rear its head too often.
  • I've enabled text selection throughout the game. I had previously disabled it because I found accidental selections annoying, but blocking selections ended up being even more frustrating.
  • I made some behind-the-scenes changes that should help with the overall stability of the game.

 More soon!

Tuesday, August 16, 2011

Updates for August 16

As mentioned in my first post, Catastrophe X has gone down a number of times its launch with users receiving the error message "the server took too long to respond". Since this problem only occurred a few times it was difficult to reproduce and fix.

It turns out that this problem would surface when a battle participant tried to issue a command to a unit that had been destroyed (this was sometimes possible immediately after a tick). A relatively small problem with my code was amplified by the game's database module, which would stop responding to all data queries because of the situation.

This issue has now been resolved. The problem with my code has been corrected, and an error message is displayed when a player tries to issue a command to a non-existent unit. I have submitted the problem with the database module to its author, and have also put a temporary work-around in place.

With this bug taking up most of my day, little progress was made on other fronts. However, I did fix a problem that caused entries in the battle chat console to wrongly disappear, and I created a new type of craft called the Mobile Artillery.

More tomorrow!

Monday, August 15, 2011

Updates for August 15

The surge of traffic from my reddit post has now largely subsided, leaving me some time to start acting on the feedback I've received.

Today's updates:
  • Fixed the bug that sometimes prevented units from being displayed on the minimap.
  • Updated the Luna map with smaller energy deposits that are concentrated near the middle (so that they must be fought over). Also added a new map called Centros.
  • Craft updates:
    • Added the Deployment Pad craft, which can be used to extend your deployment zone.
    • Gave the Artillery Gun craft a larger firing range, and renamed it Fixed Artillery (since it can only fire in one direction).
    • Ensured that all craft can move backward so that they don't get stuck when they fly toward the edge of a map.
    • Reduced the number of generators in the default detachment from 5 to 2. This will put more emphasis on reactors and buildcraft.
    • Buildcraft and Regenerators are no longer free to deploy (this was a mistake).
    • Trident Fortresses and Twin Turrets have more starting health, since it was very difficult to defend against an attack.
  • Added a display name prompt when you first sign in.
  • Changed the battle console to default to the larger size.
  • Added browser compatibility information to the landing page.
  • Made a multitude of other small bug fixes and interface improvements that aren't worth listing.
More soon!

Sunday, August 14, 2011

Catastrophe X Released

After a year of private development, I posted Catastrophe X on reddit yesterday. This made for a very chaotic day, with me trying to play against each of the hundreds of visitors who signed on. The good news is that the game seems to work for the most part. Thank you to everybody who gave it a try and offered their feedback.

Please remember, if something goes wrong when you are playing, you can usually fix the problem by reloading the page. Your battles will not be affected by reloading.

Going forward, I will use this blog to publish updates and plans for Catastrophe X. Don't hesitate to drop me a line in the comments!

My current priorities are:
  • Figure out why the server occasionally stops responding to requests (no kidding).
  • Fix the bug that sometimes prevents units from showing on the minimap (reloading fixes this).
  • Create a proper intro screen and tutorial. There is (rightfully) a lot of confusion about how to play.
I have also created a Catastrophe X subreddit for additional discussion. Hope to see you there!