ID:153690
 
I was curious if anyone had given any thought to simulating a network of computers in a game. Any RPG set in a modern/future era should probably at least consider it. Anything even remotely resembling shadowrun or cyberpunk darn well better have it laid out! =P

Currently I have a basic simulation up and running that presents a very dumbed down modelling of the current DNS model that is in large use today. Amazingly enough, it actually works.

Anyway, what (if at all) have the rest of you come up with, and would you use such a system if it was put into a library/demo (not just the DNS, networking in general)?
Quite a few of my games were to have in-game networking down to excruciating detail. For example, my C++ space sim will even go so far as to have computer objects aboard each ship that store software programs which are designed, developed, and scripted by the players themselves. Ships with compatible operating systems (yep, that's modelled too!) can attempt to breach the security of another ship and install malicious software that can do anything from trigger a self-destruct (assuming the ship has the ability to be self-destructed!) to overload the ship's master computer and causing it to drift helplessly in space (assuming it lacks any hardware controls, that is -- hardware components can do anything that software can do, and a bit more, but unlike software they take up valuable space aboard the ship).

CATs, before I also graduated it into C++, had an entire computer hacking system designed to allow covert operatives access to a base's computer network in an effort to circumvent any security. The C++ version will have a similar system as well.

TekForce, which is stale but still in BYOND, is also supposed to have an extensive "NetRunning" aspect not unlike the 'Net in Cyberpunk 2.0.2.0., with netrunners jacking into the Net with decks and performing activities close to open terrorism through it.

There are a couple projects I've never mentioned before that have integrated networks and stuff like that too.


Anyway, what (if at all) have the rest of you come up with, and would you use such a system if it was put into a library/demo (not just the DNS, networking in general)?

Well, I dunno if I'd use a library, because simulated networks are fairly niche concepts. Designing them from scratch in any particular game would probably be a lot better -- I'd rather see a bunch of vastly unique and slightly under-implemented network systems than one carbon-copied complete network system, since it would make less "Oh, yay, a game using the exact same gameplay as the last one" responses.
In response to Spuzzum
Spuzzum wrote:
Quite a few of my games were to have in-game networking down to excruciating detail. For example, my C++ space sim will even go so far as to have computer objects aboard each ship that store software programs which are designed, developed, and scripted by the players themselves. Ships with compatible operating systems (yep, that's modelled too!) can attempt to breach the security of another ship and install malicious software that can do anything from trigger a self-destruct (assuming the ship has the ability to be self-destructed!) to overload the ship's master computer and causing it to drift helplessly in space (assuming it lacks any hardware controls, that is -- hardware components can do anything that software can do, and a bit more, but unlike software they take up valuable space aboard the ship).
I'm attempting such a thing in my game but every computer componernt can be taken out an reconstructed.
CATs, before I also graduated it into C++, had an entire computer hacking system designed to allow covert operatives access to a base's computer network in an effort to circumvent any security. The C++ version will have a similar system as well.

TekForce, which is stale but still in BYOND, is also supposed to have an extensive "NetRunning" aspect not unlike the 'Net in Cyberpunk 2.0.2.0., with netrunners jacking into the Net with decks and performing activities close to open terrorism through it.

There are a couple projects I've never mentioned before that have integrated networks and stuff like that too.


Anyway, what (if at all) have the rest of you come up with, and would you use such a system if it was put into a library/demo (not just the DNS, networking in general)?

Well, I dunno if I'd use a library, because simulated networks are fairly niche concepts. Designing them from scratch in any particular game would probably be a lot better -- I'd rather see a bunch of vastly unique and slightly under-implemented network systems than one carbon-copied complete network system, since it would make less "Oh, yay, a game using the exact same gameplay as the last one" responses.

My game has its own type of network. (mainly due to my ineptness at real world networking) I really am butchering the concept of an ip...
In response to Exadv1
I'm attempting such a thing in my game but every computer componernt can be taken out an reconstructed.

As in, building a computer by inserting RAM cards, a disc drive, etc.? That's almost exactly how it'll work in the space sim. Every computer acts as a container that has various modules installed into it. (Sabotaging a computer, aside from just shooting it, is as simple as opening up the case and tearing out one of the cards. Of course, military master computers usually have plenty of security features to make this less feasible, such as energy fields, live current running through the case, alarms that trigger automated weapons, etc.)

The game is based on one fundamental principle -- ships are just masses of metal that have components installed in them and tied together in an effort to meet obstacles put forth by life in space. For example, you can stick engines onto the back of a hollow hull, but all that will do is make a completely useless hull with engines stuck to it. To actually make the ship work, you have to link the engines to electrical wiring and a reactor core, and then set up consoles (software-based, requiring a master computer installed somewhere on-board) or controls (hardware-based, which require far more space than a software-based system) that adjust the electrical input to the engine, which in turn controls the thrust imparted. And even the placement of the engines is crucial -- engines accelerate the ship based on the ship's centre of mass, so if only one engine works, the ship is going to spin like a carousel (or, more accurately, a Spirograph).

(The way I currently have the system planned is that when the designer creates a console/control, he/she creates an entire set of keyboard and joystick bindings which activate the commands in the software's/hardware's script. Thus, someone who walks up to a helm control could find that the designer made speed controls on the numeric keys 1 through 0, and that the flight controls were tied to the joystick.)

Software on each ship can be shared between any ship that has compatible hardware and a compatible operating system (which is designed for the hardware, incidentally). Data is represented as megaquads -- most discs can store around 5 megaquads, and a master computer could store as much as a gigaquad.

Technically speaking, you can't "take out" a hardware component. The hardware components on a ship are installed and welded in. But you could always cut out, destroy, or disassemble a component. (And since ships don't have an abstraction like "health", you would have to tear a ship to pieces to truly destroy it. Thus, if you chopped a ship in half, each piece would still function as a working independent entity, provided each half had the necessary power, engines, controls, etc.

There are basically two reasons why I'm making ship design so nitty gritty -- one, because serious sci-fi junkies that like programming will love it, and two, because it saves me a lot of hassle trying to make a control interface that everyone likes.

Of course, hardware and software isn't the only thing that makes the ship and the game. There are plenty of objects that you insert into your ship that have absolutely no scriptable aspects but are critical -- seats, beds, and the hull to name a couple. And then barring those non-scriptable objects, there are materials and commodities (anything ranging from toxic waste to scrap metal). Last but certainly most important come the different forms of life, including sentient lifeforms like humans.

Wow, I sure got Off Topic here. But I love ranting about what I plan my space sim to become. Mark my words, I'll never release it as anything less, which means that if it doesn't live up to my expectations, then it won't get released at all. (Actually, the same is probably true of all of my other projects.)
In response to Spuzzum
Wow. That space sim sounds AWESOME. You'd need either a lot of time or a large team of programmers to ever get anywhere with it (making it or playing it!), but it sure sounds neat! =)
In response to Spuzzum
Spuzzum wrote:
I'm attempting such a thing in my game but every computer componernt can be taken out an reconstructed.

As in, building a computer by inserting RAM cards, a disc drive, etc.? That's almost exactly how it'll work in the space sim. Every computer acts as a container that has various modules installed into it. (Sabotaging a computer, aside from just shooting it, is as simple as opening up the case and tearing out one of the cards. Of course, military master computers usually have plenty of security features to make this less feasible, such as energy fields, live current running through the case, alarms that trigger automated weapons, etc.)

The game is based on one fundamental principle -- ships are just masses of metal that have components installed in them and tied together in an effort to meet obstacles put forth by life in space. For example, you can stick engines onto the back of a hollow hull, but all that will do is make a completely useless hull with engines stuck to it. To actually make the ship work, you have to link the engines to electrical wiring and a reactor core, and then set up consoles (software-based, requiring a master computer installed somewhere on-board) or controls (hardware-based, which require far more space than a software-based system) that adjust the electrical input to the engine, which in turn controls the thrust imparted. And even the placement of the engines is crucial -- engines accelerate the ship based on the ship's centre of mass, so if only one engine works, the ship is going to spin like a carousel (or, more accurately, a Spirograph).

(The way I currently have the system planned is that when the designer creates a console/control, he/she creates an entire set of keyboard and joystick bindings which activate the commands in the software's/hardware's script. Thus, someone who walks up to a helm control could find that the designer made speed controls on the numeric keys 1 through 0, and that the flight controls were tied to the joystick.)

Software on each ship can be shared between any ship that has compatible hardware and a compatible operating system (which is designed for the hardware, incidentally). Data is represented as megaquads -- most discs can store around 5 megaquads, and a master computer could store as much as a gigaquad.

Technically speaking, you can't "take out" a hardware component. The hardware components on a ship are installed and welded in. But you could always cut out, destroy, or disassemble a component. (And since ships don't have an abstraction like "health", you would have to tear a ship to pieces to truly destroy it. Thus, if you chopped a ship in half, each piece would still function as a working independent entity, provided each half had the necessary power, engines, controls, etc.

There are basically two reasons why I'm making ship design so nitty gritty -- one, because serious sci-fi junkies that like programming will love it, and two, because it saves me a lot of hassle trying to make a control interface that everyone likes.

Of course, hardware and software isn't the only thing that makes the ship and the game. There are plenty of objects that you insert into your ship that have absolutely no scriptable aspects but are critical -- seats, beds, and the hull to name a couple. And then barring those non-scriptable objects, there are materials and commodities (anything ranging from toxic waste to scrap metal). Last but certainly most important come the different forms of life, including sentient lifeforms like humans.

Wow, I sure got Off Topic here. But I love ranting about what I plan my space sim to become. Mark my words, I'll never release it as anything less, which means that if it doesn't live up to my expectations, then it won't get released at all. (Actually, the same is probably true of all of my other projects.)


Ironically that's the same prinicple my ganme is designed upon. If you don't like how the security system works well make your own. Maybe it would be more feasible if we workjed semi-together to achieving something like this. (I have a few good ideas) It would help bring this concept to BYOND faster along with another dimension of interactivity between the world and player.
Of course.. my Cyberpunk RPG (currently sitt'in on the back burner) will have an extensive network, LAN, WAN, Internet, BioNet even setup. Got to have something for the Netrunners to do! ;)

My current planned approach will be more visual as I plan to create entry nodes and a Virtual Cyberspace. Mainframes and other computer component access ports will be visually represented in the game by various abstract and not so abstract icons. Once once you've broken off from cyberspace then you'll be presented with a grid of various nodes with different ICE and non-ICE systems. The nodes will be color coded as to difficultly level and what is stores or ran on those computers. Heavy use passcodes and intrusion software will be the way the Netrunner hacks into the different nodes. I'm going more for a visual dumbed down version of the network as to make it more game play like than techinical. But I've also toyed with the idea same as Spuzzum for allowing a scriptable software in the game that allows you to write your own programs and store them on the data nodes.

LJR