Jump to content

  • Log In with Google      Sign In   
  • Create Account

Banner advertising on our site currently available from just $5!

1. Learn about the promo. 2. Sign up for GDNet+. 3. Set up your advert!

comfy chair

Member Since 05 Jan 2011
Offline Last Active Yesterday, 09:58 AM

Posts I've Made

In Topic: Rasterize stopped unit in clearance-based pathfinding

26 January 2015 - 07:23 PM

How about making your collision response more forgiving. In that way, agents can still squeeze through each other in the cases where there is a small mismatch.

In Topic: Is my game project multiplayer ready?

31 December 2014 - 07:11 PM

I did a rather big refactoring of the game to achieve the architecture we have now. Before that the the game was a monolith. The architecture has served us well when we implemented save/load as well as recorded games for debugging. I hope we can continue to reap the rewards from this investment. 

If I can perfect the recorded game feature, the road to getting simulations on each player computer to run in sync should not be that long. Then I can probably keep most of the code we have already. I will still need a system to send out commands and manage the time steps as described in the article. I also need to figure out how to set up a server that will handle this task.

The Simulation should already be indifferent to who the player is. I am using the concept of allegiances which receive Commands. The allegiances can be either player- or AI-controlled.

Are there any network frameworks/libraries that are recommended for XNA games on Steam..?

In Topic: Is my game project multiplayer ready?

31 December 2014 - 06:14 PM

I believe my simulation is (almost) deterministic. I have a gameplay recording feature which saves the Commands sent from the player to the Sim. I also store the seed for the random number generator. After I have done a little more work on it, I hope I will be able to replay a game perfectly by simply loading the Commands and executing them at the appropriate time.

Otherwise, my idea was to update the rendering part of the Client by polling the Simulation (server) a few times every second, instead of every frame as it does now. I am already doing interpolation of moving renderables each frame on the Client. 

The game uses indirect control, so players are conditioned to expect delays from the time they issue a command until the agents respond to it.


In Topic: Warcraft 3 style Collision avoidance

27 December 2014 - 06:13 PM

How about steering towards path waypoints, and use a collision response that pushes agents away from each other. 

In Topic: GOAP vs. MCTS

12 October 2014 - 03:34 PM

One of those 'things usually left out' is how much the games complexity requires the situational information to be processed and boiled down into the symbolic form to have these methods applied - to be cached (and constantly patched in a dynamic situation) or regenerated on-demand(where early pruninig helps).


The more complex and interrelated the game state is (possibly with temporal issues where a trend pattern is an indicator) and with uncertainty ontop of that (imperfect info, as well as independantly acting entities)  the more work (processing resource) that evaluation becomes.   


Which of  GOAP/MCTS can do the most EARLY exclusion to narrow down the situational space being considered and evaluated would indicate its utility.   Boiling down all the factors to be easily compared (in prioritizing and picking candidate solutions) can be the very hard part.   Spatial  positionality on a map itself might seem an easy shortcutted data set, but consider evaluating the patterns in GO  - the analysis for even such a simple 'terrain' and entity mechanics explodes in the processing required to evaluate the actual situations.

Yes it would seem like the two methods have similar requirements here. Geometric space in a game has to be given a reasonable representation. World coordinates need to be abstracted to a minimum number of pixels, meters or kilometers in order for the planners to ever be able to finish. For real time games, time also needs to be abstracted to a minimum duration. Perhaps doing this abstraction work can be considered a form of pruning where actions and state changes that are very close to each other are considered the same.