Whats going on ?

Post your questions, suggestions and experiences regarding game design, integration of external libraries here. For irrEdit, irrXML and irrKlang, see the
ambiera forums
omar shaaban
Posts: 616
Joined: Wed Nov 01, 2006 6:26 pm
Location: Cairo,Egypt
Contact:

Whats going on ?

Post by omar shaaban »

A short story first :lol: :
from when i was 11 years , i have learned everything from google, so no private classes or even reading books.......and it was ok.
i want to learn c++, i write "c++ tutorials" in google and read millions of tutorials and source codes and i learned it in 5-10 days
even directx api and how i met irrlicht was using google....
BUT when i wanted to learn about networks suddenly everything changed :( google became nuts :!:
yes when i write "network c++ tutorials" i get nothing just one guy called beej who is the only survivor on the net for me and even he dont provide a basic introduction to this kind of a thing.
like i wanted to make a ping program :P A very simple program has only one input which is user ip and it pings it. in millions of pages i found:
1-they all use system("ping xxx.xxx.xxx.xxx"); which just calls the ping program where i want to make the program :evil:
2-the other pages provide the same source code of unidentified programmer who wrote this source code and it uses icmp library.
THANK GOD , now all i have to do is learn icmp library.....and nope, the icmp library is not documented by microsoft
and many things are like garbage can with source codes in it like:
how winsock was made , i mean where is the source code.
and they say it was based on Berkeley sockets (and who the **** is berkely) and how i can use it with c++ and same question how it was made(source code)
i mean when u learn c++ everything is organized and clear
and same in directx :
u have source code , exmples, api , documentation, millions of tutorials
but in networks u have nothing just some random network library done by some unknown programmer where you have to use this small unknown library or just don't do anything.
END OF STORY

so my question to you programmers whats going on here?
where i can learn networks and where is the main library to use ?
Dorth
Posts: 931
Joined: Sat May 26, 2007 11:03 pm

Post by Dorth »

"The" main lib? Network lib have been trailing for years behind other libs. They vary from the basic signal control and analysis to the complete maintain classes in synch over a network without your input. Thing is, it's also one of the hardest field of computer programming, amongst many things because of the level of uncertainty.

Your program can screw up. Other programs can mess with it (firewalls). Routers can mess up. Modem can mess up. Any in-between point can mess up. Think multithread is bad? It's nothing. Try and write a proper network system for a vast mmorpg, a vast FPS, a company network spawning multiple locations across the world, etc.

Basic concepts were thought up in the infancy of the net and pretty much everything has been built up on layer on top since. Thing is, many people have done a lot of layers starting from various other ones... So when you're near the bottom, like, say, using http://en.wikipedia.org/wiki/Berkeley_sockets, you've got few choices and most of those are reimplementation of the same thing. But when you go higher... Oooh boy. Highly specialized, adapted toward what it was going to be used for.

If you want to learn network programming, more power to you. But you must first answer why. If it's to use it into something else, the odds learning every layer out there would be useful is unlikely. Find an API specifically, or as close as possible, made for what you need and learn it. You can learn each of ITS layers. If your goal is knowledge, then you're better up starting with the fundamentals. tcp/ip, udp, berkeley sockets, ping, punch through, etc. LOTS of knowledge, most won't be useful to many, but always good to have in place of nothing. Good luck and have fun.
CuteAlien
Admin
Posts: 9734
Joined: Mon Mar 06, 2006 2:25 pm
Location: Tübingen, Germany
Contact:

Post by CuteAlien »

The most in-depth guide is probably "Unix Network Programming" from Richard Stevens. "Unix" means that many examples will contain forks and processes, so if you are on Windows it might not be the best introduction book. Also learning about processes first is basically essential as you will need it for good network coding. But once you are there - this is the book to teach you all the fundamentals. Every other network library just builds on the top of the stuff that is explained in that book.
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
ent1ty
Competition winner
Posts: 1106
Joined: Sun Nov 08, 2009 11:09 am

Re: Whats going on ?

Post by ent1ty »

omar shaaban wrote:i want to learn c++, i write "c++ tutorials" in google and read millions of tutorials and source codes and i learned it in 5-10 days
Why do I only not believe you?
Ok firstly, it's not possible to read millions of tutorials in 10 days. Although some may argue that technically, time dilatation could work for this. But I don't think that you are somewhere near a black hole or that kind of stuff and if you are, then you should tell us whether are you talking about the amount of time that passed in the exact position that you are, or on the Earth.
Secondly, it is not possible to learn whole C++ in 10 days. The same thing with time dilatation here as above, though.
You may know how to declare a struct and some stuff, but you are far away from knowing how to write a working program that does something more than nothing.
irrRenderer 1.0
Height2Normal v. 2.1 - convert height maps to normal maps

Step back! I have a void pointer, and I'm not afraid to use it!
omar shaaban
Posts: 616
Joined: Wed Nov 01, 2006 6:26 pm
Location: Cairo,Egypt
Contact:

Re: Whats going on ?

Post by omar shaaban »

first of all , don't tell me about time dilation as principle is wrong , due to the wrong assumption in the theorem (my explanation is here: http://www.physicsforums.com/showthread.php?t=387796)
second of all they are not millions of pages!!!? i didn't learn from a book just tutorials from this site http://www.cplusplus.com/doc/tutorial/
where they are just 24 tutorials and some other external tutorials that explains dll and making libraries and other stuff anyway they are not millions of pages
THANK YOU DORTH AND CUTEALIEN i will check on the book.
ent1ty
Competition winner
Posts: 1106
Joined: Sun Nov 08, 2009 11:09 am

Post by ent1ty »

Well you said you read millions of tutorials and learned c++ in 10 days.
Don't blame me for your mistakes.

And you can't prove your theorem, therefor you can't say that time dilatation is a wrong one.

Ergo the only thing worth posting was 'THANK YOU DORTH AND CUTEALIEN i will check on the book.'
irrRenderer 1.0
Height2Normal v. 2.1 - convert height maps to normal maps

Step back! I have a void pointer, and I'm not afraid to use it!
omar shaaban
Posts: 616
Joined: Wed Nov 01, 2006 6:26 pm
Location: Cairo,Egypt
Contact:

Post by omar shaaban »

ent1ty wrote:Well you said you read millions of tutorials and learned c++ in 10 days.
Don't blame me for your mistakes.

And you can't prove your theorem, therefor you can't say that time dilatation is a wrong one.

Ergo the only thing worth posting was 'THANK YOU DORTH AND CUTEALIEN i will check on the book.'
then can you tell me what was worth posting in your previous post... nothing
and yes i found millions of tutorials but i read some of them and i can still read from others...are u that silly to think i will read millions!! is that a joke?
and who said i cannot prove my theorem!!?
i don't care if humans living this day are so stupid to cannot understand a simple matter like this. anyway it is not my discussion here.
slavik262
Posts: 753
Joined: Sun Nov 22, 2009 9:25 pm
Location: Wisconsin, USA

Post by slavik262 »

Assuming I can read properly, you're asking where you can learn about networking. Assuming you're developing for a windows platform, I suggest you go over to your friendly MSDN Library and view Getting Started with Winsock:

http://msdn.microsoft.com/en-us/library ... S.85).aspx

Winsock, the Windows Socket Library, is almost identical to the Berkley Sockets Library, the *nix networking library (Unix, Linux, Mac, etc.). There's all sorts of wrappers around these libraries, but if you're not afraid of a little C, this is a great place to start.

Basic concepts of networking:
  • There are two main types of connections used today: TCP and UDP. You'll want to read up on those.
  • Most networking relationships are server-client relationships. One computer, the server, listens for clients, the other computers, to connect to it. They then go about their business.
  • Winsock and BSD socket libraries use identifiers called "sockets" to send and receive data across networks.
Dorth
Posts: 931
Joined: Sat May 26, 2007 11:03 pm

Post by Dorth »

ent1ty
Competition winner
Posts: 1106
Joined: Sun Nov 08, 2009 11:09 am

Post by ent1ty »

omar shaaban wrote: then can you tell me what was worth posting in your previous post... nothing
Well I don't like when someone says that he learned C++ in 10 days, especially when I've got a feeling that he is 14 years old or less.

And you clearly stated that you read millions if tutorials here
i write "c++ tutorials" in google and read millions of tutorials and source codes
irrRenderer 1.0
Height2Normal v. 2.1 - convert height maps to normal maps

Step back! I have a void pointer, and I'm not afraid to use it!
omar shaaban
Posts: 616
Joined: Wed Nov 01, 2006 6:26 pm
Location: Cairo,Egypt
Contact:

Post by omar shaaban »

well it seems you are the one who is 14 years old, because who would believe i read millions and millions of tutorials just to learn c++(its an expression)
yes and if learning c++ in 10 days is unbelievable to you, then let me tell ya its normal and off the topic i am very smart(although programming doesn't depend mainly on intelligence) my IQ is nearly 150 (according to timid tests by oxford and IQ Comparison Site :P )and its the last post replying to you as i don't usually reply to people who are stupid or dumb or so naive and helpless, especially to people like you who have all this in common, have a nice day baka :lol:
away from this topic as i am not lazy enought to talk with one who beileve everything as a fact(idiot an naive )
i have worked with winsock before(visual basic) but since it seems the main api for windows, i think it should be used for networking... so the other programs in the field uses winsock or an api dependant on winsock right?
B@z
Posts: 876
Joined: Thu Jan 31, 2008 5:05 pm
Location: Hungary

Post by B@z »

ent1ty: do u think he learned EVERYTHING about C++ in 10 days, and he got better programmer than John Carmack in 10 days?
in 10 days he learned the syntax, basic things. thats all. you dont need to flame about it, mkay?

i used winsock too, and liked it. but for game programming, i'd suggest u to use network libraries, better performance and safer networking ;)
im using eNet coz its very simple, but if u need more functions u can use like raknet.
Image
Image
ent1ty
Competition winner
Posts: 1106
Joined: Sun Nov 08, 2009 11:09 am

Post by ent1ty »

I was just pointing to the fact that he is writing nonsenses. I myself try to always speak as precise as I can.
If it was flaming, then I'm sorry.
irrRenderer 1.0
Height2Normal v. 2.1 - convert height maps to normal maps

Step back! I have a void pointer, and I'm not afraid to use it!
omar shaaban
Posts: 616
Joined: Wed Nov 01, 2006 6:26 pm
Location: Cairo,Egypt
Contact:

Post by omar shaaban »

ent1ty wrote:I was just pointing to the fact that he is writing nonsenses. I myself try to always speak as precise as I can.
If it was flaming, then I'm sorry.
B@z dont care about him he maybe drunk or just a kid trying to waste time....i red the documentation of racknet it seems simple and organized i guess i will have to see it also :roll: (too many libraries and api s :P )
sudi
Posts: 1686
Joined: Fri Aug 26, 2005 8:38 pm

Post by sudi »

try enet first. its a really simple and easy to use lib. it has all functions you need to connect, receive and send data. RakNet is great but overkill when u just starting out with some network stuff. it has a lot of facilities that make life easier when it comes down to sync stuff and call functions remotely.
But in the end all these libs are just wrappers for the basic socket architecture.
So in case you wanna have a inside on the stuff read Beej's Guide to Network Programming.

PS: i read up on your posts here on the board....you are not that smart don't ya :P
We're programmers. Programmers are, in their hearts, architects, and the first thing they want to do when they get to a site is to bulldoze the place flat and build something grand. We're not excited by renovation:tinkering,improving,planting flower beds.
Post Reply