C Board  

Go Back   C Board > Community Boards > General Discussions

Reply
 
LinkBack Thread Tools Display Modes
Old 04-15-2008, 06:46 AM   #1
Woof, woof!
 
zacs7's Avatar
 
Join Date: Mar 2007
Location: Australia
Posts: 3,295
OpenSource competitive network game

Hello, hello!

I'm currently in the designing stage of my game -- I really want to make it OpenSource. However, it's primarily a competitive network game. Is it possible to create this game, as OpenSource with minimal risk of cheaters (More than if it were closed source). ie, someone could make a proxy, since the netcode would be available and pretty much do anything.

That was certainly a cloud above the release of the 'Quake 3' source -- many commercial games still used the engine.

I'm keen on ideas!
Thanks in advance.
__________________
"I.T. gets the chicky-babes" - M. Kelly
bakefile | vim

Last edited by zacs7; 04-15-2008 at 06:52 AM.
zacs7 is offline   Reply With Quote
Old 04-15-2008, 07:19 AM   #2
(?<!re)tired
 
Mario F.'s Avatar
 
Join Date: May 2006
Location: Portugal
Posts: 5,661
I faced the same problem with my current project, since it is also due to go Open Source once beta is over. The solution I found, on my particular case, was to separate the game in 3 parts. Only two are open source.

The Client Application is OS.
The Server Application is OS.
The Game Engine is Closed Source.

The Game Engine on my case is really just a couple of dlls. It contains the game rules and algos as well as the access routines to the database that necessarily only operate through validation. These DLLs are only meaningful to the Server Application, naturally.

My plan is to do things in stages.

- The client application is the one to go OS first. I'm building a rather complete Client Application, so I doubt anyone will want to code one themselves. However, they may want to port the current code. And maintain the ports as the game features increase. I may also eventually remove myself from the Client Application entirely.

- The Server Application goes OS if and when I realize there is an interest in it. The game user base one day justifies the need to run concurrent games with their own administrators who may want to tweak the code, or I may have trouble adding features to the game as I start to concentrate on other things.

- The Game Engine will stay closed source and I will pick myself those interest in working on it with a final team no larger than 5 people, including me.

We are coding different beasts. Mine's a large scale PBeM Multiplayer turn base strategy game. But maybe this will help you somehow.
__________________
Originally Posted by brewbuck:
Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.



Last edited by Mario F.; 04-15-2008 at 07:24 AM.
Mario F. is offline   Reply With Quote
Old 04-15-2008, 07:25 AM   #3
Banned
 
Join Date: Nov 2007
Posts: 678
i was also trying to write a simple networked pong game (2 player).
i was thinking that i will write one program which will first try to connect, and if failed, will become the server.
no separate server-client versions.
i will try to finish it soon and then post my *great* creation in games section! behold!

ps ps ps: was that an off topic? was that a hijack?? >_<
manav is offline   Reply With Quote
Old 04-15-2008, 09:14 AM   #4
Malum in se
 
abachler's Avatar
 
Join Date: Apr 2007
Posts: 3,188
Well, define cheating?

OS will always risk people writing bots, but CS has te same problem it just takes not much longer.
__________________
Until you can build a working general purpose reprogrammable computer out of basic components from radio shack, you are not fit to call yourself a programmer in my presence. This is cwhizard, signing off.
abachler is offline   Reply With Quote
Old 04-15-2008, 11:12 AM   #5
Cat without Hat
 
CornedBee's Avatar
 
Join Date: Apr 2003
Posts: 8,492
Game security against cheating comes in two flavours.

1) Server-side security based on analyzing the player's incoming data. This is secure, but unreliable. There are many ways of cheating that can't be detected, such as information hacks. (Basically, any information the client has, it can be forced to give the player.)
The solution is to make the clients as thin as possible, i.e. give them minimal data and let the server interpret low-level commands. The obvious disadvantage of this is the highly increased traffic, and consequentially, latency.

2) Client-side security against manipulation of the game state. If your client is open-source, this is a hopeless endeavor.
__________________
All the buzzt!
CornedBee

"There is not now, nor has there ever been, nor will there ever be, any programming language in which it is the least bit difficult to write bad code."
- Flon's Law
CornedBee is offline   Reply With Quote
Old 04-15-2008, 01:15 PM   #6
Malum in se
 
abachler's Avatar
 
Join Date: Apr 2007
Posts: 3,188
I agree with the second point you made, but on the first, traffic is usually reduced when using server side procesing, but server load is increased, which results in latency issues. Bandwidth is reduced because the server no longer sends the info on things the client cant 'see'.
__________________
Until you can build a working general purpose reprogrammable computer out of basic components from radio shack, you are not fit to call yourself a programmer in my presence. This is cwhizard, signing off.
abachler is offline   Reply With Quote
Old 04-15-2008, 01:48 PM   #7
(?<!re)tired
 
Mario F.'s Avatar
 
Join Date: May 2006
Location: Portugal
Posts: 5,661
server load is manageable and usually where admins like to concentrate their efforts. Anything outside this is harder to manage and usually more expensive to deal with.
__________________
Originally Posted by brewbuck:
Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.


Mario F. is offline   Reply With Quote
Old 04-16-2008, 08:29 AM   #8
Malum in se
 
abachler's Avatar
 
Join Date: Apr 2007
Posts: 3,188
Server load can only be managed up to a point. Players per instance is capped at what one server can handle usually. Not that this is a serious bottleneck, the average server can easily handle several hundred clients depending on the game engine itelf of course.
__________________
Until you can build a working general purpose reprogrammable computer out of basic components from radio shack, you are not fit to call yourself a programmer in my presence. This is cwhizard, signing off.
abachler is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Need book to program game into multiplayer... edomingox Game Programming 3 10-02-2008 09:26 AM
C# - Building a SCUMM-like game.. questions Iyouboushi Game Programming 0 05-24-2008 10:54 PM
my upcoming UNO card game :) Hussain Hani Game Programming 5 01-24-2008 01:19 AM
2D RPG Online Game Project. 30% Complete. To be released and marketed. drallstars Projects and Job Recruitment 2 10-28-2006 12:48 AM
My Maze Game --- A Few Questions TechWins Game Programming 18 04-24-2002 11:00 PM


All times are GMT -6. The time now is 11:13 PM.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22