• Advertisement

Fezziwig

Member
  • Content count

    10
  • Joined

  • Last visited

Community Reputation

140 Neutral

About Fezziwig

  • Rank
    Member
  1. Velocity Verlet Integration

    Thanks, Josh.   After taking into account what you've said I seemed to have fixed the problem. :)   I have redesigned the system so it's much simpler but still uses Velocity Verlet integration and is frame rate independent.   The thing I missed with jumping is that because the force will be affected by the time delta but only for one frame, I need to divide the jumping force by the time delta.   -Rowan
  2. Velocity Verlet Integration

    I don't understand. newAcceleration is the thing that's just been worked out, by my math, making half of the average from previous timesteps and half based on new calculations.
  3. Velocity Verlet Integration

    Are you suggesting I get rid of the Verlet integration altogether?
  4. Velocity Verlet Integration

    I need the air resistance to slow the player down, else there is noting to stop it. Isn't the gravity constant in this? And technically The jump acceleration is only applied one, as after it's accelerated into the air once, yCollision is no longer true and it no longer accelerates.
  5. In a platformer game I'm making I'm going to use Verlet Integration, so in the player calculate function. At the moment I have it set up like this: //// Velocity Verlet integration lastAcceleration = avgAcceleration; nextPosition.x += velocity.x * delta + ( 0.5 * lastAcceleration.x * delta * delta); nextPosition.y += velocity.y * delta + ( 0.5 * lastAcceleration.y * delta * delta); // Collision Detection - I wont put this in the sample code // Move to new coords position = nextPosition; // Initialise Acceleration newAcceleration.x = 0.0; newAcceleration.y = 0.0; // Gravity if (!yCollision) { double force = mass * -0.0001; newAcceleration.y = force * delta / mass; } // Air Resistance velocity.x -= velocity.x * 0.01 * delta; // Controls if (key['W'] && yCollision) { double force = mass * 0.05; newAcceleration.y = force / mass; } if (key['A']) { double force = mass * -0.003; newAcceleration.x += force / mass; facingLeft = true; } if (key['D']) { double force = mass * 0.003; newAcceleration.x += force / mass; facingLeft = false; } avgAcceleration.x = (lastAcceleration.x + newAcceleration.x) / 2.0; avgAcceleration.y = (lastAcceleration.y + newAcceleration.y) / 2.0; velocity.x += avgAcceleration.x * delta; velocity.y += avgAcceleration.y * delta; //// Velocity Verlet integration   However, The jumping still seems to be majorly affected by the frame rate. Have I set up the integration properly?
  6. I've run into a real problem with regards to sending serialized vectors over a socket. A simplified example of what I'm doing: Server: [CODE] #include <boost/serialization/vector.hpp> struct someObject { int i; template <class Archive> void serialize(Archive & ar, const unsigned int version) { ar & i; } } struct OutStream { std::vector <someObject> someVector; template <class Archive> void serialize(Archive & ar, const unsigned int version) { ar & someVector; } }outStream; // Another part of the code outStream.someVector.swap(someOtherVector); // Serialise std::stringstream archive_stream; boost::archive::text_oarchive archive(archive_stream); archive << outStream; // Send sendto(ServerSocket, archive_stream.str().c_str(), strlen(archive_stream.str().c_str())... [/CODE] Client: [CODE] #include <boost/serialization/vector.hpp> struct someObject { int i; template <class Archive> void serialize(Archive & ar, const unsigned int version) { ar & i; } } struct InStream { std::vector <someObject> someVector; template <class Archive> void serialize(Archive & ar, const unsigned int version) { ar & someVector; } }inStream; // Another part of the code // Deserialize archive_stream << temp; boost::archive::text_iarchive archive(archive_stream); ZeroMemory(&inStream, sizeof(inStream)); archive >> inStream; someOtherVector.swap(inStream.someVector); [/CODE] However when I run this, on the server side, either it doesn't send proberly(lots of blank variables) or it says [quote]Expression:vector iterator not dereferencable[/quote] If it would help I can upload the whole source code (it's not that large). Any help is much appreciated! Thanks, Rowan.
  7. Feedback wanted

    Just stated prototyping a game under the working title COSMOS. Just want some feedback. Note; I am very much a beginner and I realise it is very under developed. Also any suggestions or ideas would be really cool. More information from the link [url="http://www.wizardchip.com/gamedev.php"]Link[/url] Thanks, Rowan.
  8. Serialization

    Ok thanks for the help. Because I'm sending quite large data structures, I decided to use the boost libraries (good choice?). I can send the structs like so; [CODE] std::ostringstream archive_stream; boost::archive::text_oarchive archive(archive_stream); archive << myStruct; sendto(Socket, archive_stream.str().c_str(), sizeof(archive_stream.str().c_str()), 0, (SOCKADDR *) & SockAddr, sizeof(SockAddr)); [/CODE] but how to I receive them on the other end?
  9. Serialization

    Can anyone recommend a fast method to serialize a class or struct so it can be send over a socket, and a short example would be nice.
  10. In most professional games how often do servers update (not as in patches but other player positions and stuff) their clients or do they use a different method to sending out an update every so often? At the moment my server sends out sixty times a second and when the client receives an update it sends an update to the server. It works, but is this the traditional way of doing things?
  • Advertisement