The major component of Caveman Craig 2 is the tribal warfare between your own tribe, and an enemy tribe on the other side of the terrain. And with no tribe complete without a leader, a lot of my time has been spent designing the artificial intelligence for the enemy tribe leader, or his working title, “Evil Craig”.
There’s a sort of trade off in complexity between Craig and other normal cavemen. While Craig is controlled by the player, he needs to be able to perform most of the tasks any other caveman can. On the other hand, hunters, gatherers, and preparers only need to perform a few tasks but need to be able to automate it. When I realised I had to combine both complexities with “Evil Craig” (automating what he needs to do, and doing a large number of tasks), I started to feel a little overwhelmed. But after a significant amount of planning, this is how Evil Craig does his thaing.
As with all cavemen, Evil Craig has a ‘status’ variable which determines what he is doing. These statuses range from ‘throwingrock’ to ‘struggleraptor’ (being ripped apart by our beloved velociraptor), but the most important is ‘normal’. The ‘normal’ status, in the case of AI, tells the cavemen to pick what they want to do based on countless conditions, and then walk towards the required location. Once they reach that location, the ‘normal’ status tells the caveman to change his status to whatever he needs to do, be it pickin’ berries or clubbin’ innocent dinosaurs. It’s a switchboard, or ‘main menu’, for the caveman’s AI, if you will. This is simple for say the Hunter, who’s job is to pick the most dangerous dinosaur and then run towards him, eventually clubbing him or standing afar and throwing rocks based on priority.
Unique to Evil Craig however is his ‘mode’. This tells Evil Craig what he should aim to do. If the mode can’t be performed (for example, if he wants to prepare some meat but there are no carcasses in the cave), the mode cycles until Evil Craig CAN fill the request. The mode is processed within the ‘normal’ status.
Once Evil Craig can fill the mode’s request, an alarm is in most cases set at random as an indicator of when he should move onto the next thing. Preparing a bush may take a very long time and we don’t want Evil Craig spending too much time on it.
What’s left then for Evil Craig is the more strategic, non-’hands on’ decisions. Namely, choosing what bonuses or cavemen to create, when to get them to follow him, and when to attack Craig’s tribe. This is handled by the “Tribe Director” object which is also responsible for spawning dinosaurs, vegetation, and controlling the weather.
When will it be done?
Don’t worry, I can hear you all; I can tell there’s some frustration in the slow progress of CC2. Unfortunately this is what happens when game design is your hobby and not your full time job. Tim and I do have busy lives. I’m studying I.T and music, working full time, and maintaining a home business in web and graphic design. I also try to keep as social as I can.
Some of you may say “that’s fine, but can you give us an estimated release date?” – and to that I answer ‘no’. I don’t want to get your hopes up, plain and simple. At this point we can’t work with deadlines and don’t want to turn out like 3DRealms with Duke Nukem Forever, promising release date after release date and eventually ‘going under’. The game will be out when it’s finished, and that’s the best approximation I can give you =)
What I can say is that when there’s interesting development news or concept art, etc I can show you, this is the place to find it. You don’t need to visit the site from time to time to check for updates – just subscribe to the RSS feed with your favourite RSS app and you’ll be notified when there are updates.
I’m proud to announce I’ve a public BETA available for Caveman Craig for Mac.
This is the classic version, not the special edition, and therefore free to download HERE.
Please let me know how you go performance-wise and if you find any glitches. I’ve a high-end MacBook Pro so it can be difficult to get a good idea of how well it performs.
CC: SE for Mac is a larger obstacle to tackle but I am working on it in my spare time alongside my other projects.