Thursday, December 16, 2010

Minecraft: Greek Temple

Here's a little video of a Greek Temple construction.


I'll have my blueprints and some related screenshots posted later.

Thursday, December 9, 2010

Minecraft: Lighthouse

Here's a quick clip of my lighthouse.

Somehow, the music and the lighting came together at a great time.

Spore: Boss Battles

Here's an overview of how the boss battles in my Diablo Spore adventure work:




Spore: Diablo Adventure

I'm considering putting together a Spore version of Diablo 2. 

I've put together Act 1.  It turned out okay.  It was my first Spore adventure, so I was learning the capabilities and limitations.  Truth is, Spore is so buggy it can be rather frustrating putting together adventures.

Meh, we'll see once the frustrating memories wear off.

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

Thursday, March 25, 2010

Server Up

I finally got a server up on my spare computer. You should be able to connect to it @ 'knixcustoms.servegame.org:27015'. Currently it is hosting TF2. The map rotation includes ctf_crack (aka crevice) and cp_underhanded_b1. I won't always be hosting TF2. I may switch over to CS:S if I decide to work on that game. The server site is also shown in the sidebar (---->).

Sunday, March 21, 2010

Counter-Strike Source: Bot Navigation

While making sure my old Counterstrike maps were properly together and releasable, I started playing around with the bot navigation editor. I never tried it before, but it's a fun tool to play with. While the game will generate a basic navigation grid for a custom map, I didn't realize it needed tweaking. So, I opened it up and had some fun fixing some gaps in the old maps.

The concept is fairly simple. The map gets broken into 'stepping stones' and each stone points to stones that can be reached from it. Stones can also be flagged for navigational properties. For example, the stones with green Xs in the picture below indicate they are traversed by jumping. There are similar flags for crouching, walking and running. I added a few of these, as well as made some new stones to fill in gaps created by the automatic generator.



I kind of want to create a CS:S map that has a navigation map that makes the bots look professional (no random jumping or getting stuck). That way, it's a map that plays out like a mini movie each time it runs.

Saturday, March 20, 2010

Counter-Strike Source: Sketched Maps

These are a bunch of maps that only made it to the sketching or early modelling phases.

This abbey inspired map is my favourite map that I never did. It was meant to be a small map with a simple layout, a couple levels and lots of cover.



This next one was meant to be a linear map and a bit of gauntlet challenge for the counter-terrorists. I decided the map lacked any oomph and was too linear. At the top of the main ramp, I was hoping to put a bunch of barrels held back by a breakable beam for an old school Donkey Kong effect. The one thing I would like to take away from the map is the use of the catwalks. They add good vertical elements and make for interesting tactical decisions. If you look carefully, you can also see the Combinatorial Math I should have been paying attention to.



This final map was meant to be the sequel and better done version of de_underground. It actually made it to the first round of modelling (see below), but never made it even far enough to have more than one spawn point. The first picture shows the general layout from the side, while the second one shows the various shapes of the floors in the two main chambers.





Hopefully, I can take some of the ideas in these maps and convert them ones for other games.

Counter-Strike Source: Old Maps

Bridge was my first CS:S map. I never brought it past the Beta phase after members of The Shire graciously tested it for me.



This is the initial sketch of de_bridge, which more or less matches the final map.



Underground was my second map where I experimented with the vertical aspect of CS:S. I also designed it to be night goggle reliant and learned that there is a good reason you don't see those kind of maps on public servers.



Finally, Dragon was an ambitious map that really just needed some solid testing and the details added in. Compared to the previous maps, this was definately the most playable. It includes an extravagant yard, a sewage system, secret prison dungeon, and lots of cat and mouse gameplay.



I also have the sketches for cs_dragon. They seem to perfectly match the actual layout of the map. After the previous two maps ending up with cramping issues, the scale of this one came out perfect the first time around.




While these maps are incomplete and could use many adjustments, I don't plan on returning to them.

Tuesday, March 16, 2010

Crevice II: Paper Draft

About a month ago, I got a not-so-decaf decaf americano in the evening. With my unexpected awake time, I sketched a draft for a better version of Crevice. The basic layout of two facing forts connected by a ridge and catwalks has stayed the same, but the sequel boasts more space, more rooms, better objective centric planning and more aesthetics. Sadly, the more objective centric layout required a bit more linearity in the building interiors.

This side slice shows the general layout of the map. The pipe layout in the middle prevents quick crossing of the map, but still allows some possibility via a cramped perpendicular pipe. One of my favourite new aesthetics touches is the suspending glass hallway at the bottom of the map. This replaces the tunnel in the previous version as a lengthy covered route between the bases.



The floor plan for levels 3 and 4 focuses on the relationship between them. The lower floor contains the spawn, while the one above contains the flag. There is no quick route (except maybe an explosive jump) from the spawn to the flag, BUT newly spawned players can see the flag carrier through the glass ceiling. This means fresh spawns can not cut-off the runner immediately, but can still make an informed decision on where to cut-off the runner. While not in this picture, I was playing with the idea of adding a one-way entrance through the flag room's ceiling so that the flag room would have 2 entrances and 1 exit.



Don't expect to see much work on this map any time soon. I have lots of other work ahead of me before I return to TF2 mapping.

Crevice: Draft

Here is the paper draft of the floors for Crevice.



I kept the floors fairly true to the original plan. The most notable difference is that I added about 1/3rd more area to the Y-axis.

Thursday, March 11, 2010

Ecomaker: Phase 1

For two days I locked myself in the house and lived off pop-tarts, soup and yogourt ('yogourt' is a funny word.) to put together the first phase of the evolution simulator thingy program.



Phase 1 just includes basic plants, herbivores and carnivores. The chain of life is simple; plants grow on their own, herbivores eat plants and carnivores eat herbivores. They go around on their simple lives, eating what is nearby and obeying a few other quirks I programmed in. If you have seen John Conway's game of Life, you'll have a basic idea of how my program plays out. Perhaps in the next couple days, I'll package and distrtibute the current version, so you can try it out yourself.

It's a fun program to watch (geekiness assumed) and all sorts of little patterns crop out.
The environment generally goes through seasons of plant dominance, herbivore dominance and then carnivore dominance. I didn't program in any "change season after x turns", so it was kind of interesting to see this emerge from the behaviors of the individual herbivores, carnivores and plants.
Against my intuition that the herbivores would congregate around plants, and carnivores just out of that range, the opposite wound up being true. Once a few herbivores start eating plants, the carnivores take over and the herbivores are the ones that have eaten their island of plants, so they hover away from the carnivarous commotion.
Another surprising thing cropped when I tried to make the program a little more efficient by making any plant become sterile if it tries to spawn, but fails to do so due to being completely surrounded. I thought this would hinder plant growth, but it actually boomed it. Basically, the lack of interior growth made for bigger inner-bush gaps that gave trapped carnivores more space to set up 'road blocks' that trap herbivores. Less herbivores, more plants. From this I learned why politicians are often corrupt. If even in a simple simulator like this, a simple change can have so many unexpected effects, imagine trying to run country. No matter what they do, something eventually blows up in their face, so they may as well screw everyone else over and make the best of it for themselves. Ya, politics from an ecosystem simulator!

Anyhow, for myself, the refresher in programming has been awesome. After doing about 15 pages of hand done code, I definately feel more confident in setting up, tweaking and debugging. I like to think that my code is actually good code, so integrating new features shouldn't be a monumental task. Making the SWING interface (the stuff that allows buttons, scrollbars, etc.) via NetBeans was easier than I expected, minus a few quirks. The basis of that editor is just drag and drop, then you just program in what the buttons and bars do on the back end. Hopefully my future programming will be a little quicker though.

On a final note, I setup my scanner and scanned a bunch of old map drafts I had in my schoolbooks (complete with the combinatorial mathematics I should have been paying attention to). I'll try and throw those up soon.

Monday, March 1, 2010

General: Update

Ahoy, single follower and perhaps Mom!
I haven't disappeared or abandoned my projects. I just took a little break and actually played some video games. I also finished up the reading list I had for the evolution project. Actually, I gave up on Darwin's On the Origin of Species. The information was outdated, dry, and generally detrimental to my sanity. Wilson's Evolution for Everyone was interesting, but I think Grand's Creation already exposed me to a good portion of the insights presented. Still, it added to some ideas I have for the project. Horner's How to Build a Dinosaur was simply dragged out and uninformative. The discussion of the topics could have been succintly wrapped up in an essay. Both the latter books suffered from what I like to call 'Doctoritis', attempts to glorify or justify their scientific pursuits and accomplishments. Still, despite some disappointment, I think the books gave me a better overall grasp of the concept of evolution.

All three of the books did get me more interested in the nitty gritty details of genetics, DNA, and RNA. A stronger grasp of genetics would allow me to program a more interesting system to represent evolution. Last time I visited Chapters there was a book that explained all these details in a comic book format. It wasn't dumbed down information, just presented in an unusual and less intimidating format. I really wish I had purchased it then because the book is no longer there and I can't remember enough details about it to find it. However, while at the store I did find a great book called Geology from the Teach Yourself series. It contains all sorts of information about how natural formations occur. Once I get the creature evolution down, giving them a complex and dynamic environment to live in would make for a more interesting program.

Finally, I started learning the Java GUI tools (which have changed since I learned them in 1st/2nd year). Sun's ability to provide stellar tutorials for their free programs never ceases to amaze me. Once I learn the new tools, I'll start having more physical things to show you all.

Saturday, February 20, 2010

Crevice: Map is Done

The map is done as far as I'm concerned. At least I'm 95% sure. I still haven't had a chance to test the final build with people. It's kind of tough to publicly entice people to try a new map. I'll just have to round up a few friends at the same time.

Wednesday, February 10, 2010

TF2 Sims

Over the summer, I made Sim versions of the TF2 characters. I tried to make them match right down to the personality. You can check out the red and blu class pairings on my Sims 3 'Studio'.





Just thought I'd post something a little different. And 'yes', you can mock me for playing the Sims.

Monday, February 8, 2010

Crevice: It's a Bad Map

About a week ago, I had a 'not so decaf' decaf americano in the evening and could not fall asleep for the life of me. To make the best of it, I started sketching out plans for a map much like Crevice. Basically, it was Crevice with all the ideas I thought of while making Crevice, but felt were too late to apply. While thinking out the player flow and location of points of interest on the new map, it dawned on me that Crevice is a poor map.

When initially designing Crevice, I wanted to make a building that actually felt like a building and not a string of random corridors like many other maps out there. To that end, I achieved my goal. Crevice is an easy map to figure out and the forts' rooms, stairs and hallways don't feel too arbritrary. Sadly, this very same philosophy made Crevice a poor map in terms of game flow. For example, the spawn point and the main escape from the intel room are too close together. A respawning player gets no downtime before being thrust into the action of the map.


While lots of action may seem like a good thing, a bit of downtime plays to the peaks and troughs of intesity. Too much constant intensity leads to anxiety and frustration. The attempt to make a building like building also lead to other issues including claustrophic hallways and too many escape route options.

All of these initial flaws combined have lead me to believe that Crevice is not going to be a map worthy of a major release. I know this sounds negative, but a big part of making this map was to give myself the opportunity to become comfortable with the tools and make myself less nervous about some of the processes in map making. That has been extremely succesful. I plan to take the learned lessons and apply them to a new map. I will still mostly finish Crevice, but I'll probably keep it's release fairly quiet.

Friday, January 29, 2010

Crevice: Learning Stuff...That I don't have to

The map is basically done. I have to tweak a bunch of details and then do some testing with other people. Once that is done, I'm going to be finished with the map. I think it will be a fun map, but it has some flaws. Even then, I want to move onto other things.

One of the last things I was going to do was add 3D grass texture to the grass floor. For this, it is better to set up a script to automatically place the individual bits of grass, opposed to painstakingly lay out each blade by hand. I tried to look up how to do it, but any tutorial I found was either for a different mod, referenced arbritrary relations between textures and the model that pops up or referenced files that did not exist on my computer. Basically, I couldn't find a tutorial that explained the details I need.

So bland.

Anyhow, I was going to make a post about how I hate learning new things and how they make me feel a bit anxious, despite the fact I may know the task to learn is not that hard. To compare what I have and what I wanted, I went to my map and took a picture and then went to a Valve map to do the same. Lo' and be'hold! Valve doesn't use 3D grass texturing on their TF2 maps!


While they may not use 3D textures, they make good use of alpha texturing. Alpha texturing blends two textures together, like a grass and a dirt one, for more natural transitions (you can see one by the rocks in the above photo). That, I think I know how to do.

Saturday, January 16, 2010

Crevice: Decoration

I started adding some interior detail to the forts. The storage room, control room and break room all went fairly well.




However, the basement catwalk layout needs an overhaul. Currently it seems kind of 'meh' and the spytech railing won't match my current stairs. I'm just going to leave the basement and mull on it for now.

Oh, I also added an important exterior sign.

Wednesday, January 13, 2010

Reading List

One of the next projects I want to do revolves around evolution and ecosystems. While I already have a fair bit of inspiration from the BBC Nature Series and Steve Grand's 'Creation', I want to research more, just in case I've missed some vital information. So, I picked up three books on evolution; 'On the Origin of Species' (Charles Darwin), 'Evolution for Everyone' (David S. Wilson) and 'How to Build a Dinosaur' (J. Horner & J. Gorman).

I am about halfway through Evolution for Everyone. Wilson is fairly pompous, but the book has many great examples and ideas. Thus far, I'd reccommend it to anyone.

Once I finish Wilson's book as a friendly guide in to evolution, I plan to read 'On the Origin of Species' to better grasp the core mechanics and theory and then finish it off with 'How to Build a Dinosaur' which discusses the reversal of evolution.

Odd how I want to read so much now that I don't have to.

Thursday, January 7, 2010

Crevice: Displacement

The displacement is done! What is displacement? It's adding 3D texture to cliffs and fields to make them look natural and not cement walls painted brown and green. Doing the displacement for this map turned out to be quite a process that involved stripping down some old (poorly done) before putting on the new shiny coat.

As you may have noticed in earlier blog pictures, I already had some minor displacing done, but I had to delete it. Any brush (the 'slabs' that make up the majority of the map) that has a displacement can't seal the map. Sadly for me, many of my current brushes that needed displacement were brushes that doubled as sealers. So, I had to strip down my exterior and rebuild it.
The stripping down process brought an extra benefit. I found a bunch of poorly done brush and texture work under the stripped regions.

When rebuilding, the new sealing brushes were lined with a thin brush that would be displaced. This required lots of up-close work (actually worked with the smallest unit of distance in the hammer editor). Lining up the surfaces so they could be 'sewn' together took some planning.

I definateley think the map looks better with the rough grass and cliffs.
Left: Pre-Displacement
Right: Post-Displacement





















Next task: Decoration!