Jump to content

  • Log In with Google      Sign In   
  • Create Account


AgentC

Member Since 16 May 2005
Offline Last Active Today, 04:38 AM
-----

Posts I've Made

In Topic: Game state synchronization techniques

26 July 2014 - 06:08 AM

I believe that unless you have a large amount of changing data on the objects (in which case you'd likely have a bandwidth problem), the RAM needed for the per-client snapshots is not going to become a serious problem for scalability at first.

 

Rather, the problem is the CPU processing needed to determine for each client, what data is relevant and what needs to be sent. Assuming that it's typically the other clients' player character state that needs to be examined for changes and to be sent to all interested parties, this becomes an O(n^2) problem for n clients.

 

As long as the client count is that of typical FPS multiplayer games (something like 32-64 max), even that isn't likely going to be a serious problem. But for scaling beyond that it'd be ideal to be able to just blindly send the same data to several clients, without doing any per-client rewinds or inspection of "what this client needs to know".


In Topic: An engine above a game engine

02 July 2014 - 03:32 PM

In general, when a good, ready-made library exists for a task, it's wise to use it to save time on development, just like you said.

 

However, you must be careful when evaluating the 3D libraries (Three.js probably being the most prominent). Are they actually as feature-rich and mature as they may seem on first glance? In your specific task, do they actually help, or do they rather limit you by forcing their own abstractions onto you, which may be more complex than those defined by WebGL itself? A modelling application is not a typical use case for a (game-like) 3D library, that is usually geared toward displaying pre-existing, mostly static content. That's not a deal-breaker though, as usually 3D libraries also provide some kind of API for arbitrary runtime modification of geometry. Whether they do that particularly smartly or not doesn't matter (performance-wise) before the scenes get complex (thousands of objects, millions of vertices..)

 

Also, when you're talking of a layered approach such that other developers should be using your modelling engine, then you'll have to learn the 3D engine you choose extremely well to inspire confidence in them, and to be able to solve problems that may occur in any of the layers. If you write the WebGL interfacing yourself, you'll (hopefully) become familiar with the potential issues earlier and gain a deeper understanding.

 

Another example: in the open source engine I've started, SDL is used for multiplatform windowing, audio & input. It becomes sort of a "black box" for those tasks, and if there's a complex enough problem on some of the supported platforms, I may not know enough of that platform and SDL internals to successfully solve that problem. Well, that's not such a big deal, as the engine's MIT licensed and the license disclaims all fitness for any purpose, but it'd be different if it was a product with a price tag...


In Topic: tempVariables assertion with indexed unsafe reference

23 June 2014 - 02:02 AM

Thanks! I will integrate the newest SVN revision and report back if there's any further trouble.


In Topic: Recast/Detour question

12 June 2014 - 05:57 AM

From what I understand, the Recast/Detour navigation data is always built for a certain size of a moving agent, which is approximated by the capsule parameters (radius, height) in the rcConfig structure. So if you use the navigation data for vehicles, you need to set the radius & height to accomodate the biggest vehicle you have, or build multiple datas for different size agents.


In Topic: Your first game / programming project?

28 May 2014 - 08:26 AM

The first "game" I made on the Commodore64 was something like a man dodging random obstacles on a scrolling screen. It was in Basic, and the scrolling of the obstacles was accomplished by printing them to the lowest row of the screen, which is the mechanism normally used for text scrolling smile.png The year was 1986 or so, when I was 8 years old.


PARTNERS