• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.

Tylon

Members
  • Content count

    306
  • Joined

  • Last visited

Community Reputation

181 Neutral

About Tylon

  • Rank
    Member
  1. There appears to be a number of MMO's that chose TCP for its underlieing networking as opposed to UDP. Some examples: World of Warcraft, Lineage I/II, Guild Wars, Ragnarok Online, Anarchy Online, Mabinogi, Age of Conan. I am very much aware of the whole TCP vs UDP arguments and discussions, but the aim of this thread is not to go into any of that. My question is, how do these TCP based games manage the network communications, since a lot of these games are very fast / twitch based, and seem to do the networking side of things extremely well, with great responsiveness. Specific issues I would be interested in are: * Player movement packets, how are they buffered and sent? Are all visible player positions sent every X ms to client? Is your player's position sent every X ms to server? Or are they somehow streamed in some funky way? * Player action packets, how are they kept responsive among all the other packets (player positions and movement etc) * Nagles on or off? (I presume off, surely) If anyone has experience developing fast paced / actiony games on TCP, can they share any relevant experiences? What send frequencies / packet sizes were used etc.
  2. But how is collision between players handled so well? It cant be lock-step, since there is no snapping effect (due to receiving collision packet, and re-playing the client-side predicted physics), so all I can assume, is that each players collision takes place with their predicted position (against the other person's extrapolated position), and the other clients just trust that it did or did not happen...? This could also mean that you can collide with the other person, while they dont collide with you. Ogh I dunno, im confused... [Edited by - Tylon on October 20, 2007 6:33:18 PM]
  3. "Mario Kart DS, KartRider, Project Gotham Racing 3" Yep, all those games use a peer-to-peer model from what I read, and they all do a really good job of it, handling collisions between players and latencies very well. I am really curious to find out how they manage that, and if it really can be re-applied for other game types.
  4. How come there are so many racing games that have successfull multiplayer on a peer-to-peer model, yet hardly any shooters (which are predominantly client/server)? They both need similar client side movement predicitions, and peer to peer racing games seem to handle collisions between players so well (like in KartRider), yet most first person shooters struggle with that even on a client/server system. Are there any secrets to their networking strategies?
  5. I need to create an array of my python objects which has a good random access speed, but I cannot really see what a good way of doing it is; - Lists I assume are implemented as linked lists, so random access is slow. - Dictionaries are implemented as hash tables, which are again unnecessarliy slow for a sequential list of homogeneous objects. - array modules such as the built-in array and third party ones like Numeric, numpy can not contain objects, only basic types. Are some of my above statements incorrect, or are there any alternatives? The arrays that I will have will be quite large and always randomly accessed, so I require a fairly efficient solution.
  6. Quote:Original post by Airo Your blue curve looks a bit like a shifted Langevin function. http://scienceworld.wolfram.com/physics/LangevinFunction.html Yea, I think that would work to, but I went with sigmoid function; it seems just right.
  7. Thanks! 1/(1+E^(-20*(x-0.5))) seems to do it perfect
  8. I have not done math in a while, so I cannot remember how I can achieve this, but this is what I want: I have a function that takes a value between 0 and 1. Here is my function currently: f(x) = (sin(x*PI - PI/2) + 1.0) / 2.0 This *almost* does what I want, since I want: f(x) to be 0 when x is 0 f(x) to be 0.5 when x is 0.5 f(x) to be 1 when x is 1 But I want the curve to go a bit differently. Here is the image of what I have, and what I want: Clicky The red line being the above function which I have, and the blue line being what I would like to have approximatly. Basically, I want the curve to be a bit shallower initially, then steeper suddenly. Can anyone tell me where I can put a variable in my current equation to get what I need? Many thanks!
  9. The main one is Glest I guess, http://www.glest.org
  10. Quote:Original post by Anonymous Poster Why do you ask? It's very unlikely that anyone here has bought a license for either one of the engines.. So professional game developers don't read game development forums?
  11. SDL has an addon library called SDL_Net which is a network library. You can use that for networking without the rest of SDL, and stick with allegro for everything else if you want. Although for networking I would recomment a higher level library like raknet, enet, opntnl etc
  12. Quote:Original post by Bob Janova - At least 25 times a second. If it's less than that, movement will appear choppy Not true. There are many techniques such as interpolation / extrapolation which is used to smouth out movement. Virtually all commercial FPS's use some form of movement smoothing technique. Even at 25 fps you would want to apply some form of smoothing. Quote:Original post by wolfram Hello, I'm trying to create a multiplayer FPS-game. How often should I update my clients (i.e. send UDP-datagrams)? What happens if I send to often? Or to seldom? Thanks in advance! Quake3 servers usually run at 20-30 fps, thats not a bad value to go by for a typical FPS with typical amount of players. Dont send too often or too seldom - Best having a fixed rate, but be prepared that you might have to change it based on the specific game / player count etc. Quote:Original post by wolfram Do you know how a general aproach to limit the number sends to my clints? To limit the number of sends you can just run the server at that framerate; for most cases this is probably the best approach. No need to create more states than what needs to be sent to clients.
  13. I understand that a single tcp call to send on a socket may not be received in a since recv call, but multiple ones. My question is, is this ALWAYS a possibility? Or only when a large amount of data is being sent? Most tutorials i find dont mention or take into account this issue. Is there a 'safe' packet size (something less than the MTU i would imagine) where data from a single call to send is guaranteed to arrive in a single call in recv on the other end? Especially if setting no-delay on (disable nagle's algo) and flush after the send call? If this was possible, it would save me some work/bandwidth, because i dont have to use packetizing techniques (send size of packet first or delimit data).