Friday, March 31, 2006

view Halo 2 Hacks videos online

if you would like to see some examples of the cool stuff in Halo 2 Hacks, check out these video samples.

there are 100 hacks in the book. some are simple and will take you minutes to complete; others are complex and will take you hours. this is just a little taste:

Halo 2 Hacks: Fly Like a Bird - sword flying
Halo 2 Hacks: Beaver Creek - getting the rocket launcher by chucking a grenade
Halo 2 Hacks: Warthog Trampoline - using the warthog to get some serious air
Halo 2 Hacks: Out of Foundation - get above the foundation
Halo 2 Hacks: Up, Up, and Away - nade jumping
Halo 2 Hacks: Play Football - the soccer ball easter egg
Halo 2 Hacks: A Long Jump - slide jumping

Thursday, March 30, 2006

OOP dreaming

Have you ever heard someone say he knew he was becoming immersed in a new language when he started to dream in the new language? I remember a friend of mine saying this to me when he was learning to speak Hebrew. I had one of these dreams during my time at Microsoft. I was learning C#, but the dream wasn’t really about the language. It was a dream about chaos, security, and the potential of object oriented programming (OOP).

OOP is a programming model that involves grouping together related code into manageable and reusable pieces. Each of these pieces is called an ‘object’ and all objects have to comply with certain rules. It is not – as you may have interpreted from a Douglas Coupland novel – a system for putting together Lego blocks.

For example, a banking program may include some code that stores account information and other code that runs reports on account activity. This system might include an object called 'BankAccount' that encapsulates all of the code necessary to maintain account information. The BankAccount object would have properties such as 'Balance' and it would have routines (or functions) that perform operations such as ‘Withdrawal’ or ‘Deposit.’ Each of these routines would contain the code necessary to alter the client’s information in the Bank’s database. When another portion of the banking software, such as the daily report, needs information about an account, it simply asks the BankAccount object for its properties. The daily report program doesn't need to know anything about what's going on under the hood of the BankAccount object. For example, it doesn't need to know that the account information is actually being stored in a database at the bank's data centre. All the daily report program needs to do is talk to the BankAccount object.

The benefits of this model are plentiful. As you can imagine, that there may be numerous pieces of banking software that require account information. All of these pieces can access the same BankAccount object code when they need the Balance property. Since the code is nicely packaged and reused, it’s much easier to debug the program.

OOP is certainly not a new concept. It has been around for over 30 years; however, there is still plenty of unrealized potential. A great portion of code written today is not object oriented. It is – obviously - possible to write banking software without using OOP. However, since the introduction of OOP, programmers find that it is must easier to unlock the potential of their code. One example of this is web site programming. Until recently, very little web site code was object oriented. However, since technologies such as Microsoft's .Net initiative have brought OOP to the web, things have changed considerably. This is where my dream enters the discussion. What would the world be like if everything around us was using the potential of OOP?

My dream started with me checking into a hotel on a business trip. I arrived late at night and I was exhausted - all I wanted to do was get a glass of water and go to sleep. My hotel suite has a kitchen (I may dream like a geek, but I also dream like a big spender) so I go to the fridge and while I’m getting some water, I use an LCD fridge display to set my wake up call for the next morning. As I leave the kitchen area, I turn off the lights in the suite. What I don't know is that my ex-girlfriend is staying in the adjacent room.

We hadn't dated for ten years, but while we were dating, we gave one another security rights to our OOP enabled worlds. When we broke up, we forgot to go through the motions of a relationship security lockdown (let’s call that RSL :). This has no effect on our lives until ten years later when we happen to be staying in these adjacent hotel rooms.

Right around the time that my head hits the pillow, my ex goes to her fridge and hits the 'All Lights On' button. She has a big meeting the next day and needs to get some late work done. Unfortunately, because she has rights to my lights, so ‘all lights' now includes the lights in my room. While I am trying to fall asleep, the lights suddenly turn on. Confused, I get up and press the ‘All Lights Off’ button. This has the effect of turning off the lights in my ex's room. This goes back and forth for a while until we both curse Microsoft for messing up the lighting and call the front desk.

The truly interesting part of all of this is the cascading effect. Seemingly unrelated events are enmeshed because of technology. How well will we be able to keep up with the complexity? When I woke up, this was the question on my mind, and I couldn’t help but wonder how ‘chaotic’ things could get. Meteorologist Edward Lorenz - the first experimenter in the field of chaos theory - argued that many seemingly random events are linked through relationships so complex that we simply do not have the skill to identify the connections. In my dream, security is the example. The last few years have clearly shown that software security is already extremely difficult. Imagine a future where security permissions exist in everything around you - when object oriented programming is inside every object. Will the future of programming move us towards greater harmony of will it lead to more chaos?

Tuesday, March 28, 2006

black art of halo mods update

I am thrilled to say that The Black Art of Halo Mods (Sams publishing) has passed a major milestone. it won't be long before the book will be hitting a shelf near you.

also, Nick has posted a little bit on information on the HaloDev site about the chapter introducing Prometheus.

"For a very long time now we’ve been working with Stephen Cawood, author of O'Reilly’s ‘Halo 2 Hacks’, on his new book ‘The Black Art of Halo Mods’. The book is focused on creating new maps with the H.E.K. JamesD and Grenadiac, along side many other modders, spent an awful lot of time helping out with the H.E.K. section of the book." full article

if you're not familar with the Prometheus project, take a look at their site. I commonly refer to Prometheus at the "the future of halo modding."

Wednesday, March 22, 2006

Halo 3 an RTS?

there have been a few rumours flying around that Halo 3 will go back to the original vision of Halo and come out as an real-time strategy game (RTS). I first read about this in a post written by someone claiming to work for bungie. most people dismissed his comments as ludicrous. however, the rumour has resurfaced on for now, I'm going to focus on the RTS rumour and I'll ignore the comments about Halo 3 being a role-playing game or a massivaly multiplayer online game.

first of all, I'm a big fan of RTS games. ever since Command and Conquer, I've enjoyed playing these time-sucking games. therefore, I would love to see bungie create an RTS. however, if Halo 3 is an RTS then it isn't Halo 3.

as every Halo fan knows, Halo 2 did not finish in a satisfying fashion. the only way to properly wrap-up the story is to create another first-person shooter (FPS). so the real question is whether bungie is hoping to jump the shark by creating some sort of FPS/RTS hybrid.

I don't believe that this would be a good use of their talents and resources. no matter how well they adapted Halo, the fan base will not be satisfied until they can properly finish the series. many people objected to the Halo 2 switch between the Master Chief character and the Arbiter. imagine the objections if Halo 3 isn't an FPS.

I'd like to think that these sorts of rumours are just a marketing trick that bungie has pulled out to keep people talking about Halo 3 during development delays. if bungie produces anything other than an improved FPS, they will be doing it for their own interests - not in the interest of Halo fans.

Thursday, March 16, 2006

Halo 3 fix wish list

here is my personal wish list of Halo 3 fixes. even though Halo 2 is my favourite game, I can understand why it took plenty of flack from diehard Halo fans. this is what I think bungie can do to expand the Halo franchise and also win back some of the Halo 1 purists.

these aren't meant to be my creative ideas for new features. sure I'd love to fight the covenant on a snowboard, but I'd first like to see the fundamental problems addressed. it isn't the typical microsoft way to update software (i.e. it's not the "code on code" mentality), but bungie isn't a typical microsoft group.

1. go back to a strategic philosophy
I believe that this point is the key to growing the Halo user base and keeping the 133t (read: elite) players. the fact is that Halo 1 (H1) was more strategic than Halo 2 (H2). for example, during an H1 game, a player could check his health and react accordingly. if he had lots of health, he would fight; if he was low on health, he could play a survival strategy until he was able to pick up a health pack. in H2, there are no health packs and the health bar no longer appears in the heads-up display (HUD). this is good news for a newbie, but it's terrible for a seasoned player - the experts knew exactly how long it would take the health packs to reappear and would plan their movement accordingly.

another related issue is the fact that a number of the H2 weapons can be used in the infamous "spray and pray" technique. in other words, the player simply picks up a weapon in each hand and holds down both triggers in the hope that they can spray down an enemy. obviously, fighting with two weapons is a key feature of H2 and there's nothing wrong with the theory. however, in practice, the technique is far too effective. what should be limited to a short range strategy can often win mid-range showdowns. there is nothing more frustrating to an expert than trying to use a precision mid-range weapon against someone who is cutting him up with bullet hoses. it is an issue of weapon balance, but it's also another example of H2 catering to the amateur player.

2. tune down the plasma sword
now... if you want to talk about a pure weapon balance issue, the plasma sword is obviously overpowered. how bungie failed to balance out the sword range during their H2 live update is beyond me. the concept of the sword is cool and all, but man... the range is sick. anyone who plays H2 online knows that there are plenty of 'sword whores' out there just waiting for lockout to come up in the rumble pit playlist rotation. no other weapon can raise the ire of a Halo fan as quickly as the sword.

3. faster still!
I still remember when a friend first showed me the original Halo. the first thing that I did... actually, the first thing was to giggle like a school girl while I used the melee attack to knock down my buddy (thanks dkal :). but right after that... I asked where the run button was. much to my dismay, there was no run button - H1 was way too slow. H2 is faster than H1, and I'd like to see the trend continue. I don't need it unreal tournament fast, but I would like to actually be able to dodge something every once in a while.

of course, extra speed has to be balanced against potential new features that could use the same processing power. ya, ya... I know. but surely there's some juice in the Xbox 360 that can be set aside for the run button.

4. more maps
H2 maps are works of art. that's great and all, but it also means that there aren't enough of them. if bungie were to take a poll, I'm sure that players would be happy to settle for simpler design if it meant that they could have a regular stream of new maps. how about releasing a new map every month?

BTW - what about the H1 maps? many of those maps have not been released for H2. I've read on that they decided that the maps didn't work with the H2 weapons. I find that to be an unacceptable argument. let the gamers decide what weapons they want to use.

5. 90 degree FOV
H2 uses a 70 degree field of view (FOV). but many shooters use a 90 degree FOV. seeing more of the battle field uses more resources, but once again, the move to the Xbox 360 should allow for performance improvements.

6. make vehicles part of the game
the rocket locking feature for vehicles is cool and a lot of fun if you're the one with the launcher, but the end result of this feature is that vehicles are rarely used. perhaps the players in the vehicles could have some warning that a rocket has locked onto their vehicle. combine this with faster bailing out and maybe more players would go for a ride.

I'm sure that bungie has grand plans for H3. however, I hope that they seriously consider fixing the issues with H2 before they spend all of their cycles working on that snowboarding level.

Wednesday, March 15, 2006

microsoft helps nab child abusers

after receiving a request from a canadian police agency, microsoft worked directly with the police to develop software to help catch child pornographers.

the work paid off this week when an international child pornography ring was shut down.

Monday, March 13, 2006

illness sucks

no big rant here... just sick of being sick :(

Wednesday, March 01, 2006

writing resources

--------------------- - "Great Books Online"
from the site: "The preeminent internet publisher of literature, reference and verse, providing students and researchers and the intellectually curious with unlimited access to books and information on the web, free of charge." this tag line sounds like a run-on sentence to me :P anyway, they have lots of great material including quotes and grammar.

Guide to Grammar and Writing (sponsored by the Capital Community College Foundation)

Dictionary Of Literary Terms

World Wide Words - "The Free Encyclopedia" is the fastest growing online resource.

--------------------- - a great online dictionary that returns results from more than one source. the only issue with this site is that it references so many words that it's not going to settle any "that's not a real word" debates.

Webster's Online Dictionary with Multilingual Thesaurus Translation - "Cliches, Euphimisms and Figures of Speech."

Yahoo! Directory Communications Writing for the Web