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.


Thursday, November 6, 2014

More Progress!

I've continued to work on the application, despite knowing that at some point in the near future it'll be scrapped and replaced with a web application version. I'm currently at the third alpha build, which has been stable enough to play with other people in a very enjoyable manner. We were enjoying it so much, in fact, that we continued to play past the winning score we'd agreed on until we couldn't play anymore. The results of which are shown below.
I almost don't want to scrap the Python version because it satisfies the overall goal of this project - create a way to play TSSSF with friends from afar in a way that is more fun than with Tabletop Simulator or Vassel. However, I feel that both the project and the community would benefit the most if I took this a step further.

More to come...

Sunday, November 2, 2014

Possibly Going In a New Direction

After fixing some of the bugs and testing the alpha with other people, I started to realize that the amount of effort and time I'd need to put into this to get all of the features I'd want would probably not be worth all the effort when the system I'm using is a bit clunky.

The graphics are a bit slow to render and don't look very good, everything that I've programmed up to this point has been so rushed that continuing from where I'm at would be difficult (I'd have to wade through a lot of code and clean a lot of the clutter up), and the protocols I've devised are rather poor.

I've reached a fork in the road - I could continue from where I'm at currently and end up with something okay but not great, or I could start over using what I've learned to create something even better (although it would take more time).

I'll post more information in time.

Saturday, November 1, 2014

First Post!

Hello! This is Dylan Raub, aka Raubana, aka DustyKorg.
This is the first post for the TSSSFgame stand-alone blog, which will be used to keep track of changes, progress, and news regarding the game.

To start things off, the first alpha build of the game was tested on the 30th of October, 2014. Despite the foreknowledge that the game wasn't in a completed state, it was, more-or-less, still playable. However, a few notable problems did become apparent through testing. The list goes as follows (and may be edited over time):
  • Sounds were not working with the compiled version of the game.
  • All clients will crash if they receive a message from the server regarding the public goals, if the public goals list is empty.
  • The server will crash if someone disconnects mid-game and doesn't reconnect before the server automatically kicks them from the game.
  • If a player is kicked from a game, all cards they had on them will be lost until the next game.
At the moment, I am testing the sound issue. I will post more information over time.