Handling Bullets, players etc

Hi, I am currently learning client/server networking and have learned a lot from Corvinex’s tutorial http://www.corvstudios.com/tutorials/udpMultiplayer.php. I have used his example as a base structure for my basic game however am having trouble coming up with a decent way to expand on it.

For example, right now the client server can only hand players and it does this through a PlayerList which holds all the players, decodes the servers message and updates the players, basically does everything. However I now want to add bullets and am not sure how I should go about that. I am thinking a probably basic but messy solution would be to create a BulletList and treat them just as players. But wouldnt I need to send all the Bullet’s data, and then all the Players data separately, that way I can send the string to the proper “List” to be decoded (or I could split it up i.e receiving a string ALLPLAYERINFO/ALLBULLETINFO, and split it between the / and send the first part to PlayerList and second part to bulletlist) but that seems to be a sloppy solution.

I was also thinking of maybe having the PlayerList be the way it is and then having a EntityList that will update all the things that extend Entity (bullets, items, etc). The one problem I see with this method is registerring new Entities. For example, the way it is set up now the PlayerList tries to get the player by its name and if nothing comes up, it creates the player and adds it to the list, but bullets wouldnt have names or w.e, so would I have them stored into a List by “ID” and then search for an ID? (would every single Entity have an ID?) Or should i just iterate through the bullets, set the X, Y, and then when i get to the end of the clients list add in the new ones that the server sent?

As you can tell I am pretty much completely lost and sorry for rambling but by any chance do i seem to be on the right track? Any tips, ideas or anything to clear this up will be appreciated!

Thanks.

just create the bullet manually.

btw: I tried doing what you are doing. you arein for a headache :P.

Lol too late, I always have a headache :D…

This is what i did for Robombs (http://jpct.de/robombs.game/):

The client doesn’t know what a remote entity actually really is (player, bullet (no bullets in this game anymore but i had them in in the past, crate, item,…). It gets data from the server like type, position, orientation, speed, animation,…and an id. That id is unique on the client that created that object. That combined with the remote client’s id itself (which the server can easily transfer too) is unique among all clients.
Each client has a list of objects per remote client. For every dataset from the server, it searches that list for the object’s id. If it’s there, it just updates the data. If it isn’t there, it creates a new one depending on the type and adds it. After all data has been received, the client removes all objects of that remote client that the server hasn’t send because obviously they are dead/gone.