Wednesday, December 31, 2014

Happy New Year! The public builds are now available!

I finally released a public build of the server just yesterday! Here are the steps to setup your own server:

  1. Get onto your computer that you'll be using as a server.
  2. First you'll need to find out your computers local IP address your routers local IP address. On Windows these can be found by going into the command prompt and typing in "ipconfig". What you'd be looking for is a line near the top that says something like "Ethernet adapter Ethernet", and under that a line that says "IPv4 Address". The address to the right of that is your computers local IP address. There should be another line that says "Default Gateway". This is your routers local IP address. You might want to write these down for this next part. I've attached an image of what that would look like for me.
  3. Next you'll need to setup port 27015 on your router that's connecting that computer to the internet. To do this you'll probably want to look into your user manual, but most routers can be accessed by typing in the routers local IP address into your web browser (usually that's http://192.168.1.1/) This should bring up a prompt asking for a username and password. Type those in and press "Ok."
  4. You should be in your routers setup page. You'll need to find a link that says "port forwarding" or maybe "applications and games". I've attached an image of what my routers home page looks like and what link I'd need to click.
  5.  On that page you'll need to setup a port where both the internal and external port number is the same. TCP will work for the protocol, but I'd recommend just setting it to "Both". The most important part is setting the IP address for this port - you need to put in the last part of your computers local IP address. Finally, make sure the port is enabled then hit "Save Settings".
     
    If your computers local IP address changes (which can happen since it's automatically assigned), you'll need to do steps 1 through 5 again.
  6. You're almost ready! Next you will need to download the TSSSFgame content, if you haven't already. This can be done through this repository. I'd recommend cloning the repository using Git so you can easily and quickly download future updates, but you don't need to - there's a button on the lower-right of the page just below "Clone In Desktop" that says "Download ZIP" which will give you everything you'll need.
  7. Once you've downloaded everything, go ahead and open the file called "RUN_SERVER.bat" in Notepad (or some other simple text editor) and make sure that the third line is the same as the file-name for the server executable. If it's wrong, go ahead and change it and then save.
  8. Finally, to run the server just run "RUN_SERVER.bat." This will bring up a command prompt window, this will let you know about the servers status. You might be wondering why you wouldn't just run the servers executable - the reason is that the server executable is setup to close every 5 games. The .bat file is setup to automatically re-run the executable anytime it closes (or crashes, which can happen).
  9. The next part is to go and find out what your internet IP address is. This is the address other people will need to connect to your server. There are plenty of services online that can give you this address. My recommendation is using IP Chicken. You will need to give this address plus your port number (in this case it's going to be 27015) to other people, which they'd type into the TSSSFgame connect screen. Once people know your address, you're done!

Tuesday, December 30, 2014

Reserved Names! Admins! And much more!!

I did a video just now that summarizes many of the recent changes I've made to both the server and the client application. I should be able to release a server build pretty soon.

Friday, December 19, 2014

More Scalable Grid

I realized that completely rewriting the shipping grid was a silly idea. There were tools already at my disposal - it seems I thought ahead when programming most of my code, so it seemed easier and more reasonable to reuse what I'd already done.

Surprisingly, I've managed to get it working already! It might not be done, I still need to test it out a bit and suss out any bugs that might remain, but early signs are looking good!

Here's a video comparing the older version with the newer version:


Wednesday, December 17, 2014

Scalable Grid

I've started on doing the scalable grid stuff today. A lot of the code will need to be scraped and redone in order for this to work properly, but at the very least I've managed to get some of the basic stuff working already. At this point, the new shipping grid scrolls in the correct direction now, at a 1:1 speed to the mouse in both axes, which is a really nice improvement. There's still a lot more that will need to be done before it'll be usable, though, so I'll keep you all updated on that.

Here's a short recording I did which shows the basic functionality of the new TableElement class.






Monday, December 15, 2014

Alpha 4 client is now out.

I just pushed the 4th alpha build (and all required content) to be included on the TSSSFgame GitHub repository.

https://github.com/raubana/TSSSFgame

At the moment, it's not going to be much use without a server to connect to, so I'm going to focus on pushing a server build ASAP.

Moving to Next Phase

Alright, so right now I'm going to start on the forth alpha build of the application. This one will be released along with the first server build plus an updated version of the card editor. These will likely also be the last builds to be made in python.

Hopefully these changes will be rolled out by the end of the month.

Goals:

For the project:
  • Make the local variables safely accessible to the users.
  • Add in the ability to undo moves.
  • Add in a drag-n-drop system based on which move is currently being done and with which card.
  • Fix the 'kick' system so users are properly informed of why they were kicked every time. (Added a 1 second timer to netcom's Server class when it expects a kick to happen. Should be long enough that the client receives the kick message before being disconnected.) 
  • Allow people to spectate.
For the server bootleg:
  • Make it possible for the server to reset without having to reload the application.
  • Make the server reset once all players have disconnected or once the number of players has become less than the number needed to play.
  • Improve the timer system so it's fair.
  • Make it so kicked players' cards are safely added back into play once the current player's turn ends.
For the client application:
  • Fix the "Segmentation Fault" error that crashes the game. (Likely caused by frequently reloading fonts in the Templatizer class.)
  • Make the shipping grid scalable.
  • Make the shipping grid scroll properly.

KEY:
  • Fixed.
  • Not fixed, but might be in later versions.
  • Not fixed yet.
  • Won't be fixed.