Progamer to Programmer

Thursday, November 25, 2004

Strutting around

We managed to get a Struts project, and I was one of the lucky people to work on it. The last week has been spent eagerly getting acquainted with Servlets, Struts, and Hibernate. The app itself services a mobile client, but all the existing code already uses struts, so I guess it is fine - the same app could later be extended to also service web clients simply by adding presentation code and a few config entries. Great fun!

My initial reaction to Struts is quite good. Most of the cost of Struts is the investment time learning the framework... Once you're familiar with it, you can reap your reward by building more flexible applications - development overhead is quite minimal. Although some people have raised concerns, stating that similar functionality can already be achieved by editing web.xml (basically making Struts useless overhead - both in system complexity and physical resources). I'm not yet very familiar with Java web apps, but this should be something to look into.


Defense of the Ancients is a popular Warcraft III-based modded map that has a very good polished feel to it. Each player picks one of two sides, and controls a single Hero. All the "army" management is handled by the computer (in the form of periodically generating troops that blindly rush to the other side, and die once they meet their enemy-peers). The players can affect the outcome of this Continuous Strife by casting spells to weaken the other side's army, or disable enemy heroes, or heal/strengthen their own army.

What makes it such a great game? Here are a few things I can think of:

  • Continuity - Unlike microwars, or all those other "pure micro" maps, you have a sense of actually building up a character, not unlike an MMORPG. A game lasts long enough to have gotten the good feeling of starting from weakness, and growing to be strong.
  • Diversity - There are more Hero types than I have fingers and toes! And each hero isn't just a palette swap, and a rehash of skills - each has his own "theme".
  • Balance - You would expect that amongst the multitude of hero types, for some to be blatantly strong/weak. But that's discounting the synergy that some "weak" heroes can get from simply helping their team out. Think Tekken "balance".
  • Maturity - The current "official" version is at version 5.84b. I know of at least two people who have maintained the "official" version. Several other versions have popped (and continue to pop) up - good ideas are incorporated into the official version. Discussion forums are set up where people can discuss the strengths/weaknesses of the game, and offer new suggestions. I can make a good guess that v1.0 was nowhere near as good as this map, and it only became this good because of the underlying community.


A cool puzzle. One of the levels require you to search for a specific phrase hidden in the game. Google would then lead you through a bunch of clues, that would (with some thinking) bring you the answer. Unfortunately, the puzzles popularity has screwed the page rankings - searching for the phrase now leads you to a walkthrough for the puzzle. Heh. =/


  • must you use hibernate? it's a great persistence strategy(o/r maps) and performs really well, but I find that iBatis is simpler to learn/use/maintain, and the DBA wont hate you so much.

    By Blogger frank, at 6:02 PM  

  • dota! siguro addictus na rin ako dyan pag dyan pa ako nakatira. hehe.Ü

    By Blogger JAm, at 11:08 PM  

  • another DOTA player! are you playing DOTA All-Stars? or DOTA in RoC?

    By Blogger Nox, at 11:31 PM  

  • By Blogger Nikki, at 8:23 PM  

  • frank, this is an inherited project, so we have no say as to which O/R mapping to use. And I don't know enough about iBatis to make a good comparison.

    As for DoTA in RoC... there's an RoC version?

    By Blogger Celedor, at 7:55 PM  

Post a Comment

<< Home