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.

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.

completed project, gdc, career

So, I whipped together a project for my networking class today.  All we were required to do was to create a SMTP client that interacts with the mail server on the campus.  I tossed this together in about 30 minutes after I figured out that I couldn’t access the mail server on campus, while I’m NOT on campus.  Boo!

So I am starting to think heavily about the Game Industry lately. Mainly because the year 2008 is a critical year of my growth as a developer. I’ll graduate college in December (2008), and I’ll start my career in January (2009). But, which direction do I REALLY want to go? Do I want to go straight into Game Development? Do I want to start in the Software Sector?

I spent 4 years in the Marine Corps, and now 4 years at College. I’ll graduate at the age of 26. I, personally, do not want to “waste” time in the software side of the house, when all I really think about is the game industry. Hell, I spent a critical amount of time in college following the game industry. Do I have a LOT to show for it? I have a lot of persistence and dedication to show for it. Beta testing software and games, designing and developing very small games, to even bringing out some creativity to write short stories.  Do I necessarily have the programming capabilities to be in the league of AAA development? That’s where I fall in my own trap. Do I know enough to start in the Game Industry?

I’ll be looking for an internship for next summer. I can’t help but think that I want to concentrate on the game development sector before I turn to the software development sector. With any luck, I’ll have an internship that can tell me if I belong in the game industry as a programmer. I’ll get to be around the atmosphere first hand, and I’ll be around AAA programmers (hopefully).

Only time will tell with this journey, but it sure does creep up on the mind pretty often!

That all leads me to think about the Game Development Conference that is coming up in February. Should I go? I’m not concerned with being able to finance a trip, due to getting a scholarship this year. I can’t help but think how well it would benefit me on the networking side of things. Not only that, but being able to talk to programmers will allow me to get some feedback from somebody who is enduring the trip as a game developer.

Crunch time is coming up. I have just less than two months before I actively pursue an internship with somebody… *bites nails rapidly*

final project

Well, I ended up getting my final project for my networking class. However, it isn’t really my FINAL, FINAL project… He has yet to give us our programming project 3 to do, due to some out-of-control circumstances. But we did get this one, which gives us time to think about what we want to do, and we can obviously start it now to get a leg up on it.

The project is… Well, just a distributed systems project. I get to choose what I want to do as long as it fits the whole server and client mold. That’s GREAT! I was hoping that it was going to be like that. This will give me an excuse to spend all kinds of hours on a small gaming project, that I could potentially carry on with after this class is over.

But… What in the world am I going to do?

I haven’t had any sort of revelation on what I know I want to do. However, I’ve thought about some things.

  • [Not Bad] Create a Tic-Tac-Toe game.
    • People can Create a ‘Table’ where another person could click to join the table.
    • People can View a ‘Table’ where people can see what is going on
    • … And other stuff …
    • Created in C#, using nothing Fancy.
  • [Challenging] Create a 2D top-down style game, and allow clients to connect to the “world.” They’ll be able to run around, see other clients.
    • In addition, they could ‘Talk’ to each other.
      • Via Chat Bubbles
      • Via a In-Game Console
    • Game Portion
      • If more than one player is on the plane, a “FIND AND SEEK” game will initiate. This will dump player-specific orbs (via, color) all over the place, and the player with the most orbs collected AFTER all have been collected, Wins! Simple enough.
      • In addition, but probably one of hard concepts to implement is allowing a weapon to be used to fire bullets, or a hammer to smash, at the players orbs (which shatters them, which makes the other player not able to collect).
    • Using C++ and SDL

I’m all about challenging projects. But I only have until December 13th to finish it. I COULD partner with somebody, but I’m hesitant to do that for this project. I enjoy this, and with that, it would be hard to find a dedicated individual that would want to spend as much time as I want too on the project.

If you have any ideas, let me know!

David McGraw

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