OpenSource competitive network game

This is a discussion on OpenSource competitive network game within the A Brief History of Cprogramming.com forums, part of the Community Boards category; Hello, hello! I'm currently in the designing stage of my game -- I really want to make it OpenSource. However, ...

  1. #1
    Woof, woof! zacs7's Avatar
    Join Date
    Mar 2007
    Location
    Australia
    Posts
    3,459

    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.
    Last edited by zacs7; 04-15-2008 at 06:52 AM.

  2. #2
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Portugal
    Posts
    7,435
    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.
    Last edited by Mario F.; 04-15-2008 at 07:24 AM.
    The programmer’s wife tells him: “Run to the store and pick up a loaf of bread. If they have eggs, get a dozen.”
    The programmer comes home with 12 loaves of bread.


    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.

  3. #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?? >_<

  4. #4
    Malum in se abachler's Avatar
    Join Date
    Apr 2007
    Posts
    3,189
    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.

  5. #5
    Cat without Hat CornedBee's Avatar
    Join Date
    Apr 2003
    Posts
    8,893
    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

  6. #6
    Malum in se abachler's Avatar
    Join Date
    Apr 2007
    Posts
    3,189
    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.

  7. #7
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Portugal
    Posts
    7,435
    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.
    The programmer’s wife tells him: “Run to the store and pick up a loaf of bread. If they have eggs, get a dozen.”
    The programmer comes home with 12 loaves of bread.


    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.

  8. #8
    Malum in se abachler's Avatar
    Join Date
    Apr 2007
    Posts
    3,189
    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.

Popular pages Recent additions subscribe to a feed

Similar Threads

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

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