Looking at the Quake 3 source code probably isn't going to help you at this stage, if you're new to AI development. There is a lot of code and it can be quite easy to get overwhelmed at the sheer size of it.
First of all, if you want to create an AI bot for an existing game, then that's a little bit of a legal grey area and it's a lot more difficult since you probably won't have much access to the game's API.
On the other hand if you are creating a bot for a game that you currently are developing for, then this is relatively easier.
First of all, sort out exactly what you want your bot to do. Get a list of requirements of what you want your bot to eventually do. Then start right at the bottom.
I would probably split it up into separate tasks such as:
- Sensory system - what the bot can see and hear
- World representation - how the bot observes and manipulates the world
- An FSM to govern behaviour at first to keep it simple - Hunt state, Attack state, Flee state, etc
- An algorithm to select the best weapon for the job - this can probably be simplified to always use the most powerful weapon in the bot's arsenal.
In Programming Game AI by Example, Buckland shows a 2D representation of a Quake-like game that contains goal-based behaviours, which is probably a lot more relevant to this kind of simulation. I'd definitely recommend getting the book as it deals with building AI from the bottom up.
Just bear in mind that a good AI bot is no simple task. There is a lot of research out there currently going on trying to get the most human-like behaviour. But as long as you design it well and break the entire thing into small tasks and components, you should make good progress on it.
Good luck! :)