Board ArchivesSite FeaturesActiveworlds SupportHistoric Archives |
drchandra // User Search
drchandra // User SearchGNU compilerOct 1, 1998, 2:09pm
My advice is to write the API encapsulation as a single class, with full
access to all of the SDK calls as methods. Make the class as transparent as possible, so that the C++ code has exactly the same access to the API that is available to C. Further refinements of the class structure into "real world oriented" classes such as Instance, World, and Citizen can be constructed on top of that. This is a the approach I am taking with the Java encapsulation I am working on. I have an AWJNI object, which is a Java Native Interface (JNI) representation of the API. I plan to finish the API so that the Java side has as faithful a representation of the native C code API as is possible. Once this is done, the individualized objects can all be created in Java. What might be an interesting outgrowth of this project is to combine the C++ objects with Java. Aside fromt he API encapsulation, I (and anyone else who has the same itch) can produce a JNI interface to the C++ real world oriented objects, and the (almost) exact same object would then be available to Java programmers. What is my goal? An open source, multi-platform version of the aw client. Obviously performance will be an issue once we get to the 3D rendering, but before then, we may be able to produce something which will allow someone to stand at ground zero and chat in text mode. It will run anywhere, too. Maybe even from within a Web page. I plan to finish the AWJNI Java class and Visual C++ Native call catcher before posting the source on web site. I have all the calls done which take and return primitive variable types, like ints and arrays. What I'm wrestling with right now is how to represent the Instance pointers so that multiple Java Instance objects can all be making calls to their own C Instance. That and the callback handlers. Any ideas from the group would save time, and would be appreciated. DrChandra/PK-37(281646) -- Andrew C. Esh mailto:andrew_esh at cnt.com http://www.mtn.org/~andrewes - ACE Home Page [View Quote] I'm not sure I like the class names "Citizen" or "Robot"...Citizen would be a misnomer since SDK applications are not citizens...maybe call it "Owner" instead? And "Robot" is perhaps too restrictive a concept, since SDK apps can be things other than bots roaming around in a world talking to people...anyway, just a thought. You're of course welcome to create any classes you like. :) -Roland [View Quote] GNU compilerOct 1, 1998, 2:11pm
It's a free, open source compiler which can be compiled and installed on
many platforms, including the PC. Check out http://www.cygnus.com/ -- Andrew C. Esh mailto:andrew_esh at cnt.com http://www.mtn.org/~andrewes - ACE Home Page [View Quote] GNU compilerOct 1, 1998, 7:13pm
[View Quote]
It's free, as in without cost. No money required. Open Source means you get
the source code to it. If you find a bug, you can fix it yourself. > >whats the difference between it and other c compilers? Because it's open source, there are a lot of people on the Internet who submit bugfixes for it. It tends to be very advanced, and stable. Since so many people use it, it gets a lot of review, so chances are there are few bugs that will surprise you, and any that are will be quickly fixed. Other than that, there is little difference between this compiler and most others. In fact, gcc is the de facto standard compiler for most Unix systems, and all Linux systems. In other words, this is not some little known toy compiler, it's simply the best compiler recommendation I can make. > -- Andrew C. Esh mailto:andrew_esh at cnt.com http://www.mtn.org/~andrewes - ACE Home Page Java Native Interface for AW SDKOct 13, 1998, 5:10pm
I have produced a first cut of the JNI for the SDK. It is not done yet. I
thought I'd release it now in order to allow feedback. I plan to update it from release 5 to release 6, and then finish the rest of the calls. It's about 86KB in size, at present. Should I attach files of that size in this NG, or should I continue to only provide the URL to it? Get it at http://www.mtn.org/~andrewes/AWJNI.ZIP DrChandra/PK-37 -- Andrew C. Esh mailto:andrew_esh at cnt.com http://www.mtn.org/~andrewes - ACE Home Page Java Native Interface for AW SDKOct 27, 1998, 11:14pm
How about if we try to coalesce these two projects into one? The Java can
just as well call your C++ encapsulation as it can a C one. If we are working from the same base, we should be able to trade/translate object designs. DrChandra/PK-37 -- Andrew C. Esh mailto:andrew_esh at cnt.com http://www.mtn.org/~andrewes - ACE Home Page [View Quote] Java Native Interface for AW SDKOct 27, 1998, 11:38pm
The current release (version 0.3) compiles on a free compiler called gcc,
available for Windows as "CygWin32" from Cygnus. You can find out more about it, and download it from www.cygnus.com. In the next version of AWJNI, I will leave the C/C++ portions of the code built, so that someone can use the interface without doing any building outside of Java. Look for it next week. DrChandra/PK-37 -- Andrew C. Esh mailto:andrew_esh at cnt.com http://www.mtn.org/~andrewes - ACE Home Page [View Quote] Java Native Interface for AW SDKOct 28, 1998, 3:03pm
[View Quote]
Actually, I started with C++, but then Doug picked it up and ported it to C,
and finished it. I am still evaluating that maneuver, but I'm starting to like it. The main thing Doug did is put the project into CygWin32, which makes it even more accessible to those who are too financially challenged to spend big bucks on a fancy C++ development suite. The main reason I wanted to work with C++ is because I had it, and I thought that later additions to the project could be made based on integration between Java objects working with C++ objects. In other words, I envisioned objects orientedness on both sides of the JNI line. I was also thinking of building twin versions of the object sets on top of my C++ encapsulation: One in Java, and one in C++. Now that I've seen your work in C++, and thought about the actual goals and requirements of the JNI project, I don't have a compelling reason to move away from C. I can still see that we could both use the same C++ interface to the AW SDK, but I don't want to move away from CygWin32 for that. For that reason, I am looking into how well CygWin32 supports C++. I think it does, but I'm new to it, so I need experience. >We should discuss where we can share work. I think the areas which we may still be able to collaborate are in UML modeling, and general object sets. I was thinking that I could port objects from one language to the other, and we could build a base of common AW objects, available in both languages. I have Rational Rose, so UML modeling and multi-language code generation is a snap. The only differences in the object sets would be the specifics of how they call the AW SDK. > >I am implementing C++ because that is what I want to learn. I been doing >java for a few years so an less interested in that implementation. Also, the >me, C++ is where the job market is. Maybe. I see Java as being more productive than C++, unless you have years of experience in C++. Usually by the time you've got that much experience, you've priced yourself out of the general application development job market. Also, C++ tends to be much less portable across platforms than Java. >I think the big thing we can share is some discussions on the OO model that >represents AW. I still consider myself a novice at modelling and an always >interested in other peoples approaches. This is where we can collaborate the most. Perhaps I should download and do some analysis of your C++ code, along side the Java objects that Doug developed. A combination of those two sources is what I'll work toward. I'll produce a few class diagrams, upon which we can build some use-cases. What UML modeler do you use? I will see if the evaluation version of Rose will read the models I plan to produce, so you can at least view them. >What are your goals for your implementation? To look at going back to C++ without losing CygWin32. If I can do that, then we might have a common base encapsulation layer we can both build on. [View Quote] -- Andrew C. Esh mailto:andrew_esh at cnt.com http://www.mtn.org/~andrewes - ACE Home Page Java Native Interface for AW SDKNov 5, 1998, 10:20pm
Yep, I understand. If you don't do C, there should be no requirement for it.
My next release will also include the binary support so you don't have to compile anything in C. DrChandra/PK-37 -- Andrew C. Esh mailto:andrew_esh at cnt.com http://www.mtn.org/~andrewes - ACE Home Page [View Quote] Java Native Interface for AW SDKNov 5, 1998, 10:22pm
Yes, 0.3 is build 6. Next one. Not sure when. Anyone willing to do the
update is welcome to do so, unless I get to it first. -- Andrew C. Esh mailto:andrew_esh at cnt.com http://www.mtn.org/~andrewes - ACE Home Page [View Quote] Sample2 (Delphi)Oct 14, 1998, 7:53pm
It would be nice of some kind soul were to translate this into C. I'll do
it, eventually, if someone doesn't beat me to it. DrChandra/PK-37 -- Andrew C. Esh mailto:andrew_esh at cnt.com http://www.mtn.org/~andrewes - ACE Home Page [View Quote] Sample2 (Delphi)Oct 15, 1998, 8:05pm
Somebody musta stole the caffeine out of my Mountain Dew.
-- Andrew C. Esh mailto:andrew_esh at cnt.com Computer Network Technology andrewes at mtn.org (finger for PGP key) 6500 Wedgwood Road 612.550.8000 (main) Maple Grove MN 55311 612.550.8229 (direct) http://www.cnt.com - CNT Inc. Home Page http://www.mtn.org/~andrewes - ACE Home Page [View Quote] A little thoughtOct 27, 1998, 11:55pm
Sign me up!
DrChandra/PK-37 -- Andrew C. Esh mailto:andrew_esh at cnt.com http://www.mtn.org/~andrewes - ACE Home Page [View Quote] AWJNI-0.3.zip (0/1)Oct 27, 1998, 11:30pm
This is to announce the release of version 0.3 of the AW Java Native
Interface project. I have marked this message with a (0/1) because it contains zero out of one zipfiles. If you don't want to download the zipfile through news, then don't read the posting with (1/1) in the subject, as it will contain the file itself. This message is just a description. To get version 0.3 go to http://www.mtn.org/~andrewes/Awjni-0.3.zip. If you want it via ftp, go to ftp://www.mtn.org/pub/users/andrewes. The file you want is Awjni-0.3.zip. Obviously I have begun using long filenames, so watch out. The first version, 0.1, is also maintained at both locations. This version is due mainly to the efforts of Douglas Orr. He took verison 0.1, switched the encapsulation to straight C, and finished all the calls. He used Cygnus Win32 as an environment, so you now have a free compiler you can build it with. I added some kudos and links to the AWJNI.HTML file, and compiled the code to make sure CygWin handles it. I also added a couple of changes to the new Makefile. My plans are to port these changes back over to C++, and touch up all the project files and the Makefile so that it still builds under all the target environments I have previously supported. If I can do this and not have to keep a separate C version of the encap code, I'll be happy. Otherwise, there will be two versions. I don't want to reduce support without a good reason. Beware, there are two versions of code here. The C one is made by the Makefile, and is working. The C++ version, and all the project files are still at version 0.1. The project needs merging, and testing. DrChandra/PK-37 -- Andrew C. Esh mailto:andrew_esh at cnt.com http://www.mtn.org/~andrewes - ACE Home Page Awjni-0.3.zip (1/1)Nov 5, 1998, 10:18pm
As I understand it, you are able to designate an object to pass to the C
code portion of the JNI call. The C code must make JNI specific calls to call one of the methods of that object. My expectation is that we will have to agree on a name or some other agreed upon designator for that method. Then the callback catcher on the C side can be written to grab the object being referred to in the callback, and call the designated method, always. Since I did not write most of the code for this version of the AWJNI, I have not yet looked at how the callbacks are implemented. What this all means is that it is possible, but probably not yet implemented. Time is kind of hard to come by, lately. Maybe I can give a bteer answer tomorrow, or over the weekend. I still have to convert it to Build 7, too. DrChandra/PK-37 -- Andrew C. Esh mailto:andrew_esh at cnt.com http://www.mtn.org/~andrewes - ACE Home Page [View Quote] AWJNI 0.3 plus eventsNov 10, 1998, 7:00pm
I appreciate any efforts made. Getting the time together to actually "fold
in" the changes from various sources is somewhat difficult for me. I apologize for that. Hey, at least it's open source. :) DrChandra/PK-37 -- Andrew C. Esh mailto:andrew_esh at cnt.com http://www.mtn.org/~andrewes - ACE Home Page [View Quote] MonopolyBotJan 8, 1999, 6:33pm
Oh please please please: Make the board big enough for a normal sized av to
stand on. That way we can walk around the board, watching where the bot which is our gamepiece move from place to place. Make the houses real life sized, too. Hey, why not make another version of this which can be used with any property? Players load their favorite places into the bot which become the properties. The bot assigns random values to each property. While the game is running, the bot decides whose turn it is, and rolls the dice. Then it teleports to the property that is that many moves down its list. All the game players join the bot, and the player whose turn it is get to decide if they want to "buy" that property. Instead of Boardwalk, we could "buy" Wascally Wabbit's Amusement Park. We could also have the bot automatically use ground zero as one of the places, so people gradually find out about the game. The game plays continuously, and announces winners every half hour. Perhaps some sort of uction could take place at each poperty location, and eventually, the auction results could be used to determine the basic value of each location. That way, having a high monopoly game value for your location could go into the consideration of a Cy award. This also acts as a tourguide. Drchandra/PK-37 -- Andrew C. Esh mailto:andrew_esh at cnt.com http://www.mtn.org/~andrewes - ACE Home Page [View Quote] MonopolyBotJan 13, 1999, 2:33pm
This is exactly why I suggested developing a game that is loosely based on
Monopoly, but it really just buying and selling property in AW (multiple worlds). We don't have to have the same rules. We don't need any artwork. The players themselves are the game pieces. The bot is the bank, real estate agent, and auctioneer. This is about as tough as a trivia bot. Want to prime the bot's cache of locations? Give it the contents of the AW Yellow Pages. DrChandra/PK-37 -- Andrew C. Esh mailto:andrew_esh at cnt.com http://www.mtn.org/~andrewes - ACE Home Page [View Quote] SDK Question...Jan 13, 1999, 2:21pm
Why does the file have to come from the same host the bot is running on? Why
not have a bot that knows where to get files via anonymous FTP? An aw user asks the bot for a file, and the bot gets the file via FTP, and at the same time sends it to the user via AW Client File Transfer. That way, the bot becomes a signpost to Internet files, and doesn't consume space for files on the bot server. Of course the bot server could be the source for the FTP transfer, as well. This is that same idea as attaching a MIDI file from a third party site to one of your objects in AW. You don't store the file, you just refer to it in its present location, making use of it in the context of the AW world. DrChandra/PK-37 -- Andrew C. Esh mailto:andrew_esh at cnt.com http://www.mtn.org/~andrewes - ACE Home Page [View Quote] Hoping and WishingOct 30, 1998, 7:53pm
You should talk, speed breath. Have you been living so fast you've gotten a
month and a half ahead of the rest of us, or are you so wacked out you can't figure out how to FIX YOUR SYSTEM CLOCK? :) (I may not be with it all the time, but I know it's not December yet.) DrChandra/PK-37 -- Andrew C. Esh mailto:andrew_esh at cnt.com http://www.mtn.org/~andrewes - ACE Home Page [View Quote] |