• 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.


  • Content count

  • Joined

  • Last visited

Community Reputation

150 Neutral

About phayer

  • Rank
  1.   But how does the component access the networking part of the application? How does the server component access NetworkServer?   How do you handle it on the client end? Do you read the package and then send it directly to the component on the given entity?
  2. I think you misunderstood. I'm not wondering how to structure my packets or what to put in them. I'm wondering how I should handle the data on the client side. Whats the cleanest way from receive data to processing it and updating entities?   What my clients send and doesn't send is more suited in a new topic I think.
  3.   Well, I'm locking the queues while I'm reading or writing to them. The current mechanism tries to;   Network thread -- Lock incoming queue and write to it, then unlock Lock outgoing queue and send packages, then unlock   Game thread -- Lock outgoing thread and write to it, then unlock Lock incoming queue and read from it, then unlock.   Just to minimize locking. Probably not perfect, but it works so far and I'm happy.       If any of you have any experience regarding entity-component-systems and how to integrate network to them easily while still keeping them flexible/extendable, the whole point of a entity-component-system, then please drop by in my other thread.
  4. Got some problems with coming up with how the state replication mechanics should work in a "entity component system"-design. I'm using the C++ port of artemis from vinova. No problems there, works great so far. For networking I'm using enet and I have a basic system up and going. I can send a "entity created with these components"-message, and the client creates a new entity which is identified by a unique ID(sent with the "entity created"-message).   All this is good, but the problem comes when I want to synchronize states across the network. How should I implement that on the server? Should there be a system that loops over and creates a packet for all the states that needs syncing? How should I implement this on the client?    My ideas so far; Server -- Since the server only sends states for object close to client I am currently;   Loop over all entites: 1. Check with all players, is the entity close? 1a. If so, does it need syncing? 1b. Yes; send a packet with the new state.     Client -- No idea..   If anyone have some tips, ideas, or could share how they solved this it would be great.  
  5. Okey, so I implemented something that seems to work well;   2 threads and 2 queues.  1 thread for handling networking, 1 for the game. 1 queue for incoming data, 1 for outgoing data.   Does this seem like a reasonable design? I don't want to get hung up on this, but on the other hand I don't want to make a lot code smell -- Like, I don't want to spend a month later rewriting the entire network only because my prototype implementation was bad.
  6. So I'm stuck, and can't seem to figure out what the "right way" to solve this is.   I'm using enet - and the "enet_host_service" which takes care of sending and receiving data takes a timeout, like 10ms or 5000ms - whatever. The problem is; how large should this be? 1ms?   Cause the wait freezes the rest of the thread, of course. But if I have two threads, one that reads from the top of a list(simulation) and another one that writes to the bottom of the list(network) - wouldn't that impact performance hard and in some cases cause problems with locking?   Another thing I thought about was using zeromq(zmq) internally as I then don't have to think about locking, but I'm very unsure about zeromq when it comes to latency.   Any suggestions?
  7. Hi,   I'm currently in the process of making a "level generater" or whatever you call it. The whole concept evolves around it so I kinda don't want to have "non-pseudo-random levels".   This is the approach I'm going with atm;   I have many chunks which basically is a tile with game object placed on it. The tile has a list of other types of tiles that it is "connect-able" with in 8 directions. Up, down, left, right and the diagonals. This is all good and well. But here is the problem.    When the client connects to a server, the server sends a seed to the client. This seed is used to "random" which chunks to pick from the "connect-able" list. But if I expand(add chunks around) the tile at 0,0 the tile at 1,0 and at 0,1 both has to be connect-able to the chunk at tile 1,1.. And thisis where my logic crashes. Because, after a we tests it was crashing because it encountered impossible connections; Where 1,0 and 0,1 didn't didn't share a connect-able chunk.   And after about using 51 hours and smashing my head against the wall I've come here for ideas, tips, and inspiration..   One of the other things I'm worrying about is that it won't be "realistic" enough. That it would go like Jungle -> city -> beach -> airport in like 4 chunks, which is like all to small of a distance from a realistic point of view.     It doesn't have to be chunk-based solution - but it has be deterministic since I can't transfer all the data for the terrain all the time from the server to client. Aiming at a maximum of about 250 players per server.
  8. So what I should do is, the second I get some data, I chech if my interpolated entitys position isn't too far away from the position I just received. If it is; snap it in place. Then I start using the new velocity I just received?   How does this go for clients shooting at each other, or shooting at a AI?   And this method is applyable when using Box2d or some other physics engine on the server side?
  9. 1. From what I understand from GafferOnGames.com 10-30 packets per second is "common"? And while we're talking packets, should I send one packet per entity update or pack many entity updates into one packet?   2. Well, I'm _trying_ to use interpolation - and if I have gotten anything right at all the, looking at both Valve/Source Engine & GafferOnGames the clients rendering time is delayed by some amount?   Is there any book specific to this topic? The only one I found on Amazon is just talking about the different techniques, not how to implement them. 
  10. Hi,   over the past weeks I've been trying to get the basics of how to "fight lag" implemented. So far things are going veeery slow, and I think I might have attacked it from the wrong angle.   Here is what  I have today; The server sends a update every 1/25th of a second. This updates includes; Ack, Ackbitfield[From www.gafferongames.com], Object ID, Position, Velocity. The client wait till it has received 10 packets before it starts rendering.   Now here it all stops and I'm sitting here with all these questions... How should I render it client side? I've tried to re-implement gafferongames code but I just can't seem to get it right, I still have plenty of jitter and lag - and that is when testing locally.    Why should I re-send a "position, velocity" packet from the past? I just can understand why I would send a position, velocity packet that is already in past time.   When receiving a packet on the client, should I include a time stamp from the server or should I use the clients time? Should I synchronize the time between the client & server? If so; how?   How should I handle player input "from the past"? Since the client is rendering 1/25th * 10 later than the server, how should I handle shooting? Like the player shooting a zombie that was there 1/25th * 10 of a second ago on the server but is currently right in front of him on his screen.
  11. Hi,   is there a possibility to have a sequenced unreliable packet in ENet? After reading gafferongames articles I got the impression that I need to have the sequence number, which makes sense when I'm gonna interpolate between them I need to know the order..   Or should I just use Reliable packets? Why should I resend a packet with state data for a time that has past in client rendering time?
  12. Unity

    I would rather say MonoGame or Unity. MonoGame is a "clone" of the XNA framework with the added features of support for Linux and OSX, and more to come in the year.. Atleast that is what they MonoGuys are promising.. But still, all the things pointed out above still stands in a MonoGame vs Unity "battle"..
  13. Sorry for not specifying; Yes, I was talking about WinForms/WPF - Swing is the Java counterpart you say? Got to google this. Never really gotten naked with Java.
  14. I would suggest C# - kinda more fun and motivating to have some GUI easily available. Don't know how that is done in Java. Only used it for small console apps.
  15. I don't exactly see what you want to use CloudAnt for in a simple game?