ES Recruitment Drive
Original Post
[REL] Bot Framework 2.0
BotFramework
Version 2.1
Language: C++

Changelog
v 2.1
+ Fixed some problems with buffer and std::cout for Windows compile.
+ Added functionality for Gui-based applications.
+ Added project files for C::B and MSVS2008
v 2.0 -
+ Rewrote. Etc etc


So I finally decided to pick this project back up and rebuild it. I've learned a lot of new tricks since my first version, and some of them can be seen in the library. Instead of doing the old C-style char arrays that were used last time, I decided I'd go ahead and use the std::string object to appease those of you that cant stand the arrays. Additionally, I've built the library to be a static library, rather than a collection of source and header files to throw into your project, like last time. The library has been confirmed to compile on Ubuntu Linux Desktop, as well as Mac OS X, however, I haven't taken the time to attempt a compile on Windows, yet, as I'm still barely reinstalling all the programs that I lost when I had to reformat.

The main class, Bot has the ability to be subclassed, if you so wish. You shouldn't really need to, considering the whole thing is open source, allowing you to modify it to fit your specific needs. I also added an easy method to creating your own callbacks, which is shown in the example project, located under examples/SocketTest/. I implore you to check the README first, but I know very few people will, so whatever. If you do have any problems, however, I advise you to check the README first before posting here. It will save me a headache.

I'm afraid I didn't get around to adding a class for handling the lobby server quite yet. You can, however, expect one in the near future when I release 2.1. In addition to a lobby class, I may make some minor changes to the callback system, which will create a more efficient method of storing the callbacks. Something about using vectors just doesn't sit right with me, but we'll see. Besides the callbacks, I will definately be altering the receive loop to support standard gui-based applications. I haven't yet decided quite how I plan to alter this code, but you can expect that bit to be around soon enough. I know that most of the community don't appreciate the beauty that is console applications, and so that will be one of my main priorities for the next release. If you decide to do it yourself, I'd love for you to send me the code so I can go ahead and put it in now. If not, just wait a bit and I'll fix it up nice.

In addition to additions and minor changes to the core library, I will also be creating a few more example applications utilizing the library in the coming versions. They might not make it to version 2.1, but if they don't, they should definately make it into version 2.2.

As with the first BotFramework, you can use this in any project you so wish. The only difference this time around is, I don't require you to give me any credit whatsoever. Sure, it'd be nice, would make me feel good, and would be the honest thing to do, but you don't have to, and if I find out you're using the library without giving me credit, I wont be too upset with you.

If you have any code to contribute, any suggestions to give, or come along any problems that haven't yet been covered, please feel free to post them here. If you wish to contact me in addition to posting her, my contact info is on my website, as well as in the README. Posting here, however, should be good enough.

Anyways, explanations aside, here is the

Download

*NOTE* Before you ask, since you didn't read the readme, you're going to need to define WIN32 if you plan to compile this on Windows.

*NOTE2* Instructions on how to use this in a gui-based application are in the readme file. That'll have to do till I can get around to making an example program.
Last edited by Juntalis; Apr 9, 2009 at 12:38 PM.
ehm. Maybe i am a bit silly but i cant get the makefile working. I know it cant work the way it is atm. But i thought it is ready to use


ALso i cant compile examples/Sockettest/main.cpp.

i tried to compile like that g++ main.cpp

Any Help?

Joe

PS: And yes i read the README
For starters, what operating system are you compiling to, HoboJoey? I just finished fixing some things that were causing problems with the Windows part of it. I'm hoping that didn't break the Linux portion. :/ I'll have to boot over in a bit and check it out. Anyways, back to the subject at hand:

To compile main.cpp in examples/, you're going to first have to compile the library itself. To do so, you need to make sure you're including the include/ folder (NOTE: Not the include/BotFramework/ folder, just the include/ folder.). You must also make sure you're compiling the files in src/. Once you have the library file (.lib,.a,whatever), make sure that when you compile main.cpp, you're linking to the BotFramework library and instructing it to include the include/ file. If I'm not making sense, or you're still having issues, go ahead and post the Build log.
i am running mac os.

will try this again later

cant u make a makefile doing this?

what is the command for creating a lib? i use g++
Last edited by HoboJoey; Apr 9, 2009 at 12:50 PM.
11 MB of console application =)

P.S.: Btw, are you going to comlieate 3dPartyBible, Juntalis? Very cool book =)
Last edited by iLLepidus; Apr 11, 2009 at 11:05 AM.