scidave's Forum Posts

  • Thanks all for the inspirational words!

    Hmm, well, maybe even on Raknet library, this should be done by the programmer, since prediction may vary from each game style.

    This is a good point. I'm inclined to agree. I think most people will have to do this based on their type of game. The only thing that can perhaps be done to help is provide people with an example or two on how it is done and they can take it from there.

    When i initialize udp server, there is some function with while statement in there, and it freezes everything.

    I think you are talking about this call: server.serve_forever() which leads to netbase.py and the while loop. The problem is this pretty much hijacks the main loop and that doesn't play well with Construct. That is why I like PodSixNet so much because it uses the Pump() feature to check packets but doesn't steal the main event loop. I'll have to look at Mastermind closer to see if there is a workaround.

  • I really can't think of a way to make it any simpler. Any ideas?

    The button only takes you to the download website, but not the actual link for the download. A friend of mine couldn't figure out what to do once he got to the page since there are so many different versions on that page. It needs to point straight to the download.

  • EDIT 2: I've found something like Podsixnet (i guess), but with UDP protocol support as well. Maybe you should see that one too:

    Thanks for the great info frpnit! I didn't know Eve online used Python (UDP library).. that's pretty cool. I also noticed that this is your first post, so welcome to the forum! Construct is an awesome tool and this community is very helpful.

    That Mastermind library looks exactly like what is needed for higher speed over internet games. I don't know how good the performance will be, but it should be better. We will still have to do some interpolation/prediction to handle long lag times which unfortunately right now we have to manually do.

    I did some more testing using a Network latency simulator and the Dungeon game actually performs pretty well up to around 150ms lag. That's not bad!! I think the slowness that MacieJ was talking about was how I made the game. The new version I uploaded seems about as laggy, but is more responsive so people may like that better. I've removed the old version and made a few server improvements and uploaded a newer version.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Thanks folks!

    It's quite slow so the turn base game type would be the best for it, but it works.

    I limited the maximum speed to be slow (40) to see if there would be lag online, but it is probably a little too slow. So I'm not sure if you are seeing lag or just the default slowness of the movement.

    Could people try out this version, with faster speeds, and let me know what lag difference you see online and in LAN?

    http://www.box.net/shared/ypq6pdj0mf

    Either way, a UDP solution w/interpolation will be much better for any game (FPS) with high movement speeds. There just happens to be a UDP Python library so shooter type games, over internet, should be possibility at some point.

  • Here is the last example game for the networking tutorial... that I hope to finally start on next week. I optimized this one as much as possible for many players and on a LAN I wouldn't be surprised if 20+ players could play. I've limited it to 10 players due to size of game field. This is a TCP networking engine and I didn't do any interpolation so let me know if you try it out over internet.

    Edit: I think turn-based, real-time strategy, slower action, RPG, and strategy are possible for this particular library (PodSixNet). The only game that TCP is a poor choice for is fast real-time games (FPS). After doing more testing, I think with interpolation/prediction most lag issues for the TCP engine on "slower" (speeds less than 100 pixels second) games can be accounted for (after all WoW and other MMOs use TCP). Still I plan to look into UDP "down the road".

    <img src="http://i43.tinypic.com/153ma2p.jpg">

    Get the files here (need .99.84):

    This is a new version with a slightly higher top speed and acceleration. Also, some server side changes to reduce # packets.

    http://www.box.net/shared/ypq6pdj0mf

    You will need the dependencies on both the client and the server.

    If you want to host the server online either setup your router for NAT passthrough or use a tool like Hamachi (https://secure.logmein.com/products/ham ... nload.aspx) on everyone's system. Hamachi will setup a virtual LAN between everyone's system and the game runs pretty good in my testing over the VLAN.

    Controls:

    Up, Down, Left, Right - Control your guy

    Spacebar - Drop Stars/Bombs. These inflict heavy damage on other players and slow the beast down.

    T - Teleport. Randomly moves you on the map.

    L - Light You only have limited light so use it wisely.

    M - Minimap Your light must be off to see other players positions with the map. Using the

    minimap lowers your health, so use wisely.

    Strategy:

    The goal of the game is to either be the last one standing in the dungeon (you can't kill the beast) or to escape first. You need one key to be able to unlock the blue portal. Look out for the red traps which slow you down. The keys, traps, and escape portal are randomly generated each time you play.

    I was going to turn this in to a real true game, but I'm running short on time so I figure I better get the tutorial out like I promised.

    Will you work together to escape the dungeon or feed your friends to the beast?

  • As a completely separate request.

    I really think Construct 2 should have a proper runtime debugger. Ability to step into code and breakpoint. Essentially, the same as the current debugger but with a little more polish.

  • yeah, I completely forgot how I was cursing his name for using that host.

    That drops the score down two grades. Heroin Use a better host if you want people to try it out!

  • because he selected "Enable Scripting" without having the libraries installed even

    Thanks, this is a good point. If you don't have Python installed and select enable scripting then you will have to do manual work to setup your paths and make sure the Python26.dll is in your execution path when you are running the code within Construct. He could have just built the executable, making sure to select the proper dependencies, and it should have worked fine when paired with the DLL.

    However, my advice is if you want to work with Python, as a developer, then just install Python and save yourself the hassle.

  • That was some crazy action. Nice start to a game.

  • There does seem to be some confusion surrounding Python. Probably because of its past broken integration with Construct. Not that everything is fixed now, but it is much better.

    Basically, Python support with Construct is broken down into two areas: developers (i.e. those of us with Construct that are making games) and the users (game players).

    Developers:

    If you are a developer and you are not using any external libraries (like Pygame) then I don't think you need Python installed on your system since all of the Python dependencies are in the DATA directory.

    You DO need Python 2.6 installed on YOUR system if you are working with any external libraries (i.e. want to add networking support, joystick control, etc.

    End User:

    The end user does NOT need to install Python to run Python/Construct games. They DO need the Python26.Dll library which is the Python runtime. This is a ~2 MB shared library which the developer packages with the game. If an external networking library was used in the game then the developer packages those dependencies with the game (just like sound files). At no time should the user have to download or install anything extra.

    manontherun - Sorry if I came across harsh. I think I understand what you were trying to say. I just don't want users getting the wrong idea about the language.

  • Thing about python is its not professional

    You're joking right?? Do you know how many professional projects from Google, Soya, Blender, Panda3D use Python?

    people will refuse to play a game that makes you DL python (assuming it requires that installed) or uses it.

    Why would a person care that Python is used in a game? and for the record end users do NOT have to download Python for it to work with Construct. Only developers need to do that. If you are concerned about the user seeing the Python DLL, just package your game in an installer and the end user wouldn't know if Python, C, C#, etc was used without browsing through the install directory.

    Happens all the time...

    Reference please.

    There are obviously pros and cons to using Python. Certainly, if you want blazing performance for certain sections you need to write those portions in something other than Python or accelerate with Psycho. In addition, the Python integration with Construct could use quite a bit of polish.

    All that being said, in 99% of the users here what language a game is written in won't matter assuming it gets the job done. You can write good and crappy games in any language.

  • How about Python?

    Its a bit hazy if it will get it or not, but given all the recent cool stuff, I'd say its a gotta have.

    I totally second this. Python is a great complement to Construct. Plus it allows people to get a flavor of programming they may not have tried otherwise. Python libraries are so widespread that it greatly increases what people can do.

  • That mario cart thing is impressive. I'm blown away by this stuff!

    can you please put some comment in there to explaining what going on there?

    A few short comments would be helpful for us mortals.

  • Wow Telli that is a very impressive animated logo,

    I second that. This video should absolutely be at the start of the Showreel. Awesome work.

  • thanks newt, for now I decided to just destroy the object on startup. I wanted to keep the ability for the players to hide behind walls.