Help - Search - Members - Calendar
Full Version: Porting Nsrcg To Qt
Dumpshock Forums > Discussion > Community Projects
Matrix Monkey
Just wondering, have any efforts ever been made to port nsrcg to Qt or anything of the like?
If not, I'll get started on it grinbig.gif
The meaning of this is, I'd like to have a character creation/tracking tool available on 3 platforms, namely windows, linux and winCE/PocketPC. Something portable (like Qt) seems like the way to go.

Any thoughts?
phelious fogg
That would be great. Id love a new front end to it too. (Not a nessessity, but it would look much better with some work put into graphics.)
Shadow
Youshould post your idea in Projects. Mcmackie is a regular there and usually has a thread devoted to the NSRCG.
ElastiZombie
I'm working on a Shadowrun character generator that is currently using wxWindows
for it's cross-platform and GUI libraries. Although a friend of mine is developing his
own cross-platform libraries that I may end up switching to soon. 'course, I'm
building it from scratch instead of using NSRCG as a base, for various reasons.. I'd
like to see how yours turns out tho'... I've never used QT but I heard good things.
Fresno Bob
All I want is a Windows XP compatible version of NSRCG
Jetmaster
Funny... NSRCG works perfectly on my comp... and i'm running XP.
Kagetenshi
I get the sinking feeling that if I want a Mac version of Nsrcg I'll be writing it myself...

~J
Dvixen
Moving this to projects. smile.gif
ThatPaolo
Probably a stupid suggestion, but have you checked mono? (http://www.go-mono.com)
Matrix Monkey
QUOTE (Kagetenshi)
I get the sinking feeling that if I want a Mac version of Nsrcg I'll be writing it myself...

~J

No need. Qt is available for MacOS X as well smile.gif
Haven't looked into mono yet, but I will soon, thanks for the tip smile.gif
ElastiZombie
wxWindows also works with MacOS. At least that's what they say. I've yet to test it myself. Of course, there is that whole Java thing which is supposed to work on every machine ever conceived by the human mind.. :>
Connor
Matrix Monkey, if you need any help testing it or what not feel free to drop me a line. I'm not much of a Qt programmer, but I'm certainly willing to help out any way that I can.
Matrix Monkey
QUOTE
(Sourceforge) New Projects Pending Review
    * SRqt (UNIX name: srqt, registered 2003-08-22 07:20)


I'll get started on the groundwork probably sometime next month, when we get back from our honeymoon smile.gif
Connor: Hey, thanks for the support! I'll definitely take you up on that offer!

update: linkage! biggrin.gif
Matrix Monkey
Quick question: what's Fanpro's stand on the use of copyrighted material in such projects?
I'm not looking to abuse any intellectual property or anything, and AFAIK mcmackie's program gets an unofficial "nod", but to what limit can canon stats be used as a base for program input?
Also, I'm not looking to include any copyrighted imagery, flavor text or shadowtalk into my project. Just stats. The input will probably be somewhat like nsrcg's .dat files, only I'd like to keep track of TN# changes and such as well as combat/hacking/task/whatnot pool mods.
Voltage
Copyright highlights here

Scroll down to find the fair use act and figure out if what you're doing is okay or not wink.gif
ElastiZombie
I wonder though: Can you actually copyright a game system? And if so how much of it? I know that certain aspects can be protected by copyright, such as the name "Shadowrun" and the art work etc. The faq says that much at least, but what about the rest? All the rules and whatnot?
Adam
Actual rule mechanics cannot be copyrighted, but the expression of them can.
ElastiZombie
QUOTE (Adam)
Actual rule mechanics cannot be copyrighted, but the expression of them can.

What falls under the heading of "the expression of the rule mechanics"? Any physical expression of the rules such as the books, games, movies or what have you produced by WizKids/FanPro? What if you produce an identical game rules-wise but with no use of any of their characters, setting, artwork, trademarks, etc? Would that be legal then?
Adam
QUOTE
What falls under the heading of "the expression of the rule mechanics"? Any physical expression of the rules such as the books, games, movies or what have you produced by WizKids/FanPro?

Yes. For example, you can write your own dice pool d6 mechanic system. You may not duplicate FanPro's text explaining it, except under Fair Use laws.

QUOTE
What if you produce an identical game rules-wise but with no use of any of their characters, setting, artwork, trademarks, etc? Would that be legal then?

Most likely, yes. As always, consult a lawyer first.
ElastiZombie
QUOTE (Adam)
Actual rule mechanics cannot be copyrighted, but the expression of them can.

What falls under the heading of "the expression of the rule mechanics"? Any physical expression of the rules such as the books, games, movies or what have you produced by WizKids/FanPro? What if you produce an identical game rules-wise but with no use of any of their characters, setting, artwork, trademarks, etc? Would that be legal then?

Sorry if this is a double, but my last reply didn't show up.
ElastiZombie
QUOTE (Adam)
QUOTE
What if you produce an identical game rules-wise but with no use of any of their characters, setting, artwork, trademarks, etc? Would that be legal then?

Most likely, yes. As always, consult a lawyer first.

Thanks for the good thoughts. Had experience with this sort of thing before?
Adam
I work full time in the game industry, so I'm relatively familiar with the legalities that surround it. I am, however, not a lawyer. smile.gif
ElastiZombie
QUOTE (Adam)
I work full time in the game industry, so I'm relatively familiar with the legalities that surround it. I am, however, not a lawyer. smile.gif

Not that there's anything wrong with that. biggrin.gif

*looks around nervously for lawyers*
Spookymonster
Someone asked this earlier, but I don't recall seeing a reply:

Why not Java? More people have the Java runtimes installed than QT. I've never coded in QT, but I've heard the Windows implementation is buggy and not as full-featured as the *nix version (although things may have changed).

I'll gladly through my hat into the ring as a novice Java and Perl/Tk coder if you need an extra pair of hands. As a mainframe (z/OS) system programmer, I have a decade's worth of procedural programming experience under my belt (mainly REXX, with a few heaping chunks of COBOL, PL/I, and Assembler), but little practical experience coding for PCs. I'd welcome the opportunity to develop my chops smile.gif.
mcmackie
Lessons learned designing / implementing NSRCG

1) Databases:
I use a flat file structure that is very simple in concept but flexible enough for expansion (Thanks Adam). You can edit the data files with a simple text editor. This has pluses and minuses. It has no real relational abilities so I have to duplicate entries for compatibility i.e. cyberdecks have duplicate entries in the decks listings.
The other alternative is relational databases e.g. Access. The problem is not everybody can enter or even have access the correct programs. If you chose this approach, be prepared to enter everything yourself. If you want example of how confusing this can become: Etools for D&D.
Recommendation: Use the NSRCG DAT files for your data files. This has two advantages: one, you won’t have to enter the data yourself and two, we won’t have two competing standards. I wouldn’t have half the data without the assistance of the rest of the community. * Now supporting German. cool.gif !

2) Transactions:
At first I didn’t have this concept in mind when designing but you need the ability to turn all modifications to your character into a transaction based schema. For example, you get a pair of cyberlegs: Changes to: modified quickness, Balistic armor, combat pool, available nuyen, magic ratings, etc. Then you change your mind and don’t want them. Now you have to roll all those changes out of the character. If you focus on a linear step A to step B approach, you could avoid those issues BUT the characters would be locked in. An example, you chose a race and go to the next step… Now you can NEVER change race ever again… Not a good approach.
I’ve said it was easier to create a D&D chargen than a SR3 chargen and NOBODY believes me… Just try and create one. biggrin.gif
Recommendation: Make everything a transaction with the ability to rollback the changes if necessary.

3) Classes
Every page you see in my chargen is both a form and a class. You should support Object Oriented programming classes. This will aid with the transaction process and simplify your programming. It requires a bit more upfront work but it’s worth it.
Recommendations: Use Classes for everything like augments, races, gear, lifestyle, etc

4) Coding
My experience is that are MANY people who will offer advice like “This sucks!” but won’t tell you how to fix it or offer real constructive advice. Be prepared to be very patient. Also, when you look around for people to help you actually code the thing, there will be few to none to actually aid you.
Languages are not as important. As a matter of fact, be prepared for a holy war as everyone is convinced that their approach is the only sane one. Since you’ll be doing the work, you get to chose. You might find more helpers familiar with JAVA.
Recommendation: Be prepared to go it alone… I stand in awe of the people who coded PCGen. Not just because of the skill involved but rather because somebody actually managed to get a team of people together who actually wanted to work on the thing!

5) Import and export
This one should be XML. People aren’t as familiar with it but it offers the possibility of real interoperability / exchange. It is more difficult but as the skillsets of people and toolsets of programmers improve, so should it.
Recommendation: XML

Good luck.
mcmackie
Spookymonster
QUOTE (mcmackie @ Sep 1 2003, 02:39 PM)
2) Transactions:
At first I didn’t have this concept in mind when designing but you need the ability to turn all modifications to your character into a transaction based schema.  For example, you get a pair of cyberlegs: Changes to: modified quickness,  Balistic armor,  combat pool, available nuyen, magic ratings, etc.  Then you change your mind and don’t want them.  Now you have to roll all those changes out of the character.  If you focus on a linear step A to step B approach, you could avoid those issues BUT the characters would be locked in.  An example, you chose a race and go to the next step… Now you can NEVER change race ever again… Not a good approach.
I’ve said it was easier to create a D&D chargen than a SR3 chargen and NOBODY believes me… Just try and create one.  biggrin.gif
Recommendation: Make everything a transaction with the ability to rollback the changes if necessary.

Just to clarify: do you mean implementing a full transaction manager, resource manager, rollback log, etc. setup? Is this what you did with NSRCG? Or did you 'roll your own'? Either way, it seems like a bit of overkill for a non-distributed application.

I mean no offense - I'm just curious how one would go about implementing transactions on a stand-alone application.

[edit] Nevermind. Just stumbled across a solution on JavaJunkies.org using the Connection interface in java.sql. Fairly straightforward - no distributed components, no managers. Definitely an interesting bit of mojo. Thanks for the tips!
mcmackie
Transactions:
When you see a +1STR (or similiar) embeded in the Cyber.dat file, this is a key to a subroutine that handles this modification. If I remove the cyber, a "-1STR" goes to the same routine.
In other words, all modifications should be bidirectional. Able to handle both additions and removals.
Yes, I modified my own... If you can find a better approach, use it... biggrin.gif
Matrix Monkey
QUOTE (Spookymonster)
Someone asked this earlier, but I don't recall seeing a reply:

Why not Java? More people have the Java runtimes installed than QT. I've never coded in QT, but I've heard the Windows implementation is buggy and not as full-featured as the *nix version (although things may have changed).

Sorry for the late reply, but I've been busy with the wedding and honeymoon and all...

The main reason I'm going for Qt is just plain personal preference.
Also, Qt uses native code instead of emulation layers, virtual machines and such which will probably speed up the application. Windows users get their familiar windows look, linux users get their preferred window style etc.

I'm not sure about the 'buggyness' of Qt on windows platforms, but I would personally feel more comfortable using Qt.
The fact that many users won't have the interpreter installed is not really a factor I think, it's freely distributable for non-commercial purposes so I'll just pack it in with the app, or offer a separate download.
Kagetenshi
Any chance you'll be supporting Sprites and Daemons?

~J

Postscript: the Marriage program has a multiplier much, much larger than the one you seem to have applied, at least unless you tell neither party's parents about it beforehand.
Matrix Monkey
QUOTE (Kagetenshi @ Sep 7 2003, 08:04 PM)
Postscript: the Marriage program has a multiplier much, much larger than the one you seem to have applied, at least unless you tell neither party's parents about it beforehand.

For now, it's just a x2 smile.gif

Ideally, anything needed for any "base archetype" would be implemented. This means vehicle/gun/spell/whatnot design, as well as cyberdecks and programs. (so yes, I'll try to include sprites and daemons as well smile.gif)
Connor
So Matrix Monkey, any progress on the start up of this project? My interest in assisstance hasn't waned, so I was just wonder what the status was.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Dumpshock Forums © 2001-2012