Character Developement Ideas Requested

Woas

Mongoose
Just soliciting some advice. One of the players in my weekly Traveller game I ref has a computer-savvy character. He asked if in his character's down time (like during jump and what not) instead of putting time towards training a skill, if it would be possible for his character to work towards writing new/better code for his intrusion software an up the rating. I thought the idea had a cool Neuromancer vibe to it, what with the character developing his own ICE Cracker and all. Good way to explaining how he got the software in the first place.

Have any of you done anything similar to this situation and have any advice on how to handle this (how long it should take; based on what numbers)? I mean on one hand it seems like a long term type of investment. But I don't want to just blow the opportunity and make it impossible and have him 'just buy it'.



My initial thought was a 'components' list. Get a list of say a dozen (just made this number up for sake of example) cyberpunk technobable words, and require a successful Computer-Education check (difficult or formidable taking 1d6 days or there about) for each one. Success means that component of the software is done and the next part can be worked on... failure means no progress was made (or maybe with a really bad roll, like with a -6 effect, progress is lost).

Anyway, would love to hear what you think,
Woas
 
It seams that the length of time required and the difficulty should both increase based on the softwares rating or you might consider using the cost as a basis for the time required and using the rating to determine the difficulty.

I would think that if you want to get extremely realistic, some software may be more easier or more difficult to write and some software may take longer or shorter to write. Example: Creating database software might be easier to write than creating navigation software but it also might take longer to produce since you have to gather and input all the data.

Certain other professionals might also need to be brought in. Language experts if writing translation software, experts in the field when writing expert software.

The roll for success might reflect success or failure, but I suggest using the effect to produce results like the character thinking the software works but there is a flaw. Maybe at some point in the future when someone attempts to hack the system, the software successfully keeps them out but now it won't let anyone in and the player has to hack his own computer.

Now, as far as the software you are inquiring about
1) are you writing the software from scratch or
2) are you trying to upgrade the code you already have?
2A) do you have access to the source code?
2B) what is the rating of the current software?
3) what rating are you trying to archive?
4) how much do you and the player want to role play this? It could be as simple as a single role to decide success and time required or you could break it up so that there are multiple rolls and each jump there is some role playing.

EDIT: please ignore my improper use of the word 'you' when I should have been referencing a character.
 
It sounds interesting... for me it all depends on his 'computer' skill rating and what you interpret that skill to encompass.

To use 'real world' analogies, for example, it's far easier to 'just buy' software, in most cases, even for someone who can program to quite a high degree, so long as the application is the kind of thing people regularly buy. In the OTU this kind of software does indeed fit that category, it would seem, so I wouldn't be too quick to automatically make the task cheaper and easier than just buying it.

I hate to say it but essentially it's the difference between handcrafting an individual item and buying a mass-produced version of the item; economies of scale mean that it's usually far, far cheaper to buy the mass-produced one.

However, what you want to do is encourage his idea (because it's a good one, for one thing) so you may need to fudge some of that. Perhaps he ought to get a bonus above and beyond what he would normally have using a 'shop bought' version of the same software?
 
Woas said:
Just soliciting some advice. ..
Anyway, would love to hear what you think
Woas

Hi Woas,

Here's something for you to read.

Hope this helps.


Ian


Consider specialisations for a Computing (aka ICT) character
Black Hat hacker
White Hat Hacker
(see How to become a hacker, http://catb.org/esr/faqs/hacker-howto.html)
Communications expert
Project manager
Programmer options:-
* Technical stuff (device drivers, operating systems)
* Commercial stuff (accountancy all admin stuff etc)
* Entertainment software
* Spaceship (avionics?) stuff

Improving software.
You'll need to know...
1. The right kind of programming skill (technical / commercial / entertainment / spaceship aka avionics)
2. The subject affected (Admin, Artist - Entertainment, not sure what the right topic for spaceship avionics would be).

Some years back I maintained part of the ACCU's website and as part of my work there wrote a web page "Learning a programming language". I've appended it to the bottom of this page to give you ideas.

Learning a programming language.
Ask yourself:

* Do you really need to learn it?
* Do you really want to learn it?
* What do I expect to gain from learning it?
* How much effort am I prepared to invest?
o Time
+ Full-time.
+ A day a week
+ A few hours a week
+ An hour a day
o Money - how much is my time worth?
+ Almost nothing. Tough option. Use the internet and computer magazines for resources. Use the online help for the tools that you use. Save money by using your local library (you may need to make a reservation or request an inter-library loan). Or try a local university. They might have a second hand book section.
+ Thrifty. Enough to buy one book a year. Start with a proper book for beginners. Don't automatically go for an all-in-one tutorial/reference. Use the online help for the moment and buy a reference book later. You'll have a better idea about which reference book(s) you'll want later. Go to the book's web site and print a copy of its errata.
+ Enough. Enough to buy books as and when they are needed.
+ Generous. Enough to buy more books than you can read thoroughly. Enough to broaden your horizons.
+ Lavish. Enough to pay for commercial training courses, attending conferences, paying for support contracts and/or consultants.

Do some preparation:

* Are there any local experts that can help?
* What are the resources available to me?
o Books. Search ACCU book reviews. Ask for opinions.
o Reference books. Everyone makes mistakes. Your best bet is a decent reference book that has its errors made public on its website.
o Recommendations:
+ Beware of experts. They may have learnt the language years ago and recommend books that were good at the time but are now obsolete or out of print.
+ Beware of beginners. They may recommend books that are easy to read but are full of errors.
o UseNet comp.lang. newgroups and their FAQs.
o Magazines
o Internet discussion
+ Mailing lists. ACCU has some.
+ Web site forums.
o User groups such as ACCU.
o Also : Tools, Training courses.

Seek advice:

* Look for appropriate mailing lists or usenet newsgroups.
* If the newsgroup has a FAQ read that before posting your question.
* Be polite.
* Be appropriate. If you're not sure you're in the right place, ask to be directed to a more suitable mailing list or newsgroup.
* Offer to give more details about your problem. At best you'll deal with experts, most of which aren't psychic and don't know your current circumstances.

Questions, answers.

* Which programming language do I learn?
o It depends on what you want to achieve.
o Its best to start off with a language that isn't too demanding and can be used to do things that you will find personally useful.
* What is the BEST programming language?
o To my knowledge there is no programming language called BEST.
* What kinds of programming language are there?
o Quite a variety. They can be categorised according to paradigm
* Help! I can write simple programs... but whenever I do something tricky or complex, everything goes horribly wrong!
o Are you trying to do something that is too difficult? Try solving a simpler problem.
o Take a look at your design. Maybe that needs improving. Explain your design to someone else. They might suggest alternative approaches.
o Maybe you need to improve your programming technique. Keep a note of your difficulties and how you fixed them. Is there a common theme?
o Maybe you need to improve your design skills. Read, think and write about design.

What next?

* Print this article and write your answers on it.
* Take a look at the links on the ACCU's website. You should find something useful.
* You'll need a tool (compiler, interpreter it depends on which language you've chosen). It might already be installed on your system (if you're using Linux ). You might need to buy the tool or it might be available for free download.
* If you're learning... look up the language online (I've removed the links given here as they were obsolete.

Copyright © The Association of C & C++ Users 2001-2004. All rights reserved.
 
Gaidheal said:
I hate to say it but essentially it's the difference between handcrafting an individual item and buying a mass-produced version of the item; economies of scale mean that it's usually far, far cheaper to buy the mass-produced one.

I agree with you and disagree with you, depending on the license the license applied to the program's source code (for novices, source code = the blue prints software is made from).

A proprietary license for a piece of software means you can't inspect its internals, improve on it and pass those improvements on.

For open-source/free software, see:-
http://www.gnu.org/licenses/licenses.html#GPL

A piece of free software has the program's source code available. This means you can build on other people's work as long as you share your improvements with the free software community.

It means faster development times because, say you were creating an innovative navigation avionics suite, as long as a free software avionics suite was available - you would take the suite's source code, study it and then write your improvements to the software provided.
 
Actually, a truism in software, especially hackers ( ;¬) ) is "if I have your code, I have your code".

In other words, source code is nice but executable code will do just fine and certainly can be reverse-engineered if required.

Anyway, none of that's really here or there; there are off-the-shelf improved versions of the software he wants and they will be cheaper to purchase than engineering his own, in all likelihood. Not sure where you were going with the open / closed source argument, to be honest.
 
Gaidheal said:
Actually, a truism in software, especially hackers ( ;¬) ) is "if I have your code, I have your code".

In other words, source code is nice but executable code will do just fine and certainly can be reverse-engineered if required.

Anyway, none of that's really here or there; there are off-the-shelf improved versions of the software he wants and they will be cheaper to purchase than engineering his own, in all likelihood. Not sure where you were going with the open / closed source argument, to be honest.

I've done my fair share of reverse engineering (680x0 assembler, Sinclair QL, approx 5 years worth). Reverse engineering executables can be done but it takes time. If you have the source code (as in open source) then its easier to fix/upgrade the software in question.
 
Depending on how it was written, certainly but often the actual code in service departs quite a bit from the supposed source code.

I'm not saying that working with disassembled code or (Eris forfend!) actual machine code is easy but it's not impossible either and has the advantage of being the actual code not the idealized version which might not have worked, in reality but has never been altered to come into line with the compiled executable. Open Source does of course work excellently against this very trend but I think imagining that Open Source will be the way of the OTU is far fetched given that it has limited use even here in the 20th C.

In any case, even with access to easy to read source code, it's probably going to work out more expensive (in terms of time spent working; your own time is not worthless) than buying a certified off-the-shelf product.
 
another thing to think of it might not be quite so hard if there is a scripting language or macros for it then the existing software can be altered to suit to some extent but still takes some skill though.
 
Back
Top