Polo Online.

Shawn McHenry; December 16, 2010

After 3 nights straight of working on and making Polo Multiplayer and seamlessly adding it to support the Single Player storyline isnt a process that is just implemented and works flawlessly, I had multiple issues with it and am constantly refining it to work better each day. If you're the kind of person that doesn't care about technical side of things, Then this post probably isn't for you.

How It Works

When you first start Polo, the Variable mplay starts at zero. When you open the TCP/IP Connection and host a server, mplay then equals one (True). When mplay equals one, Everything acts a bit differently. The Polo object starts sending data and receiving data once Mplay is set to One. This data is constantly send, updated and looking for a data back from the other player. The data that is sent, (but not limited to):
  • X Coordinate
  • Y Coordinate
  • Level Score
  • Overall Score
  • Player level
  • Chat Messages
  • etc
With this data constantly being sent, and updated, It causes some lag on the network and slows down... All graphical changes and the such are all handled by the clients computer and have no need to be updated, Thus it isnt sent. If this data was sent, It would more than likely triple the data needed to be sent/received, This would lag the server. Which brings me to my text topic, Optimizing the data being sent and received.

Optimizing Polo Online

In the beginning, The data would be sent constantly, even if the data remained the same. So at this point I needed to implement checks on the data and send the data only when it is necessary. How it worked before is:

Send Polo X and Y Coordinate Constantly

This method is useless when the other player is playing on another level, Whats the point of sending your location data if the other player cant even see you? So how it works now is.

If my level = other players level Then Send Polo X and Y Coordinate

This works out much better and doesnt cause as much lag on the clients end. Same went for the players sprite and animation, This information at first was sent Constantly, I then changed this to when a key is pressed to send the data... The same though can apply for this as well, If the player isnt on the level, then why send the sprite and animation information? This data is now only sent when the player is on the same level. Now that I think about it, The data before was being handled in a very wrong way, ALL the data was being sent constantly when logically, the data should be sent when its needed. The same went for Players location. Before:

Send Level Send Overall Score

After:

If level finished / Started Then Send Level Send Overall Score

As simple as this was to figure out before hand, It takes Trial and error until everything is correct. Im sure theres plently of other things I forgot to cover in making the multiplayer more stable and faster. But like before, These will come to me over time. I hope you enjoyed all this information, and I hope to release more technical posts in the future about Polo.

Polo BBEv2 Updates

Shawn McHenry; September 26, 2010

Just thought we'd let everyone know that Polo isnt dead. We've just been busy with other things. But now that Alec is unemployed and Im all settled down in my new apartment, Work on Polo has begun again.

We released a Skype cast with pretty much everything you need to know, so Im not going to bother typing it all, because its all covered there. Also, New Screenshots.

Polo Polo
Polo Polo

Polo Arcade Machine

Shawn McHenry; February 16, 2010

Ive been thinking about building an Arcade Machine Cabinet to put emulators on it. Then the idea struck me, Why not put Polo on this Arcade Machine. So I went with that plan, looking into the cost of building this. Then someone suggested to me to ask "Space Center" (A local Arcade) if they would be willing to put "Polo" the arcade machine in their Arcade. So I thought, what the hell, why not.

I went up to the owner and told him that I am an Indie Game Devloper and am wondering if I could put Polo up in their arcade for Promotion and testing. I also let him know I am interested in No Profit. I was shocked to hear that he would be all for it, and to contact him once the Machine is ready.

The Machine will run off the Arcades tokens. Polo will be modified to Count Down instead of up. I havent really thought up a solid method, but currently, Im thinking reaching Checkpoints will Add time (Maybe 30 seconds?). Once the player runs out of time, or beats the game, they can enter their name for the highscore list. Pause Menu will be disabled, as well as the main menu. The main menu would be replaced with what you'd see in Every Arcade Machine, the name of the game, maybe a Demo video, and at the bottom it would display something like "COINS 0 / 2 - CREDITS: 0". As of a price, I'd like to see it operate off one coin. Just like the good old days.

So my current project will be building an Arcade machine for Polo. Exciting stuff! I'll take video of the whole process.

Underworld.

Shawn McHenry; February 8, 2010

I think todays launch of Polos Online Scoreboard went very well. So far we have 12 highscores recorded. However, 6 of them are "George", which is the default name if the player doesnt type their name in. So I fixed that today, along with this:

Polo

External Music Files & ogg format.

Shawn McHenry; February 4, 2010

I started adding music files to Polo today and the filesize of the music made the game EXE skyrocket. That just simply wont do! So I implemented an .ogg file extention reader from the old Dermott game so Polo can read and play .ogg files. Because .ogg files made a 6mb mp3 into a 2.5mb ogg file.

But including the ogg file in the EXE is a pain, So I created external folders that the game looks at and reads from. So for example, The screenshot shows how the folder will be setup. The EXE will be in one folder and the music files are in a seprate folder.

Polo

But Shawn, Why do it this way? Wouldn't importing the .ogg files straight into the .exe be more easy? Now you have more files to distrubute!

The advantage here is that the loading time for Polo is much much faster and also allows for easy music changing for users. Lets say youre sick of the polo music and you want your own. All you do is make your own .ogg files and replace the ones in the music folder. Also, with this method, We can load the music into the game when we want to, opposed to before, all the music is loaded at once at game startup. That method wastes a lot of valueable memory. With MY Method, Music can be loaded / unloaded at will.

Monsters

Shawn McHenry; February 2th, 2010

Time to get more productive on Polo! Ive been so busy with school and work the past months that I havent been able to do much to Polo. But now I am done with classes and moved, I found myself with more time for Polo.

Something that had to be done and I kept putting off was redoing the old monsters and adding them to the new engine. I dont want to just copy and paste them for a few reasons:

  • Copy & Paste doesnt Take advantage of new engine.
  • Engine incompatibilities.
  • Get to know the coding of the monsters a bit better.
When I start over with the monsters, I get to make sure every part of them is being taken advantage of in the new BBEv2 Engine. So far I have added TakTok & SpitCrab. I uploaded a short video showcasing the early stage of the TakTok:

So far so good. Keep an eye on the news section for new additions.

Polo Rebuild Information

Shawn McHenry; October 5th, 2009

Hello Polo Fans! Got some excellent news for those who are awaiting for the new version of Polo, running on the new BBEv2 engine! I must say its looking and feeling quite nice.

Polo Polo

Theres so much new and fun little features. I dont want to ruin the fun of all the new features, So I'll cover a few of them.
  • Graphic Settings
    A big issue in the first polo was framerate issues on slower machines. So we are letting the user customize the amount of nice little graphic eye candy in Polo. There are three levels of GRAPHIC MADNESS. Basic, Normal, and Pretty.
  • Hearts
    Forget about one hit kills. You now have hearts, Loose all your hearts and return to the beginning of the level.
  • Smooth Movement
    Forget about those sticky corners and sliding around. We improved and re did the WHOLE engine from the ground up. So all that jazz has been to the most part, fixed.

I cant promise you any release of a beta anytime soon, But I'll try and keep you all updated!

Updates on the way.

Shawn McHenry; September 10th, 2009

I know we havent been talking much about Polo, But let me assure you, We got some big things cooking for Polo. The new Engine (BBEv2) is playable and quite fun. Things are making progress and keep your eye open for some exciting news!

Beta 003 Released

Shawn McHenry; August 10th, 2009

Polo 003 Build released, nothing too special, but you will notice Upgrades and Achievements are added. Also, The resolution will change in this build. Had to do this to fix lines on our graphics / tilesets. The following Achievements have been added for this build:

  • Raining Crabs - Kill a spitcrab while it is spitting
  • Falling Piano - Get killed by your own pushable box
  • Maybe This Time - Drown 50 times
  • Fast Start - Complete Level 1 under 23 seconds
  • Get Back Here - Find the short cut on level 11
  • Kangaroo - Bounce on a spring 30 times

I also messed around with playing Polo on Linux systems. Its possible with WINE, but it ran 30% slower. As of running it on a mac, My roommate achived this, but I'm unaware how. I'm sure it was with some weird windows emulation software.

Hope you guys enjoy it. You can find the download at the Downloads page. Enjoy! Please leave feedback on Fourms or email me.

Reworking the engine

Alec Smith; June 26th, 2009

Polo was created using the BlueBerry Engine which is a standard, blank canvas platform game engine. It provides fluid collision, easy sprite replacement and one way platforms providing the starting point for adding your own personal code. However, the engine was created two years ago and has become dated. Although Polo is strong in development problems have become evident and requires features that the BlueBerry Engine cannot provide with it's current code. That is why BlueBerry v2 has been in development since June 2009. Alec Smith suggested to completely restart the Polo project from scratch building from the base up a new engine designed to solve the problems early on. The original Polo will continue with development unless the new engine proves more effective.

Boss Battlez

Shawn McHenry; June 16th, 2009

Not much has been done to Polo, but I got a pad of paper where I have been joting down notes and such for Polo. I've been getting comments on how Polo seems a lot like Mario. I dont see it too much, but I guess its because of the "coins". Anyway, Im thinking of adding boss battles for each world. I already got a prototype for a boss battle for the Factory levels.

Website Advancements

Elias; May 17th, 2009

We're working on the Polo website now, and while I have free time to be working on it, there should be constant changes and additions. Shawn also fixed his computer and can't wait to finish the website, so we're both getting to work!

[Edit] TRUE THAT! ~ Shawn M

Upcoming in polo

Shawn McHenry; May 17th, 2009

Yesterday, I gave Alec Smith the Polo project file. He hasn't been able to work on it for quite some time. He left his computer keyboard at home when he went back to College. He does have his laptop. But that thing is running Vista. Anyway, down to business. Some things I hope to get done by next release is some new levels, and hopefully a new world type. Get factory out of the way.

When playing Polo on my main desktop computer (2.5 GHz Intel Quadcore, 4gb RAM, etc), it runs fine. But when I run it on my Netbook (1.6 ghz Atom Processor, 1gb RAM, etc), The factory levels run a bit sluggish. Its a matter of so much going on and the vast number of grapihcs on the screen (Tilesets).

© Revolve Media. Website by Elias Fraley elias.fraley@gmail.com
Game art by Alec Smith
phpMyAdmin

Pageviews: 853




Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 United States License.