MULTIPLAYER

Ideas for future addons and sequels

Moderators: jelco, bert_the_turtle, Chris, Icepick, Rkiver, Punisher Bass

Superpig
level4
level4
Posts: 658
Joined: Sat May 04, 2002 10:06 pm
Location: Right behind you
Contact:

Postby Superpig » Thu Dec 04, 2003 5:04 pm

NutCracker: Hard to believe possibly, but true. I started out with a BBC Microcomputer, typing games in from books (written in ACORN Basic). Not programming as such, but then I started... changing... things here and there. I'd see a line that said 'let lives = 5' and think Hmm, what will happen if I change that to 'let lives = 10?' Before long I was writing stuff from scratch; I remember my first program of any real size, that would request a number from the user, and then print an ASCII smiley face and speech bubble, with different speech depending on the number you pressed. :-)

Linux will be fun for you. The GCC compiler suite handles the C++ language very well (unlike certain versions of MSVC which don't tend to behave quite as the language says they should) - and I'd recommend you look into C++ rather than C, because object-oriented languages are becoming more and more common nowadays; so class theory - along with inheritance, polymorphism, and all the trappings - will be more useful in the long run than pure C. It's also a piece of cake to write C code if you know C++, you just have to try and remember which things you're not allowed to use.

Oh, and once you're happy with the language, look into SDL. Uplink uses it for basic graphics services under Linux; it's a free library which handles 2D graphics pretty well, and also provides a stepping-stone to OpenGL if you want to get into 3D. It's also cross-platform; a game I wrote on PC using SDL only took about four hours to port to MacOSX.

Katana Steel: Well, the DevCD is £30... it *is* quite intimidating when you've got the whole project in front of you, though. I'd reckon that a total rewrite would have to be a group effort, that it'd need all the DevCD owners to be working on parts of it (not least because they'd likely need to modify their own mods to cope with the new code).

I reckon we should leave the multiplayer for Uplink 2, personally. I don't think you can just 'stick it' onto Uplink 1, because it would unbalance the game (i.e. it would mess up the gameplay).
Superpig
- Saving pigs from untimely fates
NutCracker
level1
level1
Posts: 17
Joined: Mon Nov 24, 2003 2:41 am

Postby NutCracker » Fri Dec 05, 2003 2:50 am

yeh thats what i was gonna say once i made this post... i was gonna say they should make Uplink 2 Multiplayer, but introversion said not to count on uplink 2 anytime soon cause there is still a lot of life left in uplink. (they said..)
Hackers are the magicians of the computer...
Katana Steel
level2
level2
Posts: 131
Joined: Tue Sep 30, 2003 12:12 pm
Contact:

Postby Katana Steel » Fri Dec 05, 2003 8:20 am

Superpig, I do plan to buy the DevCD some
time after christmas(I've got plenty pressents(not sure with that spelling) to buy for my family).

But then I'll get into it.

BTW, on the "Uplink Bonus Disk", there's an Idea for a sequeal to Uplink called Uplink: Online. And I've read it through and I allready got an outline of how to do it.
Though it involves: asyncronous programming, TCP socket connections, and a lot of other things that I need to read up upon, ((TCP)RFCs just to name one).
-- as life grows older, I gain experience
Superpig
level4
level4
Posts: 658
Joined: Sat May 04, 2002 10:06 pm
Location: Right behind you
Contact:

Postby Superpig » Fri Dec 05, 2003 9:36 am

Oh, networking is fun. I'd recommend getting a free library (like SDL_Net) to do it for you rather than use plain sockets, though you can stick with the sockets if you wish.

The networking itself is piss easy compared to redesigning Uplink's architecture to allow for it, though. It's not just changing code you're looking at, it's changing many key technical decisions about the tokenization of the game's architecture.

But still, it's possible...
Superpig

- Saving pigs from untimely fates
Katana Steel
level2
level2
Posts: 131
Joined: Tue Sep 30, 2003 12:12 pm
Contact:

Postby Katana Steel » Fri Dec 05, 2003 9:49 am

yeah, setting up the Socket is easy,
but I close to nothing about asyncronous
programming, other than read a bit about it
in a manual for GTK+ somewhere,

I've got to boot my Linux up again in the near
future.

but in a not to far future, I'm going to learn to
C/C++ programming for real, not just the sorcery
that I know today.

Being a Sorcerer is okay, but I can't really wait to
become a Wizard at this.
-- as life grows older, I gain experience
Darksun
level5
level5
Posts: 6461
Joined: Sat Dec 07, 2002 7:08 pm
Location: 127.0.0.1

Postby Darksun » Fri Dec 05, 2003 3:58 pm

The good thing about uplink is that the architecture of the game supports multiplayer, even if the code doesn't

Just replace all the NPC agents with real agents online. Although there are problems - people wouldn't be able to do the trace missions, because everyone know how not to get traced. And it could end up being too easy.

If you changed these bits of the architecture, it would work as an online game. Good luck with coding it though...
Superpig
level4
level4
Posts: 658
Joined: Sat May 04, 2002 10:06 pm
Location: Right behind you
Contact:

Postby Superpig » Fri Dec 05, 2003 7:35 pm

Quote: from Darksun on 2:58 pm on Dec. 5, 2003[br]The good thing about uplink is that the architecture of the game supports multiplayer, even if the code doesn't

Just replace all the NPC agents with real agents online.


It's not nearly that simple.

Firstly, how do profile files end up working? Currently they store the entire world structure (locations, names, and types of machines, as well as their contents) along with all the user's own data. That would have to be cleanly seperated into world data and user data. The server would then store the world data. But what about persistance? When the server is shutdown, and everyone is disconnected, does the game end or can the game be reloaded when the server starts up again? What if all players aren't present when that happens?

Then you've got the fact that most game components don't seperate out their logic from their rendering. The server would need to do updating of all the machines in the virtual 'net, but it would need to do so without drawing them. Meanwhile, on the client side, the logic code would have to be stripped out so that machines simply get their stats from the server and then do the drawing.

Where would the line get drawn between client and server? If you start running a file_copier, is it tracked on your client or on the server? What's stopping the more morally corrupt (or more immersed, depending on how you look at it) players from hacking their .exe to make the programs run faster?

I'm not trying to attack or doomsay, I'm just saying, claiming that it's just 'replace all the NPC agents with real agents' is massively underestimating the task that's being proposed. The game design would have to be reworked to account for things like the problems with the trace mission that you noticed, and the code would have to be mostly rewritten.
Superpig

- Saving pigs from untimely fates
Darksun
level5
level5
Posts: 6461
Joined: Sat Dec 07, 2002 7:08 pm
Location: 127.0.0.1

Postby Darksun » Sat Dec 06, 2003 3:27 pm

I know its not that easy, I was just saying how the basic gameplay ideas could be transferred, even if the technicalities of it are complicated
Syrtis
level2
level2
Posts: 176
Joined: Fri Apr 18, 2003 4:44 pm
Location: In the anal probe you just stuck up your a$$
Contact:

Postby Syrtis » Sat Dec 06, 2003 6:57 pm

Quote: from Jackmn on 10:21 am on Dec. 2, 2003[br]VB barely qualifies as a real programming language.

Uplink is upwards of 50,000 lines of code. Fitting that with multiplayer code, and doing so in a clean manner is no simple task.

Plus Uplink is too simple to warrant online play.


STFU and stop dissing VB!
Image
NutCracker
level1
level1
Posts: 17
Joined: Mon Nov 24, 2003 2:41 am

Postby NutCracker » Sat Dec 06, 2003 7:32 pm

i never even noticed that post.
VB is a FULL language!!!
Anything can be done in it!!!!! You just have to no how just like in C except that some stuff is a little harder :P.
VB is able to make programs VERY easily and thats what its mainly made for.
Hackers are the magicians of the computer...
Superpig
level4
level4
Posts: 658
Joined: Sat May 04, 2002 10:06 pm
Location: Right behind you
Contact:

Postby Superpig » Sat Dec 06, 2003 9:15 pm

VB is a RAD (Rapid Application Development) language. Please note, however, the word grouping: 'Rapid Application-Development,' not 'Rapid-Application Development.' ;)
Superpig

- Saving pigs from untimely fates
User avatar
Jackmn
level5
level5
Posts: 1378
Joined: Thu Feb 07, 2002 5:21 pm

Postby Jackmn » Sun Dec 07, 2003 5:51 pm

VB is incredibly slow, inefficient, and cannot be used for any low-level direct-to-hardware programming.

VB lacks any cross-platform libraries (or compilers, for that matter), making it windows only.

VB is proprietary, meaning only Microsoft can control it.

VB is inferior in just about every way to c++/Delphi/other real languages. (Speed, memory management, expandability, portability.)



So before you say something as stupid as 'STFU and stop dissing VB!', try actually learning about the language you are defending. Bloody idiot.

(Edited by Jackmn at 4:55 pm on Dec. 7, 2003)
User avatar
NeoThermic
Introversion Staff
Introversion Staff
Posts: 6256
Joined: Sat Mar 02, 2002 10:55 am
Location: ::1
Contact:

Postby NeoThermic » Sun Dec 07, 2003 6:50 pm

Quote: from Jackmn on 4:51 pm on Dec. 7, 2003[br]
VB is inferior in just about every way to c++/Delphi/other real languages. (Speed, memory management, expandability, portability.)



Ok, speed... well, comparing VB and C++ is SO unfair... thats like comparing a Ford Ka to a F1 car... VB most probibaly equals Delphi. If I wanted to be a bastard and compair the way you do, Delphi is a slow as hell in comparason to ASM/binary...


Memory Management... Define that... ok, VB can be a bit clunky, but there are programs that allow you to remove all the common control requirements, although anyone who doesn't have the VB runtimes on their computer by now is a bit lacking in the times...

Or, if your trying to argue VB pointers [lack of] may I remind you that VB does actualy have pointers, just that 98% of people don't even know that... Its not a default type though, but to access pointers requires a bit of tweaking to make it a avalable type...

expandability. Three letters... API

portability. ok, i give you that one... but then again, if you are programming in Windows using VB, I doubt that you will have Linux envisioned as a target distrbution...


Oh, and as for inefficent, I think for making a quick GUI based app to generate some form of information based on input, VB fits quite well...

NeoThermic
User avatar
Jackmn
level5
level5
Posts: 1378
Joined: Thu Feb 07, 2002 5:21 pm

Postby Jackmn » Sun Dec 07, 2003 7:06 pm

Quote: from NeoThermic on 5:50 pm on Dec. 7, 2003[br]
Quote: from Jackmn on 4:51 pm on Dec. 7, 2003[br]
VB is inferior in just about every way to c++/Delphi/other real languages. (Speed, memory management, expandability, portability.)



Ok, speed... well, comparing VB and C++ is SO unfair... thats like comparing a Ford Ka to a F1 car... VB most probibaly equals Delphi. If I wanted to be a bastard and compair the way you do, Delphi is a slow as hell in comparason to ASM/binary...


Memory Management... Define that... ok, VB can be a bit clunky, but there are programs that allow you to remove all the common control requirements, although anyone who doesn't have the VB runtimes on their computer by now is a bit lacking in the times...

Or, if your trying to argue VB pointers [lack of] may I remind you that VB does actualy have pointers, just that 98% of people don't even know that... Its not a default type though, but to access pointers requires a bit of tweaking to make it a avalable type...

expandability. Three letters... API

portability. ok, i give you that one... but then again, if you are programming in Windows using VB, I doubt that you will have Linux envisioned as a target distrbution...


Oh, and as for inefficent, I think for making a quick GUI based app to generate some form of information based on input, VB fits quite well...

NeoThermic
You have full access to the windows api in c++. Regardless,the Windows API doesn't give you expandability. It gives you extra stuff to work with, but that isn't what 'expandability' is. It's the ability to easily modify your code to add new stuff in. VBs 'class module' system is far inferior to the class system of C++.

Delphi is based on Pascal, and Pascal can achieve speed close to that of C++. Delphi is BY FAR faster than VB. And you can write ASM functions in Delphi.

Memory management has nothing to do with the common controls. It has to do with your inability to simply allocate large amounts of memory in VB, and to do so in an efficient manner.

If creating a fast GUI is what you need, then Delphi serves the bill in a much more efficient manner than VB.

(Edited by Jackmn at 6:17 pm on Dec. 7, 2003)
Superpig
level4
level4
Posts: 658
Joined: Sat May 04, 2002 10:06 pm
Location: Right behind you
Contact:

Postby Superpig » Sun Dec 07, 2003 9:41 pm

Look, it stands to reason that if the language was useless it wouldn't be one of the cornerstones of the Visual Studio package. Even MS aren't going to waste money developing a product which is 'inferior' to another part of the same package (MSVC).

Comparing C++ and VB is pointless. They were created to meet different criteria, to do different things. VB is crap for games, this is true; it wasn't created for games. It's not a general purpose language. C++ is.

It's like trying to compare XML and Lisp, for crying out loud.

So could we stop the language sillyness, please? :)
Superpig

- Saving pigs from untimely fates

Return to “The Future”

Who is online

Users browsing this forum: No registered users and 6 guests