I promised I would talk a bit about Terrarium, so here goes...

Well, I'm back to hammering away at the Terrarium code base.  I have to say, it is probably a better gaming code-base than I would care to admit, and it appears we actually did a good job in most places at making it extensible and customizable.  That isn't really the big push right now though.  The big push is to get the source code into the hands of the community (that would be you and I), so that there might possibly be some derivative works.

Right now I'm working through most of the small issues that are left in the Terrarium.  Actual code issues that need to be cleaned and not gameplay functionality.  So the source release won't have much over on the previous public release.  So what kinds of things are happening?

Well, the largest issue we've tackled is the DeserializeAnimal with a null array.  While this wasn't really an engine issue, like most people thought, it was causing some grief in the community.  I guess you could say the gameplay around this member has been improved to avoid developer confusion.  I'll talk more about this little guy in a separate blog.  I have to get some small related code-bits approved before I can give you any real meat.

There was another issue with a floating point truncation issue when converting to int that was plaguing some players (but not others because it isn't consistent).  Some users were finding they had to put one extra point into a stat to get the benefit since numbers were being represented in floating point as (3.999999...), and then cast down to 3.  Adding an extra point (and getting a warning from the introduction system) would put you over the top with something like 4.2499999, and you'd actually get that extra umph you were looking for.  This was an unfortunate issue, and only some users ran into the problem.  I have 3 machines right now that I can't repro the issue on, and another that I actually can, so it is very frustrating.

Maybe not such a big issue, but a real big push, has been the ability to run under lessened OS privs when running the Terrarium.  We want people to be able to run without having Admin/Power User privs and instead just run as a normal user on the machine.  This was probably one of the most daunting issues in the Terrarium codebase to fix because games generally own their directories and we don't get to.  All of our IO has to happen under the AppData section of the disk.  We had lots of code that broke this rule, some in the graphics engine, some as part of the updater features, some logging functionality, etc...  This should all be sorted out now, and after installation, you should be able to launch and effectively run the Terrarium under normal privs.  Enjoy!

Jeez, all the stuff I get to do sounds so boring already.  The man with the real plans is Mitch Walker.  Check out his blog, since he is the guy responsible for the cool new graphics displayed at the PDC, and he'll be responsible for adding/approving any cool tweaks we do to the engine before the source release hits the web.

I still have a few tricks up my sleeve though with cool additions to the Terrarium code base after it is released.  Hopefully, we can get a good amount of community excitement and build an external support structure for new code additions, new graphics, and a public array of game servers for users to connect to.  As I get some free time, I'll start talking a bit more about what I have planned and how it might suck away your free time in the months after the codebase is released.

 

Published Monday, February 23, 2004 5:37 AM by Justin Rogers
Filed under:

Comments

Monday, February 23, 2004 10:58 AM by Jerry Dennany

# re: I promised I would talk a bit about Terrarium, so here goes...

Ah, but it isn't boring. Many, many applications make the same mistakes about writing to the current directory, and you help bring focus to this issue.
Monday, February 23, 2004 3:16 PM by Justin Rogers

# re: I promised I would talk a bit about Terrarium, so here goes...

Yes, most applications do make the mistake of using their own directory as a stomping ground for file IO code. It is hard to decide how to implement your file IO restrictions though, and I think this will be the interesting facet of the Terrarium changes. Currently the code changes just do the right thing, however, there are some sticky issues with when we really do need to write files in user selectable locations.

I'm thinking a change to our permissions code to deny File IO at a very early stage in the loading process might be worth looking into. I'll definitely blog about that kind of change because it starts to get interesting.
Saturday, March 13, 2004 8:57 AM by Winnifred Alberts

# re: I promised I would talk a bit about Terrarium, so here goes...

Is there any way you can give us eager little coders an approximate date as to when the terrarium source code is going to be released? I am so excited about the prospects of getting my hands on the code! :-)
Saturday, March 13, 2004 8:08 PM by Justin Rogers

# re: I promised I would talk a bit about Terrarium, so here goes...

Eager coders should take this to heart... Soon. And this time we mean it, and are very close.

Since I won't tell you when I can tell you a little more about what. The Terrarium source release is going to be a true experience. Starting with the hopefully flawless and easy to use install process of all Terrarium components down to the refined look and bug fixes to the game play that have been plaguing some developers.

The source code and documentation are going to be indispensable for reference when programming similar applications in the future. In other words, it is worth a small wait and a bit of uncertainty ;-)

Leave a Comment

(required) 
(required) 
(optional)
(required)