Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 ... 10 11 [12] 13 14 ... 21

Author Topic: Iron Testament - an ancient "open world roguelike" (pre-alpha)  (Read 81903 times)

mishka

  • Escaped Lunatic
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #165 on: September 25, 2013, 08:05:37 pm »

In order for your economic model to work well, it's probably a good idea to cheat. Have an AI assign merchants to cities based on supply/demand.

Barring that, for realism, have information networks (word of mouth, pony express) that inform merchants of where to go.
Logged

Clownmite

  • Bay Watcher
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #166 on: September 26, 2013, 01:28:32 am »

Well, I've continued work on various things. I played around with the economy a bit, and actually got things to start looking reasonable. Now it takes about 10-20 years for the global economy to collapse instead of 1 or 2; but on the whole it seems like it is doing a much better job than before. I think a big issue is that since merchants for a particular good are not always in the city, it leads to a chain reaction of people needing those goods to produce their thing, and then people who need that start to fail, etc.

I think a fix for your chain reaction would be to get producers to work on a stockpile-and-sell mentality. Start with the assumption that any given producer will be visited by a merchant once a year, and they prepare for that visit. This goes for both inputs and outputs.

With that framework in place, you let the period of visits be adjustable depending on job and demand.

For example, a wool industry would work fine like this. Sheep are sheared once per year. Wool merchants then come and collect that wool. They sell it to weavers/dyers who then sell it to other (possibly the same) merchant who then takes it to markets and sells them. The final merchant probably has a rotating schedule of markets he visits, selling a portion of his goods in each city. Ideally, from his perspective, he'll run out of goods to sell at about the time he gets back around to the source which should then have a fresh set of goods available.

Since you can change the period, you can adjust the frequency at which things occur. So if a Butcher needs to get fresh stock every week then he can buy from various farmers who stop by periodically to sell him animals to butcher. Or perhaps he travels to the farms to buy the animals, that might be easier to model.

Well, that's an interesting idea and probably the way things will have to move if the current model doesn't work out. I don't think that's exactly the issue at hand - they currently try to produce as much of their commodity as they can, and they won't get discouraged (or adjust prices) if they offered to sell something but there was no demand for it. So they are pretty much stockpiling (though not deliberately) already - but it may make sense to have them set aside a certain amount of their goods for merchants. One part of the issue is this: An iron ore miner, for example, can sell to both merchants headed to Town B, and blacksmiths within its own town (Town A). Say there's an abundance of ore but the Town A's blacksmiths are outbidding the merchants. The merchants may need a few extra weeks to stay in Town A so they make it worthwhile to travel to Town B. Meanwhile, Town B has no iron for their blacksmiths to use. Town B starts to run out of tools. Farmers need tools to produce food, but blacksmiths (and all other agents) need food to produce their product. So all prices are driven up but eventually nobody can actually produce any goods.

The solution which worked, a bit, so far was to simply create more merchants, and more resource gatherers to sustain them. I also increased merchant inventory size. This means that it is likely that there will always be at least one merchant in town selling the goods that the town needs. It's possible that playing around with this some more, along with the resource stats in general will solve the global economy issues.

In order for your economic model to work well, it's probably a good idea to cheat. Have an AI assign merchants to cities based on supply/demand.

Barring that, for realism, have information networks (word of mouth, pony express) that inform merchants of where to go.

Although it is not programmed in currently, the AI will be looking at supply and demand in various cities to try to create trade routes. However, it shouldn't be able to create these immediately. Part of the fun in this game should be being able to effect the economy in measurable ways. So it will need to be able to react to the current state of the world, but not quickly or efficiently enough for player (or AI) actions to be meaningless.
Logged

Mephansteras

  • Bay Watcher
  • Forger of Civilizations
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #167 on: September 26, 2013, 12:44:47 pm »

One part of the issue is this: An iron ore miner, for example, can sell to both merchants headed to Town B, and blacksmiths within its own town (Town A). Say there's an abundance of ore but the Town A's blacksmiths are outbidding the merchants. The merchants may need a few extra weeks to stay in Town A so they make it worthwhile to travel to Town B. Meanwhile, Town B has no iron for their blacksmiths to use. Town B starts to run out of tools. Farmers need tools to produce food, but blacksmiths (and all other agents) need food to produce their product. So all prices are driven up but eventually nobody can actually produce any goods.

The solution which worked, a bit, so far was to simply create more merchants, and more resource gatherers to sustain them. I also increased merchant inventory size. This means that it is likely that there will always be at least one merchant in town selling the goods that the town needs. It's possible that playing around with this some more, along with the resource stats in general will solve the global economy issues.


So, really, what needed to happen in the blacksmith example is for the Merchants to start outbidding the local buyers as time went on so that they could go sell to Town B.

The word-of-mouth information network sounds like a good way to do that.

An easy way to implement that would be to do periodic 'pulses' of information out from a town. The pulses can have different strength, so that most of the time they only go a short distance but occasionally they spread the information much further. That way you don't have to worry too much about 'how' the information is spreading, you just know how far it goes.

The end result would be that Town B gets desperate for Iron, the Merchants raise their bids because they know Town B will buy it for more, and Town A sells to the Merchants because they're bidding more. Also, with the distance pulses most of the time the Merchants way over in Town C won't get involved and spend a ton of time traveling all the way out there.
Logged
Civilization Forge Mod v2.80: Adding in new races, equipment, animals, plants, metals, etc. Now with Alchemy and Libraries! Variety to spice up DF! (For DF 0.34.10)
Come play Mafia with us!
"Let us maintain our chill composure." - Toady One

Glloyd

  • Bay Watcher
  • Against the Tide
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #168 on: September 26, 2013, 01:01:14 pm »

Oh, I'm so glad this is still under development! Has there been a tech demo that I missed, or something along those lines?

My Name is Immaterial

  • Bay Watcher
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #169 on: September 26, 2013, 03:29:35 pm »

Not yet. We're all still hoping.




I had an idea for combat, but it really depends on how you want combat to run. What exactly are you thinking for an average combat experience?

Clownmite

  • Bay Watcher
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #170 on: September 26, 2013, 10:12:01 pm »

So, really, what needed to happen in the blacksmith example is for the Merchants to start outbidding the local buyers as time went on so that they could go sell to Town B.
That's what I *think* is happening. I'm planning on adding a little more information to the GUI so I can have a better idea of what's going on.

The word-of-mouth information network sounds like a good way to do that.

An easy way to implement that would be to do periodic 'pulses' of information out from a town. The pulses can have different strength, so that most of the time they only go a short distance but occasionally they spread the information much further. That way you don't have to worry too much about 'how' the information is spreading, you just know how far it goes.

The end result would be that Town B gets desperate for Iron, the Merchants raise their bids because they know Town B will buy it for more, and Town A sells to the Merchants because they're bidding more. Also, with the distance pulses most of the time the Merchants way over in Town C won't get involved and spend a ton of time traveling all the way out there.
I may use a method like this to adjust the merchant info. There will still be lots of testing to do to figure out how to make things smoother.

Oh, I'm so glad this is still under development! Has there been a tech demo that I missed, or something along those lines?
Thanks! There's not been a tech demo - there's still absolutely nothing to do in-game. I may be able to throw something together soon.

I had an idea for combat, but it really depends on how you want combat to run. What exactly are you thinking for an average combat experience?

Well, I want combat to be fun and have a decent dose of realism. I'm not sure if that's possible in a turn-based, mostly-graphicsless roguelike. Personally, I find things like selecting exactly where to attack get boring if you get to do it every turn. Unfortunately I'll also be limited by how easy the system is to implement (having difficulty with these things due to no formal training) and how easy it is to write an AI for.
Logged

My Name is Immaterial

  • Bay Watcher
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #171 on: September 26, 2013, 11:46:43 pm »

I had an idea for combat, but it really depends on how you want combat to run. What exactly are you thinking for an average combat experience?

Well, I want combat to be fun and have a decent dose of realism. I'm not sure if that's possible in a turn-based, mostly-graphicsless roguelike. Personally, I find things like selecting exactly where to attack get boring if you get to do it every turn. Unfortunately I'll also be limited by how easy the system is to implement (having difficulty with these things due to no formal training) and how easy it is to write an AI for.
Based on my short time looking at Wikipedia, if you're looking for realism, you need to have combat be between small to large groups, with the player controlling a character who orders their companions around. Lets call it a RLS, a RougeLike Strategy.
For example: you could be escorting a caravan when bandits attack. You could either have everyone charge the bandits, or take some of your friends to charge, while others flank around, and the rest get the merchants to safety.
When not in command, you might be assigned to a group, whom you really should stick with, since if you break lines, you would probably die. This group would follow an order determined by an AI leader.

Clownmite

  • Bay Watcher
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #172 on: September 27, 2013, 12:19:56 am »

Based on my short time looking at Wikipedia, if you're looking for realism, you need to have combat be between small to large groups, with the player controlling a character who orders their companions around. Lets call it a RLS, a RougeLike Strategy.
For example: you could be escorting a caravan when bandits attack. You could either have everyone charge the bandits, or take some of your friends to charge, while others flank around, and the rest get the merchants to safety.
When not in command, you might be assigned to a group, whom you really should stick with, since if you break lines, you would probably die. This group would follow an order determined by an AI leader.

Yeah, there's the 2 broad combat styles - large squad-based battles total war style, where squad leaders are the main AI, versus smaller-scale combat (say, a group of heroes vs a larger but not army-sized enemies) where each participant would essentially think for themselves. For now I am going to focus on the smaller scale engagements.
Logged

HopFlash

  • Bay Watcher
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #173 on: September 27, 2013, 03:05:26 am »

Well, I want combat to be fun and have a decent dose of realism. I'm not sure if that's possible in a turn-based, mostly-graphicsless roguelike. Personally, I find things like selecting exactly where to attack get boring if you get to do it every turn.

perhaps you can do something similar like DF by choosing the next attack but based on an realistic arc of attack. so it wouldn't be the same action-choices every turn (= not so boring ;) ) and perhaps you need some strategy to hit the weapon arm while defending/moving/turning yourself to avoid the same for your enemy (= more not so boring).

e.g. if you bash the left arm of the enemy with your club then your club is at that side and without a changing-club-position-action you can't smash the other side.
or if you miss with your broadsword swinging from left to right you can try to swing it back and hit left leg, torso, arm or head but not the other side versions without using an special action.

I don't know how much potential of fun or boredom (and how much work) this can have but it was a spontaneous idea for a realistic individual combat.
Logged
GENERATION 11: The first time you see this, copy it into your sig on any forum and add 1 to the generation. Social experiment.

Inactive Therian Saga Char: Stormhead
Dominions: 4.03 Berytos; 4.06 Pangaea; 4.08 Arcoscephale; 4.11 Shinuyama
Inactive Wurm Online Char: Stormhead

Mephansteras

  • Bay Watcher
  • Forger of Civilizations
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #174 on: September 27, 2013, 12:47:11 pm »

One way of doing combat would be to adjust two things - Stance and Aggressiveness. This ranges from being in a very Defensive Stance that makes it easy to parry/block/dodge attacks but more difficult to make effective attacks to an Offensive Stance that has more limited defensive capabilities but gives you many options for attack. This is coupled with how aggressive you are being. When you're being more Passive you're focusing more on defense and conserving energy. You only make occasional attacks and are relying on your opponent making a mistake (usually by being tired) before taking them out. A more aggressive outlook has you making attacks against your enemy more frequently, trying to either get in a good shot or battering them so that they are off-balance and unable to defend properly.

This is pretty much how my combat experience goes. Muscle memory does most of the work, so the 'thought' part usually has to do with those two things. Switching them up mid-fight is quite common, and depends a good bit on who you're fighting and what you think you need to do to beat them.

The specifics vary a lot on you, your opponent, and what weapons/armor you're both using. Using a sword against a polearm, for example, you really have to be aggressive and get in close. Usually by being aggressive with a defensive stance until you're up close enough to be past their effective combat range, and which point you go full Offense on them. If you're both using the same weapons, either approach can work and it depends more on differences in skill, temperament, reach, and combat style.

You could also have special moves which represent challenging maneuvers to pull off but are very effective when you do. These wouldn't be something your character would try just using muscle memory, so you might get moments in a fight where you'd see an opportunity to use one of these. Whether you try it or not is up to the player, as a failed maneuver can often leave you in a disadvantaged state.

An example of this might be a leg sweep with a polearm. It is a slow attack to set up so you have to be in the right situation to use it. If you succeed, you'll have a good chance of damaging their legs or causing them to fall to the ground. If you fail, you run the risk of having your weapon caught down where you can't use if effectively for a bit which leaves you more open to attacks.
Logged
Civilization Forge Mod v2.80: Adding in new races, equipment, animals, plants, metals, etc. Now with Alchemy and Libraries! Variety to spice up DF! (For DF 0.34.10)
Come play Mafia with us!
"Let us maintain our chill composure." - Toady One

Clownmite

  • Bay Watcher
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #175 on: September 27, 2013, 04:07:16 pm »

perhaps you can do something similar like DF by choosing the next attack but based on an realistic arc of attack. so it wouldn't be the same action-choices every turn (= not so boring ;) ) and perhaps you need some strategy to hit the weapon arm while defending/moving/turning yourself to avoid the same for your enemy (= more not so boring).

e.g. if you bash the left arm of the enemy with your club then your club is at that side and without a changing-club-position-action you can't smash the other side.
or if you miss with your broadsword swinging from left to right you can try to swing it back and hit left leg, torso, arm or head but not the other side versions without using an special action.

I don't know how much potential of fun or boredom (and how much work) this can have but it was a spontaneous idea for a realistic individual combat.

Something like that would be cool, but I don't think I can code something that detailed. Part of the problem is that I'm hoping to procedurally generate creatures at some point, so I can't "hard code" the spatial location of all the human components - I'd need a generalizable system.


One way of doing combat would be to adjust two things - Stance and Aggressiveness. This ranges from being in a very Defensive Stance that makes it easy to parry/block/dodge attacks but more difficult to make effective attacks to an Offensive Stance that has more limited defensive capabilities but gives you many options for attack. This is coupled with how aggressive you are being. When you're being more Passive you're focusing more on defense and conserving energy. You only make occasional attacks and are relying on your opponent making a mistake (usually by being tired) before taking them out. A more aggressive outlook has you making attacks against your enemy more frequently, trying to either get in a good shot or battering them so that they are off-balance and unable to defend properly.

This is pretty much how my combat experience goes. Muscle memory does most of the work, so the 'thought' part usually has to do with those two things. Switching them up mid-fight is quite common, and depends a good bit on who you're fighting and what you think you need to do to beat them.

The specifics vary a lot on you, your opponent, and what weapons/armor you're both using. Using a sword against a polearm, for example, you really have to be aggressive and get in close. Usually by being aggressive with a defensive stance until you're up close enough to be past their effective combat range, and which point you go full Offense on them. If you're both using the same weapons, either approach can work and it depends more on differences in skill, temperament, reach, and combat style.

You could also have special moves which represent challenging maneuvers to pull off but are very effective when you do. These wouldn't be something your character would try just using muscle memory, so you might get moments in a fight where you'd see an opportunity to use one of these. Whether you try it or not is up to the player, as a failed maneuver can often leave you in a disadvantaged state.

An example of this might be a leg sweep with a polearm. It is a slow attack to set up so you have to be in the right situation to use it. If you succeed, you'll have a good chance of damaging their legs or causing them to fall to the ground. If you fail, you run the risk of having your weapon caught down where you can't use if effectively for a bit which leaves you more open to attacks.

Could you elaborate on Aggressiveness? For instance, what would an Offensive Stance with a Passive Aggressiveness (heh) lead to?

I think my system will likely end up like this - I already have a basic implementation of the Stance part.
Logged

Mephansteras

  • Bay Watcher
  • Forger of Civilizations
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #176 on: September 27, 2013, 06:21:06 pm »

An Offensive Stance with a Passive aspect would be one that is set to capitalize on any opening the opponent leaves while not being particularly well set for defense on your own part. The most likely use for this combination would be with a reach weapon against an opponent without reach. Say, a long spear vs an opponent with a sword and shield. They can't hit you unless they get close, and rushing to get close might leave an opening for you to exploit. Getting that shot in is more important than being defensive since a dead opponent can't hurt you. Still risky, though, since if they do get in you're probably not going to be well situated to defend yourself for a bit.

Note that this relies on combat being deadly. Reach, even by a few inches, is incredibly important in real life because the first person to land a solid blow normally wins. In games, reach is often pretty much irrelevant because everyone can take at least 4 or 5 good hits before they go down so hitting first (once) just isn't that important.
« Last Edit: September 29, 2013, 06:51:14 pm by Mephansteras »
Logged
Civilization Forge Mod v2.80: Adding in new races, equipment, animals, plants, metals, etc. Now with Alchemy and Libraries! Variety to spice up DF! (For DF 0.34.10)
Come play Mafia with us!
"Let us maintain our chill composure." - Toady One

HopFlash

  • Bay Watcher
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #177 on: September 28, 2013, 01:51:04 am »

Something like that would be cool, but I don't think I can code something that detailed. Part of the problem is that I'm hoping to procedurally generate creatures at some point, so I can't "hard code" the spatial location of all the human components - I'd need a generalizable system.

if you generate your creatures you only need to specifiy regions (e.g. left, right, top, bottom, center, front, back) and could use a blocky 3D region control to manage possible actions.

But I see the implementation problems and amount of programming (and testing/balancing) work too ;)
Logged
GENERATION 11: The first time you see this, copy it into your sig on any forum and add 1 to the generation. Social experiment.

Inactive Therian Saga Char: Stormhead
Dominions: 4.03 Berytos; 4.06 Pangaea; 4.08 Arcoscephale; 4.11 Shinuyama
Inactive Wurm Online Char: Stormhead

Korbac

  • Bay Watcher
  • I'm very annoying, so tell me to STFU if need be
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #178 on: September 29, 2013, 11:10:02 am »

Just re-affirming my desire to play this as soon as possible! :)
Logged

Clownmite

  • Bay Watcher
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #179 on: October 01, 2013, 05:38:53 pm »

An Offensive Stance with a Passive aspect would be one that is set to capitalize on any opening the opponent leaves while not being particularly well set for defense on your own part. The most likely use for this combination would be with a reach weapon against an opponent without reach. Say, a long spear vs an opponent with a sword and shield. They can't hit you unless they get close, and rushing to get close might leave an opening for you to exploit. Getting that shot in is more important than being defensive since a dead opponent can't hurt you. Still risky, though, since if they do get in you're probably not going to be well situated to defend yourself for a bit.

Note that this relies on combat being deadly. Reach, even by a few inches, is incredibly important in real life because the first person to land a solid blow normally wins. In games, reach is often pretty much irrelevant because everyone can take at least 4 or 5 good hits before they go down so hitting first (once) just isn't that important.

Thanks for the info. I'm really not sure how combat will work at this point, but I do hope to factor in things like reach.

if you generate your creatures you only need to specifiy regions (e.g. left, right, top, bottom, center, front, back) and could use a blocky 3D region control to manage possible actions.

But I see the implementation problems and amount of programming (and testing/balancing) work too ;)

That's true, but I still think it would be a little tricky. One of the biggest problems is that time probably won't pass in small enough increments to track things like body position before/after a swing.

Just re-affirming my desire to play this as soon as possible! :)

Thanks! However, it is still riddled with crashes, bad code, and a complete lack of ingame things to do.


I am trying to tighten up combat just a little bit. In the past hour, I've went from things behaving normally, to the player being able to move his corpse around after he died, to the player being "posessed" (responding to both user input, and AI), to the player apparently unable to damage enemies or be damaged by attacks. Here's another screenshot showing the current state of combat. The window at the bottom of the map portion pops up when you hover over any creature, and will likely show more information in the future.

Spoiler (click to show/hide)


So, here are my current thoughts. I want to finish up my terrible first-pass version of combat, finish up adding some bandit hideouts along the map, then allow for some simple recruitment and let you go raiding bandit hideouts. Then I'd release as a tech demo - honestly, there'd still be barely anything going on in the world or any reason to play, and it would be unstable. However, since it will be open-source, you all can try your hand at making an AI, tweaking the economy, telling me how bad my code is, or whatever. Or I could wait some time longer, and make a release once it's a little more stable and there are things to do.
Logged
Pages: 1 ... 10 11 [12] 13 14 ... 21