eyelessgame: (Default)
There's a lot of in-between time today, as one of my servers crashed and since I'm taking the day to poke at a whole lot of little bugs.

Wrote the few lines that turned dead monsters into XP for the PC. And I had a revelation relating to my mechanics discussion earlier.

I'm pretty sure the basic combat mechanics aren't going to vary too much from the standard FRPG. You make a roll to see if you hit. If you hit, you roll damage.

There doesn't seem to be an exceptionally good reason to change the scale of these numbers from d20's scale. Your bonus "to hit" starts out around 0, and when you're godlike it's somewhere between 30 and 40, often with penalties for multiple attacks. The random roll will add an average of about 10 to this number.

Modify this by the size of the dice and you can produce either Runequest or Hero from those values. Multiply by 5 and you get Runequest percentiles (except RQ is an intrinsically lower-powered system, hence fewer godlike characters); divide by 3 and you get Hero. More or less.

So in d20, easy-to-hit opponents have a defense value (calling this AC just to keep terminology consistent here) that's somewhere around 10, and this goes up to 30-40. The PC's defense is generally somewhat higher.

d20 downplays its DR concept, but it has one -- subtraction from damage. Whether the arithmetic of this number ends up being subtraction, division, or something more complex, it just changes the shape of the curve. I can choose to lower AC and raise DR, or base some amount of DR on AC.

Later.

So if I give things numerical values that don't stray too far from d20 values, I can build a combat system that initially looks like d20, but doesn't have to stay there. (Angband and Omega both add a DR from armor. This is not hard to insert, even without changing any base numbers.)

Back to work.
eyelessgame: (Default)
After almost a year of getting nearly nothing done on upsilon, I fixed a couple bugs in it while at Lake Tahoe and now my interest has rekindled.

I stared for a while at the thing I had declared was my next step (a monster manual). It kept not writing itself. Finally, last night, I realized why: I don't have a solid grasp of what the combat/game mechanics for upsilon are going to be. I can't pick numbers for monster armor/defense/attack/damage/etc until I know what the numbers will mean.

So okay, I have to work out game mechanics and game scale (the latter is probably harder.) I need to decide how much to steal from d20, runequest, hero, etc. and how much to build myself. I guess it's a power level thing more than anything. I wish the new Runequest was out already so I could see how they've updated it and decide what to steal.

At the moment I think I want a fatigue system, because 'realistic' combat (I'm thinking people like Elizabeth Moon here) tends to go like this:

- if one guy is a PC who needs to reach the next plot point, or is just lucky, he gets a shot in quick and takes his opponent down.
- otherwise, if one fighter is significantly more skilled, she generally takes her opponent out after a few strokes.
- otherwise, they fight, inflicting minor damage on each other, till one makes a mistake out of fatigue and gets spitted.

I really liked the old Temple of Apshai, which had power bars for damage and fatigue, and let you pick your movement speed and attack style to expend or conserve/recover fatigue. But that was a boolean fatigue: if you went negative you stood still and panted till you went positive again.

There's never been a workable fatigue system in any RPG I've played that models skill degradation while still being playable and not too fiddly (excepting maybe Ars Magica, if you fixed their recovery rules and then lifted the fatigue system out and combined it with a decent combat system) but on a computer, you don't have to worry about it being fiddly (though you worry more about it being gamed). So I'm going to think some more about this.
eyelessgame: (Default)
Haven't said anything about Upsilon in ages. Lots of microfeatures added recently. Right now you can wander into most of the dungeons (all levels are generated with the same floorplan code, so there's only about as much variation as there is in Angband without the vaults) and all levels generate monsters and treasures... a current bug makes the monsters stand still sometimes, but I'll fix it soon.

There are, however, only about seven monsters. I want hundreds. And generating them is stressful and time-consuming, because there's obviously a lot of trial and error fine-tuning that goes into making monsters balance.

So my solution is this: since about 70% of the monsters I want will be the same as monsters from Angband, and about 80% of the stats for an Upsilon monster are the same as the stats for an Angband monster, I'm going to write a parser for the Angband monster textfile, slurp it in, and then all the monsters will be in the textfile from now on.

More later.

upsilon

Aug. 1st, 2005 02:36 pm
eyelessgame: (Default)
Something almost magical happened last weekend in upsilon. And something broke, too, which necessitates a bit of design review.

For a while now, when you press '>' in the countryside, you're dropped into a wilderness map. But the generated wilderness maps had borders, to keep you from seeing or moving off the edge and dumping core.

Last weekend I removed the edges of the wilderness maps. Suddenly there was an almost infinite wilderness (right now it's only 4096x4096, but I suspect this will increase to at least 16Kx16K and maybe even 64Kx64K).

But that wasn't the cool bit. The cool bit was one more piece of wire... when I hooked it up so that the city level replaced the wilderness level at the right coordinate.

So you're walking across trackless terrain, nearly infinite... and suddenly there's this city wall.

And you walk around to the western edge, and there's a gate you can walk in. The same map you start on, except now you're walking into it from the wilderness that was always supposed to be outside it, but was only ever inferred, not seen.

I got shivers. Suddenly this is not a bunch of code. It's a world.

And then it broke and revealed a little design flaw, because now you can't get within 64 squares of the goblin caves (or any other special location) without a stack overflow... but I'll fix that... I'll spend the Wednesday morning drive thinking about how.
eyelessgame: (Default)
Not a whole lot has happened, though the Castle has a random-generated and fairly good floorplan (yay!) and a dungeon underneath (more yay) and I've fixed the up and down properly so that you don't teleport outside the castle when you go down stairs. I'm working on walking horizontally from one level onto another, e.g. the countryside, or the graveyard off the sewers -- it has to be seamless, and that's not as easy as it sounds.

I've realized, for both plot and interestingness, that there have to be a couple more less-accessible high-level dungeons before the final one, and I'm likely either to name them for Dante or Gygax -- Phlegethos, Malebolge, and Stygia, or else Acheron, Tartarus, and Gehenna.
eyelessgame: (Default)
I'll write up Saturday's Champions later today.

So I think the Hundred Days concept for Upsilon is slightly flawed, because I don't think I'm going to bounce around. Here's how the Hundred Days is going to go, in order. I don't think this is spoilers for the game itself -- as soon as I start talking about details I'll start hiding spoilers behind a cut.

1. Delve the whole world. All the different types of dungeon levels and all the ways to get to them. All the connectivity, including the blending from one terrain to another in the outdoors.

2. Clock time. While sticking only to the couple of monster types I've so far put in the game, put in the rather complex level-deactivation and level-aging methodology I've spent a long time designing.

3. Monster behavior. From the constellation of Angband and Nethack and Omega, collect all the monster behavior patterns that I want -- all the different types of attacks, all the different movement algorithms, all the different nonhostile actions. Implement all the ones I can think of.

4. Character behavior. Make the character go from bare-bones exploration to all the different things one can do, moving around.

5. Fill in monsters and items and spells, which can be stolen wholesale and retail from the lists in A/N/O.
eyelessgame: (Default)
I've done more journaling recently than I'd done for a while. Maybe because, with the end of the school year coming, it's a sense of transition, and I feel like documenting it; or maybe it's something else, I dunno.


Weight has satisfactorily dropped 6 pounds in the 6 weeks since the first of May -- which is excellent, and leaves only 34 to go. But it's starting to get serious: much of that 6 pounds dropped simply from when I was sick for a few days, and I managed to not gain it back in the intervening time. The moving average curve is now kissing the required-loss line, and I need to make sure I stay in the green. I also haven't been biking the proper five days out of the week, and it's slowing down and reducing my enjoyment of ST:TOS tremendously.


Upsilon really, really needs a better name. (Suggestions?) But now you can go from the countryside (big map) to a small-scale random 'wilderness' map, which has a down-staircase, to the first level of the goblin caves. I think this is all the styles of connectivity I need for the basic game structure, which means it's only a matter of adding a bunch of lines to switch statements (I know, I know, they should be object hierarchies, but they're simple enough that it's not worth constructing them as such yet) and you'll be able to wander around in all, um, 15 dungeons. (Well, or so. The game should have *some* secrets that people discover in play.) Time for the 100 Days to happen, which I only announced um six months ago. Damn I'm slow sometimes.

Character definition, I think, comes as a consequence of world complexity. The only reason to have a given player stat is when it impacts the world in some way. So when I add -- for example -- the ability to do rough identification of items, the perception stat (or whatever I use for it) and the various skills associated (alchemy?) become relevant, and are added, and there's no reason to add them until then.


I need to take a break from reading blogs. It figuratively raises my blood pressure (makes me cranky, anyway) without actually helping me learn anything. The fact that, for example, most people I talk to don't know about the Downing Street Memo, yet I do, does not really help my existence.


Some puzzles just aren't fair, at least to nine-year-olds. 'These colours should remind you of a fictional hero': the pattern was two rows of three colored circles: the lefthand column is two red circles, the middle column is two orange circles, the righthand column is a blue circle on the top and a yellow circle on the bottom. The critical detail (for me) required to solve this puzzle is in the specific way the challenge is worded. And in my ignorance I would have not thought 'fictional', but I suppose I don't know.


More later. I think I might try to journal the champions adventure before last, because they actually won something. And maybe give a synopsis of some untied threads from previous adventures (the source of the cursed guns, for example, or the crashed interdimensional alien ship).

Sunday log

Jan. 2nd, 2005 03:48 pm
eyelessgame: (Default)
2004 was a disaster. Let's make 2005 better.

Another week of exercise (7 of 7 days). 18.5 laps in 18 minutes; I can feel a second wind kick in a bit before the end, but I'm not interested in pushing to its limit (leg muscles would be unlikely to forgive this and do it two days in a row). Almost to the end of episode 5 of From The Earth To The Moon.

Diet counting starts tomorrow. I will not be overweight or sedentary when I'm forty. I have sixteen months.

Upsilon slogs along. Equipment inventory close to being done -- I'm basically cloning Angband's 'E' list, plus belts, and slots for quiver and digging implement. (Since the game has variable-time commands, it can just apply a penalty if you are digging in the wall and suddenly find yourself in melee. Some display on whether you're 'ready' is probably important for later, because if you attack when not 'ready', a clever monster might dodge out of the way and cause you to step forward instead. This will tie into using 'unbalanced' weapons like axes and polearms -- your first swing can come quickly, but after each swing you're unbalanced if you don't take a step before your next swing.) I do intend that two-handed weapons make it impossible to use a shield.

I feel the urge to give in to the Dark Side and just read in Angband's monster list from its source text file, and then start modifying from there. Dunno yet if that's what I'll do. I doubt I'll do the same with items, though, partly because I've always considered the number of mundane items available in Angband to be pointlessly large. The variety of items in Upsilon will have a lot more to do with material than shape -- I won't have 60 different weapons, I'll have 12 different weapons made of 5 different metals.

Marith made a good point about the icon shapes staying similar to what's gone before. I think she's wrong about the universality of some of them, though. And I wonder how many of my friends will be unable to play the game if I use the PC's 8-bit ASCII character set like I intend to (musical notes, card suits, Greek letters, vowels with accents). Ah well, someone else will be charged with porting it.

I've also been spending time collecting usenet posts of mine -- I'm up to mid-2003, and compiling a top ten list, with which I will do something someday maybe.
eyelessgame: (Default)
I want to make each equippable item, in each slot, a different ascii character. Games like angband and nethack don't have separate characters for many of the different worn items (boots, cloak, gloves, helm). So are the following reasonably mnemonic? I know, I can change them trivially later...

/ sharp weapons
) blunt weapons (it's blunt, so it's curved... sorta)
\ polearms
' short weapons (i.e. daggers, knives)
( bow, crossbow, etc.
` arrow, bolt, etc.

[ body armor
] shield
{ boots
} gauntlets
~ cloak
^ helmet
- belt

That leaves these for nonequippable items
+ book
| staff
_ wand
& light source
, misc unequippable tool, small
# misc unequippable tool, large
: something else (or... pair of gloves?)
; something else (or... pair of boots?)

!"%?=$* potion, amulet, food, scroll, ring, money, gems (as is pretty standard)

maybe it's just the fact that it's 2 AM that makes me think : and ; and " look like pairs of boots or gloves...
eyelessgame: (Default)
Began second week of exercise program. 17 minutes to go 4 miles on stationary bike, watching From The Earth To The Moon. Heart rate nicely goes to 160 within a minute of starting and stays there throughout; this is claimed to be aerobic. Goal is to increase this to 20-25 minutes.

Upsilon:
- Flags report their status.
- Confusion implemented for movement: when confused, 2/3 of the time movement is random.
- Simple space-oriented targeting implemented. Zapping a wand calls the targeting function (but doesn't yet cause a zap effect of any sort).
- Next: start filling in wand effects as well as potion effects.

(yes, there will be stuff to say about family Xmas, probably by Sherilyn, maybe me too).
eyelessgame: (Default)
I now create items around the dungeon (all objects, so far, are exactly the same; they all do nothing and are all named 'toy') and can pick them up, list inventory, and drop them -- and all the piles and lists work perfectly.

I also turned on save-and-restore, which Just Plain Works -- this being the intent of the module I spent January writing. It'll break each time I change the size of a class during development, but that's only to be expected.

Next is combat... which in the first pass will be the basic basics: bonus to hit, bonus to defense, bonus to damage, bonus to armor, hit points.

And after that is differentiated objects... the repository of object templates, and objects that can be wielded/worn or used/consumed: potion, scroll, wand, ring, armor, weapon (first pass will be one of each, just to make a table of different classes of fx to be filled in later).
eyelessgame: (Default)
Sweet. It works and works perfectly - line of sight drawing out exactly the way I want it to.

Of course, it's only doing one octant out of eight. I've now got to play carefully with greater than, less than, plus and minus, swapping x and y, so as to get all eight octants drawn correctly... but it WORKS, dammit, and seems to work fast (so far).

Upsilon!

Apr. 24th, 2004 04:13 pm
eyelessgame: (Default)
I've been away from it (heck, what with being sick I've been away from a lot of things) for about a month, but last night I put some real work into it... the player takes keyboard input, moves around visibly on the map; a monster also appears and moves randomly. No combat yet, or anything -- but combat is easy; combat mechanics are simple compared to, say, monster AI or efficient line-of-sight. Next on my list is to fix the two text areas (the left 20-column, 45-row window, and the bottom 4-row, 80-column window) and get rid of all the printfs. Then comes a basic item to be picked up and dropped, then comes LOS...

Digression on line-of-sight in roguelikes...
Read more... )
eyelessgame: (Default)
Pulling in code from 'nq', my first attempt at this sort of thing. Digging a level with rooms and corridors now. The character, and a monster, come next.

On the way home I considered scale. Namely, can I get away with only two scales of map, and have a believable and interesting world? Omega sort of has three scales... though it wasn't really consistent about such things.

The question is whether I can expand a single countryside tile to a manageable map (one which "fills" the tile), while making both the countryside and the individual maps a reasonable size.

I think the answer is yes. If a single map tile (character cell, icon) is 5'x5', like in D&D, then if I make a standard map 512x512, it's nearly half a mile on a side. Many things (dungeon levels, for example) will be comfortably smaller than this, while a few things like major cities might consist of a couple of these maps side by side.

So if each of these 512x512 maps is equal to a single countryside tile, then a 512x512 countryside is almost 40 thousand square miles, or 200 miles on a side. That's roughly the size of Ireland, which seems like enough area to adventure in. Ultima 5's countryside was 512x512, so this seems like it's not an excessive size... and towns and other things will be comfortably smaller than half a mile on a side, so this is reasonable, I think.

Maybe it'll never get there. But I've given some serious thought to map generation, how to generate a map tile that abuts map tiles of different type, while making it look reasonably smooth -- indeed, it's probably what I've spent the most daydream time on, out of all game mechanics, over the last decade...
eyelessgame: (Default)
Upsilon: on Friday night, OS issues solved with display: on startup, can modify the registry to set the color palette to the same as Angband and the full-screen arg to 'true', then create a new console and set the title bar. Now I need to refine the abstract Display class and identify how it interacts with the Map object it's handed (i.e. exactly what its interface contract is with the rest of the world).

FHGL: Nothing to report yet. Next step is to sit down with PC sheets and rewrite them as FHGL characters, then email them to players to look over.
eyelessgame: (Default)
Upsilon: abstract Display class set up. Wrote the skeleton of a dos window implementation. Sometime later I can implement a different one for a standard linux window, after I pore over some nethack or angband code that uses ncurses. I'm not sure the object division is correct, but that's part of the learning process.

Gloranthan Fantasy Hero: this weekend I have to divide up the characters, and work out a numerical conversion for monsters -- compare critters that are in both games' bestiaries and figure out 'okay, a RQ Str of X equals a Hero STR of Y', so I can rough out a way to glance at, say, a walktapus and figure out what its RQ stats should be.

Read more... )

Profile

eyelessgame: (Default)
eyelessgame

June 2024

S M T W T F S
       1
2345678
9101112131415
16171819202122
23242526272829
30      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 4th, 2025 04:29 pm
Powered by Dreamwidth Studios