JohnCaruso.ca
New design... work in progress.

Completely Random (and without warrant... or warranty)

Rates
Copy/Paste Killer
TempCopy
Infinite Comic
Amazon .com/.ca Comparator

//Online_Multiplayer_Briscola.exe

After writing a pretty simple chat server I decided that I wanted to put it to use. I had a suggestion by a friend to make an online multiplayer briscola game, so I decided to do that. It seems like the perfect way to go through a little design exercise. The good part is that the gameplay is already done, because I chose to make a card game that already exists. So, here is the log of everything that I've done. Once complete I'll have a link to the game right here.

The complete project log is below... archived from my regular blog.

Online Multiplayer Briscola// Trying to get back into it
Lately I have been losing interest in this project... its mostly because I know I can get it done and exactly what I have to do, so there is no more challenge just tedious coding. But still it needs to get done, otherwise all of this work will have gone to waste, and it will look like I am all talk and no action.



So in an attempt to renew interest in this game I did a ton of work on the interface today! That is probably the single most tedious part of this whole project, and it is almost done. All that is left is to create the artwork then the interface part is done. Then it'll be onto the client/server connection and communications, then TESTING!



Here is the basic interface so far, minus artwork:



That is probably all that I will get done tonight. There is another hockey game on tonight and then tomorrow I'm going to Buffalo. So, it looks like this is all that I will get done period for the next couple days. I'm afraid to make a deadline for when this stuff will be done because I know for sure that I'll just miss that one too.
Online Multiplayer Briscola// Looks like a no-go
Well, its friday already, and I haven't even touched Briscola in 2-3 days. So, from the looks of it there will be nothing done by Christmas (since I'll be in Windsor). Man, do I know how to procrastinate or WHAT?



But I should have plenty of time to work on it when I get back next week because my friends will be up at Steve's cottage (link to photos from 2004's trip to the cottage). Would have been cool to be up at the cottage with all that snow, but I'll still be on the road on my way back from Windsor by the time they leave. Oh well...



So, until next time Merry Christmas and all that other wonderful stuff that goes along with it.
Online Multiplayer Briscola// Client/Server
So, I'm back to my old tricks again. Decided that I wanted this thing to work properly the first time around, instead of hacking away at it all day. So, I'm working with pen and paper to get my client and server communications all figured out.



And, so far so good. I'm running into issues that I didn't think I'd have. And if I had started coding this right away I'd be not only kicking myself, but erasing a lot of the work that I would have had done, because it all would have been shit.



I'm starting to have huge doubts about this being done by Christmas. I might have a working demo if I'm lucky, but I'd much rather be out and about than inside my house all alone staring at a computer monitor.



More on this later, but now time for lunch.
Online Multiplayer Briscola// Development Begins... again!
I finished up my essay this morning, which means I've got the rest of the week to work on Briscola! I'm not exactly sure what I'm going to call it, probably just Briscola (blatantly obvious, eh?), but I'll keep my options open.



Thankfully, after the nightmare of a weekend I had, all of the briscola source code was recovered and it is all intact! I ran the test game I had created and it still compiles and runs. So that is great news.



All I've got left to work on now is the interface and network functionality. I've created a prototype of the interface in mspaint. It is really ugly, but its the best I could do with a mouse and that cheesy drawing tool.




So, it looks like I've got my work cut out for me. I am going to work towards getting this done BEFORE Christmas.
Online Multiplayer Briscola// Am I done?
Holy crap, am I done?



Who the hell knows, because I didn't bother to define what "done" is. I haven't documented anything, so I don't know what is or isn't done. Basically, its a mess over here.



I *think* I've done everything but the interface. So the Game class along with the Player, Deck and Card is finished as far as I know. The game can handle 2, 3 or 4 players right now.



So, other than making the interface I still have to design the protocol (not sure if thats the right word) or commands that will be used between the clients and server to determine each player's actions, as well as updating everyone on what happened in the previous round.



I'll leave that for another time. Right now I should clean up the code, try to comment stuff, and start 'designing' the rest of this project before it gets WAY out of hand. All things considered though, today was a pretty productive day.
Online Multiplayer Briscola// Doing what I said I wouldn't
It never fails. I start off heavy on the "going to design this thing first" but end up winging it instead. It seems to be going well so far, but I don't know how everything is going to tie in at the end.



I've been working on the actual Game class, which will take care of all the rules and game state for a 2 player game. Once I've got that all worked out it should be simple to increase it to 3 players. A 4 player game will require a bit more modification, but nothing too difficult.



... back to work.
Online Multiplayer Briscola// And it begins
I got tired with the whole design thing. I don't think I'm giving up on it, but I really wanted to start coding some stuff. So, I decided to start on something easy, and that I know for sure I'm going to need, and how it will work.



The Deck and Card class. I've got most of the Deck stuff done already: cut, getTopCard. Actually, thats hardly anywhere near 'most'. I've still got to make the constructor and the shuffle function.



So yeah, thats where it stands right now. Organization is really hurting though... I think I'm going to go out tomorrow and pick up a 2nd monitor and videocard to get some crazy DUAL MONITOR ACTION going.
Online Multiplayer Briscola// DESIGN!
Well here it is, the start to a new and incredible project that I've had in mind for a couple of weeks now. I'm really excited about this one, and I wanted to start coding last night, but I really want to do this properly. So, I've decided to design the whole thing up front. Everything from the class names to function names, window design to code organization.



I've decided to also start using Eclipse to put this project together. A couple of people in my graphics course were using it for their final project, and they seemed a hell of a lot more organized than I was.



So here it is. To start off I'll break down all the pieces of the game into classes that I'll need to implement.



Disclaimer: By no means is this the best way of doing things. After all, this is my first attempt at doing something like this by myself. When it comes down to it, I'm just a n00b... an amateur.



The Problem: To make a game that connects people over the internet and allows them to play Briscola together.

pretty vague, huh?



Game Class:

This class will take care of the mechanics of the game and hold the game state. It will house all the rules and take care of how the players will interact with the game. It also needs to have a way to represent a deck cards.



Card Class:

This class will allow me to create a card. It will basically just contain 2 variables, number and suit, and the requisite get and set methods.



Deck Class:

This class will hold many Card objects. For Briscola it will need 40: 10 of each suit. It will also need functions to shuffle and cut the deck. As well as a function to remove 1 card from the top of the deck (go STACK!!!)



Client Class:

This class will hold everything that someone needs to be able to play the game. Since this is going to be internet based, it will have to talk to whoever is hosting the game. It contain the GUI that the user will interact with, and everything it needs to connect to the server and receive commands from the Game object.



Server Class:

This class will work directly with the Game object. It will receive commands from each of the clients and pass them onto the Game. It will also need to receive commands from the Game and pass them onto the players.



Player Class:

This class will represent a player. It will hold the cards that each player has in hand as well as the cards that they have won. It will also need to total up the points from those cards at the end of the game. This class will fit in somewhere with the junk I've described above, probably in the Game class.



Team Class:

This one just came to me like 10 seconds ago. This class is needed for when playing a 2-on-2 game of Briscola. It will have to store the cards that the teams have won and which players are on that team. It might be better to always have a Team object even if playing 1-on-1, just to make implementation easier, but I think that might get screwed up when playing 1-on-1-on-1. Guess I've got a lot more design problems than I originally though.



Also, maybe the Player class should inherit from the Team class... or the other way around?



Ontop of all this, I'll also need tons of artwork. I'll probably go out and buy a couple different decks of italian cards and scan them in.



Then somewhere inside the server and client classes I'll need to define what the commands will be and what they will do.



And inside the game class I'll need find a way to make the rules modular, so I can easily switch between 2, 3 or 4 player briscola, as well as make a ruleset for Covello Brisk (I really want to do that, expose it to the world!)



So, I think thats good for a first post, kind of long though. I'll review this stuff and try to iron out the problems and inconsistencies.