FunDynamic presents RealBot
View Stefan Hendriks's profile on LinkedIn

August 3th, 2008 .::[Pulled the plug]::.

It is raining today. From here I can see the clouds gather, getting darker. A perfect day to do some stuff on your computer. And what do I do? I'm going to tell you that I have officially pulled the plug out of RealBot.

So yes, it is over. Oh, you can still get the source code and write up fixes and whatever yourself. But to me, i quit. So why all of a sudden? It looked like i was getting more enthousiastic right?

Yeah that is true. Actually I am still enthousiastic about bots and Half-Life. But then again, I must look at myself into the mirror and be honest. The holidays are almost over, and then a long time of silence will be introduced. And it is all because of the same cause ever, lack of time.

Before any of the smart guys react like RealBot is not important enough to me (because, you can say you only assign time to things you think are important).. You are right! There are other things important, more important than RealBot.

So, this is it. It was fun while it lasted, i have gained a lot of experience throughout this project. And, when i look back i realize i can do much better now. But hey, thats a good thing ;) If you want to tell you disagree, that i should my final minutes a day on RealBot or whatever, you could post them here

July 13th, 2008 .::[RCBot]::.

Since Half-life 2, or better said, Counter-Strike Source came out. People asked me if i would create a bot for it. At first i'd say "YES!" , but later I discovered that it is not that easy, and that other things asked more time from me then i'd imagined. In fact, i still lack a lot of time, but sometimes i just create time for RealBot related stuff these days.

Writing a bot for CSS is not easy. In fact, nobody did it before, it is still impossible for a third-party-bot developer to write a decent bot. However, one bot caught my eye as a platform to develop on. I mean, even though nobody did it before it does not mean nobody tried. RCBot did a good try, and the sad thing now, is that the bots don't spawn anymore. They surely did half a year ago (when it was released), but somehow the guys at Valve changed somehting, and the bot stopped working.

That will always be the sad side of the story for bot developers, the engine might change the rules and you'll have to fix it. But, for CSS not bot has been able to be really smart. I've already told you why, it is about weapon information for starters.
So why am i telling this, well i got the RCBot source compiled, it runs, and now i am eager to fix some bugs to make them run around in CSS again. Later i might find a way ( there are some unofficial ways) to get the weapon information and then there might be a third-party css bot possible.Who knows?

July 7th, 2008 .::[Oh boy]::.

Well it has been a bit busy these days. First, i have dusted off my 'old' gaming pc (mind you it runs Counter-Strike Source fine with all bells and whistles!). I've also checked my CSS skills online for a bit, and i know, i really suck.

Anyhow; the funny thing was i also found some very old projects. I found some source code of RealBot in the CS 1.5 (and before) days. Now that is really, really old. Brings back memories.

More interesting was that i also found my very, very, very first attempt at writing a Counter-Strike : Source Bot. It is very tough to do, mainly because we can't figure out a 'legal' way to get certain information (mostly weapon information and such). If we don't know that, it is guess-work, and that makes bots utterly stupid. More-over, with built-in CSS bots, who would bother?

Well I think nobody really cares about a CSS bot specifically, but other programmers would certainly be more interested if it is shown how it can be done.

Don't get your hopes up, but lets just say i am trying to revamp some stuff and perhaps crank out some working framework. Metamod : Source caught my eye, along with Sourcemod. Who knows what good could came out?

July 3th, 2008 .::[Why the *#$@(*&$#@ do bots always get stuck!?]::.discuss at forum

You've probably asked this very question yourself. (what question you might think? look at the title ;-)). And it should not be that hard to code bots who will not get stuck right? Sure... try it out yourself i might say. But wait, before you begin, let me explain what you might encounter:

So normally you walk around with your buddies (all real players i hope) and some guy suddendly stands still. What happens? You all bump up to the guy, and you slide nicely a way from him. Atleast you don't stand still in an instant.

As much as you would expect from the HL engine to do with real players, somehow fake clients (aka Bots) are treated different.

Fake clients can get stuck at the most weird manners. With RealBot you can see sometimes 2 bots walking to the same node. When Bots are walking to the same node; the bot that is behind the other bot can actually stop the first bot by touching his back.. like this:


Does that make sense? Ofcourse not! But it happens, and so we have to deal with it. Forget all the easy stuff with walls and such. The hard part begins when other bots come into play.

Imagine you want bots to learn that some connections are not that well. You need to determine if the bot is blocked by the world or by other bots:

So imagine, somehow 2 nodes got connected because a tiny space allowed the traceline to pass. You could discuss how that happened in the first place, but for the sake of the example, bare with me. You can see the bot wants to reach the node on the other side of the wall, but it can't reach it. In this example it is clear that the world is blocking it (ie, the traceline is blocked by the wall == world). But check this example:

Here the bot can see the other node somehow, but it can't move due the bot behind it. What should the bot do? We know the bot wont be able to reach it but it can't base that on the fact that it is stopped by another bot.

Why am i writing this in the first place?

Well you may have noticed I have some motivation again to polish up RealBot. I have made major fixes in the goal picking code (even more last night) and i got really frustrated by seeing bots getting stuck into each other in de_prodigy (the ct's mostly, darn it). They somehow want to reach nodes through the window and they decide somehow after a few seconds to give up and try again(which takes a few secs as well, and there you have a nice loop). So in order to get things better, i want to rewrite the unstuck code. But, in order to do that you have to get a clear picture of the problem. Too long this has been a problem, and still there is no 100% solution for it. A few things i have learned for now is:
  • Do not let bots learn bad connections when other bots are near
  • When stuck and other bots are near, figure out a way to unstuck , or to prevent not to get stuck by slowing down movement in path_walk()
  • Get more brains and think of better sollutions

  • But more important:
  • Keep it simple!
I have noticed that whenever the code gets huge for unstucking, it did not work out well. So keep it simple, small, or split it up well. Well thats my rant for tonight; if you got any hints, tips, comments, whatever about this post, let me know here
July 1th, 2008 .::[The good old days]::.

It is funny to see code you have written, years ago. When i looked through the code, I realized i have been getting older and gained a lot more experience in terms of life, programming, hobby, and so on.

When i fired up RealBot a few days ago, the latest, I was actually ashamed to see how bad it performed. Surely it must have been better? So I grabbed the source code, got it compiling after a bit of struggling and tested it out, the same results.. what a bummer. So why does it suck? Well if you have some programming experience and you look through the RealBot source, you know why.

One of the most important things in a Bot AI, besides pathfinding, is goal picking. I mean, it would not be useful to have a bot run around and do nothing with the bomb right? So i dug up the code, it is in cNodeMachine::path_think, and I almost fainted. Who the hell did ever write this?

But no worries. I took measures in my own hands and removed most of the code and rewrote the goal picking. After a few tweaks the bots actually began to go to the hostages, and rescue them. Woah, wasn't that the intention all the time? Hell ya!

So what's the deal? If you want to use RealBot, or you want to give it a shot some time, but you can't wait until i bring out some official release; i'd say, get your ass to google codeand grab the source and compile it yourself. It is relatively easy, and if you can't figure it out, either check the forums or ask me there. (Also, help each other out, i am not some god guru you know. Actually i am a Java programmer ;-)).

By the way, don't be shy, and bring some life to the Bots-United forums, it has been too quiete for a long time.

June 29th, 2008 .::[Guess who's back]::.
Do i need to say more?

Also, check out the new guide i have made, and let me know what you think about it.

August 22th, 2007 .::[RealBot Source code at Google Code]::.

The source code is now public. It was already the past 2 years, but now it is recent and complete. You can find a forum thread here where you can find all the information you need.

August 16th, 2007 .::[New Release - BUILD 3063]::.

As promised. A new version is released. Check out the filebase, BUILD 3063. The new version does not bring miracles, nor does it bring peace on earth or solve all your troubles in life.

It does have some code removed that caused stupid behaviour, many code left to remove you might say ;-). Consider this release a more 'official' one than the previous releases which where only easy to install for those who knew how development went from V1.0 to WIP #10. This version is WIP #10+ with the 'ease' of installing for V1.0. You need metamod for RealBot now. If you haven't got it yet, get it fast, it is very, very handy.

Link to forum post

Btw. Not satisfied with this? Guess what, the code is included! Linux people should be able to compile it out of the box. If not, let me know what fails and i'll fix it here. Plans are to get this up @ google code soon so more people can help revive this thing again (if wanted).

August 11th, 2007 .::[Hello World]::.

Code found back. Build 3062 compiled and ready. New version coming soon.

Feel free to use this button to link to the RealBot site! Feel free to use this button to link to _the_ site for bots and bot authors!
RealBot is a project by FunDynamic

Name: Stefan Hendriks
Nick: Dumb
Born: January 17th, 1983
STEAM ID click here

Servers with RB
Let me know!

      FunDynamic (C) 2004-2007 door Stefan Hendriks
FunDynamic presents RealBot