Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 ... 17 18 [19] 20 21 ... 72

Author Topic: The Roguelike Development Megathread  (Read 245783 times)

Sowelu

  • Bay Watcher
  • I am offishially a penguin.
    • View Profile
Re: The Roguelike Development Megathread
« Reply #270 on: February 04, 2009, 07:18:10 pm »

I'm just on an operator overloading buzz right now.  I never got it when I first coded in C++, then went to C# for a few years, and having come back it suddenly makes total sense.  Don't mind me.  But my main point wasn't operator overloading...It was that viewports can just translate coordinates and fetch a pointer, instead of needing to copy a pile of pointers when they're created (that will each likely only be touched a single time).
Logged
Some things were made for one thing, for me / that one thing is the sea~
His servers are going to be powered by goat blood and moonlight.
Oh, a biomass/24 hour solar facility. How green!

Darkone

  • Bay Watcher
    • View Profile
Re: The Roguelike Development Megathread
« Reply #271 on: February 04, 2009, 07:22:38 pm »

Heres a question for you gurus. Not counting the AI itself, how hard is it to make 3D characters that have physics based limbs, and, allow the AI to determine which joint movements it takes to put a limb in a certain place?

Edit:this is just an idea that popped into my head while idling in class: Rise of Nations + B&W + Physics (maybe physX?) + low poly, low load models + smart AI characters = epicness.
Logged
"LOL, those nub FBI, they thought you were sharing software so they kicked down your door, only to find you recently wiped your entire hard drive, how wacky! Case dismissed."
Quote
[11:58] <Jay16> I couldn't begin proper last time I tried this because I embarked next to a hydra.

qwertyuiopas

  • Bay Watcher
  • Photoshop is for elves who cannot use MSPaint.
    • View Profile
    • uristqwerty.ca, my current (barren) site.
Re: The Roguelike Development Megathread
« Reply #272 on: February 04, 2009, 07:24:41 pm »

Yes, quite true.

Why loop through a couple hundred elements when you only need two?




I personally stick with a global pointer to the current level, and work through that.
Although I barely started so things MIGHT change, I think I'll keep going with it that way.
Logged
Eh?
Eh!

Sowelu

  • Bay Watcher
  • I am offishially a penguin.
    • View Profile
Re: The Roguelike Development Megathread
« Reply #273 on: February 04, 2009, 08:00:48 pm »

Heres a question for you gurus. Not counting the AI itself, how hard is it to make 3D characters that have physics based limbs, and, allow the AI to determine which joint movements it takes to put a limb in a certain place?

I'm afraid you're in the wrong thread!  This thread is the antithesis of 3d games.

To answer your question though,
Spoiler (click to show/hide)
« Last Edit: February 04, 2009, 08:04:00 pm by Sowelu »
Logged
Some things were made for one thing, for me / that one thing is the sea~
His servers are going to be powered by goat blood and moonlight.
Oh, a biomass/24 hour solar facility. How green!

Andir

  • Bay Watcher
    • View Profile
Re: The Roguelike Development Megathread
« Reply #274 on: February 04, 2009, 08:15:54 pm »

I'm just on an operator overloading buzz right now.  I never got it when I first coded in C++, then went to C# for a few years, and having come back it suddenly makes total sense.  Don't mind me.  But my main point wasn't operator overloading...It was that viewports can just translate coordinates and fetch a pointer, instead of needing to copy a pile of pointers when they're created (that will each likely only be touched a single time).
Oh no, I totally understand.  You could also get into dynamic loading or generation using an overload.  You could create a sort of "area" loader class that works on that principal.  You could have the area (or map) class that keeps 3-5 rooms in memory or generates the next room based on a request for a room or level that doesn't exist.  It could even be a multi-user experience that opens a connection to a level server or something.  Instead of returning a null value for an unloaded/generated room you could trigger the creation of a new room and return a reference to the room out of view while another thread loads the data in.

Damn, now you're giving ME ideas :p
Logged
"Having faith" that the bridge will not fall, implies that the bridge itself isn't that trustworthy. It's not that different from "I pray that the bridge will hold my weight."

Fenrir

  • Bay Watcher
  • The Monstrous Wolf
    • View Profile
Re: The Roguelike Development Megathread
« Reply #275 on: February 04, 2009, 08:18:54 pm »

Fenrir's head explodes in a cloud of gore!
Logged

Andir

  • Bay Watcher
    • View Profile
Re: The Roguelike Development Megathread
« Reply #276 on: February 04, 2009, 08:20:21 pm »

Fenrir's head explodes in a cloud of gore!
Stick to the easy stuff... just understand that this rabbit hole is deep.
Logged
"Having faith" that the bridge will not fall, implies that the bridge itself isn't that trustworthy. It's not that different from "I pray that the bridge will hold my weight."

Darkone

  • Bay Watcher
    • View Profile
Re: The Roguelike Development Megathread
« Reply #277 on: February 04, 2009, 09:32:17 pm »

Heres a question for you gurus. Not counting the AI itself, how hard is it to make 3D characters that have physics based limbs, and, allow the AI to determine which joint movements it takes to put a limb in a certain place?

I'm afraid you're in the wrong thread!  This thread is the antithesis of 3d games.

To answer your question though,
Spoiler (click to show/hide)
Thanks. Collision isn't hard - just 3D collision worked into their 'brain'.
Logged
"LOL, those nub FBI, they thought you were sharing software so they kicked down your door, only to find you recently wiped your entire hard drive, how wacky! Case dismissed."
Quote
[11:58] <Jay16> I couldn't begin proper last time I tried this because I embarked next to a hydra.

nagual678

  • Bay Watcher
  • Noble Sam says: I want YOU for the Fortress Guard!
    • View Profile
Re: The Roguelike Development Megathread
« Reply #278 on: February 05, 2009, 12:48:47 am »

Has anyone here had any success with a Mac ? I can't find any viable combination of programming language+library+tutorial anywhere. Sigh.
Logged

Keiseth

  • Bay Watcher
    • View Profile
Re: The Roguelike Development Megathread
« Reply #279 on: February 05, 2009, 02:13:53 am »

*scratches head*

I never really used a mac operating system before. I imagine C++ and SDL will still work, and I *know* python + pygame will work, so it's just a matter of finding a tutorial.

And for the most part, a tutorial for python + pygame should be operating system independant. Once you get both installed you're ready to go. It should be easy!

You could have the area (or map) class that keeps 3-5 rooms in memory or generates the next room based on a request for a room or level that doesn't exist. 

I had an idea for a roguelike based on this concept. You'd start in the center of the world (0, 0, 0) which was predefined with a simple stone floor or some such, and whenever you went off an edge, you'd float and have the ability to spontaneously create a sector.

And it'd be filled with RNG-knows-what. By conquering and clearing the sectors you create, you can make more and start building a world. Maybe gain more abilities as you own more land, such as spontaneously generating several rooms at once (with some reward for the heightened danger.)
Logged

Sowelu

  • Bay Watcher
  • I am offishially a penguin.
    • View Profile
Re: The Roguelike Development Megathread
« Reply #280 on: February 05, 2009, 03:03:11 am »

No obvious changes since my last post, but mine now has pathfinding (critters know how to walk around the big dome thingy), it's possible to pick up and drop items, and there's rudimentary support for multiple little 'window' thingys so I can draw my hexes to one window, my menu stuff to another, and then just blit them all to their proper places on the screen.

When I've got another big block of hours, I'm gonna implement AI tasks and subtasks, so critters know they should gather a bunch of materials and take them to a building site.
Logged
Some things were made for one thing, for me / that one thing is the sea~
His servers are going to be powered by goat blood and moonlight.
Oh, a biomass/24 hour solar facility. How green!

Granite26

  • Bay Watcher
    • View Profile
Re: The Roguelike Development Megathread
« Reply #281 on: February 05, 2009, 11:33:51 am »

The player would reference a LOS method to get their view and pass it to the renderer.  The LOS class will grab a limited view of the map... like so:
Player > LOSClass > Viewport > Map
How is viewport not just a member function of Map, then?

I guess I was calling Viewport = LOSClass and then the getVisible as a special case of your viewport.  The more general getVisible/Viewport is better though, as there apparently are a lot of cases where a subset of space with all objects would be useful. (I.E. non-player related)

Granite26

  • Bay Watcher
    • View Profile
Re: The Roguelike Development Megathread
« Reply #282 on: February 06, 2009, 03:45:26 pm »

Combat Systems:  (TL/DR at bottom)

I'm doing some groundwork for myself for this right now, figured I'd talk it out, out loud.  I'm going to assume a discrete Cartesian coordinate system and opponents of a single size wielding weapons

Factors of Combat:
This is what really matters or could matter.  Few systems implement more than a few of these.  All of them can and should be modified for character, weapon and move

Speed 
How fast an action is. 
Range
given a square and a facing, what squares are targetable
Accuracy
How likely is the attack to hit.  This is degenerated into a simple probability, but is usually calculated from an attack value and a defense value.
Attack
Ability to Hit
Defense
Ability to not get hit
Damage
Obvious, but may depend on variables such as critical hits, hit location, armor and accuracy of the blow
Damage Reduction
Ability to absorb/reduce damage
Position
Different stances are good for different things.  At the end of some moves, you are out of position, or in a different position.  Two good fighters may not be able to hit each other without getting the opponent out of position first. 
Damage over Time
This is usually associated with MMORPGs, but is simply the damage capacity of a strategy with Weapon Speed vs Damage vs Accuracy all factored out.  It allows you to compare a slow, inaccurate axe with a quick dagger, with an accurate sword.
Number of Attacks
Similar to Speed
Wind Up
Time it takes to start a move.  Usually used in fighting games (Street Fighter).  Useful for AAO interurpts
Wind Down
Time it takes to finish a move  Usually used in fighting games (Street Fighter) useful for aao counters

I'm sure there are more things that can be tracked, and I may add more later.

Example: D&D
The D&D combat system is useful for VGs, both because of what it does, and what it doesn't do.  Hitting in D&D is an all or nothing affair.  Each attack either hits, dealing a full measure of damage, or misses.  Damage Reduction is a rarity, as Armor serves the purpose of defense and not DR.

Most important is the fact that D&D is a linear system.  Two opponents of equal skill have a 50% chance of hitting each other.  Increased skill gives better odds in 5% increments maxing out at 95% chance of hit or miss.  That means that there are 20 gradiations of skill possible.

Blah blah blah, it's boring and coarse.  The advantage is that most fights will degenerate into contests of DoT which are quickly resolved.  (Rather than hours of misses with only a few hits required to win).

Computers have advantages over PnP systems, because they can do the math instantaniously and they can generate the random numbers extremely quickly.  That means that you don't need to worry as much about overcomplicating your system with multiple sub-systems.  That is, you can have a complex positioning system feeding modifiers into a complex to hit system feeding into a complex b-p damage system, and not have to worry about the player keeping up with it all.

What you have to worry about is the user inputs.  Say that it takes a keypress to attack your oponent.  The complexity of what happens when you attack doesn't matter, so long it's all resolved under the buttonpress.  If the keypress is unlikely to change anything, you have a problem.  This really comes into play with high defense values.  If all parties have a 5% hit probability, things will only change once every 10 keypresses (you attack, they attack).  This is boring and should be avoided.

Additionally,  complexity can only modify probability between 0% and 100%  It's a fixed range.  If you create to fine of a scale of differentiation, individual tweaks will no longer be worth making.  (Base chance to hit is 20%.  +.01% to hit spell isn't worth casting.  Ever)

Statistics

One of the problems I have with D&D is that the end points aren't scaled.  Personally, I'm looking for a nice bellcurve shape on all my skillsets.  If I've got 100 points in attack, the difference between 100 defense and 110 defense should be bigger than the difference between 110 and 120, and bigger even than the difference between 200 and 1000.  I also don't want to worry about max stats, and I want equal stats to be 50%.  This means that a simple X - Y vs 1d20 isn't going to cut it.  I'll probably use a logarithmic scale.



Weapon Balance:

Sowelu had the master post on balance earlier:  Encourage players to do what you want.

At the end of the day though, you want your players to have a few roughly equivilent models.  While a normal accuracy/speed/damage normalization works on simple systems, you don't always want to reduce a weapon to it's lowest common denominator.

There's three methods.  Obviously, the first is equivilency.  Every weapon is basically the same as every other.  Offsets in speed are exactly offset in damage and accuracy.  All bonuses apply equally well to all weapons.  (Increasing weapon speed by 20% does 20% more damage for swords, axes, and daggers alike).  The second system is Generalist where the stats are pretty much orthogonal, and the quality is largely determined by volume (+20% speed to a dagger doesn't help much, but it more than doubles an axes effectiveness).  Finally Specialist systems encourage players to specialize in a trait.  (Adding extra accuracy points to the axe doesn't help, because it's so far below the average opponents defense that it's lost in the log, while the sword uses it to get a significant advantage.)

I'd like to see a system that encourages both Generalist and Specialist behaviours.


Armor

I want armor to serve as DR, not defense.  Additionally, I want armor to be good for everybody, but better for lower defense characters.  (I.E. Plate will protect the expert swordfighter, but it doesn't improve him as much as the newb)  In order for this to be true, I'll likely use raw DR and percent combined, along with a defense penalty. Since the newbs defense won't help as much as the DR, that'll work there, and the expert will face a tradeoff in useful defense for guaranteed DR.

Combat System:

Here's what I've got so far:  (Mind you, I'm planning a tactics style game, not flat-up rogue)

Each Character will have an (derived) Attack, Damage, Defense, DR, and Number of Attacks.  (Range can be abstracted for now, and I don't plan on using speed).  Characters will also have counter, interdict, balance and position pools.

Combat Turn (Move Turn happens first, as I'm separating Combat from Movement as a design decision)

Regain Balance
Reset Balance Pool
Attack : Choose an Attack move from the available list (randomly, or choose, or just one). 
Interdict? : If the opponent has points in interdict, check interdict chance and if so, resolve that attack before continuing.  It is possible to stop attacks completely with a successful interdict.
Hit? : Determine if the attack hits by comparing Attack/Defense (Math not finalized here)
Damage : Based on the accuracy, deal the weapon damage.  (Kind of a sliding critical hit scale, where you deal 50% at the bottom, 100% at 50pts above the min to-hit and increasing from there.  This serves as a scaled in damage reduction (A good defense takes less damage).  DR also applied by armor.
    If you have a 75% hit chance and are rolling d100, you deal 50% damage at a roll of 75, 100% damage at a roll of 25, and every other roll is extrapolated from there.  (Thus, if you only have a 25% chance of hitting, you will only ever do 75% of max damage).  Critical hit ranges may apply (0-10 = double normal damage?)
Combo
Some attacks enable lesser sub attacks.  For example a feat that enables a free punch after a punch attack.
Counter? :
Check for counter attacks as for interdicts
Next Attack
It is possible for characters to have multiple attacks per round
Position
Refill Position pool


Position and Balance
Attacks deal position and balance damage, as well as incur position and balance costs.  (these may be collapsed into 1 pool).  At the end of your turn your position pool refills somewhat.  At the begining of your turn, your balance pool fills somewhat.  Thus, it is important to manage these two pools. 

For low-level characters, they should refill all the time, and very few attacks should cost either.  Advanced strategies involve using them both.  Batting your opponents blade out of position before lunging, finding that lunge overextends you, and your opponent kicking your feet out from under you should be modeled that way.  The purpose is to create a secondary subsystem for controling significant numbers of combos and extra attacks.  (since a 3 attacks each consisting of 3 hit combos is 9 attacks)


Ok, I've rambled enough for one time frame.

TL/DR  :  Talking about actual combat systems, brainstorming, and what I'm thinking of doing.  It's complicated.

Sowelu

  • Bay Watcher
  • I am offishially a penguin.
    • View Profile
Re: The Roguelike Development Megathread
« Reply #283 on: February 06, 2009, 05:04:35 pm »

As soon as you mentioned 'range' early in that post, Granite26, I thought you were talking about a Tactics-style roguelike.  I think that's a really awesome idea as long as it doesn't get too bogged down!

I like looking at ADOM for range that's done really pretty well, if simplistically, in wizards' spells.  Ranged ball spells, personal ball spells, ranged rays with or without bounce, touch attacks.  They're all easy to get to when you have a big spellbook and the average player uses the variety a LOT to great effect.  It would be really neat to have a detailed system where you have a sword attack that hits three squares in front of you, or only the square two ahead of you and moves you to the square past it, or an attack that can charge three squares forward and hit everything in those squares, but stops you if you don't kill any of them on the first hit...  maybe I've been playing too much Disgaea too...And things like elevated boulders or stairways on the map that you can get advantages fighting from one square to another.

Having to use terrain and tricky moves would be pretty neat in a roguelike.  Heck, kind of like the Knight in nethack, who has an insanely powerful Jump move for mobility as long as you remember to actually use it...

Only concerns here would be that the interface has to be hugely useful, and the player has to be dissuaded from using the same move combination every time.  Tactics games have an easy time of this because the player can't control where the battle takes place or who the opponents are, but a roguelike is far more player driven and the player can choose the situation a lot better.

Might not be relevant to what you were talking about...
Logged
Some things were made for one thing, for me / that one thing is the sea~
His servers are going to be powered by goat blood and moonlight.
Oh, a biomass/24 hour solar facility. How green!

Andir

  • Bay Watcher
    • View Profile
Re: The Roguelike Development Megathread
« Reply #284 on: February 06, 2009, 05:12:55 pm »

I haven't finished reading yet.. but:

RE: Combat complexity
  Some people are very turned off when they pick up a weapon in some games and they don't see an immediate effect.  They get confused trying to figure out the details or what they need to do to improve said weapon or they just ditch it for a perceived better item.  Just be careful that you define if the game is going to be item centric or player centric when you make these rules.  Also, provide enough information without getting too complicated.  Just because you're on a computer, the user still needs to have a "KISS" view of what's going on.  If the player has to assume the "gyu gon roo" stance while wearing a "horkamurphic waste suspender" to simply kick ass with poison based polearm attacks... they are going to get fed up with the overcomplicated game play.

...but if that's your thing, just be aware that it's not everyone's. ;)

and...back to the reading.

Ok, back. (sorry, had to jot it down and save my previous thought...)

Just my 2 cents on the weapon types.  I've always love the EQ1 like method of combat specialization.  You had skills like slashing, blunt, etc.  Each of the weapons in the game would be tied to that skill.  I would have taken it another stage and had tagged items like so:
1 handed / 2 handed
blunt / slash / pierce
balanced / weighted
held / thrown

So an Axe could be 1 handed - slash - weighted - thrown or something along those lines.  It's a bit complicated though and I think myself and a handful of people would actually like it.  You'd gain skills in the areas that the weapon you had was tagged for.  I'm missing some tags and maybe screwed up the tiers a bit... but that the general idea.  If you get really skilled with slash tagged weapons, you could somewhat efficiently use any slash weapon in combat, but you'd be better with an item that you were proficient with all it's tags.

Just a brainstorm, nothing more.
« Last Edit: February 06, 2009, 05:30:40 pm by Andir »
Logged
"Having faith" that the bridge will not fall, implies that the bridge itself isn't that trustworthy. It's not that different from "I pray that the bridge will hold my weight."
Pages: 1 ... 17 18 [19] 20 21 ... 72