Bay 12 Games Forum

Finally... => Creative Projects => Topic started by: jplur on January 26, 2010, 06:48:38 pm

Title: Check out my first networked game and help brainstorm my second.
Post by: jplur on January 26, 2010, 06:48:38 pm
Hey all,

I wrote my first networked program this weekend, a 3D chatroom using TCP.  It's not exactly a game, more like a skatepark for triangles with chat.  To run the client you need blender 2.49.
The client can be downloaded from here: http://www.terrasirenum.com/blendserve0.2.zip (http://www.terrasirenum.com/blendserve0.2.zip) 

Secondly, a multiplayer game idea I've had for years is starting to solidify that I want to share.

The original idea was crew perspective spaceship combat.  Just like all those sci fi shows where the captain is sitting in the bridge barking orders and electrical explosions are killing the extras in the background.

You could walk around the whole ship, take elevators, access consoles hooked up to different systems, man weapons.

A large ship would need a human crew to be efficient enough to justify the cost. Terminal access is split up depending on the type of ship, to differentiate the amount of players needed to fly a battlecruiser vs a single man fighter.

Recently, the idea has been evolving from match-up combat to a persistent world.  I'm not thinking of a 'massive' game, more like a 3D MUD. 

Players build their ships from basic module parts.  The in game objects are just representation of python objects on the server.  At the simplest, a spaceship is a box you can sit in with an engine hooked up to a button.  The box is the root object and has a function to calculate the combined mass of everything attached.  The engine has a function to pass force to the root object based on its angle.  The button checks it's user defined id against every object and activates the engine.

Here is an example i brainstormed in python
Code: [Select]
Class liquid_container:  # fuel tank
    def __init__(self, weight, capacity):
        self.scale = scale
        self.material = "STEEL"
        self.capacity = capacity
        self.contents = {}
        self.integrity = 100
   
    def fill(self, material, amount):
        if material.state = "LIQUID" and self.contents:
            self.contents[material.type] += amount

    def damage(self, amount, type):
        self.integrity -= amount
        if self.integrity <= 0:
            if Reactive(self.contents, type):
                SpawnEffect(self.contents, type)

The fuel container has allready inherited from a line up to the base object class.  In game a large fuel tank and a gallon of milk could be filled with explosive fuel or milk

My thinking is that designing the game this way will actually simplify my job.  For instance, I don't have to program space piracy, just airlocks and a way to kill people.  Just by making an airlock I've opened up all sorts of features, and I don't even need to know what they will be.

Input and ideas appreciated, thanks!






Title: Re: Check out my first networked game and help brainstorm my second.
Post by: Outcast Orange on January 26, 2010, 07:40:43 pm
I read it, and I like it.

This screams procedural to me.
Do it Jplur.
Make it happen.

Also, I'd just mod CS or GMod to do this,
then just make these standard vehicles chosen by build menu,
 and have one pilot seat.
The person who does the best in each game
 spawns next to the pilot chair in the next game,
 giving him the decision of who drives the ship next (probably himself).

Or just do the whole thing from scratch and use modules.

Sorry, I was just thinking expediently,
 since I like the concept a ton,
 and want to play it soon.
Title: Re: Check out my first networked game and help brainstorm my second.
Post by: Armok on January 27, 2010, 01:55:14 pm
The concept sound awesome, but I'm sceptical to if someone random can manage to pull it of in a satisfactory way alone.
Title: Re: Check out my first networked game and help brainstorm my second.
Post by: jplur on January 28, 2010, 07:22:53 pm
Concept image:
Spoiler (click to show/hide)
Just some rough building blocks.  The compartments have to snap together, but I'm thinking I can have radial design blocks that snap to the grid every 90o.

I'm still trying to think through ideas. These are the features I'm certain on.


@ Orange, yeah not sure about the engine I would use for the client.  CS you mean crystal space?

@ Armok, I'll definitely pull something off, lets just hope it's 'satisfactory'

Thanks for the input