Tuesday, August 30, 2011

Building a better brain

Not much to say but making this quick.

I've come up with the basic functions of the AI. For the most part It's driven by what type it is which sets some of the initial variables. Easiest thing to set up is percentage of each pool goes into pool. Each pool has two numbers per AI type. The first indicates how many it takes, second indicates the face of the die it takes. I didn't want to make it complicated so face is determined by lowest, heights, and random which just takes anywhere form the sorted dice list. Hopefully this gives the monsters a somewhat knowable action without you being able to always predict it.

It's defensive set up may change from round to round just like the players. It may have a favored defensive set up that when it hit with a punisher move for it It'll shift to a regular dodge periodically if you try to repeatedly use it. The only problem I see here is that punisher moves do a lot of damage, so much it may be a bug and I may have to bring out the debug code just to double check.

After that is it's own use of punisher abilities which I have explained before. Though I will give a brief explanation here. The AI will roll some dice when it sees  a defense used it is allowed to exploit, if it sees that again after the rolled turns it will set up the edge ability in one or two turns. This may have a few holes in it but I don't want teh ability to just chage defense every turn to negate the enemy ability to use edge abilities, IE it sees you used block so it prepares armor breaker next turn which you use dodge where it does nothing and then you go back to block repeating the cycle and just making it use edge for no reason.

Other than that it's coming along decently. Going to try and get down the rest of the basics in the AI class tonight and see what tomorrow gets me to do.

Monday, August 29, 2011

To AI and beyond

Well finally figured out what my problem was. After getting tired of looking for the print statements manually I just used find function to scroll through them out. It seems I had made a debug method inside the charcter class to display all the pools and this is where the debug spam was coming from, for some reason I could not see the debug in character_debug_pool_list() unless it was commented out.

So that is taken care of for now. Now I am working on a more inteligent AI system. Currently in a text file is some mental sorting going on about what variables I should have and what basic procedures I should go through. This may develop into it's own class but I'm not sure yet.

The basic idea is to let it "see" that someone is blocking then possibly use armor breaker later to maximize damage on the player. The same is true for the other punisher moves. This leaves dice pool manipulation up in the air, but I'm not sure if I'll even be having that for most monsters. So far it's getting organized and looks alright but I'll have to start testing it.

Beyond that is actual demo. I can simply set up "choose from this list of monsters to fight" and have that sort of demo. It'll work but it seems a little cheap. I should at least try to turn it into a simple game of sorts, maybe even have some leveling up as it is a RPG but that is for later. Though thoughts on it is ever X levels gain another dice to roll and maybe just standard +1 hp per level. Maybe even throw a weapon or two in there for increased damage.

Saturday, August 27, 2011

breaking into pygame

Today I stoped tearing hair out over where I put all my debug code and took out pygame tutorials. Only to start pulling out hair again.

I'm not all that patient with tutorials. I like to be bombarded with short phrases and execution of code and their results with explanations as to why they work. More often than not allegories are used (and I'm probably guilty of this) that really don't help me understand, it in action works a lot better for me. For the most part I was looking for one quick thing in these tutorials, how to get text printed out and it took me scavanging through a few tutorials.

It's less their fault and more my fault for wanting something simple that usually comes later in explanations. Skipping to those parts in some often involved missing vital initialization code that they mention in the their python primer. Beyond that I've found system incompatibilities for some odd reason. Either way I have managed to get some of it working.

tada
I'm familiar with the concepts, mostly of bliting text/images to the screen and only rendering the portions you are using at the time. It's how python does it that is the problem, and I had a heck of a time trying to pry out the simple code to do that without causing annoying crashes in IDLE. Though now that's over with, I can expand on this and will probably have "My text" moving around via keypresses in an hour or so.

The other thing that may prove to be a problem is the need for pygame instillation. I had a bit of a problem with it myself but after some trial and error I got it to work. This is not a thing I like at all considering my preferred ideas with python being self contained. Though I may be able to keep the source code in with the game archive to allow use of the game without need for instillation, I am not fully sure though.

This is more or less prep work for a traditional roguelike I'm going to try and get up running soon, but that's going to be after a probably anticlimatic Project Combat Test release. I'm still going to finish that sometime soon and hopefully life won't get in the way of my two week pseudo deadline.

Friday, August 26, 2011

pretending to be a food bloger 2

large wiki gotten image ahoy.

As programing has been boring debug code removal I think I'll switch to something with a little meat on it.

As of late I've been switching up to some home made food that is relatively cheap. My standard problem when I did this before was I'd try and make sandwiches with really cheap processed meat or uncooked meats I'd cook poorly in one way and get sick of in a day. But I have seemed to have found a solution.

It seems that I love pita bread and just in luck my somewhat local grocery store has it. Slightly more expensive than cheap loafs of bread but considering it's about 10 pieces of large flat bread I don't quite mind. After that I went about getting fillings from the deli. While it looks expensive in the 7 to 10 dollars range that's per pound. Asking for a third or half a pound did wonders to reduce the price for my budget. A little bit of hummus on the side for turning the pita bread into snacks and I'm doing quite well with this. Almost done with my first batch of deli meats and cheese and I have a second stack of pita bread waiting for fillings and I'm considering this a success in diet and budget. What I do for dinner is always the problem though I've been working on it.

So what staples have you guys tried over the years for food? Or have tried and found them to have utterly failed?

Thursday, August 25, 2011

game night

Today's post was mostly delayed by watching some friends stream games and run my own. I run a silly fantasy Mutants and Masterminds game that has been going on for a very long time now. It's a fun little game that is getting towards the end of ti's lifespan.

For a change of plot driven pace I decided to have a little dungeon crawl through a very splatter house themed session. This was roughly 3 sessions ago that this started. I filled a house with undead things and mid bosses who've been easily dispatched. While fun I expected this to be at most 2 sessions, even after many sessions in the game and realizing how slow combat can be online this caught me by suprise.

The general hope was to finish it up this month take a month off to finish up some lose ends in my next game and then start that. That deadline is being delayed. Not that this is a bad things, at the moment I'm trying out a few ideas in system for what I'm calling mid boss enemies that I've described before, and variations on it. They go down fast or get weakened more easily then the usually created monsters in the game. Some work in game, some are just hand wave for interesting sake but either way it's a learning experience. Just wish it was a little faster but we're having fun with it.

Wednesday, August 24, 2011

AI concerns and clean up.

Entering in the punisher move for bonus against parry and thinking about AI while generally cleaning it up. Not much to say about it so I'll dive into what I can discuss.

The current thought is how is the AI going to have and use edge abilities. For the most part they are specialized and require some "thought" behind them in use. One thought is that it can "cheat" and just have a timer to see if you stayed in a defensive position for x turns. It's simple and effective but unsatisfying. I don't want to make this too complex so I decided having some random dice maxes based on what type it is. Give it a chance to suprise a player while having a tendancy to lean towards one type.

Beyond that I think I'll have the AIs picking pools be very simple, possibly stupidly so. At the moment I have little idea on what is the best strategy for going about an turn though some ideas have been thought of. It's a start at least.

Tuesday, August 23, 2011

Lazy day

Some family happenings and other things have left me quite mentaly fatigued today. So no progress on Combat Test beyond getting a few methods named but that was some progress.

So thinking back to roguelikes I've planed I remembered Desktop Dungeons. While the site right now is gearing up for some paid version of the game the free original one is still there. Desktop Dungeons was a very interesting game for me. It combined puzzle games and Roguelike elements into a nice little package. The main idea was that only the player moved around, combat could be easily predicted (except for some cases), and the only thing randomized was the layout. The layout was very important, beyond health potions, mana potions, and some class abilities uncovering unexplored area was the only way to regain any health or mana. The game starts out quite easy with only 4 class selections and no game changing monsters but adds them to the dungeon every time you beat the floor with a class. After that a new class may be unlocked along with themed floors, new items, and other such goodies. The goal of the game was to unlock everything so you could do ranked dungeons.

It executes this quite well. One of the running themes in good roguelikes is that they are "fair". While you may not get the optimal gear or the best layouts if you know what you are doing you can beat the game. This is not always the case but it's a good rule to follow. My first few attempts at Desktop dungeons were horrible failures where I didn't even level up a few times. In later runs on new computers I easily beat the starting portion of the game so learning what to do is a big part of the game. Each class plays differently and beyond the rogue or other classes that have chance abilities you know how most things will play out and can weigh your options to win. With enough planing you can take down the dungeon boss at relatively low levels due to killing other monster to gain level up mid "fight" with it. Generally entertaining though it encourages you to pull out paper or notepad to best mop up a floor.

Not sure what he's doing now. From the looks he's turning the idea into a full fledged game and having the minecraft inspired "pay for a beta and I produce it scheme". I played it a while ago and almost unlocked everything before moving onto other thing but it was a fun time. If you got a good 10 minutes to waste it's something to check out.

Monday, August 22, 2011

link to other site day


Not much to say here. More fixing up methods and other things. Though recently I found the Rogue Basin wiki and figured I should link it.

One of the attractions is that it has a very long list of roguelikes. Both "complete" versions and ones in various states of development. It even has a decent desertion of each one. On top of that there is a running list of recent updates to roguelikes it follows which is nifty. I haven't caught up on my general ones like dungeon crawl: stone soup but I even got to see that had a recent update.

The thing I enjoyed looking at though was various discussion on roguelikes in the making state. A How to write a roguelike in 15 steps is possibly something I should consider following. There is even some discussion on what makes a rogue like a rogue like buried on the site. Interesting things to me that almost make me want to drop combat project and work on a simple graphical thing. Won't be happening but is getting me to take down some simple ideas and possibly line up a "15 step" approach to doing something graphical.

Saturday, August 20, 2011

Quick update

Due to family things and the game later tonight I'll just be putting up this quick update.

Currently have been coding in Combat Test Project to get the counter effect in the parry defense. After some viewing of how the "make attack" method has bloated I decided I need to trim it down and separate it into useful components.  Got the bare parts seperated to allow counter attack to work.

For counter attack I've been stuck on for a while. It's a passive effect that comes along with using the parry defense type. For a while I've been struggling with how to implement it, the basic idea of this engine was to allow you a lot of control of how you defend and attack. The first blush idea was to allow a new smaller pool to be rolled from the successes on the attack but that seemed random. Going off the defense pool seemed silly and going off the attack pool seemed a little too much of a guarantee of a second hit if you're on the offensive.

I've decided to just take the solution of using the attack pool with some penalties to it. It's not the most intersting solution but it'll work for now. As it keeps turtling strategies to a minimum by dividing up potential defense pool dice.

As for next steps I need to get this attack method cleaned up. This means separating all the bonus and penalty searching into multiple methods which is a chore. Though for my piece of mind when working on this it needs to be done.

Friday, August 19, 2011

Being playtester is suffering

Some things have been coming up recently but I have finally gotten some things started with a friend that we have had planed for a while. He'll be running a 2nd edition Mutants and Masterminds game soon themed around Puella Magi Madoka Magica anime that had come out recently. To do this he's been messing with some systems in it to better fit the thematic ideas.

Basic idea is a constant need for energy to power the attacks, defenses, healing and all that so we looked into the energy system from the mastermind manual splat book. It gives a pool based on constitution of energy points to use and everything that isn't straight up hitting someone with your fist has some power points invested in it to come up with a number of these energy points to fuel it. The one twist was to not allow energy points to regenerate naturally To not ruin his plans I made up a character and a boss to see where the chips fall and it was very interesting.

First off friend was willing to do this to see how it is from the GM side of the Mutants and masterminds screen. He's been in three games so far from the players side one of which I run, so seeing how it works from behind the all concealing and powerful DM screen was a new experience. The second part was to see how much this energy system will work for game along with some other homebrew ideas to work around low energy points.

So for this I made the Maiden of despair via a quicker tarot card method I shown earlier. The fluffy results was this.

Hunched over a form that roughly looks like a long black haired women who is crying. Her form is made of monochrome pictures, diary, and letters about a man she loved yet kept a distance from. The man eventually moved onto a women whom he found attractive and actually shown interest in being his lover. This rough exterior is easily torn away by talking about the situation. Doing so reveals a shriveled child like figure inside who desperately tells itself everything is fine as it tries to patch up the holes others leave when trying to reveal her faults. She is at her worst when she conflicts with her self seeing herself at fault and tries to tear away her own memories and throw them at those around her to make sense of while she pastes up up extras to fix the holes.

Twisted and fitting for the game ideals. Made a character ins a similar method only with less ideas behind it, more focused on a power set which went very weird. From the looks of it the way she worked was going to be very energy efficient. All her powers were ones that boosted up her ability to deal damage and take damage with a few rule bendy ways to add an extra effect to them. The Not witch made was meant to take on groups so it would be an intersting fight.

Cut to it and we found out even with her energy point approach she blew through the energy point restoring the witches provided without actually wounding the thing. between a combination of missing and damage saves the character was solely on the losing end. The abilities I set up as part of her fluff were very effective against a melee combatant due to throwing her out of melee range on a failure again the trip effect. I originally was making a blaster magic user before realizing the monster didn't have a single way to deal with range so I switched to melee, and did that back fire.

So the first play test ended with retreat, 4 wounds, and 30 energy points of 120 expended. So the thought expenditure of energy was vastly underestimated especially if this would be a character who was running very energy light. The drops were estimated to only recover 20 energy points per boss defeated. He said he learned a lot .I feel I made a mismatch that may not be the best to learn from but we'll see. I'll probably try again later with some learned in character strategy but I plan on making a few more scenarios for him to work with. Either way he gets experience and possibly more foes/allies for in game use.

Wednesday, August 17, 2011

Conditional Fun: playing with snakes 4

After a day of being locked outside of a car and watching a friend get infuriated by from dust I think I shall continue the Playing with snakes series here. Last time I talked about lists mostly in preparation for loops but before that we need to work with a lot more pieces of coding. The keep it a bit short due to seeing how easy this bloats I'll stick to logic operation today.

Computers are very good at repetitive logic comparing. It is a fundamental process of how they work. Different languages have different ways of performing logic operators, for basic python it isn't too hard. The only one that provides problems is equivalency which is just '=='. I say it has problems as you can easily put the equal sign which is for assigning information to a variable. The other common ones you may remember from math class are less than '<', greater than '>', greater than or equal to '<=', and less than or equal to '>='. When python encounters these it checks whatever is before and after it and compares to the best of it's abilities and will return True or False. This will be useful in the future but for now some useless testing of theory. Please type the following or otherwise look at the image attached.

print 1==1
print 1==2
print 1>1
print 1>2
print 2>1
print 1<1
print 1<2
print 2<1



Very basic things. I could make a longer list using all of the basic 5 comparison statements but that would be overkill. Things to note this also works with characters based on ASCII designation and to a degree strings, though that is another can of worms. instead of something trivial you can use variables within the conditionals to use them for their intended purposes. The intended purpose to be used in conditional statements.

For a quick demonstration of variables in use type the follwoing

a = 4
print a<3
print a<4
print a<5
print a==5
print a==6
print a==4

Logical operators can even use two variables to compare to produce their result of Truth or false. At the moment this is pretty trivial but I believe next Playing with snakes I'll get into the if statements and scopes. After that some loops and a bit of object work and we'll have 'fighter' remade.

Tuesday, August 16, 2011

Graphical limitations

Yesterday had an unexpected changes so didn't get to do much yesterday. Though today I did grab a few things and even got pygame downloaded. I'll get to what this means in a minute.

For the most part I am not used to graphical approach to programing. I don't have the math for fancy 3d effects and 2d painting to a screen can run into some annoying issues. I have done a bit of both, never really took a fancy to it. Basic python is console based so text only. While that's fine with me I think I could move onto other things.

Python comes with an inbuilt graphical GUI system called TKinter. It's like using inbuilt system things or HTML things, everything is standard issue and pretty uniform. I personally don't like using it, in it's default mode it shoves everything in a left, center, or right aligned fashion and unless you start using different containers which I ran into problems with you can't exactly place based on X and Y coordinates.

This is inbuilt and has issues with a number of image formats. The kind I like to export to. There are solutions to this that involve other modules. pygame is such a module but as the name suggests it comes with other games too. I haven't worked with it but I plan on doing a bit of tutorial looking. Nothing too complex for now but learning new coding things is something I should really do more of.

I may not be doing anything here with it for a while though it would be nice to upgrade the current system into something that's more appealing. The current goal in having it coded is that with minor adjustments I could run it with a graphics engine.

Saturday, August 13, 2011

Bugs and addition

After losing cords, buying new ones, and getting caught in the rain I decided to get some coding done. Just simple addition of the defensive side of dice manipulation. The things I found made my mind spin a bit.

sums it up in bad mspaint
Found some serious bugs and some serious basic mistakes that I could chalk up to flipping my variable check format between abilities but still was inexcusable. It's a bug that the code runs but it doesn't crash the program when  encounters it but still produces wrong results. Like accidentally forgetting to convert from metric to imperial for one step the instruction sorta "work" until you look at the whole.

Never claimed to be the best programer but when I'm flatly disallowing my design decisions not to work is kind of disheartening. Well it was caught and hopefully fixed, I believed I had tested out but work now, though I'm going to debug this much harder later to be sure. That aside I did make a new feature with the place holder name of "spirited defense".

Spirited defense removes the highest die in a pool up to the max face*2 you paid for out of edge. Currently do not have this or it's defense pool wrecking sibling Spirited attack having multiple versions of itself but it should prove trival beyond whatever bugs I can make as I put in due to working on it. Along with this I decided to reduct the amount "armor" can provide. Previously it was gainable through using block defense which is a free and lasting effect in combat and it deducted 1d10 + 1d10 per 3 successes in the pool. With attacking being the same type of formula for damage this meant a lot of soak and even the possiblity of a great attack where you roll three 3d10 dice being absorbed because the armor rolled a 10. I'm not quite a fan of percentile reduction at the moment so I decided to let the armor roll be 1d5, at least half the time when the dice are rolled it's a guaranteed amoutn of damage on a die by die basis. I may crunch the numbers later but for now this works.

So with that out of the way have you guys ever come across your own work at a later time and found it quite lacking? Especially if you swore it worked and was quite good.

Friday, August 12, 2011

Minion mash

Well it seems yesterdays listing of things to work out didn't come to pass today at least, spent about five hours wandering around town. Took care of some things though none of ti really panned out but was a lot of walking. So instead of progress I'll talk about some game running problems. The problem being, lots and lots of monsters.

Lots of games have you fighting hordes of monsters. RPGs are notorious for things you dispatch in one round and just keep appearing through the game due to random encounters. FPS and action games love hordes as it can present a legitimate challenge in a game where you are overpowered to everything and your downfall can come from overconfidence or other things. RTS use this with some factions as their main method of winning as they can overwhelm you with inferior troops. Usually this is fun, in table top games it's a little differnt.

Running games usually means all the little boring things such as tallying up dice is done by humans and not in microseconds by the machine, it also has some verbal asking of players to do things, and them joking around and other things. This means what in any other game of it's genera that would take maybe five to ten minutes takes roughly a half hour of real time. Online this is even worse, I believe this was mentioned it sometime ago but my tired legs and sore feet are preventing me from moving my mouse around to dig that up, how I'm not sure. Seeing a three round combat session take forty minutes  is not uncommon for me between 5 people. I suspect youtube, image galleries, and the lower typing speed of some players has something to do from it as seeing the same text for two minutes gets them to think "well I'll just look here and check back occasionally". While a player I don't usually mind but as a DM I feel like I'm failing in keeping them interested especially when this is just a minor inconvenience fight that could go bad if mistakes are made.

This often makes me question the making of such things. Usually I go with it though with less monsters than I'd see fitting as this keeps the hack and slash slough from continuing too long. Another thing is not only do my players have to roll, I have to roll for the monsters while the players have to do checks. Having 6 monsters who make attacks and target different players who may cause rolls from them and so on is a bit of a headache and extends the length of battle quite significantly.

Mutants and Masterminds system does have a solution to minion swarms that are still threats but aren't quite grinds. It's damage system is based on a saving roll and failing that by enough can incapacitate a player, foes generally run on the same rule. While it seems horribly swinging it's mitigated by hero points and the fact that you can't be taken out in one hit. Minions work slightly different, they make their saves so they can get by unscathed but on any failure they take the worst condition. Beyond that they can dish out damage like any other character allowing them to be a real threat without the unfairness of them facing double their numbers that are roughly as hard hitting as them.

The rolling for the mobs attack I've written a page from my book on. I've come up with two solutions that I employ regularly. One I have "auto pass assistance" for the mobs, each one in range adds +1 to the attack roll of one monster. Assistance is an action that tests a monsters attack against DC 10 so it passes 55% of the time with no attack bonus, most have attack bonus so quickly this is just auto passed. Using the idea allows for a better chance to hit with less rolling, though it's safer for players as they have less chances to just flat out fail a save roll. For minor encounters it works for me. The other one is to use the books combined attack with monsters. For each one that "hits" the target there is an increase in the difficulty of the save that must be passed. It reduces rolls for players while allowing me to at least pretend each monster maters more, and does increase the threat level substantually from a group based beat down. The problem is that it starts to enter one shot territory. By rules and probability if they were equal level threats 6 monsters attacking would cause there to always be some sort of wound and about a 50% chance (with large room for error due to me not actually taking out scratch paper for this) of defeat if they all succeed on hiting. Players could hero point to avoid this but that seems slightly too punishing if it's just a bump in the road to your main encounter.

It's a thing I struggle with in designing encounters. Thematically it is great but in practice it could just be seen as filler or a time sink. At least with the last batch I've been making the taking out of the mass of zombies be laughably gory which has something for it.

Thursday, August 11, 2011

Combat check list

Well I have been getting a bit lazy on the Combat Test Project work so I'm going to rectify that. So today a little check list for getting this to completion. So a simple little list centering around what I should focus on.

  • Engine
    • Basic engine DONE
    • Useable I/O DONE
    • Modular and expandable use
  • Abilities
    • Basic attack DONE
    • Attack Options IN PROGRESS
      • attack degrees USEABLE
      • Punish abilities
    • Defensive options
    • Dice pool manipulation abilities
  • Enemies
    • Basic AI DONE
    • Not dumb AI
    • Actual enemies
  • Usability
    • Mistypes do not cause crashes
    • Normal people can navigate menus
    • Not annoying
  • Unwinnable things
    • Bugs
    • Tested balance
    • Insert fun
    • Good tune up
So looking at that, not too horrible. Not too good but it's something to start working more on. Engine for all concerns is done. Unless I want to do all the unique hit descriptions and such it suitably works right now. Useable input output is for testing purposes, allows me to test everything and see results. this means debug code everywhere that I may have to edit out later. Modular and expandable use is already underway. I have this entire system setup to allow multiple monsters or playing characters in theory. In actuality I don't think it'd work well for players as it's all keyed off a single Character object. Though it is feasibly changed later, or even through array use.

Abilities is where I want the real meat to be. I currently have a small list of basic modifications and a few choice abilities to use that I don't think is enough but is "enough" for testing purposes. Punish abilities I need a few more of. Defensive options are nearly done as soon as I figure out how I want counter to work. Dice pool manipulators are half finished as I want to do the defensive portion of it now.

Enemies is a bit of a struggle. I may keep them at randumb as I call it for simplicity sake but I want some chance of it avoiding punishing moves and using them on the player which will get hard. Nothing too complex and not completely random.

Usability is one I'm not too keen on doing. I'm a very prototype making person, right now this is "useable" even with all it's input errors and befuddling menu loops. Right now it's the very bad state of needing to know what you're doing, something I hope to fix when I throw it up on here.

Unwinable list is the programers never winning portion. Bugless code that works right in all instances and does what it's meant to do. Combined with my own ideas of what it should do it's there just to remind me to go over it more often, I'll never find all the bugs nor will I get ti perfectly balanced. I just have to try for it. Good tune up will be me making things less spaghetti code, the attack method right now is laughably large and needs to be broken up into methods. How small of methods is the unanswerable question for me.

Wednesday, August 10, 2011

Family dinner

Just a little update. I got swift strike the "slow initive" punisher for combat project. Not hard to code but I did a lot of upkeep in moving around methods and trying to divide up the workload to keep it from becoming spagetii code. The main damage engine is the next on the list for this. After that some thinking it seems, but I may start finalizing it to throw up some examples on here.

What's been keeping me away from this besides my own laziness is general job hunting and today some family dinner. Not complaining, I love food I don't have to cook. It just always tastes better. Today was a sorta special occasion a cousins birthday and simultaneously wishing him and his sister well as they go up to college for the year. Hopefully do better than what I did.

Food itself was good, nothing you'd find at fine dinning restaurants but home grilled and cooked food just has something for it. Among the home made dishes my Grandparents made there were something called No name steak burgers they picked up. These slabs of frozen meat were alright burgers of large portion size. Usually I'm quite good at eating but these things are still leaving me a bit lethargic thoughly luckily not sick. Seemingly have a problem of eating some types of food if I don't eat them on a bi monthly basis.

Anyways not much to show for this post. Seems to be the season for cookouts and such. While I like the fall and winter that follows a lot of people are dreading it. So with that does anyone who's still in the summer months have any plans before the fall officially rears it's ugly head?

Tuesday, August 9, 2011

Blast from the DM past

Now for something a little less boring. Between resume shuffles, working on some aspects of combat project, and doing minor DM things I've been digging through my DM notes and folders to find some of my most earliest Mutants and Masterminds workings for my current game. So I think I'll share some laughable things with you.

First off this was made with very very sketchy knowledge of Mutants and Masterminds 2nd edition. So much so that I overlooked a few things. To start with Mutants and Masterminds 2nd editon was green ronin taking the OGL for D&D 3.5 and thoroughly gutting it and replacing its innards and limbs with modular cybernetic running off an arcane magic generator that was brought to life by cosmic rays to make a point buy Super hero game. All the basic ideas are in there to a degree along with the "Toughness" save system. So the six stats everyone loves is still there, with some attack bonus, and the gutted armor class system renamed defense. The game is point buy with "power levels"(which will be refereed to as PL) which works like regular levels to a degree. How easily a character can hit another character, damage them, or otherwise effect them is caped by these things. I won't get into it too much but it's actually an interesting balance system in a game that relies on the DM keeping it from being horribly broken due to it trying to replicate super heroes.

There is attributes, saves, skills, and feats. All the fun stuff D&D has come to gained in 3.5, on top of that is powers and the power structure which would take a while to explain. Effectivly Attributes get modifiers that are applied all over the place, mostly saves and skills. 2nd edition divorced most of attributes from combat things beyond strength modifier damage. Other than that mostly functions the same.

So anyways with that onto the things I did. These were some proto ideas from my Fantasy Mutants and Masterminds game. The thought was that if I need something quick I'd pull out one of these classes and add up some numbers on the fly and be good. I went a different direction but will talk a bit more on that.

So without further delay the "fighter" template.

General fighter

Attributes
(1:1) +1 bonus per 2 above 10
STR   12(+1)       2 points
DEX  12(+1)       2 points
CON  12(+1)       2 points
WIS   10
INT    10
CHR  10

-6 overall

Combat modifiers
(2:1)
ATK +0       
DEF +1        2 points

-2 in section,-8 overall

SAVES
(1:1)
Ref  +0       
Fort +1        1 point
Will +0       

-1 in section,-9 overall

Feats
(1:1)
Attack Focus(melee or ranged) 1 rank
Equipment 1 rank (upgrade in armor and weapon)
Takedown attack

-3 in section ,-12 overall




Skills
(1:4)



-0 in section, -12 overall

Powers
(Rank*Cost)

Device 1 rank 3 points
base 4 points a rank
Flaw Easy to lose -1 point a rank

-3 in section, -15 overall.

So to what this all means. First this idea follows that "each PL is 15 points so if I fill up 15 points I can slap them together to make foe NPC!" idea. It works and it doesn't. While this does stack up well there were some things I missed. First not a skill rank in sight, while this isn't too horrible sometimes players like to try something that isn't beat them over the head until they stop trying to impede their movement. It's rare but it happens and that's where skills come in, I generally run NPCs under a system of  "Excellent","Proficient", and "not trained" as per a twist on the 2nd edition Masterminds manual splat. Instead of paying 1 point for 4 ranks of some skills it's 2 points for max ranks in a skill and 1 point for half of max ranks, no points means it's relying on attribute bonus only. Not the worst thing.

The worst thing was that I made things that violate PL and took non stacking feats along with this "fighter" is just as good with his fist than without. Not bad if you were going for that sort of thing but this was to be the classic he uses a weapon fighter. Strength bonus goes straight to your unarmed damage which is capped at your PL, with devices or certain equipment you can get weapons that add it to their damage as well, up to the PL. By having a +1 bonus per PL you end up Capped on strength based damage and any more is just pointless, should have it be 1 point a rank so it's at least half of the potential cap but that's not what I did.

The next bad thing is the saves. They're just horrible and way back then they seemed alright but really weren't. First thing is not an ounce of will save, which is fine for fighter minions I shouldn't care about but it seems like a vast oversight when I'm using this template for stronger than town guard things. The Fortitude save is completely non functioning past PL 3. The reason being that it takes the constitution bonus into account and the Saves (besides toughness) cap at PL+6. At PL 4 it'll have 8 fortitude when it should only have 7. This is a big oversight. having PL in reflex save is acceptable though.

Last bit of problems is in with the feats. Attack focus isn't bad, that or attack bonus which is just wasted points for a one range NPC. The first problem here is equipment. Equipment runs on what is effectively the power system only scaled down in cost and mundane for the most part. A lot of them are just given out in a list but you are encouraged to make other things for it. With this I was expecting all the points to be dropped into armor and such. With the oversight that con goes to "toughness" saves which is where armor would go, not only that it maxes it out. Jumping ahead you'll see the device entry is wher eI planed the weapon to go so buying weapons is pointless here. The only thing I can think of is a bunch of rope or other little useful trinkets that are only useful to PCs for the most part unless I want to play Tuckers Kobolds. Not a promising aspect as I'll be getting a lot of such items with every PL getting 5 points worth of them. After that there is the non ranked takedown feat, so every PL added woudl mean I have one point floating around that I would probalby ignore or take a random rleated feat in.

So all in all, this didn't quite accomplish what I wanted. Thanks to how I ran the games I ended up more often than not hand constructing the little obstacles in the players path until I got the hang of winging it. Winging it being I pick what saves the best, what attributes are high and low, what gimmick it has, and a few powers at the relative level for anything without a name. Which works pretty well and I know I could fit it all together without breaking the guideline of Power points per Power Level ideals I keep as a GM.

Well hopefully this was a bit more entertaining, it's a bit of a challenge to come up with something worthwhile on a near daily basis. Though it's probably a good thing for me. Anyways I might revise this idea in the future, if I'm really feeling like it maybe I could see if I could make a book of minions and mooks under Green Ronins OGL licence for Mutants and Masterminds. Either edition would work though I would think 3rd would be the one to work under, and that isn't quite my style.

Monday, August 8, 2011

Probability 101

Something with a little meat on it today. I was going to revisit a bit talked about here with the two weapon/multi attack problem. The problem is there is a lot of points and areas that one could excel at over the other in some thinking on the problem. Too much for that today so I'll go over a bit of probability as a primer to that.

First bit about probability. Probability in the mathmatic terms refers to, the instances in which an event happens out of all possible events. The "all possible events" is commonly called the sample space, it's not so much all possible events as so much as the ones you can get to with your experiement. So from this figuring a simple one is rolling a 1 on a six sided die. There is only one instance of 1 out of a total sample space of 6, so the result for rolling a 1 is  1/6. It doesn't even have to be a singular number, it can be something more complex like rolling higher than a 4 on a six sided dice. The number of instances this happens is two, them being 5 and 6, causing the probability of rolling above a 4 to be 2/6 or 1/3 through reduction. Simple until you start looking into multi variable problems but I won't beat your head over those too much.

Another thing that I should prime on is the "average" number or mean which is the "center" of most bell curves(a term that isn't exactly needed for this right now). For all purposes at the moment this will mathematically work for us, it's determined by adding the highest and lowest number together and dividing by two producing the theoretical mean, it's useful for guessing where most of the dice will be rolling.  There is another form of averaging which is also called a mean it is taken through gathering data points, you take every item add them all together and then divide by how many items there were. This is how they get average life expectancy, age, and other thigns. It's not perfect but it's one of the useable estimations, there are others out there.

Such as mode. Mode is the instance in the sample space that is the most likely to occur.  Five people aged 20 , three 23 year olds, and one creepy 50 year old show up to an event. The mean of this is 24 and the theoretical mean is 35, the mean derived by the actual numbers is clearly better here but still not exactly close enough. The single 50 year old is generally known as an outlier in these, or an odd event that generally doesn't happen but is taken into account because it did. Because of this the mean has shifted far further than it should have. So by looking at the mode we'll see that there were five 20 year olds which is more than the three 23 year old and the one 50 year old. You now have what is your most likely event if that was what you were actually looking for. It's useful for what is called unequal distributions. Where the most likely instances of occurrence are not actually clustered. I'll make a poorly labeled graph to try and get the point across. The green curve if I could actually draw this right under some average measurements would appear to have a "peak" in the middle like the red curve when it plainly isn't true. Mode can shed some light on just how much it is skewed if you look at it with the average next to it.

The last bit of probability I want to talk about is the median. The median is not something I use that often but probably should. Effectively you take all data or sample space and sort it then find the exact middle based on number of items and say that's the middle. Half of everything you can see falls above this point, and half of everything falls bellow it. It's like the illegitimate offspring of the mean and mode but I prefer some actual number useage when it comes to my disecting of these problems.

Well hopefully this wasn't too horribly long, incomprehensible, or boring but in the future this may save me some trouble. It's funny as people find probability to be some mystic strange thing when compared to other math. While I just find it to be the only one I can come to understand. Might as well finish this with a question for you guys as it's becoming a trend. What things that seem hard to other people seem to naturally click with you?

Saturday, August 6, 2011

Chihauhau the cat subsitute.

Humidity has been hovering above 90% for the past few days and the house I'm sitting has no AC beyond the master bedroom which I would rather avoid sitting in. Combine this with the couch I've been waking up covered in sweet with I was a little out of it yesterday so sorry for the lack of updates. Today won't make up for that as it's just some ranting as I'm still not comfortable or feeling well here.

I'm currently house sitting a pair of chihauhaus my mother has had for a few years now. I used to even be around when she first got them. She's generally a cat person but some siblings were found to be allergic to cats so we went to dogs. So no more cats were to be had.

We had a lab for a while which was fine. I'm not a fan of dogs, they are just too in your face all the time for me. Always needing to be near you or even in the same room as you. It's not my thing with a pet, I didn't mind the dog and was the primary walker and groomer for her but never really attached to it. After a long winded turn of events we were given a well bred chihuahua. She wasn't too bad at first being scared as could be but quickly learned to bark alot and nip at anyone trying to get into the house despite the general training against it. It never even really bit people as much as run up to a person and place her teeth on whatever is exposed, she learned she can't actually bite anyone but it was still annoying when people were scared and only encouraged it even when they did walk into the house.

Years later the lab had to be put to sleep and we found a less well bread Chihuahua to keep the first compnay. Very well adjusted though scared as can be. It took a while but as long as my mother was around she was fine and people could even pet the new dog or even pick it up. Later she started to bark follow the now dominant older Chihuahuas example so people arriving is a very noisy happening.

The both of them are a lot more forward when my mother is her, being protective to a degree. Otherwise they hide and don't do much when she isn't around, not including running to the door to bark at people. When she's around the both of them will mill about around her or sit on her lap, maybe even play with each other. Right now they're held up in her room which would be bad if they weren't liter box trained so she doesn't have to stay up all night to get them to go outside. They do that too but it's just a backup plan except for the past few days it seems.

They'd be a lot better if they weren't constantly cowering even when they come to meet me. In fact I have one who finally decided to come downstairs and sit on the couch with me but still acts like I'm going to beat it when I full well know it has no abuse in the past. Not even sure if it's better than the dog that is constantly leaning on my leg or always following me around the house.

Well that's that for the pointless rant. So the eternal question, dogs or cats?

Thursday, August 4, 2011

Checking it twice : Playing with snakes 3

Currently house sitting again, for other family members, for other animals. Funny how being unemployed comes with perks of getting picked up and dropped off then told not to burn the house down. That aside I was thinking of continuing my playing with snakes tutorial today with basic loops before realizing just how python works. Like it or not I find this somewhat therapeutic to go over basic programing things so I'll be doing this till basic fighter is done. So with that, lists in python.

If you are familiar with other programing languages you may know the concept of arrays. Python has a similar concept that is effectively used in the same way but there are some very key differences that would take too long to explain. Effectively a list is a collection of variables, that are able to be called up through their 'position' in the list. Array deceleration, assignment, and use are slightly different than regular variables so I'll explain by showing. Please type the following.

alist=[1,2,3]
print alist[0]
print alist[1]
print alist[2]

A list is made, and then broken

Lists are signified by the Square brackets. Inside is each "item" in the list separated by commas. So this list is assigned to the alist varaible, and inisde the list is 3 items of 1,2, and 3. We are using intagers for this but anything can be put into a list, just like anything can be put into a variable. In fact you can mix types up in a list if you feel so inclined.  After that We start manually printing out the items in the list starting at index '0'.

To call an item from a list you place the index you want in square brackets immediately following it. That simple. Now you may wonder why this is worthwhile but when I get onto loops and other such controls you'll see.

Now this is where quite a few errors turn up. Humans like counting starting at 1, computers like to start at their location. I could get into the philosophy about this but that could take a while. For now remeber 0 is the starting position.

The other thing to note is what happens when we ask for the '4th' item in a list of 3. We get an out of index error. This is a bad thing, not as bad as it used to be. In the older days and in other systems when we ask outside of index we are getting unknown data that was right after the array or lists memory location. A pandoras box of unknown things that may be other variables, left over data from previous allocations, Other processes in worst case, or who knows what else. Nowadays we get errors and the program crashes to save us from ourselves. Because of the fact we would like to know the end there is a simple solution, we ask for how many items are in the list, we do this easily by typing the following.

len(alist)

By using the method len and passing along a list we will get the number of items in the list returned. With this we know if we ask for that number or higher we'll have bad things happen. Now another thing that is useful to know. We do not have to individually go through the list, we can in fact print it out in a format. Like with numbers we can use the str function with a list passed to have it printed out as a string. Try the following.

print str(alist)

With that you get a result much like if you were to set up a list. Now one last thing I would like to say about this before ending. Python has a method that produces a list of numbers, this is the range method. There are a few differnt ways to use the range method but we'll just use the most basic. Please type the following.

blist=range(3)
print str(blist)


Like this range produces X numbers starting at zero much like the index. So it will produce all the numbers from 0 to X-1 where X is the number you put into the method. You can do more fancy things with it but I'll show that latter.

With that out of the way I guess I can ask two things. Any of you out there have programing experience? The other question being what things do you find relaxing that seem odd?

Wednesday, August 3, 2011

Minor concerns

Did a bit of event generation for my upcoming horror game. Like the NPCs I explained before I've been using tarot cards for these. A much simpler design as this is just littering the sandbox with shiny things for my players to look at so today I think I'll talk a bit about tarot cards.

Tarot decks have 2 sets of card "types" that don't even seem related. Arcane major which goes from zero to 21 where people are more familiar with including the infamous Death card. The Arcane Major is major happenings in ones life, when one shows up it should be payed attention too, though seemingly all tarot readings in movies has Major Arcane after Major arcane which is sometimes appropriate but is silly with how often it happens.

The other type is the Minor Arcane. This is the daily life events which are probably better for cold reading and normal things if not as interesting as the major arcane. There are 4 suits of 14 cards numbered from ace to king. If this sounds like a regular playing card deck it's because the modern ones were based on tarot cards without the major arcane and combining the knight and page into the jack while changing the suits. The four suits follow a general theme and I'll go over them. Pentacles or more likely known a coins is largely based around money issues and goods. Swords is the second suit, it commonly has cards easily interpreted as reasons for things, easily negative reasons. Cups the third suit is commonly based on emotions. The last of the Minor Arcane is Wands, it is typically people and their status or actions. While this is the general theme each card is different and some change meanings based on other minor arcane in the reading.

Another theme in Tarot is the reversed card which strengthens,minimizes, inverts the meaning of the card on hand. It's generally easier for the Major Arcane than the Minor with how they go. For instance Eight of Cups has a meaning of "The card speaks for itself on the surface, but other readings are entirely antihetical - giving joy, mildness, timidity, honor, and modesty" from the Radint Rider-waite booklet I have. A booklet that I have caused to be very worn out due to how much I look through it even though I've only had these things for a few months now and looks like I won't be working on only memory any time soon.

It's been fun playing with them especially after playing with some of the persona series. For my games it has taken a lot of sitting around doing nothing but worry if an idea I have is good for the game. For better or worse using them as seeds gets me to work faster and pump out ideas for this game. Currently have a list of 40 events to scatter throughout the game generated by this, and a cast of roughly 30 NPCs to play multiple personality disorder with. I am actually aiming to increase these numbers a bit more too.

Tuesday, August 2, 2011

Ahead of the curve

This slightly relates back to yesterdays horribly long post. Only it won't be long and it's less ranting and more about Combat Project.

So currently initiative in combat project is based on taking X dice from your initial pool. Or none at all for a zero.As it stands I've found it quite useful in these testing runs to put nothing in the initiative and put that die in attack or defense. This seems cheap as right now the  AI always puts a die in the initiative pool making you effectively have one more die in exchange for always going second.

The first idea is to force the player to put a die in the pool. This seemingly goes against my idea of how much control you have. If you rolls were too high and want to go second you're left hoping the AI put a higher die in the pool. The second idea is expanding on the edge system. Having a "first strike" attack that allows the person to get a bonus of some sort on the target, what yet I'm not sure either damage or bonus to hit which can easily translate into damage. This is probably going in one way or another as it is a risk move for the player too. They could pay for this and put in their greatest die or dice to guaranty going first at the expense of attack pool or defense pool. This adds a bit of risk reward in setting it up as it took some edge and now it takes you hoping to get a first hit. Third is, multi attacks.

Yesterday I discussed the main sins of multi attacks and am very weary about putting it in system. Namely just how much should an extra action cost and if a character will just pay that and nova with it and other edge abilities. Allowing more than one attack a turn also opens another can of worms here, as the attack bonus has already been set so either nothing new happens or more damage is inflicted. This said the basic idea was that if you have twice the initiative of the opponent you would go on your regular initiative and then once again at the end of the round for another regular attack. This does once again attempt to force you to put a die in the initiative pool but it is giving you a choice. A poor solution possibly but it does allow you to put a lot of initive in the pool for hopes of achieving the double attack result. It may even be a good edge idea but for now I'm going to think on it.

Monday, August 1, 2011

Perpetual motion machine

Edit: Fair warning I thought I could explain this better. It's a bit rantish as is.

Busy day today hence why I'm a bit late. Currently trying to adjust my sleep schedule towards the earlier part of the working day as well as looking a bit. So this may be a bit short but it's been a subject I've been wanting to talk about for a bit.

In game design there is a bit coined as "Action Economy". What an action economy is depends on how your game works. For the most part it's what you are allowed to do on a turn and at what cost or risk compared to other options and the opposing side. The most basic idea is that "slower", more costly, or rarer options should do more than "faster",cheap, more common ones. Failing to do this shows a design flaw as you're paying more to do less unless you have very good reason to such as niche design but that's another topic.

The most basic way to think of action economy is with chess. Chess you move one piece a turn, that's it baring special moves that rarely do anything. This is balanced between the players, they get to test skill without anything hindering them beyond turn order.Now imagine if you could move two pieces under restriction, like two pawns or maybe a Queen twice if you sacrifice a pawn. What if white could move two pawns and black could move a queen twice if they sacrificed a pawn, is this an equivalent ability for both sides? From there it gets real messy as to what is fair and if you should even bother with your standard moves unless desperate? That's the most basic idea of action economy though I'll go a bit more into detail in other aspects of it.

Most RPGs allow one action a turn to keep things simple and delegate any sense of action economy to the individual options. I'll get to some of those options but the more obvious problem is in pen and paper games. On the tabletop there are always a few ideas that some things should give more actions a turn and this can lead to some very odd results.

To start I'll take an example and use D&D  3.5. In this edition of Dungeons and dragons you have the free actions, swift action, move actions, standard actions, and full actions that can happen on the same turn. Free actions is usually talking and allowing for monologing villains to say something before they go down or party members to do the same. Swift action is like a free action and happens "instantly"but only one may happen on your turn. Move action you only have one of and allows you to move. Standard action is your bread and butter for doing anything though you may also use it as a move action. Full actions use both your move and standard action up for their effect, the easiest example is the full round attack which I'll get into in a bit.

If all the allowable actions were roughly the same there wouldn't be much of a problem. Though some older ideas made it into the game and thoughts of the old classic "time stop" and "Delayed fire ball" show the principal of being allowed to do multiple things on your turn can lead to bad things. Time stop allows you to move around with impertinent for up to 5 rounds, the catch is you really can't do much, you can't attack anything directly even with spells. Delayed fireball lets you cast an improved fire ball and allow it to be delayed up to 5 rounds. The combination is obvious as you just cast all the fireballs on a single target then have them go off after time stop ends. Effectively getting 5 turns worth of actions to obtain a devastating effect when comparatively you took one. There may be some systems where many turns aren't as effective but here the more turns you get the better chance you have of standing on top of things.

This is generally called novaing. You use all available resources for an effect that hopefully wins the battle, in the case above unless that slot for timestop allowed for a devastating spell like no other that wouldn't have you using most of the delayed fireball spells you would seemingly be out of luck. So those instances I could understand it for boss ending super weapons that make DMs pull out their hair and usually games don't have this, they commit some other minor sins. D&D 3.5 has a concept of "full round attack" where fighters can perform up to 4 separate attacks, In a second I'll get into a failure in some aspects of their idea here but multiattacks needs an entire paragraph on it if not an entire post later going on about it.

In theory this sounds very good, often multi attack systems break games. Being allowed at minor disadvantage to attack multiple times easilymakes it combat wise seem like there is a second character on the groups side for the price of them not being as "powerful" as the first. Many video games use the idea too and give "light weapon" characters multiple small damage attacks usually half damage than their one attack higher damage counterparts, mathematically the half damage weapons are better on the base level. Assume this is 50% chance to hit for single attacker and two hits attacker. The single attacker simply has a 50% chance to hit the target and 50% chance to not hit the target. The two hit attacker has a 25% chance of hitting with both weapons, 50% chance of hitting one weapon, and 25% chance of missing all together. As if that wasn't enough the averages are better for the two weapons if you were looking for that, but that is for another time. This is a disparity in Action Economy as clearly two weapons are "better" for it's actions, other factors could be taken into account such as damage reduction, critical, on hit effects, or a variety of other things and frankly has been argued into the ground a lot with how often it comes up. Unluckily for you guy I rarely visit forums so I'll come back to it again.

D&D 3.5 had the idea in there as a way for the fighter to show his prowess in combat. The problem is that it fails quite easily. D&D 3.5 works on base attack bonus where you are given a bonus to the dice you roll, the full round attack works by decreasing this for every attack after the first. At the highest "core" level you have 20 BAB. So your first attack gains a +20 to the roll, the second a +15, third a +10, and fourth a +5. Seems reasonable until you assume that the defenses you are rolling against are increasing at roughly the same rate. So if the thing you're attacking can only get hit on a roll of  10 or better for a single attack your second attack will only hit it on a 15 or better. This leaves your third and Fourth only hitting on a natural 20 which is an auto hit. This is great however for things that aren't actually a 'challenge' to your level as you'll easily have a shot to land all four attacks on them, everything else you do have a good possibility for 2 attacks though. Now not only the fighter gets this, but it's the one who gets it the best. Others don't generally reach 4 attacks a turn or +20 base attack bonus.

I'm not quite wanting to bash D&D on this as it seems like a good thought. It just doesn't have quite the execution I'd need to be to not have extra nearly pointless rolling. Maybe it works better in practice than my experiences show but considering once you hit melee range and aren't moving away it's expected for this mechanic to kick in. With it being the standard for higher end fighters a little more thought could have been given to it though out of all the multi attack systems that are inbuilt in the system it isn't the worst I have seen.

Other systems use some hoops to jump through to gain additional attacks a turn that don't have much penalty beyond what you have to do to get it. WoD comes to mind but it's been so long I can't remember the ways to do it. Effectively you just become two sources of damage with no way around it. You're better than everyone who hasn't done this or has a gimmick that allows them to keep up leaving you at a game warping effect. One system I know of called Cthulhu Tech has muti attacks built in and it seems like it should work until you get higher in your attack stat, in which case the penalties are meaningless for the extra action penalties you get. Also it's dice pool system is so widely swingy towards low results or high that if you're getting high it doesn't matter.

Though the end result is sorta the same. The more moves you can take the better, standard actions are just for people who haven't found a way to slap more on which seems to be a problem to me. Some systems run with the idea but give options all around.The problem comes up to which is "superior" or just flat out useless. Seeing that is really hard like with the chess example which is better? I wouldn't have a guess at that. A bit more thinking in things that change the amount of actions you can take in a game seemingly don't get much thought in my opinion.

A little longer than I wanted, and possibly a bit schizophrenic in nature due to re editing a few times. I'll possibly get into this later time in hopefully not a format that is easier to chew.