Digital Dave

Musings on projects, business and life.

Icon

Snowball Fight: Scores

Well, I decided to implement some sort of way for a user to know how they are doing.  So, tonight, I tossed together a way for the player to know.  The point values are not set in stone, yet, but they go as followed:

  • You Hit Somebody +100 Points
  • You’re on Fire BONUS STREAK 3 +500 Points
  • You’re on Fire BONUS STREAK 5 +1000 Points
  • You’re on.. Have Mercy… BONUS STREAK 10 +5000 Points (God, help those that play with this person)
  • You Get Hit -150 Points (I need to make this a high value, to provoke you to care if you get hit or not)

Of course, play testing with my tester will help round out these numbers.  Here is the score screen, and my lashing that I gave a innocent test dummy.  I want to avoid, at all costs, putting anything UI related on the players screen while they are playing.  This score window is completely voluntary.  If you want to see how things are going, and you’re hiding, while other people are reloading, tap ‘s’ to bring this window up.  Of course, the streak is put on this window so everybody knows who to team up on.  Good luck nailing that 10! ;)

Point Window
 

Snowball Fight: Preview User Interface

I spent the evening throwing together the user interface.   Everything is there, and the following will likely will not change from where it stands, except for the credit screen.

So, Let’s get a glimpse of how the user progresses toward the actual snowball fight. Now, these transitions actually fade into each other.  If you have seen my prior game, Breakout Returns, then you’ll know how smooth these transitions really are.  If you haven’t, then you’ll get to see on Christmas eve, I hope.

Main Screen

Credit Screen

Server Selection

The only other thing that I might add on the user interface is the character select screen.  Well, more like a jacket color select screen.  But, I’m not sure if I’m going to go through with that.  Other then that, If I actually get the game completely polished before Christmas Eve, I may go through and finish the particle system so I can get some snow going through the menus and into the game.

Oh, yeah, and this project nailed me 100% in my networking class.

Snowball Fight

I updated a few things on the game tonight.  One of which, is an indicator that signals to the user how many snowballs they have remaining to throw.  How the game works is that a player can only hold a maximum of TWO snowballs, and after they deplete, they must run back over to a snowball mound to pick up another set.  The user will be able to tell how many they have by looking at their cursor.  Right next to the arrow, will be either 1 ball, or 2 balls.

I also integrated a message queue for the network.  This will make sure that all of the requests are actually processed, and that nothing is skipped. It also helps me manage a few other things effectively.  This probably should had gone in way earlier, but I’ll contribute that failure to my newb status.

Let’s see. What else.   Ah, I also have a feedback mechanism now that will trigger when you are hit.

I started working on the user interface for the main menu, credits, and player selection (jacket color).

I also fiddled around and tried to make a particle system.   Mainly for my main menu (snow).

That about wraps up progress for tonight.  I get to take Calix to the vet in an hour to get him Neutered.  Wish him luck, and pray that he doesn’t hate me after taking him there and leaving him.

A Few Notes – December 17th

If you are going to a University, or even if you are in high school, that does not offer any sort of game development courses, the Game Institute is having their yearly Christmas tuition discount — 20% off.   I highly recommend the place.   I’ve taken a couple courses through them and I haven’t been disappointed.    Self paced, game development centered, great staff, organized content, and fair prices win me over.  Just thought I’d note that for anybody who was curious about the place.

After being thrown completely off course last week from the ice storm, I plan on jumping back on the Snowball Fight bandwagon tomorrow.   There are a lot of things I want to do to it, and I really want to finish it.  I’ve been thinking that I need to add some sort of chat system to it.  It would be semi-silly to host a snowball fight with people out there, have them log in, throw a snowball, and log out, without the chance of knowing who they are.  So, we’ll see if I can pull this one out.  The game window is pretty small, so I don’t have a lot of room to work with.  I suppose, at a minimum, I can just allow people to log in with a user name that could easily allow people to I.D. each other.  I don’t know, I’m still thinking about this.

So, I survived another semester.   Not nearly as well as I wanted too, but I did.  I’ll save my educational pain for another post.

Introducing… Snowballs, minus the Fight!

After doing some optimization on my packets that I send to the client, I decided it was time to put in some more functionality into the game.   I still have further optimization that I can do on those packets, but I figured I’d move on so I could get something else finished before the due date.  I did end up testing it on two different machines, and it ran pretty well.

So, when I developed my Breakout Clone, I wasn’t really concerned with anything but firing up, and if it hit something, bounce off into a direction that seemed logical.  I knew that wouldn’t cut it in this game.  I couldn’t restrict somebody from throwing something left, right, up, or down.  So, after refreshing myself on some trig, I got it to the point where the snowball will be thrown based off of the angle where the user clicked.   It was a lot easier than I was making it out to be, but half the battle is understanding what in the heck you’re doing.

Anyway, I have some pictures.  Of course, I plan on restricting this so one player can’t claim complete and utter domination over another, but I do plan on having it be a bit on the chaotic side. >;o)

And My Favorite…

I also changed the cursor. The prior cursor just wasn’t going to cut it.

Snowball Fight: Milestone I Complete

Well, I’ve completed my initial ‘base’ task for my networking project. The big concern for the project was to at least have it to where I could have two players running around simultaneously. This, alone, should easily net me an A on the project. There are still people who have yet to start on a final project. Call me an over-achiever, but I enjoy myself some game dev time. >;)

I’ll need to do some testing with somebody to make sure that what I’ve got works well from two different locations. Running it on my poor laptop isn’t netting me the results that I need, and that’s probably because when I fire up the server, I have 2 threads running. Firing up a client, nets 1 thread. Add that with two games, utilizing SDL, and you’ve got yourself a ‘lag fest’ consuming tons of system resources, even over the local host. I’m pretty confident that the code is well enough to maintain a constant stream of data back and forth, without all of this other processes going on, but we’ll see.

Essentially, my logic goes something like this.

I have a ‘PlayerPosPacket’ structure that consists of the x, y, avatarNumber, playerNumber, and the totalPlayers (maintained by the server packet) for each player connected.

With that in hand, I can easily pack up the players data points from the current player objects, send it on to the server, the server can unpack it, re-assign the new values to the objects, repack the new values (catching any updated movements), and send it back to the client with the updated structure. And the process revolves just like that.

I would post code, but the project hasn’t been turned in yet and I don’t want to violate any school rules in the rare case somebody finds this blog. I’ll save ‘code-and-show’ until the end of next week.

After I do some testing, I’ll be sitting down to write down the tasks that I want to complete by Christmas Eve, doing some housekeeping on the code base, and moving on to throwing objects.

Burning the Midnight Oil

Not because I have to, but because I wasn’t feeling tired, so I thought I would spend the night working on my Snowball fight game.  So I picked up some new tracks from iTunes, and went to town.   I want to get this thing working really well for my networking class.  I still have 10 days to finish it, for that deadline.  So, we’ll see how far I get, but there are a few things that I will not even be worrying about until after the deadline.  Modes (yep, modes!), menu screen, user interface, and …. AUDIO… Come one, don’t you want to ping your buddy over the head to the tune of a remixed Jingle Bells?  I think (or hope) I can mix something good together. ;)

I have 2 1/2 weeks until my next semester class begins (Jan 2nd).  So, by Christmas Eve, I hope to have this thing fully decked out for distribution.

I figured I would update the blog with my progress this evening.

Well, my systems were not designed exactly right, particularly how I was dealing with players being introduced to the server and client.  Luckily, it wasn’t bad at all to fix.  I was also having some fun trying to get the client and server to work from the same application, but I eventually got them working.  That was mainly due to downloading boost and needing to get a little familiar with it.  I particular wanted it to use it for Threading.   Right now, I just bump a thread to handle the code that will accept a new connection.

For testing purposes, the server can drop in players, up to 6 (or however many is defined), onto the game map.  Collision detection works fine, the players move around just fine (one at a time), and things look like they’ll work well from a data transmission point of view.

This might look familiar to you, from a few entries ago. But, now we’ve got some multi-colored jackets.

Which makes me wonder if you’re thinking, “Multi-colored jackets? How do we…”

Free for All.

Manipulating the map is simple. I have plans to drop in my Calix Map Editor with the download so the server master can create a custom map, and transmit that new map to the connecting players. So, the mode of gameplay will be: Teams, and Free for All.

But, before all that, I’m going to get back to the code. Next up is to finalize the code for communication between the server and client(s).

Snowball Fight

In a prior entry, I wrote about a final project for my networking class.  Well, scratch that idea. ;)

I turned the concept into a multiplayer snowball fight.  I figure it would be pretty fun to sling a snowball at your friend for the sake of the holiday season that is fast approaching.   I will be trying to reach a limit of 3 on 3, with anybody over 6 players being in spectator mode, with the ability to join in once a player disconnects.

I redid the artwork and added a few more pieces, finished the input system, and I finished the collision detection system this morning.

Here is an in-progress shot!

Well, up next is some of the networking system. We’ll see how well my systems were designed for a client and server interaction.

David McGraw

Founder of iGotIt Games. Trader. Runner. Warrior. Motivator.