Jump to content
  • Advertisement
Sign in to follow this  
  • entries
    51
  • comments
    51
  • views
    13912

Let's Talk About Abstraction

Sign in to follow this  
VPellen

328 views

I slept a lot today. Don't know why, I guess I was just tired.

Why did I originally choose to use hexagons in Kingstone? I think it started when I found myself reading Amit's programming pages, and saw my options of grids. Hexagons seemed like a good idea at the time, as many things do when you first look at them. After working with them for a good while, my opinions changed significantly. I wouldn't recommend hexagons to anybody who doesn't want a royal pain in the ass. They don't fit very well to two dimensions is the main problem. They're also a little unconventional. In short, if somebody asked me, I'd tell them "don't bother, they're not worth the trouble."

But hexagons aren't all bad. They have the wonderful advantage that when you use them, you don't have to deal with diagonal distances. Diagonals are a royal pain in the ass. Not quite as much as hexagons, but they're still iritating. When dealing with a square grid, you can treat diagonals one of three ways. You can either A: Eliminate diagonal movement entirely, B: Alter movement costs for moving diagonally to, say, a multiplication of 1.4, or C: You can make them just like moving horizontally or vertically, eliminating a little realism in the process, but making life easier for all involved.

There's a lot of questions I have to ask myself. Maybe "hexagons or squares" seems like an odd question to be asking at this point. And maybe it is. In order to decide between hexagons or squares, it might help me to decide on a level of abstraction. High abstraction seems to tend more towards hexagons, because they're rather unusual shapes.

In my last entry, I went on about how people who play online are impatient. Well, this is a direct parallel with abstraction. People playing against others seem to prefer faster, shorter, simpler, smaller, more abstracted games. Single players tend to prefer longer, more complex, larger, less abstracted and more detailed games. I'm still not sure how much I can achieve a happy balance between the two, or what it would even entail.

I remember one of my original ideas for Kingstone was the concept of "armies". You would have a head unit, and that unit would lead an army. The armies themselves would only take up one "Tile" on the map, and you could lead these armies around and make them fight each other or invade cities or whatnot. The kicker was when I had the idea to allow the player to decide what soldiers to place in the army. For example, being able to make an army unit comprised of 50% archers, 20% cavalry, and 30% swordsmen. This would effect how they engaged with other armies. I ditched this idea for several reasons; The primary being that it would be a pain in the ass for the player to handle. Can you imagine having to sort through all your soldiers every time you wanted to create a mobile attack force? It'd get old, quick.

That was a "low abstraction" idea. The problem with low abstraction is that things get more complex. While this can be good, if you're not careful, it can also be pretty overwhelming.

Most any gamer worth his salt will have played at least one game in the Civilization series. I always thought these games were delightful, but they always seemed to give you way too much to manage and handle. Even in Civilization 4, the most recent of the series which attempted to fix a great deal of the micromanaging issues in Civilization 3, felt a bit too overwhelming for me. Maybe I'm just bad at playing games. But the point is, bogging down a player with too much stuff to deal with can really hamper their enjoyment. And it's something I want to avoid.

There's another factor that I feel is important to look at, and that's scale. Abstraction is how detailed the world is. Scale is the size of the world. To pull multiple games off the top of my head; Final Fantasy Tactics is a game of small scale and low-moderate abstraction. Advance wars is a game of moderate scale and high abstraction. Civilization 4 is a game of very high scale and moderate-high abstraction. Abstraction and scale were things I've been having a great deal of trouble with.

I'm going to admit I'm a bit of a perfectionist when it comes to some things. This is a bad habit that I need to get over. But it's still causing me a bit of trouble.

For Kingstone, scale was also a bit of a problem. Scale is a bit like abstraction; When you get higher, you lose more detail. Individual trees, for example, that's something you'd expect in a low scale game. In a high-scale game, you'd get general areas representing forests, but you wouldn't count the individual trees. I do know a bit about the kind of challenges I want in Kingstone. Mostly, I want strategical and tactical challenges, with some economic challenges for good measure. Scale effects it all, and it's a very base decision. It's also a very important one, so I've had a lot of trouble with it.

Finally, a thought about diplomacy.

I'm a bit of an intellectual man, or at least, I like to think so. Because of this, mindless war bores me a bit. I'd actually like to see more games out there designed for the thinking man, as opposed to games filled with mindless violence and explosions. But I have to think about potential players of my game, too. Now, I want to include diplomacy because I think it's interesting. But it may also be completely redundant. After all, not a lot of people enjoy diplomacy. A good portion of people do, but I think most gamers tend to enjoy just grabbing their swords and going at it, so to speak.

Now, while I would like to fit tactical diplomacy into Kingstone in some form or another, I don't know if I can, and even if I do, I don't know if anybody will bother to use it. Going flat-out war might make things more simple for me. But if I can get diplomacy in, and make it work, then I really would like to.

Oh well. Time will tell. Have a good one.
Sign in to follow this  


3 Comments


Recommended Comments

Quote:
Hexagons seemed like a good idea at the time, as many things do when you first look at them. After working with them for a good while, my opinions changed significantly. I wouldn't recommend hexagons to anybody who doesn't want a royal pain in the ass. They don't fit very well to two dimensions is the main problem.


You're probably having trouble because that guy lays out the hexagons in a totally absurd way. You should just treat it like a square grid, and offset every row (or column) by half a hexagon width.

Share this comment


Link to comment
Quote:
Original post by Deyja
Quote:
Hexagons seemed like a good idea at the time, as many things do when you first look at them. After working with them for a good while, my opinions changed significantly. I wouldn't recommend hexagons to anybody who doesn't want a royal pain in the ass. They don't fit very well to two dimensions is the main problem.


You're probably having trouble because that guy lays out the hexagons in a totally absurd way. You should just treat it like a square grid, and offset every row (or column) by half a hexagon width.


I did. The main problem is more the irregularity. It doesn't seem like much, but conditional diagonals can be a right bitch. A square grid where each tile has six neighbors is weird.

Share this comment


Link to comment
I handled it by abstracting it out into a 'get neighbor' function. Given a tile coordinate and a direction, it returns the coordinate of the neighbor. Then I didn't have to worry about it anymore; the uglyness of dealing with the odd/even row difference was safely hidden from me.

Share this comment


Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!