I have begun a project to convert and publish a .NET 2.0 C# Terrarium and deploy enhancements to both the UI as well as creatures/environment. Anyone interested in doing this work in their free time, post a reply here! The intent is to assign each developer a dll to convert -- including documenting the public methods and classes.
I will also need one person who can manage the hosting of a blog and website for providing pubic status of this effort.
Client conversion tasks: This is where the progress will be reported...for now.
The final tasks are moving with building the client code (StyleEditor and Terrarium.exe)
A synchronized Dictionary was completed to replace the many places where synchronized Hashtables were used. This class will be used to replace all Hashtables.
The functional DLL's are completed and the base forms are visible. Some resource extraction had to occur so that I could incorporate the button graphics. I've also begun the task of replacing collections with generics.
When work moves into the server arena, it appears that there may not be alot of work(2 dll's). We'll see.....
Currently complete: Services.dll
OranismBase.dll
HttpListener.dll
Metal.dll
Terrarium.Forms.dll (was Controls.dll)
Game.dll
Renderer.dll
Configuration.dll
...Collections.Generic.ThreadSafeDictionary
Current Task: I am in the process of extracting image resources and getting all of the graphics
installed and running. This way the application will have the proper look as I pull
everything together. I'm also replacing the use of Hashtable (which is alot) with
the ThreadSafeDictionary. This places all hashes into a Generic collection for
more performant code.
StyleEditor.exe Get the UI in place then implement the code.
Remaining tasks for the Client code:
Update DxVBLib from DirectX7 to DirectX9 and change Renderer.dll for type name changes.
Extract resources from client code.
Terrarium.exe (Terrarium.MainForm and Terrarium.About)
.NET 2.0 deprecated code replacement
.NET 2.0 code optimization
People keep asking about the 2.0 version. If you want it, then reply here and help develop it. |
| MichaelEber Friday, October 06, 2006 12:55 PM |
I would be happy to help - used to have a lot of fun with Terrarium but gave up when I stopped developing .NET 1.1 code.
I also happen to have a substantial online capability and would be happy tohost a blog and web site it nobody else has stepped up to do this yet.
- Philippe Richard |
| MrDotNet Tuesday, November 28, 2006 7:29 PM |
I would be far more interested in creating a whole new "Terrarium type" platform on the .NET 3.0 .. You surely thought about it. Why didn't you choose that direction instead ?
|
| WhereIsMarty Tuesday, December 05, 2006 1:55 AM |
I am interested...but where are you getting the source code to the original version? It would be helpful to look over this to ascertain the extent of the task at hand.
--- Best regards,
Rob
|
| Rob Lively Tuesday, December 12, 2006 7:54 AM |
Hello, Michael. Have you and/or anyone else made any progress towards the conversion? Do you still need help? If so, I'm interested. Thanks. |
| BenUrbanski Tuesday, January 02, 2007 9:00 PM |
High Mike,
You've probably received a zillion requests to assist with the conversion of Terrarium. I was wondering where that project stood, and whether I could get some source for: a.) The latest, original verion (1.1 Framework), and b.) the latest source on the conversion.
I may be interested in working some on conversion project, however, I'm also interested in exploring some ideas of my own, wherein a lot of the framework of Terrarium would easily adapt.
Thank You in advance for both information and any source you are willing to share.
NOTE: I have not been able to update my GotDotNet/WindowsClientNet profile to reflect my current email address. I keep getting an error from the server when I try to post the profile update. So, the enclosed Email address works just fine.
Marv Miller
marvm3_@_gmail_._com
(remove all underscores) |
| MarvM Wednesday, July 18, 2007 9:11 PM |
Yea, I'm in. Let me know what the next step would be.
I have some Project Management experience as well if that may become usefull.
David
ENgineer@ABCgmail.com
(remove capital letters above) |
| Gineer Tuesday, November 20, 2007 2:42 PM |
Did anyone get a reply from this guy or was he just messing around? I'd be interested in helping, but in the absence of any source code to work from perhaps we should just start up a group to create a new game of the same ilk from scratch?
Nathan
|
| Nathan Phillips Monday, December 03, 2007 4:32 PM |
Can you post the original files or some code for people to download?
|
| Bil Simser [MVP] Saturday, December 08, 2007 6:26 PM |
anyone knows what is the status of this project? the sources for terrarium 1.0 are not available anywhere. did anyone started this project? i want to help and i have a couple of catchy ideas too  let me know. |
| iamdacian Wednesday, January 23, 2008 3:53 AM |
I made a start on this before Christmas but my work disappeared when my laptop was stolen during a recent burgulary . Always remember to backup regularly, people!
I did enough to show that the basic framework would not take long to implement and made a lot of improvements, such as:
-
Going for a lightweight interface implementatoon model for organism development rather than an event-driven model, following feedback from bug developers and my own bug development
-
A much larger set of organism statistics, many of which were interrelated, improving gameplay
-
A non-grid based map and better collision handling
-
A single large world map dynamically distributable between processors
-
No upper or lower limits on organism size, allowing virus-sized parasites living on other organisms
-
A proper concept of sight and camoflage, not allowing 360 degree vision or seeing through other organisms
The major areas that I would need input on if I was to recreate what I did would be:
-
I didn't implement a decent GUI. It would be great if organisms could define themselves in terms of a 3D model which the Terrarium GUI would render at whatever size the organism has grown to using a uesr-controllable viewpoint. I hope that this could be fairly easy using WPF, but I've not looked into it.
-
My security was very weak. I would need someoneto implement an IL parser that checked for security rules such as accessing restricted functions, writing to static members in the framework, etc. This is probably the hardest part of the whole development.
What ideas do other people have for a new Terrarium game?
Nathan |
| Nathan Phillips Wednesday, January 23, 2008 9:30 AM |
hi nathan, thanks for you answer. let's take this private, my email is xmas__@hotmail.com (that's with two underscores!)  thanks, ovidiu |
| iamdacian Thursday, January 24, 2008 12:10 AM |
Great news! I was contacted by the police yesterday and they have recovered my laptop. They will hold on to it for a couple more days but I was able to get access to it last night and all the data is still intact so we have a head-start on this project again if we go for something based on what I was doing.
Here is some more information in response to Ovidiu's private message and posted with his permission.
I do not have the original sources for the MS version of Terrarium, I started from scratch.
As far as making some progress with the security model is concerned I'd start by dong some research on IL and writing some test programmes to parse the IL bytestream. See if you can then identify the types of constructs used by any particular method.
I think I largely solved scalability problems by using an innovative way of storing the game state that made it dynamically redistributable between an unlimited number of processors / computers. The bit that I hadn't finished fixing was an efficient way of computers asking each other what they could see that was stored in the other computer's area, but organisms moving between processors was implemented. I am intending to run on a network of trusted machines rather than the player's machines as I think one of the reasons for the lack of uptake of the original game was the complexity of the client install. Being able to go to a web site and upload your organism to run on our network of computers rather than having to contribute to the peer-to-peer network should make it a lot easier. As a side-benefit this reduces some of our security requirements.
I don't think a non-programmed species will ever be able to compete with a programmed species, but creating a world populated with non-programmed organisms could be fun for non-programmers to play. I had envisaged doing this by creating a seperate Web project to generate normal Terrarium organisms with statistics based on the parameters that users give for their organisms and a standard template that could implement parameter-based behaviors. I don't think this needs any specific functionality in the terrarium itself and could be done by a seperate group.
Ovidiu suggests introducing some kind of surprise element by implementing a DNA based species that can pair and produce other species based on the starting DNA pairs, the new species can recognize parent and cousin species and have specific behavior based on that. I had already implemented something a bit similar to this, though perhaps simpler than he was imagining. Firstly organisms had gender and had to mate in order to reproduce and then offspring were born with a random combination of the statistics of each of their parents, including a random mutation of each statistic up to a hard-coded percentage limit. The inital statistics of a first-generation organism were provided by a static member function on the organism rather than read from custom attributes to allow some variety of statistics in that generation. Organisms could see the developer's login and given species name for other organisms in its field of view. I allowed mating between any two organisms as long as neither party was attacking the other, though mating between two organisms written by different developers caused the developer name on the child organism to be lost so that the developer would not get credit for subsequent generations produced that way.
Ovidiu suggests that idealistically each species should be able to learn to some degree some basic survival techniques, especially the species resulting from natural pairing of two different species I have had no thoughts about how this could be implemented as yet - especially if he is talking about something done by the world rather than on a per-organism basis.
Hope this information is useful.
Nathan |
| Nathan Phillips Friday, January 25, 2008 12:01 PM |
do you still have room for another one?
|
| cmsalvatore Friday, January 25, 2008 12:07 PM |
Perhaps it would be worth anyone who's interested in helping posting where their interests / skills lie and whether there are any particular areas that they fancy taking responsibility for.
I guess both my main interests and my skills are mostly in high level design. Apart from what I've already done I think I'd be most useful in coordinating the gathering of a specification, producing some design documentation and guiding and coordinating the development in the various areas that remain. I would also be interested in taking responsibility for the maintenance of the World map structure.
As well as people interested in GUI and security it would be great to have someone who could check whether a similar project already exists and if not set up a project on codeplex that we could use to manage the development. We could do with a graphic designer as well as a GUI coder (developers never produce attractive GUIs) so if anyone knows someone then do recommend them. Guess we might as well start looking for testers now too, though we may not need them for a while. |
| Nathan Phillips Friday, January 25, 2008 2:22 PM |
Hi, Iwould be very interested joining the project if it is still alive. I don't have much experience in version porting, but I'm sure i could figure it out if someone told me what i would have to do. I have experience in c# coding though and would also try to implement additional lua scripting support, so the ai can be controlled by lua scripts as well. (i have done this in other projects and more people seem to be willing to code lua scripts than a .net dll, so this could benefit popularity).
I would also be interested in any terrarium source code available if the project is not alive anymore and would appreciate if someone could e-mail it to me. (todok12345@nospam@hotmail.com)
greetings
|
| Todok Thursday, February 07, 2008 6:52 PM |
I suggest take contact with david kocur ( dkocur airmail net), he was involved in this project for years. Reviving this game would be interesting. |
| a23456 Friday, February 15, 2008 11:28 AM |
Heya.
I am verywilling to help.
I have been coding in C# since v1.1.
I have knowledge extensivein ASM/C/C++, and reverse engineering aswel.
I am a technical programmer and software engineer in general.
Green |
| GreenBerret Tuesday, March 04, 2008 12:00 AM |
I am also interested. Perhaps you could start a Codeplex, SourceForge or Googlecode project. I checked Codeplex for "terrarium" and there are currently no matches.
|
| jgalley Tuesday, March 04, 2008 3:47 PM |
Ah scweet, heya jgalley.....Yes i agree we should start a network project on which we can work.
I have a couple of ideas aswell, but, i am waiting to see if you guys (and mostly nathan are interested.I definetly wouldalso advice to cut out the peer-to-peer and go for a server orientated system, as stated above by nathan. -Once the dll/source is loaded to the server it can be checked for malicous code/functions easily. Then a certain amount of storage (organism memory) is allocated to each person to allow his organism to learn better. Networking will also be much smoother if its a non-p2p.
Even if the current terrarium has some problems porting, it is always possible to start from scratch because the concept for terrarium is not that complex, and is definitely do-able.
Since we seem to be 3 CODERS interested in this so far, the hardest part will be the graphics. I have basic knowledge in Directx 9 and OpenGL, but we need someone for the graphics. But for now the graphics isnt asimportant until we complete functionalityand a working system.
I am really eager to see what nathan did thus far, and to start improving the old system.
Green
|
| GreenBerret Tuesday, March 04, 2008 6:12 PM |
why should we trust your skills GreenB? you can't even count! )) as far as i can do there are 5 CODDERS not 3 so far that are willing to help, and that counting only after nathan's post. if you count before that there are arount 10...
from what i can see at this point is this. nathan has the starting point, he initiated a project and he already has sources. he should be the owner of the project and he should initiate a project in codeplex or whatever. if he's not willing to do so one of us should take the initiative and do it. and we should continue from there: brainstorms, breaking the project in sub-areas, tasks, distribute them between the members based on volunteering and experience.
nathan? are you willing (and have the time) to proceed with creating and owning the project in codeplex? |
| iamdacian Tuesday, March 04, 2008 6:49 PM |
This is great.
Just the other day I saw a video on the game spore and I thought about having had fun with the game "creatures". I had been mulling over how I might do something like spore myself.
http://www.spore.com/index.php
|
| jgalley Tuesday, March 04, 2008 8:04 PM |
Hi guy have the original files and source code for the project (both client and server) and have converted it to 2.0. I was setting up a CodePlex project if anyone was interested in joining. I am *not* interested in re-designing the system from scratch though and this thread seems to indicate it's needed. I don't think it does and the original system can be salvaged and used. The CodePlex project I was setting up was to release the 2.0 version and make efforts to work on using 3.5 language features, specifically extension methods to all people to build creatures from base classes much like the original, but much more extensible. In addition, I was moving towards ditching the DirectX interface in favor of using XNA to get the system moved to the XBox 360.
Anyways, quick post (having problems getting into this forum site) and wanted to ping people about what I was doing. It may result in me abandoning what I've done, merging efforts, or creating dual projects. In any case, the important thing is to get the thing out there IMHO.
Thanks!
|
| Bil Simser [MVP] Wednesday, March 05, 2008 1:17 AM |
Bil,
I also like the idea of moving to an XNA based solution. I like the idea of getting the Xbox 360 involved but I am not certain that Game Studio supports VS2008 in any capacity.
I am not sure how farMichaelEber's code is along. I am really keen on joining in though so who ever starts the Codeplex project please let me know.
|
| jgalley Wednesday, March 05, 2008 1:32 AM |
@jgalley:
I've created a project at http://www.codeplex.com/terrarium(not active yet) where I'll post my 2.0 version of the client and server. Not sure what the status of the other people were so I'm just getting it going and anyone can join in.
XNA Game Studio 2.0 support VS2005 and will have a service pack (not released yet) to support 2008. If you're only on 2008, you can install VS Express until Game Studio support 2008 (so you don't have to install VS2005) which can be easily removed when 2008 support comes along.
|
| Bil Simser [MVP] Wednesday, March 05, 2008 1:36 AM |
I created a codeplex project for my terrarium rewrite last night at http://www.codeplex.com/CreatureKingdom, though I haveyet to upload the source,but if Bill has the original game source ported then that will be a much better starting point that I can hopefully add some of my code to.
Can everyone who's interested in contributing please message me through codeplex at https://www.codeplex.com/UserAccount/ContactUser.aspx?ContactUser=nathanjphillips&OriginalUrl=http://www.codeplex.com/CreatureKingdomand I'll add the codeplex username that you contact me from to the project and pass it on toBill so he can add you to his project. Bill, can you add me to your project now?
Also interested to know where Bill got the source from and whether anyone has anything from Microsoft that says we're allowed to use it.
Cheers, Nathan |
| Nathan Phillips Wednesday, March 05, 2008 10:22 AM |
Looks like we might have two Codeplex project at the moment.
Bil, Nathan,
Which of the two shall we use? I am happy to go either route.
|
| jgalley Wednesday, March 05, 2008 1:01 PM |
Bill's project will be better if it turns out we can go that route (i.e. the original source is licenced for our use) and I will discontinue mine in that case. In the meantime I suggest you give me your codeplex username as suggested above and I'll sign you up to mine and pass your details on to Bill so he can add you to his.
I'm excited that we finally seem to have some momentum on this now.
Nathan |
| Nathan Phillips Wednesday, March 05, 2008 1:46 PM |
Doesn't matter to me. I've added Nathan to the terrarium project but I'm more than willing to upload the code to his project. If there's no response I'm just going to go ahead and post my 2.0 version to the terrarium project and publish the project. If there ends up being two projects, I'll just delete mine. |
| Bil Simser [MVP] Wednesday, March 05, 2008 1:48 PM |
| nathan phillips wrote: |
|
Bill's project will be better if it turns out we can go that route (i.e. the original source is licenced for our use) and I will discontinue mine in that case. In the meantime I suggest you give me your codeplex username as suggested above and I'll sign you up to mine and pass your details on to Bill so he can add you to his.
I'm excited that we finally seem to have some momentum on this now.
Nathan
| |
Nathan,
I find it amusing that the original poster who says he had a lot of this work done is nowhere to be found. Wonder what happened there?
In any case, nobody inside Microsoft that I've hunted down (and I've gone pretty deep into the bowels) has objected to this or offered any help. So until I get a cease and decist notice from them, I'm going forward with the project on CodePlex. I have asked the question several times to various people in the DirectX and XNA teams and nobody seems to care. The only response I've gotten so far was "Oh that thing? That would be cool".
The wheels just keep grinding away... |
| Bil Simser [MVP] Wednesday, March 05, 2008 1:54 PM |
My Codeplex username is: jgalley |
| jgalley Wednesday, March 05, 2008 3:23 PM |
hi Bil,
doesn't the code you have come with a license attached? normaly microsoft adds a licence along with any sources they let out.
my alias on codeplex is iamdacian.
|
| iamdacian Wednesday, March 05, 2008 6:30 PM |
Added you to the project and moved the discussion of licensing there for now. |
| Bil Simser [MVP] Wednesday, March 05, 2008 6:53 PM |
Hey all
lol iamdacian this thread was started on 2006, so iassumed every1who posted at that time is either dead or MIA 
Yes this is great that we aregetting together in force and reviving terrarium.
Nathanand Bill, have you guysdecided who's proj we are going to continue on with? -If you guys are stil unsure maybe both of you should set up a small documentation of what your main goals were (was it ONLY to port? etc) and how far you guys got/what is missing. So that we can compare and/or maybe integrate the projects. But ultimately it is up to you two to decide what and where you want the rest of us 
Oh and please add me to the codeplex project(s), my username is GreenBerret
Regards
GB
|
| GreenBerret Wednesday, March 05, 2008 7:12 PM |
I have added the following text to the home page at http://www.codeplex.com/CreatureKingdom/
This project is not a port of the old Microsoft Terrarium for .Net 1.1, for that see Bill Simser's project called .NET Terrarium (see Related Projects to the right). This is a new game based on similar ideas. Bill's project has a massive headstart over this one and assuming there are no licencing issues with it I consider his project to have a much better chance of getting to a usable state quickly. I encourage you to contribute to his project instead of this one unless you feel that a rewrite is needed because of fundamental gameplay flaws in the original Terrarium.
|
| Nathan Phillips Thursday, March 06, 2008 9:38 AM |
Hi all,
Sorry for the delay in publishing the CreatureKingdom project, but I'm pleased to announce that, as some of you will have noticed, I published a very imperfect cut of the source code earlier this week. I'd not been making progress on getting things to a state where I'd have been happy checking them in so just committed what I had. So, work items... I propose we focus on things that will make the project look good first so that people we see what we've done will think there is something here worth joining with. Fortunately these items shouldn't take too long. I've posted some suggestions in the appropriate discussion on CodePlex.
Look forward to seeing your input into the project.
Nathan |
| Nathan Phillips Friday, April 11, 2008 2:29 PM |
Hi Nathan,
Can you please add me to the codeplex project?, my username is berXpert
Thx |
| berXpert Friday, April 25, 2008 3:00 PM |