News:

How did you even find this place?

Main Menu

RTS Type Game

Started by Warrior, June 16, 2006, 01:01:34 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Chavo

If you are going to have a multiplayer game over the internet, you virtually must have a way of syncing data.  In general (or at least to my knowledge) this is done by making one person the host of the game and having them sound out periodic sync requests and sync data to ensure all players have the same values for their client.  Otherwise things like memory hacks, our cummulative delay could have an impact on the game.

If you implemented this, it would be relatively easy for the host to create the necessary AI player clients on his machine at game startup.  With an abstraction layer, it would still be easy to handle the syncing without any of the clients complaining.

Warrior

Okay I'll look into this some more, I'll admit I need to research more in this area on how others have done it.
I also realized to have a decent reliable chat network I'll need to write my own TCP library or add onto RakNet.

Thanks.
One must ask oneself: "do I will trolling to become a universal law?" And then when one realizes "yes, I do will it to be such," one feels completely justified.
-- from Groundwork for the Metaphysics of Trolling

MyndFyre

IIRC Starcraft does this by having the host run the computer players.  UDP packets are sent by the computers to the other players just as if the computers were simply other players coming from the same host.
Quote from: Joe on January 23, 2011, 11:47:54 PM
I have a programming folder, and I have nothing of value there

Running with Code has a new home!

Quote from: Rule on May 26, 2009, 02:02:12 PMOur species really annoys me.

Warrior

That's what I thought, either that or each player had a cpu running.

Heres how I plan it out:

Master server will have a list of registered servers with it, here is how games are created and they are removed from the list once they are started.

Everything else in game will be UDP except for how will I handle stats reporting back to the game? I'm thinking have every specific client send the server it's end game stats via TCP? Or maybe not even log stats at all?

*shrug*
One must ask oneself: "do I will trolling to become a universal law?" And then when one realizes "yes, I do will it to be such," one feels completely justified.
-- from Groundwork for the Metaphysics of Trolling

rabbit


Warrior

I wouldn't want to (and would feel really bad) about selling a game based off someone elses libraries.
One must ask oneself: "do I will trolling to become a universal law?" And then when one realizes "yes, I do will it to be such," one feels completely justified.
-- from Groundwork for the Metaphysics of Trolling

rabbit

Not necessarilly selling, but marketing: how to get people to at least download and try it.

Warrior

Alright I'll have a look at it later
One must ask oneself: "do I will trolling to become a universal law?" And then when one realizes "yes, I do will it to be such," one feels completely justified.
-- from Groundwork for the Metaphysics of Trolling

Joe

Downloading VB Express and VC Express. I may join when I learn more VC.
Quote from: Camel on June 09, 2009, 04:12:23 PMI'd personally do as Joe suggests

Quote from: AntiVirus on October 19, 2010, 02:36:52 PM
You might be right about that, Joe.


wires

Never knew VC was a language.  I can send you VC6 again if you want. XD

MyndFyre

Quote from: WiReS on June 25, 2006, 01:22:33 AM
Never knew VC was a language.  I can send you VC6 again if you want. XD
VC2005 pwns VC6.  :P
Quote from: Joe on January 23, 2011, 11:47:54 PM
I have a programming folder, and I have nothing of value there

Running with Code has a new home!

Quote from: Rule on May 26, 2009, 02:02:12 PMOur species really annoys me.

Warrior

A small update: I really disliked Ogre more and more over time so I decided to write my own Game Engine. This might put the game on halt for a while but it will be more educational in the end. Currently the engine I'm working on is in pure C# using Managed DirectX and the RTS will end up being Managed as well.

All I can say is, damn Managed DirectX is elite.

I'm licensing the engine under the LGPL license and the game will be probably end up being GPL.

I'm still looking for all the help possible on the C# Engine though, I have the design pretty much laid out and I've started implementing it. Stay tuned for primitive screenshots!
One must ask oneself: "do I will trolling to become a universal law?" And then when one realizes "yes, I do will it to be such," one feels completely justified.
-- from Groundwork for the Metaphysics of Trolling

Warrior

Update!

Wrote a lot of the engine logic today. I wrote a SceneManager (Much like Irrlicht) which accepts multiple Scene Nodes which can be anything. Basically the whole scene is a hierarchy of Scene Nodes with one Root node.

Currently I allow you to set anything as the root node but for fun I prewrote a "World Node" which inherits SceneNode and allows for things like creating SkyBoxes/Domes/Planes and will allow for other things later.

Tomorrow I plan to finish testing out my MeshNode and see if I can abstract it to allow loading of atleast .x and .3ds .
One must ask oneself: "do I will trolling to become a universal law?" And then when one realizes "yes, I do will it to be such," one feels completely justified.
-- from Groundwork for the Metaphysics of Trolling

Warrior

Fixed Windowed Mode rendering and finished up the SceneNode/SceneManager completely.


using Ravage3D;

namespace Ravage3DTest
{
    public partial class Form1 : Form
    {
        Ravage3D.Device GameDevice = null;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            GameDevice = new Ravage3D.Device();
            GameDevice.InitDevice(this.Handle, true);
        }

        protected override void OnPaint(PaintEventArgs e)
        {
            GameDevice.BeginRendering();
                // Add code here kthx
            GameDevice.EndRendering();

            base.OnPaint(e);
        }
    }
}


I still have to implement some more things before I can show something useful but I'll try to get atleast primitives to be drawn by Node to show that off.
One must ask oneself: "do I will trolling to become a universal law?" And then when one realizes "yes, I do will it to be such," one feels completely justified.
-- from Groundwork for the Metaphysics of Trolling

Warrior

Update!

This isn't really an engine fix more like me doing something wrong in Ravage3DTest


using System;
using System.ComponentModel;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Threading;

using Ravage3D;

namespace Ravage3DTest
{
    public partial class Form1 : Form
    {
        Ravage3D.Device GameDevice = null;

        public Form1()
        {
            InitializeComponent();
        }

        public void Form1_Load(object sender, EventArgs e)
        {
            GameDevice = new Ravage3D.Device();
            GameDevice.InitDevice(this.pictureBox1.Handle, true);
            Thread t = new Thread(new ThreadStart(this.Render));
            t.Start();
        }

        public void Render()
        {
            while (true)
            {
                GameDevice.BeginRendering();
                GameDevice.EndRendering();
            }
         }
    }
}


Using the above code you can render to any .NET control!
One must ask oneself: "do I will trolling to become a universal law?" And then when one realizes "yes, I do will it to be such," one feels completely justified.
-- from Groundwork for the Metaphysics of Trolling