11 March 2010

Bones of the World

My map is good enough for a first test, and has all the basic adding, removing, moving and checking functions that I'll need for now. It's actually a triple layer map, with separate grids for tiles, items, and characters. If that turns out not to be necessary it should be easy to combine them, but it makes sense like this in my head.

I've got a structure worked out for my tags that looks like it might work without them taking up too many resources. It's good enough for now, anyway! I've got rough tags for character physical attributes, tile attributes, character traits and a few other categories. They all need to be fleshed out a little more before they can start working together. I've also got a list of about four each actions, modifiers, and tile attributes I want to use for the first barebones combat test. Once those are all set up, I have to figure out the code to make them all interact. Those interactions are the core of pretty much everything in the game, so I might as well get a workable system well and truly figured out now.

I'm currently working on a display manager. For the previous programs I did, everything on the screen was being redrawn for every frame. That's pretty dang inefficient, and always bothered me a bit. Since this is a turn-based game, I'd also prefer that it not make massive demands on processors when nothing is happening. So, I've come up with an idea for how the map and UI can send little notifications to my new manager telling it exactly what parts of the screen need to be updated. I'm looking forward to getting that working so I can make little people punch each other.

10 February 2010

A Rough Shape

While I don't want detailed numbers for hitpoints, strength, etc, I still need a way for characters to have different skills, strengths, weaknesses, and other interesting attributes. Characters need to have rules for combat and other interactions. I also want player and npc actions to create rumors that can in turn directly affect other actions. Finally, I want to be able to eventually have towns and cities with realistic populations.

Tags (or whatever I finally call them) should be my answer to all of these things.

This is a vague and simplified example of how tags would affect combat.
This is a vague and simplified example of how I want rumors to work.

A big chunk of the guts of the game engine will be one or more large tables of tags (I have them split into categories: character, item, socioeconomic, situational, environmental, etc), so that any two tags can be quickly compared against each other to get a resulting action, informational text popup, third tag, combat result, etc. The downside to this is that any time I change, add or remove a tag, I'm going to have to go through and edit a number of things. The upside is that it'll all be in one place. Another truly excellent upside is that it should allow characters to say, swing a chair at someone, stand in a street and shout at strangers about blood, try to eat a door, throw
eggs at a guard, or whatever else they want. The interface for all that will be interesting to figure out...

One thing I like a lot is the thought of someone starting a rumor about a demon going around murdering nobles. Once the rumor takes hold, they could make a scary mask and go attack a noble, who if he believes the rumor, will be at a massive disadvantage thanks to a "urinated in his pants" tag or something.

Conversations are going to be another interesting bit. Since there's going to be no set plot you're forced to follow, conversations will be the main way you learn about the world. They're going to have to be able to pull tags from the current rumors and knowledge an npc has and form those into usable dialogue. The player's also going to need a way to use tags to "remember" items, people or locations in the game so that they can ask npcs about those things later on.

As far as cities and towns.. only major characters and perhaps people like smiths and shopkeepers will be premade or saved. The rest of the population can be created when the player visits an area, given their appropriate tags from a semi-random pool, and then they should interact with each other, the character and their surroundings according to that area's current rumor tags and whatever else is going on.

So, I've got a lot of ideas that feel fairly solid, and I've got some detailed stuff worked out on at least how I think I can get it to all fit together. Before I can get to those fun bits though, it's time to figure out how to implement the basics. I'm going to start with a 2x2 grid with two characters on it, and test some different ideas for tiles and items. I'll also use that to figure out how to create and use tags, and see how my ideas for a combat system play out.

19 January 2010

The Cycle Starts Again

Alright, so the hex-based turn-based tactical rpg thing that I was working on has stalled out. The foundation's there, but I don't have enough information on how the next parts are supposed to work that I can start putting them together. It's a hazard of working with other people unofficially.

On the bright side, I certainly taught myself a fair bit working on it and I can hopefully start putting that to use again soon.

In fact, I've already spent the last two weeks planning out an idea that's been floating around in my head for while now. If it starts to come together I'll post more in depth about it (if not, I'll probably go back to making colorful monsters dance around the screen), but here are the basic things I want.

A game where:
- you have to really work to become a "main character"
- figuring out what's going on is more important than The Next Quest
- actions create rumors, which move, mutate and affect future actions
- npcs have plans of their own and make decisions based on the best info they can get
- detailed numbers for character stats, weapons and such don't exist and aren't missed

It'll most likely be top-down on either a hex or square grid, since I can build on things I've already created there. Even with that, I've got a lot to figure out before I can start on a basic test version. I think it'll work. I've got no one to blame but myself if it doesn't!

17 October 2009

Grobbles v0.5!

This one makes me happy. The little monster things now run around, eat each other, and once they've eaten enough, disappear after spawning 5 new monsters. Of course, there's nothing to really show what's going on yet, monsters just run everywhere and disappear, with new ones appearing in random locations when an old one spawns them.

The program should now also be able to use all of any screen size up to 10,000 x 10,000 pixels. That should be plenty.

Things to add:
- Some sort of notifier when monsters get eaten.
- Some sort of notifier when monsters avoid getting eaten.
- Some sort of notifier when monsters spawn.
- A way to exit gracefully (it's still Alt-F4, Ctrl-Alt-Delete, or windows key/Alt-Tab and right-click -> close for now).
- Basic heredity, for colors and stats (speed's the only obvious one of those).

16 October 2009

Grobbles


So, apparently I'm incapable of sticking to one project currently. On the bright side, this latest one has taught me a much nicer method for creating a sprite out of multiple image parts, as well as how to make java go fullscreen and a few other tricks. The eventual goal of this program is to have a bunch of little monsters run around on the screen eating each other, inflating, and bursting into little copies of themselves until there's just one type left.

A warning, if you run this one, you're going to have to use ctrl alt delete or alt-F4 to get out of it.