Friday, October 29, 2010

Thursday, September 23, 2010

Minecraft: Hanging Gardens

I finished up a hanging gardens-esque structure in Minecraft.


For more details on Minecraft or this mini-project, check out my gameplay blog.
Update: You can now check out the gardens on the server (see sidebar).

Thursday, September 16, 2010

Age of Empires II: Saracen AI

As mentioned in a previous blog, I have begun setting up a new AI for the AOKH AI Ladder. I decided to remove the Gothic AI as I had conflicting goals for it. On one hand, I wanted a competetive AI for the ladder, and on the other hand, I wanted it to be a relentless beast. Sadly, being a relentless beast interfered with the goals of being competetive. So a Saracen AI will be replacing the Gothic AI.

Fear my camel riders!

This Saracen AI will be focused exclusively on taking out enemy AIs on the standard tournament settings.  Getting a basic functioning Saracen AI was pretty straightforward, thanks to just smacking a bunch of modules together.  I did have to update a couple of them to handle Saracen specific things.  The big task now is to replace all these with a new 4-tier goal system I have in mind.  Hopefully the new goal system I implement will keep the AI more focused on it's strategy and less scattered.  For playing competetive matches, a tighter focus seems more appropriate.

I have a feeling it will be at least a month, probably more, until the Saracen AI is at a high enough standard to replace the Gothic AI.

Saturday, September 11, 2010

Motivation

Working on coding and designing levels can be a lot of fun. However, there are times when you really have to drag yourself to keep on task. Admittingly, I'm pretty bad for not dragging myself through. The worse culprtis are when I'm just not in the mood, or I have to tackle one of those 'not-so-fun' tasks.

Not being in the creative or productive mood is often remedied by doing something a little smaller, then using the satisfaction of completing that to continue onto bigger tasks. If there are no small tasks that I can think of, I often just start reading lolcats instead.

It's the 'not-so-fun' things that are killer. Sometimes you need to redo a big portion of code or building that you've already done. Redoing stuff just for a slight change in the end doesn't provide much satisfaction. Still, entirely necessary.

Anyhow, I've found a better solution for both of these. Pick up an agenda book and schedule some time. It does an amazing job. In fact, it's the reason I just got around to writing this!

Let us hope that I actually continue to use the book.

Monday, August 2, 2010

Age of Empries 2: AI Tournament

After posting my first two AoE2 AI scripts up on Age of Kings Heaven, Rubberman invited me to enter an AI into AOKH AI Scripting Ladder. First off, the personal invitation to join the tourney shows just how awesome the AOKH community is. Second, it was cool to have the guy who wrote the tutorial I followed for my first couple of AIs be the one to invite me. Sadly, that tutorial has been pulled down temporarily until he finds a new server.

I put together a Gothic AI to compete in the tournament. After getting the bones of it together, I smashed it against a bunch of the lower AIs in the ladder to ensure it was at least competetive. This testing really helped improve my scripting abilities. In fact, I'm kind of embarassed I put my first two AIs up for public display. The new AI can currently beat about a quarter of the AIs in the ladder, but I don't think I've pushed its framework's abilities to the max yet.

This is the first AI to use an extremely modular system I put together. Each AI is composed of modules that handle different tasks (military, unit training, building, etc.). The idea is that I can put a bunch of modules together in less than an hour to create a whole new AI. After finishing the first iteration of the Gothic AI, I created a Teuton AI that also used the modular system. This AI still required a bunch of new modules so it would play the way I liked it to, but still took about half the time as the Gothic AI. It's also nice that fixes and tweaks in one AI automatically get applied to the other AI.

Anyhow, I hope I can push my Gothic AI higher up the ladder, but I have a feeling that if I want it to compete in the top league, I'll have to build it on a different framework. At least the highly modular system will take most of the drag out of that.

Saturday, May 1, 2010

Looking for a new project!

World of Warcraft decided to dance my fancies recently. Sadly, there is no inherant custom content for it. The closest it has is the LUA interface customization, but I have no original ideas for that.


Without anything to currently tackle, I'm asking you few readers for any suggestions or requests. I'm looking for a project of moderate scope. A map for a game would be good a good size, but don't bother asking me to recreate the original Mario Kart in spanking new graphics. I don't care if your suggestion requires a new game, a game I currently have, new tools, tools I already use, new knowledge, or stuff I've already learned. So please, throw out any ideas you may have, even if it is just a theme!

Thank you!

Tuesday, April 27, 2010

Age of Empires 2: AI Scripting


This last month I've been tackling AI scripting for Age of Empires 2. I was actually feeling the need for some old fashioned RTS play and while loading up AoE2, stumbled across some help guides for creating computer player AI files.

First off, the community that still revolves around this 10 year old game astounds me. The most active locale of the community seems to be Age of Kings Heaven. It's really awesome to have a community like that to answer the riduclous and mundane questions. I would not have stuck to these AI files if it wasn't for their inspiration and aid.

The language to implement the AI in AoE2 is interesting. The general flow of it is similar to the BG2 scripting language where it simply reads through a bunch of rules that have conditions followed by actions. If the conditions are met, the actions are carried out, otherwise the rule is skipped until the next pass through. The language lacks numerical operations (+, -, *, /), normal variable functionality, and the programmer doesn't directly control the actions the AI takes. I'm speculating that these standard tools were left out to ensure AIs could not break the game or hog system resources. The rule block structure and lack of normal tools requires the programmer to use plenty of heuristics and creativity.

If I had the ability of direct control, these houses would have been lined up to double as a wall.

I created two AIs. The first one is an all-around player that I built with the purpose of learning the language and just getting a functioning AI up. The second is a helper AI that provides resources to his allies. Both of these AIs were created with some parallel intelligence as promoted by Steve Grand. They can handle game-shipped opponents, but I doubt they would stand to many of the better home-brewed AIs out there.


I may share some more details and examples of the AoE AI building, but I just wanted to get up an overview of what I've been doing this last month.

Update: AI files now linked in the side bar and below.
Econ Byzantine
Staple Frank