Jump to content
  • Advertisement

Gagyi

Member
  • Content Count

    287
  • Joined

  • Last visited

Community Reputation

192 Neutral

About Gagyi

  • Rank
    Member
  1. Quote:Original post by hplus0603 What happens when 100 players all congretate in the same spot? You're always priority-connected to the closest 10 people and simply-connected to the closest 50 and low priority-connected (less than 1 update per sec) to the others. So you don't actauuly see the other 100 or you see the lagging horribly, of course. But this is the problem with C/S too (see Orgrimmar in WoW). And, of course, EVERY solution used for P2P can be used for C/S. Too bad the opposite is not true. Lastly, C/S is a much better way to spread all the information between all the people. Think of 10 students trying to share their homework solutions with the others. with P2P, 90 letters are sent, with C/S (one of the 10 would be the "server"), only 18 letters are needed to be sent. P.S.: But cloud computing is the trendy way to do stuff these days, so running the game logic on client side is quite reasonable if you're not concerned about cheating. EDIT: By letters, I meant the envelopes. Whatever, too late, sorry. [Edited by - Gagyi on September 10, 2009 3:42:28 PM]
  2. Hi guys, I'm the developer of the earlier mentioned Stickman Warfare, one of the banned guys from here has invited me to this topic, so I'm just here to share my experiences. I've been doing stickman for like 3 years now, and i have to tell you, P2P is a heavy PITA. Not only it has sync and connect issues, it's really easily hacked. But the reason I made it this way is that its absolutely free to host, since a P2P NAT introducer doesn't use too much bandwidth OR CPU, so it can be run from a really cheap (free) virtual server at my friends computer. Apart from the NAT stuff, i found P2P a lot easier than C/S. Simply because the player only has to care about his characters physics only, and it doesn't have to synchronize with the server, compensate the roundtrip time or anything like that. Only the priority system was a bit difficult/complicated until i fine tuned it. Now the network code is no more than a few thousand lines of PASCAL code. Oh, and with the right priority system, you can have infinite players using only 7kBps upload. (yes, stickman did not lagg at 70 players and its completely scalable) OF course, this cannot be applied to a commercial game because its so much less secure than C/S that hacking is inevitable, only delayable (memory protection, debugger detection, etc... but thats only against Cheatengine using script kiddies). Well, thats all i could think of. P.S: Its been a long time since i used my English... EDIT: Forgot to mention, my P2P implementation is rather unstable, there are times when you don't connect to the clod or suffer severe lag. Thats completly my fault, not the P2P's. EDIT2: I just read th whole topic, and I dont know the guy, please dont ban me :P. I dont consider my game great or innovative, it is just your average P2P shooter.
  3. A Quick note: Transport Tycoon Deluxe was written in pure assembly and its quite a complicated game. Of course its nowhere near WoW, but this is just for your information ;)
  4. Gagyi

    Mesh Warping Effect ?

    I would rather: vert_pos += sqrt( desired_disappearing_pos - original_pos ) * 0.001; Looks more "pinchy".
  5. I would simply use a fullscreen window, displaying the remote computer. Thus, you would just capture the mouse move, keypress and such messages and send it to the client. (basically the mouse position, keypresses and clicks, not the messages themselves) The client then just PostMessage()-es all these stuff to the approtiate windows having the focus, or under the mouse position. So you DO have to reconstruct the messages client-side...
  6. Because many people prefer just a big bunch of source code: Entry point -Load loading screen -Display loading screen with 30% -Load Bitmap1 -Display loading screen with 60% -Load Bitmap2 REPEAT //This is where GOTO lands -Display menu, handle clicks UNTIL START or EXIT clicked If clicked EXIT then exit... If clicked START: -Display loading screen REPEAT -game Until pressed Esc -Display loading screen GOTO Displaying menu End. Oh, the main idea is not to have one big loading function, instead interleave display and loading functions. (linear programmming FTW) [Edited by - Gagyi on August 21, 2008 3:12:54 PM]
  7. A good idea would be to look out the window and see wich types of clods are usually together. :D Now i am seeing nimbocomulus, stratus and some kind of cirrus, sorry, i am not an expert in weather... Indeed, here, in hungary, cirrus is almpost always present (the thin clouds at high altitudes), and all the stuff is below it.
  8. How about bit/byte packing? You basically fill an array of bytes with your data... It gets quite simple... (warning, pascal code ahead....) Writing the data: Writebytetopack(MyBytepack,5); //packet type: 5, position Writefloattopack(mybytepack,pos.x); Writefloattopack(mybytepack,pos.y); Writefloattopack(mybytepack,pos.z); Send... Reading the data: Readbytefrompack(mybytepack,msgtype) Case msgtype of 1:handleDynamicobject(mybytepack) 2:handleXYZ [...] 5:handleposition(mybytepack) end; procedure handleposition(pack:Tbytepack); [...] readfloatfrompack(pack,enemy.position.x); readfloatfrompack(pack,enemy.position.y); readfloatfrompack(pack,enemy.position.z); end; It's kinda neat, because you only need to write message specific read/write functions, and you can pack multiple messages in one packet, without more UDP overhead. P.S:I forgot the code for the byte packing, but that should be easy...
  9. Gagyi

    HDR sound?

    Thanks for all the help, I'm going to implement Nik02's method, and have a look at DSPs later.
  10. Gagyi

    HDR sound?

    Yes, indeed, but HOW do I detect the peak? Because i have to trace the mixed primrary buffer, wich is not cheap.
  11. Gagyi

    HDR sound?

    Quote:Original post by deadstar Fire up Half-Life 2, drop a grenade next to your feet. All sound quietens, except a high-pitched whine in your ears. You gradually regain you hearing after a few seconds. This what you mean? Yes, kinda, but a bit faster hearing regaining :) Quote: If you want to adjust the general sound volume in a 3d environment, just sort your sound-generating objects by (1/distance*maximum loudness) to find the maximum audible volume and use it to multiply the master volume... I thought getting the primrary sound buffer's content (after the 3D and mixing stuff) somehow, and then adjusting the volume is easy, but this is just as easy and much faster i guess. Thanks for helping :) BTW, isn't it 1/distance^2? or 1/distance^Rolloff factor?
  12. Gagyi

    HDR sound?

    And how do i do it? Simply lock the primrary buffer, read out data and adjust the volume? This is pretty much straightforward, but is it efficient enough?
  13. Gagyi

    HDR sound?

    Yes, i know its 16-24 bit, i do use 16 bit sound, but i was talking about automatic dynamic volume, sorry. So is there some way to automatically adjust the sound volume depending on the current enviroment (louder where there are only birds singing, and softer when a bomb explodes near you), so you will always hear footsteps and wont get deaf when loud sounds come in.
  14. I really think that there exists HDR sound, like HDR lighting, but i have not found any hardware or API that supports it. Do you know any? Or do i have to do it manually? If so, how (with directsound preferably)?
  15. Gagyi

    sharp corners

    Note: Please, use Verlet Integration, people, sliding is sooo really easy with it.
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!