Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

216 Neutral

About Gazu

  • Rank
  1. Gazu

    Best way of learning C++?

    Whenever I want to learn something completely new related to programming, I check out this youtube channel. That guy (or by now, those guys) teaches tons of stuff via little tutorials (few minutes each), which you can just blaze right through them. There aren't any exercises (but always examples with easy to understand explanations) and It won't make you an expert, but wou definitely will understand how all that stuff works, so it's a good starting point.
  2. Thanks man, I will have a look into that
  3. I'm currently looking into that topic too. I don't think it's a question of what language to use for it. At the moment I'm trying to get some open source examples for network architecture and it seems most things you will find there are c++. But I think basically any language which features some network capabilities, like TCP/UDP sockets for example, should be fit for programming multiplayer games of any genre. It really depends on your understanding of networking mechanics, so yeah, I think those classes you are going to attend at your college will be very beneficial for you. I would suggest, just pick any language you are the most comfortable with, and just start making any networking-related little programs, like a little chat application or anything like that.
  4. Wow I didn't know that either, thats cool! I'm not aiming for a shooter game, but since shooters are as action and realtime as you can get, that would be just perfect, thanks.
  5. Thanls, I'm looking into it right now, very interesting indeed, and also complementing some of my thoughts I had about networking. I'd still appreciate any further input
  6. Hey there, does anyone know if there are any open source action/realtime games out there which feature multiplayer or are based on multiplayer? I've been trying to get information on that particular matter for more than a week, but all I can get are very wishywashy general descriptions of how client/server models work, what TCP/UDP is, all that basic stuff which doesn't cover the actual problems. And there sure as hell aren't any tutorials for that kind of network architecture. (I'd love to be proven wrong here. Also I'd like to make a few myself as soon as I get the hang of it) Anyway, It would be great if I could study some actual code, I don't even care what the language is anymore, If I can't read it I will just have to make the effort of learning it to be able to understand the networking logic. Btw, I think this doesn't really matter that much, but I'm aiming for a 2D game here.
  7. Gazu

    UDP and TCP

    Oh I see, I wasn't aware of that particular difference between TCP and UDP, thank you.
  8. Gazu

    UDP and TCP

    I'm no expert, but from what I understand so far, UDP with delivery guarantee is basically TCP. So that would totally annihilate the advantage of UDP, which is, being faster than TCP. I think in fast-paced games with constant updates for the gameview, TCP should only be used for requests which really need to get to their destination by all means, like, the Server has a list of clients which are currently playing and wants to add a new client. If you use UDP for that and the packet gets lost, you're screwed. Of course you could modifiy it so that your UDP socket sends that "connection request" over and over, until it gets a response from server which tells the client "yep, I got you". But as I said, that is basically TCP. The thing with user actions is, user actions are most likely to be sent to the server all the time, so would it really hurt if there was some loss here and there? (which isn't even very likely to happen with UDP, it just CAN happen because there is no guarantee) using TCP for that constant flow of data would slow down the performance considerably and lags will become more likely. At least, that's what I understand.
  9. Gazu

    2D Multiplayer approach

    Excuse me, obviously I really suck at explaining myself. The whole thing is not supposed to be web based. No browsers. Imagine it like an MMO. Most of them are not played in Browerse (though some are). Or Like, Diablo. Again, no browsers. Just a game, featuring multiplayer, be it via LAN or internet. The only difference is, at the moment is, it's not designed so that one client is the host. Instead, there's a seperate program I wrote, which handles inputs from the clients via UDP sockets: that is the server. But I will look into what you suggested, maybe I will get some hints about how to approach the logic behind handling the data traffic in my approach, so thank you.
  10. Gazu

    2D Multiplayer approach

    I'm not using any browser/webserver/framework, it's all just plain .rb files containing ruby code. The server I'm speaking about is just a bunch of local ruby code, just as anything else =) I have the .rb files online at gist.github, but I'd want to refresh them since they are now outdated, and then polish them up a bit before posting it here. It's quite a mess now (many outcommented lines and puts statements for testing) Yea, that's what I'm trying to figure out how to achieve
  11. Hey there, I've been trying to establish a client/server architecture for a 2D Multiplayer application for like, 1-2 weeks now. I've been using ruby (becuse I'm comfortable with it's syntax) and rubygame. I have some problems now, it's kinda getting too complex to just find things out myself or via google. (still helps here and there, but problems seem too specific to get the right answers, which is funny because these should be common problems for EVERY newbie at networking) My "current final" goal is just having 2 clients connected to the server, each one of them being able to see the movement of the other player. The "game" itself isn't anything more than that just yet, just a moveable character on a random-colored background. What I achieved so far is, getting all the logic behind player movement to the server, the client just sends the key inputs to the server. I'm sending strings with a header part and the appropiate player's values to the server, which then knows how to change player positions accordingly, then sends those positions to all currently connected clients. Well at least in theory. Now this is where my confusion starts. The commnication and processing of the data itself works just fine. The problem is, waiting to receive messages on client and server. Because, as long as my client for example, waits for a message from the server, the game itself freezes of course, because the loop for updating the screen "pauses" there. At the same time, the Server waits for incoming input from the client, but since the client is in a frozen state, there will be none, and the server won't send any data. So naturally (I think) my first thought was, letting one extra thread handle as well the client's and the server's receiving data, and let the main loop just send the current information all the time. That way, the main loops won't be blocked by waiting for data. I am well aware that this is a very basic approach and that there is much, much more behind managing data transfer between clients and server, but with a small application on localhost and without any experience in that matter whatsoever, I thought this should do the job for now. But I was wrong, as the threads somehow just stop working as soon as I have the first input sent to the server. Or in other words, as soon as they actually would have something to do. So with that information, can anyone give me any pointers on how to approach my current goal? I will give out any information thats needed but I didn't want to create a too large wall of text for now, so thank you in advance.
  12. ^what he said, you should get to know one language rather well, like c++, java, or some script language like ruby maybe. Doesn't really matter I think, you need to get to know how things work, if you need to switch to another language some day because of performance issues or certain functions you need or whatever, that's not a big deal. You will have to get used to the new syntax (though its really similar most of the time) but you will keep your experience from other languages you have worked with. What you could do is, search the internet for guides/tutorials on how to make simple games like snake/pong/space invaders, and just go with the language the tutorial is made for. Those games include the knowledge needed for animation, collision, key input etc, at least for 2D games. I havn't been into 3D myself, don't care much to it and tbh, I think it would be a bit too much for me to handle. But you can't go wrong with some basic knowledge like that.
  13. I'm just writing the code in ruby, using the rubygame library for displaying. It's really quite low-level what I'm doing right now, thats also because I started working with sockets because I'm only interested into making multiplayer applications, so I'm keeping it as simple as possible and slowly working my way up. Also, I'm just using ruby for now because I feel comfortable with it's easy syntax and didn't want to dive into some new syntax, the main purpose for me is getting the logic for anmiations, collision and networking. So really basic and simple stuff on a low level, not using any special engine. I'm quite positive that I will switch to opengl in time, but I read it has quite the learning curve, so I didn't want to concern myself with that for now. The most important thing is, I have fun and I'm improving. Not very fast, but that's not neccessary, you just need to be persistent and keep working on it, even if it's only a little bit here and there.
  14. Learning basics first is never wrong, no matter what you do. So I'm not a 2D guru, I Just started working on that recently too and currently I'm working with rubygame. I'm coding all the stuff myself and use google for research on how to actually do it, but its fun and I'm sure it makes me grow as a programmer. It is time consuming yes, but it is also practice which will help you in the long run. Also, the more you understand the very basics, the more you will be able to write your own custom code for your specific needs and features. It all depends though, on how far you want to take your games. If you just need some basic functions and have an idea of how the basics work, you might es well use whatever tools to speed up the development to get some results. (Which can be very beneficial in terms of motivation) I'm just saying, digging the basics won't hurt you ;) It might not seem like the fastest way for developing at first, but I believe it will help developing in the long run. ...I might as well be wrong so, it's just my opinion on that matter ;)
  15. Hi there fellow gamedevs and those who'd like to be, such as me. The last 4 days or so I've been into playing around with 2D animation and, for the purpose of being able to develop games with multiplayer features, networking via sockets, and of course encountered many problems, of which some I have been able to resolve after some research. But I might as well try to get some input here instead of trying to google everything for hours (which I will of course continue to do ) Since this is my first post here, some information about myself might be a good start, so just skip the next "section" if you are just interested in my current problems I'm currently 23 years old and studying for a bachelor degree in informatics (also I'm from germany btw). Some of it is interesting, some is not, but we don't really get into things which would be crucial for game developing (or rather, I can't see those aspects yet). In my free time I like to play electric/acoustic guitar, do some sport (I guess most of you havn't heard of tricking) and playing games myself of course. Over the years, I often tried to find a way into developing games, but have never been persistent enough to get anywhere (last thing I did was a well working snake game in python...yea, the irony.), though my accomplishments over the past few days made me think I can do it now if I keep trying. Or at least learn a bunch of things which might me help one day. That's actually the main purpose of it all, learning, getting "into it" y'know So I don't actually have a finished concept for a game I'd like to develop, but rather I'm gathering things I might want to implement, and try learning how to do it so that I first know which technical features are possible for me to implement. After that I'd want to think about which what kind of game could make good use of those features. Though I already have some ideas which won't let me sleep at night, dammit. So heres what I achieved and what I couldn't achieve so far the past few days. I'm currently using Ruby and the rubygame gem, which works good so far. First step was, just creating a screen and having an animated sprite, moveable by the player. Wasn't too hard, works well, movement and animation is fluent and appropiate at any given time.I didn't use the Sprite class though, for me it was easier to work without it as first (will need it for collision though, I guess). Next step already went into networking, My goal for that matter was to be able to connect 2 clients to the server, both being able to move and also see the movement of the other player. I'm still far from there, but made some progress: 1. got familiar with TCP/UDP Sockets and decided to use UDP sockets because they are faster and the game view should update constantly anyway, so a bit of missing data here and their would be affordable. 2. Communication between the server and multiple clients works, one client sends a string to the server and all clients receive it. also keeping track on how many/which clients are connected, so everything works as long as i dont exit a client by closing the output window. (instead use ESC or the QuitEvent of the gamescreen) 3. got information about serializing, so I could send whole objects via sockets. Also working. 4. got information about threads, so I could let every client have 1 thread handling the input from the server. Doesn't work quite well, I don't know if its me or Ruby's threads, but the threads get to work a bit every few seconds, which would be equal to massive lag in a multiplayer situation. Possibly trying to use Java threads via JRuby (have read about it somewhere) So now the problems I couldn't resolve so far: 1. I'm confused, like, what the hell? I don't even know where to start. Actually, that covers the first problem. 2. What should a network architecture for these kind of tasks look like? Like, should I create a class for the server, the client, then in a different file creat server/client objects? How can I build the code so, that the server handles all the logic, while the client only gets the user inputs and updates the view? (to prevent cheating). Currently, the calculations for the new positions for x/y values and animation cycles are still done within the client's code, according to the current framerate and the general speed of movement of the player(which is determinde by some vairable). I'm kinda confused as to what impact on performance and updating it would have to get all the logic to the server, sending the new positions back, and what the best way is to achieve that code-wise. 3. Serializing, how to efficiently utilize it? Obviously I need to send serialized objects to the server, which recognizes the objects and can work with the data, then sends the serialized object back so the client can update the screen according to the data. Sounds simple, but I'm struggling with how to actually implement all that stuff, I have the feeling I'm just over-thinking many things and miss the obvious solution. 4. The threads, I already mentioned that before. They are slow. Like, really. Whats the point of a thread which only gets some time to work every few seconds, here and there. I guess there are applications which can make use of that, but a 2D Multiplayer? I highly doubt it One thing I'd also like to say, some of you will most likely remember having googled all these topics on how to start making games, all those guys in forums asking that question and being told they need to know the basics, make a small little simple game before doing anything bigger. So just saying in advance, please don't give me that, I've been there But I guess you're all smart enough to see that I'm already trying to dig up the basics and yea...wow, that was much, much more text than I expected, guess I got carried away a little. Anyways, anything to help me out with any of the topics I have posted here is appreciated, be it references to tutorials/guides, sharing your own experiences or just some thoughts you made up on the spot.
  • 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!