Monthly Archives: July 2007


Quite a bit happening lately. I finished the mission system which utilizes the event handlers I finished last time. And I implemented a one sequence mission.

Then I went on to implement the in-game chat I had been talking about. I ended up using PHPFreeChat which is an AWESOME little script. I plan on either donating or finding some code to contribute so I can remove the badge. Not that I don’t want to recognize their efforts, I just want a very cohesive feel to it all.

With that finally implemented, tweaked, and bug tested, I started working on the Web Browser which is going to be a huge part of the game going forward.

It shouldn’t take much more code to get the browser functioning. Then I will implement a more complex mission involving the browser and email together.

I also plan on implementing a console. Mainly for easily outputting debug info but maybe later for use as a command line interface.

So thats it for now, stay tuned, very interesting things to come!

– Adam


So I haven’t been spending much time programing lately. But I have been thinking quite a bit about all aspects of Decrypt from technical, to game play, to story.

I have finally come up with how the mission system will work. It should be very flexible. And Over the last 2 or 3 days I implemented the way in which applications and thus the game world, will be affected by missions. There are any number of ways to go about doing this, I opted for an event system.

Each application, when it registers it’s self with the operating system has the option of registering a default event handler. Then an active mission can then register event handlers for any application it wishes to affect, and these ‘over riding’ event handlers get pushed onto the handler stack. The stack has fall through, so if a certain event is not handled in a certain event handler, then that event falls through to the next handler and so on.

The missions will be quite simple. They will be described in an XML file by sequence points. Each stage of a mission will describe the game world by specifying a list of handlers for different applications. When a player completes a task that requires anything in the game world to change, they will change sequence points which will remove the old sequence point handlers by popping them off the handler stack, then pushing the new sequence point’s handlers on.

I think you could provide additional flexibility by allowing for sub-sequence points, so can change small parts of the world while retaining the majority of handlers. Then when u change the main sequence point you would change all the handlers.

Anyway, with the event system in place, and the Email client now working off of the event system, and the email client the only component absolutely required for the most basic mission. I’m going to implement the mission system now and create an ultra basic mission!


So, long time no post.

But I have been very, very, busy with work, and contract work on the side as well as summer activities.

But more to the point I polished a few code features in Black Engine and have a new version I’m going to release v0.6a which is much closer to the functionality I had originally wanted in v0.6.

That being said, after much research into refactoring and additions I want to make to the engine, I have decided to take a break from Black Engine development for a while.

With what little spare time I do have, I have started another project. It’s called Decrypt (working title), you can check it out in the projects section.

The initial idea has expanded a bit but the core thing is this. I want to challenge the players mind. When a player over comes an obstacle in the game I want them to feel a real sense of accomplishment. Not just the fact that they progressed, but that what they did was actually an accomplishment for them selves, in real world terms. I want to teach the player things that I think are generally fascinating. The player will actually learn real world things that will help them to complete parts of the game.

You will play the role of a sort of modern day private eye. The game takes place on a “virtual computer”. The entire thing resides inside your web browser.

You will receive an email from a friend asking for your help in decrypting this message he found. You will use the in-game web browser to go to this forum site that he runs and find the text he is talking about. Then you will have to use real world cryptography skills to decrypt the message. Once decrypted the message will unveil the seeds of the plot and set in motion a chain of events that will sweep you up in an international event.

There will be certain hacking-esk elements much in the spirit of Uplink ( ) that will lead you to the next message to decrypt. The story will be dynamic in certain ways. Depending on your actions different people in the game world will react differently and change the story.

I really think I can produce a rich, entertaining, and intellectual experience. I’ve also taken some influence and ideas from sites like:

Another thing in the back of my mind is a game that came out just before 9/11. I forget the name of it. But when you signed up you agreed to let them do tons of different things to you in the real world. Such as call your cell, email you, send you text messages, etc. It reminded me a lot of the move “The Game” with Michael Douglas. Sadly, because of the paranoia following 9/11 the game silently closed it’s doors. While Decrypt won’t be doing any of these things to your real world devices, I am trying to re-produce atleast some of this in the “virtual computer”.

The greatest thing about this project is that, since I am doing it as a web based app, I can take advantage of so many different tools and libraries that aim at aiding in RAD. It took me 1 hour to set up the basic client side (Javascript) code for launching programs! After 2 more days of coding I had the basic operating system and process management code written on the server side and had it hooked up to the client side display.

I’ve already written 2 “Applications”, one is an OS settings application that allows you to change the theme of your virtual computer and such. And the other is the Email Client which will be a hugely important part of the game.

Right now I am working on the last major technical hurdle which will manage the story and how it affects the game world.

I want to make a system that is flexible enough to support more then 1 story. So once you finish one, you can start another. I envision the main character as almost like a Jack Ryan (Tom Clancy’s main character in many of this books) where it’s the same character in many different stories that are loosely tied to each other.

Two ideas I am toying with are:
1) Allowing users to create missions
2) Allowing users to write programs for the virtual operating system. The application system is flexible enough it would be very very easy to support user made programs. Users could pass “Install Links” around to other users to allow them to install a program they made. Because the email system is very generalized, you can email any other user of the game, and they will get it in their virtual In box just like any another other email in the game. I’m also planning on making a chat so you can chat to anyone else who is currently logged onto the system.

I’m still trying to flesh out some of the major details of the plot, and I’m still working on the mission/story system which will have to control scripted emails, intelligent responses from NPCs to player emails. And modify contents of fake web sites, and news wires.

So I’ve got a ways to go. But things are coming along astonishingly fast.

– Adam