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

Archived

This topic is now archived and is closed to further replies.

Tarique

DirectPlay related problem

6 posts in this topic

Hi, I''m programming an application in which 2 users share the same environment over a network / isdn link. I am using directplay for the communication. As a first step I have got something working using IPX. One PC runs as the server and the other a client which joins it. I am trying to pass player position and orientation between the two machines. PC 1 will tx player data to PC 2 and PC 2 will update according to the data received straight away. However, PC 2''s data does not seem to tx at the same time. It takes a while for PC 1 to pick this data up and move the ''remote'' player. The reason I have labelled the 2 PC''s - PC 1 and PC 2, is that it doesn''t matter which one is the server and which one is the client. It''s always the same PC that exhibits the problem! (Sorry if all this confuses you!). I''m using Dp->Send() and Dp->Receive() calls to tx and rx the data. I thought it might be that one machine is hogging the network and not letting the other tx, so I tried to send the data every other frame to ease the congestion. This seems to help a little, but is not an ideal solution. Is this the problem? Can you suggest of a ''neat'' way of doing things? Sorry if all this is vague! If you need source code snippets, etc. Please let me know! FYI, I am running it on a LAN between 2 PC''s. When it works, I would like to try it over an ISDN / modem link between the two. Any help would be most appreciated! Many thanks, Tarique
0

Share this post


Link to post
Share on other sites
Could you clear the topic up a little for a stupid swede like me?

Also, what do yo mean by "labeling" your PC''s? All identification of computers in a DirectPlay session is their DPID (or their DirectPlayAdress).

Daniel Netz, Sentinel Design
0

Share this post


Link to post
Share on other sites

Sorry! When I say labelling, I mean what I refer to them in my message above. I''ve just called them that to explain the problem. It''s nothing to do with the programming side of things

What I was trying to say (badly!) was that it''s always the same PC that hogs the network and has nothing to do with it being the server or client.

Also, it is worth mentioning that both PC''s are the same spec (ie. Pentium II 400''s 256MB RAM, equivalent network cards, etc), so it''s not that one PC is faster and is tx more data per frame.

I hope this clears it up for you. It was late when I posted so it''s nothing to do with you being stupid. It''s merely me typing too fast without thinking

Cheers,
Tarique.
0

Share this post


Link to post
Share on other sites
Ok, now I get it

First, is the application running in a server/client mode?
Default is a peer-to-peer mode, which in most cases is the best way (especially in sessions with only two players).
Note: the session host is not the same thing as the server.

Are you sending some information instantly, like a keepalive signal? That may cause a backlog in the network (which can be solved by using message throttling though).

This is how my message loop looks like (I use VB):

==========================
Do Loop

Do While DPlay.MessageQueue() <> 0
GetMessage
ProccessMessageData
Loop

Sleep (whatever time)
Loop
==========================

I.e. I first check if the messagequeue is empty, if not, get the message and process the data. Then I let the mainloop sleep a little (it checks for new messages every 100 ms). Just be careful how fast you send the data from the other player.

Hope that helps,

Daniel Netz, Sentinel Design
0

Share this post


Link to post
Share on other sites
Depending on how many FPS you are getting, sending the data every other fram may be too much. You might try sending the data about 10 - 15 times per second.
0

Share this post


Link to post
Share on other sites
Thanks for the info guys.

After reading other peoples posts and yours, I''ve realised I''m transmitting too much. ie. I transmit the player position and orientation every frame on both machines. It seems that the solution is (as you have also pointed out) to transmit every now and again.

In other words only transmit data say every 10 frames and only if the player has moved. I''ve tried a quick test with this and transmit every 10 frames and this solves the problem. However, the player movement on the other machine is jerky obviously. I suppose I now have to interpolate the players movements in between.

Does this sound like a good idea?
0

Share this post


Link to post
Share on other sites