Is there a basics of CG out there somewhere?
-
This is a part of coding that I've always been curious about. I've kind of half assed figured out a few other things, but character generation seems to be particularly mysterious. I've looked at a few packages that have been posted on mucode.com and it's pretty baffling.
Does anyone know of a resource that kind of walks people through step by step, or have a very simple CG laying around that a neophyte might grok?
-
Depends what you're looking for really.
CG and system is just an exercise in data management. It depends how complex you want it to be really. Most out there account for how the system as a whole will work; if +rolling is just throwing some dice, or if it changes the sheet (for wounds and such), how XP may be gained, etc.
I'd plug in FS3 if you're just needing a system to use. Folks will come on and say it sucks, but I don't think they have an actual easy alternative that is CG/system code to easily use, not as easy as FS3 is.
-
I've played around with FS3 and like it quite a bit, but what I'm looking for is a learning experience rather than getting a game up and running quickly.
-
@SG said in Is there a basics of CG out there somewhere?:
I've played around with FS3 and like it quite a bit, but what I'm looking for is a learning experience rather than getting a game up and running quickly.
My only advice then is to jump in to make it work the way you want it too.
Make a CG object, start writing code to write stats to wherever you store them (on player, a db object, whatever), and work jointly on your +sheet to read the info. Once you get it to write, then add checks and balances (can't be over a certain number, it doesn't write the state, etc.). Then if you get that going, you can work with limited CG points. It can remove add them to a cg point stat you have some where, it could be a data object that says X amount of points and reduces for everything they have on their sheet.
Just start simple and build up complexity, there are so many considerations and variables to a CG that change how you may build it, the best way is to jump in and try it. Get it to write, and read, first. Then worry about the rest as you get it going.
-
After having coded two systems from scratch and applied them on about five different places, let me say this:
Chargen sucks.
Long ago on Wora, I said that stat setting and reading should be the first part of a stat-related game and chargen should be last. Eight years later, I'm doubling down on that. There are five things (four coded) that you need before you need chargen.
- A way to set stats.
- A way to read stats (includes sheet code).
- A way to use the stats in conflict resolution (usually roll code).
- Someone who can look at a sheet and determine that it's a valid starting character sheet.
- A switch to flip to let this person play.
Chargen code exists because math is hard. I just went over the Shadowrun 5 chargen system and laughed my skinny white ass off.
Encoding chargen is hard, and it's the least critical part of the stat system so it could be done last. IMO, it always should be.
Otherwise, what was said before. Create objects that set things and check them. The easiest way is to verify one step of chargen before allowing the next step. Use rooms. Lock exits if they're not done with the room. Wipe work done if you leave or go backwards. Allow staff to sidestep all chargen controls so they can step in a room with someone having problems. Realize that you won't be done with chargen even after you're open.
That's the best I can do.
-
@SG said in Is there a basics of CG out there somewhere?:
I've played around with FS3 and like it quite a bit, but what I'm looking for is a learning experience rather than getting a game up and running quickly.
My own experience with FS3 is that the customizable nature of it makes it a good one to take apart, see how it works, and change. So if you're just looking for a generic chargen to install and poke at as a learning tool, I think it's a good one.
-
Awesome, thanks for the tips. I'll see about grabbing another copy of FS3 to dissect and see if I can understand what is going on.
-
@SG said in Is there a basics of CG out there somewhere?:
Awesome, thanks for the tips. I'll see about grabbing another copy of FS3 to dissect and see if I can understand what is going on.
Real quick, secondary to this. If you're going to work mainly in Pennmush, definitely get a window open for the pennmush social site (MUSH), its address is: mush.pennmush.org:4201. You can ask a question here, but not everyone is using pennmush, the folks at MUSH can help you out.
If you're looking at some other hardcode, let folks know here, there might be similar places where masters of those code bases linger throughout the day and can answer more specific questions.
-
My experience has been with @Thenomain CG code, and the code that was used by The Reach (no idea who the original author is). Both are WoD, but I feel like the cgen process and the whole idea is close enough across RPs to be relevant for comparison.
From playing with these two, my lesson learned is that it's a serious PITA. Just when you think you've got it, there's another layer you didn't consider. Then another, and another, and another...
However, I do have some lessons learned, so if you are going to try to make your own, I'd recommend:
- Each stat (within reason) should be an individual attribute stored on the character (as opposed to one attribute that is parsed out)
- Each stat (within reason) should contain it's own attribute (or multiple) on a different object (as opposed to one attribute that is parsed out)
- When stats possibly have multitudes of options, I'd try and make them "instanced". Ex: I have "Skill Focus" wherein you choose a skill. No reason to add 32 skill_focus_<skill> attributes, but instead just allow skill_focus_*
- Establish a "structure" to these stats right away. In WoD, you have "attributes" you have "skills". So, make it skill.skillname.
And the more I think about this, the more I'm going to fall into those layers I talked about! So, I'll stop there!
Good luck! And if you want to "look" at a system, Thenomain's is on github. I just don't imagine it'll make a lot of sense to you (or anyone else, without really, really digging into it).
-
I've coded numerous chargen for various systems over the years; WOD old and new, Cinematic Unisystem, Fudge, others.
I am now coding Shadowrun 5E, and let me say:
@Thenomain said in Is there a basics of CG out there somewhere?:
Chargen code exists because math is hard. I just went over the Shadowrun 5 chargen system and laughed my skinny white ass off.
Dear god almighty a day does not go past where the complexity of what is required literally doubles with a new revelation.
That said:
Encoding chargen is hard, and it's the least critical part of the stat system so it could be done last. IMO, it always should be.
I think the order you do things doesn't really matter, because IMHO chargen is mandatory and until its active a game shouldn't be open to players. Hand-statting sucks-- it requires the users to literally know everything possible and requires them to do no errors and staff to catch the inevitable errors and not make mistakes when setting up the stats. I hate hand statting.
I usually do the stat-system first: in some fashion I have a stat database and a set of functions that access it, get/set stats on people, do calculations (ie, for derived stats), and whatnot.
But I won't do that all at once, often. I'll code a room in chargen (but I still like rooms in chargen: but I don't like locks. I like rules-based check systems, but I think chargen should hold users hands somewhat and rooms are the best way to walk someone through step by step), a system that uses stats, and... stuff. By jumping from project to project I keep my own interest up, and that's what's most important.
-
Except that chargen is not mandatory. It's nice as hell, it saves brain cells from the Stygian abyss, but we used to get along without it. Hell, finding a WoD game where the chargen was complete wasn't usual until around the Haunted Memories days; woe be to staff who approved a character without double-checking the sheet beforehand.
But necessary? No. The only things you need on an RPG style game are a way to record values, a way to see values, and a way to resolve conflicts. Everything else is either management or is handled in the rule books that everybody playing has on their shelves.
I hate chargen code more than any other code in this insane hobby.
-
Suffice to say I completely 100% disagree with this. Chargen is absolutely mandatory. For reasons specified why hand-statting is unacceptable to me.
But I suspect this is gonna be one of those agree-to-disagree places I've coded on many games and have always done a fully automated chargen.
Until Shadowrun 5E, Buffy Cinematic Unisystem was the first I'd say was difficult: WOD in both eras is easy, its just data entry heavy. I admit data entry blows, but even if you skip chargen and go with get/set you need data entry if you want any kind of even basic validation.
-
@ixokai said in Is there a basics of CG out there somewhere?:
I think the order you do things doesn't really matter, because IMHO chargen is mandatory and until its active a game shouldn't be open to players. Hand-statting sucks-- it requires the users to literally know everything possible and requires them to do no errors and staff to catch the inevitable errors and not make mistakes when setting up the stats. I hate hand statting.
Players like to have control over setting their stats.
What many players may not remember is that there were once games where there was no chargen. What you did was apply for a character, which meant sending @mail to staff about what stats you wanted. Staff would then review the application, and stat the PC for you.
Back in the day, I hand-statted everyone as a staffer. I knew the commands; I knew if the points worked; and it allowed me to interact with the player prior to having them on the game. It was not a bad thing; it was a good thing. It required me to spend more time on the game than I may have wanted, and where there was a dozen apps in one day some people would have to wait longer -- sort of.
Frankly, if staff had to hand-stat everyone, we'd probably avoid a lot of problems, and the frustration of players not knowing how to use the CGen commands. And because most games require a review process anyhow, I don't think it would slow things down substantially.
-
The results of chargen seem more important to me: the +sheet.
If you can call on that, you can do everything you cam for.
And really, if players had to know the rules, at least a little, to make their character? Might help some.
Likewise, simple templates can be a great guide.
-
The results of chargen are varied. The most important thing to me is this: It can allow players - whether staff wants to or not, that's a different issue, but they have the choice if they want it - to make a character and go directly to the fun parts without waiting for approval first.
Without it, unless the game is stat-less or completely roster-based, they must wait.
-
@Ganymede said in Is there a basics of CG out there somewhere?:
@ixokai said in Is there a basics of CG out there somewhere?:
I think the order you do things doesn't really matter, because IMHO chargen is mandatory and until its active a game shouldn't be open to players. Hand-statting sucks-- it requires the users to literally know everything possible and requires them to do no errors and staff to catch the inevitable errors and not make mistakes when setting up the stats. I hate hand statting.
Players like to have control over setting their stats.
What many players may not remember is that there were once games where there was no chargen. What you did was apply for a character, which meant sending @mail to staff about what stats you wanted. Staff would then review the application, and stat the PC for you.
Sorry no. I full well the day when some games had no chargen, and I full well remember the endless problems hand-statting led to, from player mistakes to staff mistakes to staff failing to catch the mistakes and trying to clean them up later.
I'm not new to this.
Frankly, if staff had to hand-stat everyone, we'd probably avoid a lot of problems, and the frustration of players not knowing how to use the CGen commands. And because most games require a review process anyhow, I don't think it would slow things down substantially.
I don't know if this is rosy nostalgia or just that your experience was on simpler systems, but I think this wrong: I think there are notably less problems with chargen and notably less frustration with players (especially players who are not experts on the system).
My days on Buffy games before I wrote the chargen for Mystick Krewe... Hand-statting was a nightmare of frustration and complexity and mostly for the player. Just as ONE example.
-
@ixokai said in Is there a basics of CG out there somewhere?:
I don't know if this is rosy nostalgia or just that your experience was on simpler systems, but I think this wrong: I think there are notably less problems with chargen and notably less frustration with players (especially players who are not experts on the system).
I'm going to nitpick because: why not?
There's nothing inaccurate in my statement. If staff hand-statted everything, players would not have the frustration of having to figure out commands to generate their character.
But, as I also said: you are trading one headache for another. Now the onus is on staff to do the work. So, players have to play the waiting game, which is only really solved by a fully-automated CGen with no approval process.
My experiences are generally on WoD games, but I've found the same experience on non-WoD games. If you make a PC, someone has to check you out before you are fully-approved. To ameliorate the waiting game, there are policies allowing soft-RP to occur in OOC areas; however, you can't really enjoy the full game experience without approval.
My past experience isn't rosy; it's simply different. That doesn't mean my conclusions is wrong either; it's simply and reasonably constructed from different experiences, apparently.
And think about efficiency: if staff must generate PCs for players, they will become better at it. Some staff will be good at it, some will be bad, but those who are good will get better. After hand-statting about a dozen PCs, I could reliably crank one out in 2 minutes using MIAM's code. All I needed was a @mail with the stats.
But, as I said: I think players want control over the process. They may want to hand-wring over where to place their dots, and to shift their stats around on a whim. I know I do that, so I can see why others would too. But if you want that power, then you'll have to put up with the attendant problem of learning CGen commands.
So, you choose fruit, you live with fruit.
-
Maybe I am missing something but are cgen commands hard to figure out?
It might just be my being used to MU things but I have yet to encounter a cgen that the commands were difficult on. The only time I have ever had an issue code wise in cgen was a place where by tendency to put a space after the number I was setting the stat to caused issues. -
@ThatGuyThere said in Is there a basics of CG out there somewhere?:
Maybe I am missing something but are cgen commands hard to figure out?
Don't think 'hard' - although some are, or are buggy, etc. Think 'unfamiliar'. It's the same thing as nearly any new interface to a user, it takes a bit to figure it out.
I asked Theno once if character data was all in MySQL tables anyway so that we could just make a web interface for CGen. That'd be as ideal as I can think of it, because then we could have a character sheet taken straight out of a WoD book (or whatever) to let players fill out the dots, then magically they'd have the corresponding +sheet in-game. Unfortunately that's not possible with the codebase.
An alternative could be letting the users do the same same thing, of course, and have it spit the in-game commands ready to be pasted. Not as neat but it'd probably work.
-
@Arkandel said in Is there a basics of CG out there somewhere?:
@ThatGuyThere said in Is there a basics of CG out there somewhere?:
Maybe I am missing something but are cgen commands hard to figure out?
Don't think 'hard' - although some are, or are buggy, etc. Think 'unfamiliar'. It's the same thing as nearly any new interface to a user, it takes a bit to figure it out.
I asked Theno once if character data was all in MySQL tables anyway so that we could just make a web interface for CGen. That'd be as ideal as I can think of it, because then we could have a character sheet taken straight out of a WoD book (or whatever) to let players fill out the dots, then magically they'd have the corresponding +sheet in-game. Unfortunately that's not possible with the codebase.
An alternative could be letting the users do the same same thing, of course, and have it spit the in-game commands ready to be pasted. Not as neat but it'd probably work.
Actually... both of those are arguably possible with wiki integration. I've been able to make a wiki form that spits out data to C&P into the game, and with the ability to bring individual template variables over from the wiki to the game, provided the game goes with 'open sheet', this is entirely possible. It's in the works for 7D actually (even if that's presently on hiatus while I de-funk the brain).