Server Help

Bot Questions - MERVbot vs TWcore

liito-orava - Sat Mar 05, 2005 5:44 am
Post subject: MERVbot vs TWcore
Does anyone have experience on both MERV and TWCore?

Aside of that other is written in C++ and other in Java, which requires little different approach, what do you think when comparing features and especially speed?
D1st0rt - Sat Mar 05, 2005 11:22 am
Post subject:
In my experience, they are about the same in speed. MERV however, takes far more system resources than TWCore. I think this is probably due to the fact that it has more features and has these running for each spawn. TWCore is more efficient because each bot is coded from the ground up, using only what you need. MERV recommends around 3 spawns, while you can run 10 TWCore bots off of one hub and not see any problems for most bots.

I'm working with some people on adding the features MERV has to TWCore, but we're making it so that you have to activate these features manually in whatever bot you want to use them in, saving resources. TWCore also has mySQL built into the core, with MERV you have to add it on your bots.

The main advantages I see MERV having are that TWCore's player position updates are not all that great, its settings, map parsing, and ball physics are (currently) unsupported, and that MERV doesn't always require sysop to log in.

I do feel, however, that TWCore is easier to develop on, and more stable to run than MERV. If one bot crashes and burns, it dies and the threads get cleaned up so you could just spawn it again if you wanted to. Obviously Trench Wars uses TWCore, and so does SSCU RedStar. The bot can obviously do a lot, because it runs all of the automated leagues and tournaments in tw, and stuff like spaceball (which you should watch if you get a chance, it's pretty neat).

I've found that I rarely use the additional MERV features for what I'm doing, and the TWCore architecture makes everything else fairly easy to do. But I'm naturally biased biggrin.gif
CypherJF - Sat Mar 05, 2005 12:39 pm
Post subject:
TWCore - doesn't support file (map / news) downloads; nor does it send EXE checksums, requiring a different level of staff-to login.

I believe TWCore is also multithreaded isn't it?
50% Packetloss - Sat Mar 05, 2005 1:11 pm
Post subject:
1. Java is like the sesame street of programming langauges
2. Mervbot can handle a lot more than 3 spawns: the amount depends on what you are having each bot do and the speed of the computer.
3. Mervbot is very stable, plugins don't crash the bot and the bot will tell you the general area of your programming bug.

Overall, each bot has its advantages and disadvantages.

Mervbot was originally translated from a VB bot that catid made, so its packet handling may be a little slower plus all of its features do take up more memory. The core isn't really being worked on any longer, mostly just bug fixes, but it is open source so you can add whatever you want to it. Its probably a lot easier to pick up for new players, there is plenty of source code to read and a bit of documentation floating around the web.

I've never used TWcore but having mysql support is always nice. Player positions can be handled by plugins as long as the bot is able to move around in spec, but someone starting off would have difficulty understanding how to do all of this: most plugins don't require map data or player positions.

I guess the decision depends on what programming language you are most interested in learning. Java may be more easier to grasp for someone just starting out, plus is portable. C / C++ may be a little more difficult but more rewarding. You don't even know yet if you like programming, out of my class of 40 students in high school, only 2 of us actually enjoyed it.
Mr Ekted - Sat Mar 05, 2005 1:14 pm
Post subject:
50% Packetloss wrote:
1. Java is like the sesame street of programming langauges


$$
Anonymous - Sat Mar 05, 2005 1:25 pm
Post subject:
[quote=50% Packetloss]
1. Java is like the sesame street of programming langauges
[/quote]

Heheh, this is true... but given the number of people with little to no programming experience who want to make bots, this is probably a good thing.

Also, the TWCore in its current state is not exactly what Id call stable. It lacks reconnection support, if the hubbot shuts down the entire core dies instantly without giving the bots a chance to cleanup, you cant send messages very fast or else theyll be dropped locally, it must be logged in as sysop, any names you plan on using for the bot must be registered before hand, and every bot ever made using the TWCore shares the same machineID/permissionID. Pray you never ban a player who also has that mac ID.

If youre gonna use anything use MERV, or perhaps you can buy off ekted and convince him to let you use powerbot, or (shameless advertisement) if you really want to use Java, try Hybrid.

-C
Cerium - Sat Mar 05, 2005 1:30 pm
Post subject:
Damn this thing allowing guests to post!
D1st0rt - Sat Mar 05, 2005 1:45 pm
Post subject:
MERVBot.ini wrote:
Maximum number of in-game spawns (3 is absolute maximum for remote zones)

I'm just reading what it says.

Yes, TWCore is multithreaded, each bot runs in its own.

Cerium: I've never had a hub die on me, and I've used some pretty crazy stuff. I've heard of Hybrid before, where could I get a copy?

I used to think that having a powerbot would be cool, but then I heard that you are given a header file for the dlls and ftp access to sscx, and have to debug remotely. I'd rather have access to the core I was using, personally.

The TWCore core distribution comes with 13 standalone bots, and twbot with 20 modules you can load on it, so there's plenty of sample stuff you can use.
Solo Ace - Sat Mar 05, 2005 1:51 pm
Post subject:
Wtf are you people talking about?
Needing a client to do server tasks in a game is silly, quit it!
liito-orava - Sat Mar 05, 2005 2:06 pm
Post subject:
I don't mind about programming language. MERVBot doesn't require much more than basic knowledge to C++, and I've done some stuff with Java before.

I'm more intrested about which one takes less CPU time running basic stuff like elim and such.
Cerium - Sat Mar 05, 2005 2:09 pm
Post subject:
Solo: Even if/when ASSS is used globally, you still have the issue of trust. Are you really going to run code directly on your server unless you write it yourself?

Dis: To this day the hub dies on a regular basis... usually once a week (MRBots). Same exception everytime: The socket is timing out.

You can download Hybrid @ hybrid.shanky.com.

Meh... Ive never used powerbot myself either (got denied). The few who I have talked to that have used it said they liked it.
liito-orava - Sat Mar 05, 2005 2:16 pm
Post subject:
Cerium the download link gives me 404 error. icon_smile.gif

Haven't really heard of that yet, gotta take a look.
Solo Ace - Sat Mar 05, 2005 2:17 pm
Post subject:
Cerium wrote:
Solo: Even if/when ASSS is used globally, you still have the issue of trust. Are you really going to run code directly on your server unless you write it yourself?

As if you don't have those problems when running bots, "are you really going to run code on your bot unless you write it yourself?".
Most ASSS modules are open-source, people who run zones should just compile them if they don't trust the binary.
I know executing code on the server would be more dangerous than in a seperate process or even a seperate system, but it is a lot more convenient and again: zone owners should only run self-compiled modules if in doubt.
Cerium - Sat Mar 05, 2005 2:35 pm
Post subject:
Touche solo... but even still, the server is a far more sensitive environment where less people will have access to... So either zone owners are going to have to step up or were going to see far less ASSS plugins than we will ever see bots.


Oh and, the URL is fixed.
D1st0rt - Sat Mar 05, 2005 8:51 pm
Post subject:
Ok, comparing TWCore to MERV for things like elim, TWCore uses less resources and I would think is better
50% Packetloss - Sun Mar 06, 2005 3:57 am
Post subject:
If you are throwing ASSS into the mix, it is far superior to bots. There is a slight learning curve and the source code is kinda all over the place but once you figure everything out, its fairly nice. I personally am still learning it but it I already like it much more than the current bots. I've been trying to write something but school is busting my balls.
Smong - Sun Mar 06, 2005 6:09 am
Post subject:
A long time ago I had a look at twcore and it wasn't immediately obvious how to setup/run it, so I gave up.

I just spent 20min looking at hybrid and couldn't get it to run. Errors executing the .jar files (failed to load Main-Class). I found the config files though. Even Asss tells you how to run it in the userguide and provides two obvious scripts, run-asss and asss.bat!

Mervbot has multiple configuration files, but actually runs unlike hybrid/twcore.

So I think I deviated from the original topic a bit. And I'm sure once the java bots are setup they run just fine, after all you only need to set them up once.
Maverick - Sun Mar 06, 2005 7:03 am
Post subject:
One of the few things I can say of TWCore is that it uses less connection recources (system recources.. cmon.. its a simple bot) and therefore it can spawn more bots then Mervbot. However TWCore is not stable by far. I have seen it crash numerous times (never with a good cleanup) or just simply seen the window close in front of my eyes.

I am real fan of Mervbot. It got so many features you can do everything with it. It supports MySQL with a simple add-on class and its as stable as you make the plugins you load onto it.

Catid sais the max. spawns of mervbot are 3 when its remotely hosted. However I have already proven him wrong. Maximum Mervbot spawns we are hosting on one machine is now up to 5 spawns, however when we spawnin a single extra spawn all the bots ploss out. I hope catid gets some time to fix this one day.

As3 I don't know but I don't really plan to get into it because I don't want to go so far icon_smile.gif

I'd say go for mervbot.

BTW.. what is hybrid?
Solo Ace - Sun Mar 06, 2005 7:31 am
Post subject:
Cerium wrote:
the server is a far more sensitive environment where less people will have access to

As I said...
I wrote:
I know executing code on the server would be more dangerous than in a seperate process or even a seperate system


Lower staff cannot test their modules on the server this way, they'd need their own test server so the main server can stay up without losing security.

What do you mean by "zone owners are going to have to step up"? You mean they'll have to switch? Well, they probably won't have to, but most will.

There are more ASSS modules coming, most of them include sources (so security wouldn't be a big issue) and so eventually ASSS will replace subgame servers and bots because of the increasing number of features and the other advantages ASSS will give.

---

Smong wrote:
Even Asss tells you how to run it in the userguide and provides two obvious scripts, run-asss and asss.bat!


I found those after I quit using ASSS, "./bin/asss" it was. icon_sad.gif

---

Leip mannetje wrote:
I am real fan of Mervbot. It got so many features you can do everything with it. It supports MySQL with a simple add-on class and its as stable as you make the plugins you load onto it.


If you have to add it yourself, it doesn't support it, does it? sa_tongue.gif
Of course you can add a class to it, you can do that to anything, probably the same for TWCore, if it doesn't have MySQL support already.

I only used MERVBot (next to ASSS), it was fine, but if I had to choose now I'd drop bots and go for ASSS.
D1st0rt - Sun Mar 06, 2005 10:26 am
Post subject:
Leip mannetje?

All these claims of unstability are interesting, I've never heard stuff like that before...
Cerium - Sun Mar 06, 2005 11:09 am
Post subject:
Smong wrote:
A long time ago I had a look at twcore and it wasn't immediately obvious how to setup/run it, so I gave up.

I just spent 20min looking at hybrid and couldn't get it to run. Errors executing the .jar files (failed to load Main-Class). I found the config files though. Even Asss tells you how to run it in the userguide and provides two obvious scripts, run-asss and asss.bat!

Mervbot has multiple configuration files, but actually runs unlike hybrid/twcore.

So I think I deviated from the original topic a bit. And I'm sure once the java bots are setup they run just fine, after all you only need to set them up once.


Errr... The twcore comes with 2 batch files (build/run), and Hybrid comes with a windows shortcut (Run Hybrid 0.95), and an assload of documentation... I think Java itself doesnt like you =)
D1st0rt - Sun Mar 06, 2005 11:14 am
Post subject:
The twcore setup guide is at http://twcore.twzone.net

I prefer the batch file because the shortcut closes when the thing shuts down, and then I have to open up the folder again to view the log. I couldn't get it to run, something about not being able to allocate a connection... wtf? I got the source to the AlphaSpawn using jar -xf, but I didn't feel like decompiling the core to see whats going on. Why don't you include the source if its so good?
Cerium - Sun Mar 06, 2005 11:51 am
Post subject:
Clearly because Im trying to hack you... and its working!

You probably did the same thing maverick did... [Connection] IP/Port in hybrid.ini is _local_, the IP youre going to connect to is in the bots spawn.ini file =)
2dragons - Mon Mar 07, 2005 4:28 am
Post subject:
Anonymous wrote:
[..]
Also, the TWCore in its current state is not exactly what Id call stable. It lacks reconnection support, if the hubbot shuts down the entire core dies instantly without giving the bots a chance to cleanup, you cant send messages very fast or else theyll be dropped locally, it must be logged in as sysop, any names you plan on using for the bot must be registered before hand, and every bot ever made using the TWCore shares the same machineID/permissionID. Pray you never ban a player who also has that mac ID.


Program in reconnection support if you want or place inside a while true loop in a batch/bash script.

I've never had the hubbot die on me, there is no reason it should, and there has never been anything to suggest problems with the hubbot, besides it is a bot, so reprogram it if you'd like. =)

You can send messages as fast as you want, perhaps you used an old version of TWCore which dropped packets due to a clustering problem.
Dr Brain - Mon Mar 07, 2005 8:48 am
Post subject:
I've seen the hubbot die, but I hope that that version of the core is no longer in circulation icon_smile.gif

TWCore is much easier to write more complicated bots with. This is more due to the language choice than to the design. Having the Java API at your fingertips is quite powerful.

I never could have written the Area bots on Merv. Lots of people have tried, though. I've yet to see anyone succeed, and it's been a year and a half.

As to the ASSS security, I compile every custom module from source myself. It's not really a security issue; I'm more afraid of silly bugs crashing the zone. If I were concerned about security, I wouldn't give most of my mods sysop access.
Bak - Mon Mar 07, 2005 12:50 pm
Post subject:
Quote:
I never could have written the Area bots on Merv.


What are these "Area bots" you speak of?
EdTheInvincible - Mon Mar 07, 2005 12:56 pm
Post subject:
Area and AreaWarper, they were the bots that made HyperSpace work before ASSS.
Bak - Mon Mar 07, 2005 5:16 pm
Post subject:
Quote:
I never could have written the Area bots on Merv. Lots of people have tried, though. I've yet to see anyone succeed


In that case is this some poor attempt at sarcasm? TMBaw accomplishes this goal with rectangles defined in an INI file.
D1st0rt - Mon Mar 07, 2005 7:33 pm
Post subject:
Uhhh... not quite
Dr Brain - Mon Mar 07, 2005 8:04 pm
Post subject:
Uhhh... not even close.
Cerium - Mon Mar 07, 2005 8:14 pm
Post subject:
How so?
Dr Brain - Mon Mar 07, 2005 10:21 pm
Post subject:
To my knowlegde, AreaWarper was the most complex warping bot in subspace. Of course, no one sees the warper, they only see the money and item tracking of AreaBot, which, by the way, is also unsurpassed.

The warping stuff I've done on ASSS isn't even close to what I did under TWCore, because I'm not a fabulous C coder. It's harder for me to understand the C libraries and get them to do backflips like I can with the Java libs.

That was the point I was trying to make. With the Java API, the complex is easy to do.
Bak - Tue Mar 08, 2005 12:01 pm
Post subject:
What else did areawarper do that wasn't done in ASSS?
Dr Brain - Tue Mar 08, 2005 12:37 pm
Post subject:
I only duplicated it's catapult system under ASSS. I implemented neither space folding nor hyperspatial transferring.
liito-orava - Tue Mar 08, 2005 12:53 pm
Post subject:
One odd thing is that TWCore seems to take bot op lists directly from moderate.txt/smod.txt/sysop.txt. Am I wrong in that you really can't use system like merv has (!addop !editop etc) without modifying the core?

That wouldn't be too difficult to do but I don't like the idea like that because you'd have to do changes always when you update the core too.
Dr Brain - Tue Mar 08, 2005 1:23 pm
Post subject:
Why do you need a system like MERV has? I think TWCore's autostaff system is far superior to MERV's !addop.
D1st0rt - Tue Mar 08, 2005 2:44 pm
Post subject:
We just added some new stuff to the operator list that allows two more levels. High Mod, which is between Mod and SMod, and Outsider which is between ZH and ER but has the ability to spawn bots. Outsider is used to put people in the access list without having them be staff in the respective zone.
liito-orava - Tue Mar 08, 2005 4:37 pm
Post subject:
Maverick wrote:
One of the few things I can say of TWCore is that it uses less connection recources

I don't understand this since catid says in merv's readme.txt it takes about 40% of bandwidth of an average Subspace session.

How can network resources be the bottle neck then?
Cyan~Fire - Tue Mar 08, 2005 4:40 pm
Post subject:
And TWCore uses less than that.
Cerium - Tue Mar 08, 2005 6:37 pm
Post subject:
2dragons wrote:

Program in reconnection support if you want or place inside a while true loop in a batch/bash script.

I've never had the hubbot die on me, there is no reason it should, and there has never been anything to suggest problems with the hubbot, besides it is a bot, so reprogram it if you'd like. =)

You can send messages as fast as you want, perhaps you used an old version of TWCore which dropped packets due to a clustering problem.


The current version of the TWCore would require a complete makeover to add reconnection support. As soon as a bot disconnects, the core destroys the threadgroup for that bot to get it gc'd asap. The entire core would need to be restructured just to add it (which is how Hybrid came to be, btw). Not only that, none of the bots are coded to handle a reconnect. Infact, the entire API is designed around the idea that disconnect == shutdown. botAction.die() just tells the connection to disconnect.

On top of all of that, there is a number of threads created by each bot that dont shutdown properly. The core waits for the bots connection to disconnect, then it starts a loop which endlessly calls Thread.interrupt() on any threads in the bots threadgroup. If any threads are created that dont ever listen for an InterruptedException (For example: the core SQL classes...), the cleanup step hangs.


The HubBot is indeed a bot, but its nested within the core itself. The only way to change it is to edit the HubBot class itself instead of just telling the core to load a different bot.

And no, I was using the 0.89 I downloaded from the site. When I was looking over it, it seems to be that the GamePacketGenerator class creates an anon. TimerTask object, then schedules it once. After that all the functions in botAction that are supposed to 'adjust' packet/message rates do nothing, since the task is never rescheduled (or otherwise referenced after the GPG constructor).


=(
liito-orava - Wed Mar 09, 2005 3:47 am
Post subject:
Cyan~Fire wrote:
And TWCore uses less than that.

I have no trouble running say three SS clients on one zone. Now assuming MERV only takes 40% of bandwidth when compared to SS session, wouldn't that mean I should be able to run at least 7 bot spawns?
Solo Ace - Wed Mar 09, 2005 7:08 am
Post subject:
You can run at least 100% / 40% = 2.5 spawns!
Well, no, you people are comparing the wrong things to eachother, by just telling how much "% connection resources" the bots use how can you tell how many spawns it can handle?
You can't, there are different connection speeds, you know. icon_confused.gif

Just an off-topic question, but uhm, why did you name it Hybrid? I didn't check any website or other threads about it, but looking at the name is it using two different ways for something? icon_confused.gif
liito-orava - Wed Mar 09, 2005 7:28 am
Post subject:
liito-orava wrote:
[..]


I have no trouble running say three SS clients on one zone. Now assuming MERV only takes 40% of bandwidth when compared to SS session, wouldn't that mean I should be able to run at least 7 bot spawns?

Dr Brain - Wed Mar 09, 2005 9:01 am
Post subject:
Yes you could run 7 bots that do nothing on your connection. BUT, try to run a bot that actually does something....

And of course, we're all assuming that the 40% is accurate.
Cerium - Wed Mar 09, 2005 9:07 am
Post subject:
From the site:
"The dictionary defines 'hybrid' as something of mixed origin or composition, which holds true here. Hybrid is a mix of all features I liked from MERVBot and TWCore, as well as some of my own twisted and/or worthless ideas."
BDwinsAlt - Mon Jul 11, 2005 9:15 pm
Post subject:
Yeah im late on this topic. I even got this message "Please note that this topic is old. Replying to dead topics without introducing new material is frowned upon. Please only post if your topic is directly related with this thread."

But the TWCore Pros:
1.Runs on more than windows.
2.Very ez to make changes.
3.Noobs can use it.
4.Its very simple to understand while c++ is difficult.

TWCore Cons:
1.Not very ezily set up.

MervBot Pros:
1.Ez to configure and run everything.
2.Lots of plugins.

MervBot cons:
1.Does not run on linux.
2.It will only hold up to 9 or 10 plugins at a time. (why would you use more anyways?)
3.Java is so much funner sa_tongue.gif

I've used MervBot for maybe 2 years. I just rescently disconvers twcore and i will NEVER-EVER go back to mervbot. Because now i can create my own bots and modules for them.

I spent a long time trying to find a free compiler that would compile mervbot despit the error messages that the src code has.

With java you just type javac botname.java.

Java = <3
C++ = Expensive and over-rated.

Java for Life!

Now i wanna see a subgame written in java, ive seen billers icon_cool.gif
Solo Ace - Mon Jul 11, 2005 9:58 pm
Post subject:
That "noobs can use it" is just bullshit, noobs shouldn't touch anything like this until they are less noobish.

How can C++ be hard to understand if Java is easy for you?
And seeing your other post, you don't understand much of Java either.

MERVBot does run on Linux, it's easier to do than getting the JRE for Linux.

Why is (what the hell do you base this number on?!) the plugin limitation of MERVBot listed under the -'s, if, as you say, you wouldn't use more.

Why is "Java is more fun than C++" a bad thing about Mervbot? Isn't it a bad thing of C++ then? Well, no, it isn't, you just suck at C++ which is why you like Java more.
And that's just your opinion, not a fact.

You can't seem to figure out how to make Java things work either, and you spent 2 years on looking for a compiler that would compile MERVBot?

There is a free compiler that will actually compile MERVBot without problems, you are just too stupid to work with it.

You just don't seem to know how things work, and you don't have a clue what you're doing.
Why are you dissing things then? C++ is too hard for you, so you choose Java, which makes you say C++ is "Expensive?!" (What is expensive?! The MS IDE!?) and "over-rated".
Java seems to be too hard for you too.

This is just another useless post of yours. Could you please register so I can ignore you?
BDwinsAlt - Mon Jul 11, 2005 10:51 pm
Post subject:
ROFL ur one of those MERV people.
Anonymous - Mon Jul 11, 2005 10:56 pm
Post subject:
BDwinsAlt........ wrote:

2.It will only hold up to 9 or 10 plugins at a time. (why would you use more anyways?)


wrong...
Solo Ace - Tue Jul 12, 2005 12:40 am
Post subject:
I'm not "one of those MERV people", I don't use anything.

I do see advantages of using Java next to those of C++. It's just that you are dissing MERVBot and C++ without knowing anything about this subject.
Java is fine, C++ is fine, both bot cores are fine, but you are an idiot.

You're giving disadvantages of MERV and C++, which are wrong, and also some advantages of TWCore and Java, which are also wrong.
You don't know enough about them, so please, get it right before even judging and stop acting like an idiot.
BDwinsAlt - Tue Jul 12, 2005 2:16 am
Post subject:
What can i say after posting on these forums for a while i turn that way. It's what i do best now.
All times are -5 GMT
View topic
Powered by phpBB 2.0 .0.11 © 2001 phpBB Group