On-Site Encryptor Back Online

It’s back on!

A few games will still have errors. In these cases, you will receive an automated email letting you know. In those cases, you may be able to avoid the error by changing your Kindi settings. Some games may simply not be compatible with the Kindi encryptor at this point, but I believe those will be few and far between.

Thanks for your patience!

On-Site Encryption Service Disabled

You may have noticed that we switched to a new beta version of the Kindi encryptor a month ago. Unfortunately its “beta” status is causing us some trouble right now: certain games are locking up the encryption system and causing the site to become unresponsive for many users. We’ve disabled the encryption system until this issue gets resolved. You’ll need to use your own site-locking solution and encryption program before uploading your game to FGL. (Previously-encrypted games are still encrypted.)

We apologize for the hassle and will let you know as soon as it’s back online!

Oops, double newsletters! Sorry!

We just accidentally sent half of our developers an email with this months’ sponsor newsletter, in addition to the developer newsletter we’d already sent out. Very sorry about the unintentional spammage! Won’t happen again.

- Eric

A note about copyright infringement in games

Recently, we received a “cease and desist” letter from a company that manages the trademark TAYLOR SWIFT.   This was in regards to a game that was uploaded to flashgamedistribution.com.   We actually do kick out games that we know are infringing copyrights or trademarks, but many times we are not aware of cases where this is happening.   I felt this was a good opportunity to share this with you to show that as game developers we do need to be careful about copyrights and trademarks, and also to show why we at FGL kick some games out that we think could have issues.  Below I’ve copied and pasted the company’s email to us and my response.

– The company’s letter (I have replaced their company name with <a certain company>) –

To whom it may concern,

<a certain company> is the exclusive licensee and administrator of the trademark, name and likeness rights of Ms. Taylor Swift, in the United States and throughout the world.  As you are no doubt aware,TAYLOR SWIFT is a trademark used to identify products, services, activities and events related to Ms. Swift.

In connection to <a certain company>’s proprietary rights over its famous trademark we are notifying you of the following:

It has come to our attention that our trademark TAYLOR SWIFT appears as a metatag, keyword, visible or hidden text on the web site(s) located at:

<an FGD link that has been removed>

Also, by using such trademark, you have intentionally attempted to attract Internet users to your web site(s) or other online location(s), by creating a likelihood of confusion with the TAYLOR SWIFT trademark as to the source, sponsorship, affiliation, or endorsement of your web site(s), online location(s), products or services.

The foregoing amounts to trademark infringement, trademark dilution, unfair competition and false advertising under the federal statutes, including The Lanham Act, 15 U.S.C. § 1051 et seq., and to unfair or deceptive practices under the State statutory and case law.  Furthermore, this use infringes on Ms. Swift’s personal rights, in violation of the applicable laws, including the Tennessee Personal Rights Protection Act of 1984, Tenn. Code Ann. § 47-25-1101 et seq.  Therefore, <a certain company> is entitled to recover from you the damages that it has suffered as a result of your activities—and three times the amount of such damages, and the profits that you have gained as a result of your activities, in addition to its court costs and attorney fees.

In view of <a certain company>’s rights to the trademark TAYLOR SWIFT we demand that you immediately and no later than within three (3) days of your receipt of this letter, remove all metatags, keywords, visible or hidden texts including trademark presently appearing on the above-cited web site(s) and any other web site(s).

As part of our <a certain company> Trademark Enforcement Program, be assured that we will continue to monitor your web site(s) to verify your compliance with this letter.  Failure to do so will force us to defer this issue to our Trademark Lawyer for further actions.

We hope that we can achieve a prompt resolution of this matter.  However, this letter is not exhaustive of <a certain company>’s claims with regard to your conduct in this matter and is not intended to limit <a certain company>’s rights or remedies, all of which are expressly reserved.

Sincerely,
<a certain company>

 

– My response –

Hey there,

The game has been removed, sorry about that!  Tell Ms. Swift that we apologize. Users can upload content to our site and we do not monetize the content in any way (there are no ads on the site, etc…).   However we still strive to make sure no copyrighted or trademarked content goes up without the permission of the owners of the IP.

If you could relay this message to Ms. Swift that would be greatly appreciated.  We, in no way, are trying to be Mean. We always try to have our Eyes Open for illegal uses of trademarks. I even remember Back to December when we cleared a bunch of games out that violated trademarks and man did Sparks Fly then, but we did it nonetheless. Believe me, we know what is Mine and Ours, and we would never intentionally use another’s IP to enhance The Story of Us.  We feel like our own story is strong enough without that assistance and just the thought brings Teardrops on My Guitar.  And, not to beat a dead White Horse, but even though we would never upload such a game, it still means there was some person who has done this horrible thing and our relationship with that person is anything but a Love Story. Trust us, We Are Never Ever Getting Back Together with them.

You Belong With Me,
Chris

 

– Their response back to my response –

Thank you for your quick response.

How To Get More Video-Feedback on Your Game

We have lots of ways for you to get feedback on your game, ranging from community feedback, to our First Impressions services, to our Pre-Review service (accessible from the Edit Game screen on your game).

Recently the pre-review service has been getting great marks by developers, and we’re happy to hear it! Pre-reviews are videos done by our staff, showing you exactly how we play the game and talking about what could be improved. We offer this general advice as a free service to all our developers, because we want your games to be the best they can be. But sometimes, these videos create more questions than answers. Lots of developers would like us to do multiple reviews of their game, either to answer specific questions, or to playtest special things. But the free pre-review service is limited to one general-purpose video per game, so we haven’t been able to help you with that.

Now we’re testing out a very low-cost service that lets you get more videos from our staff. The cost is 10 First Impressions credits for up to 15 minutes of video. (First Impression credits, or “FIs”, are worth $1 apiece, or cheaper if you buy in bulk). You can give us very specific things to test (e.g. “Please try levels 8 through 12 and look for ways to crash the game”) or give very generic instructions (“Please play the game and look for any problems you see”). We’re happy to help however you need us.

Since this is an experimental service, the process for signing up is a little bit informal. (We’ll make it more auto-magical if there’s enough demand.)

For now, here’s how to order Reviewer Video Impressions:

  1. Purchase 10 or more First Impressions credits. (If you’re a long-time user of FGL, you may have already received some of these for free!)
  2. Go to the Give First Impressions tab (shortcut here) and enter FGL_Aaron as the recipient. Send him 10 credits (or 20, or 30, or so on, depending on how many 15-minute blocks you think you’ll need. We can send you back credits if it turns out to take shorter than expected.)
  3. Send FGL_Aaron a private message (shortcut here) and let him know which game this is for, as well as all the specific instructions you have.
  4. We’ll send you a link to the video!

We hope you like this service, and if you have feedback or suggestions, we’re all ears.

2012 Flash Games Market Survey

If you use Flash (or, more generally, AS2 or AS3 in any form) to make your games, or if you’re a sponsor/publisher of Flash or AIR games, please take a minute to fill out this years’ market survey.

This info helps everybody get a good picture of the health and trends of the Flash industry. Thanks!

Using GameTracker For Play-Testing on FGL

GameTracker is an extremely useful and powerful tool that is available for free here at FGL. With just a little time and effort, you can easily collect pages of data every time your game is played on FGL.

This guide is intended to serve as a sort of checklist for easy implementation along with some tips and tricks for setting it up quickly and painlessly. The official home page for GameTracker are here. You can get everything from there, but here’s some quick links: download here and API docs here.

What’s New in v1.2:

Version 1.2 was just released, so if you’ve used GameTracker before, here’s what’s new:

  • GameTracker now has Singleton support! Call GameTracker from anywhere with a simple call to: GameTracker.api
    • You must call new GameTracker(); before it can be used!
  • alert( ) and customMsg( ) now support single String parameter calls, for example:
    • customMsg(enemy.name+“ destroyed!”);
    • alert(”Super Awesome achievement awarded!”);
  • The score and gameState parameters are now optional and the last recorded values will be used if new ones are not passed in with the function calls.
  • GameTracker Documentation has been updated and is now available here!

 

Important Functions:

  • alert(customMsg:String = null , currentScore:Number = NaN, currentGameState:String = null):void
  • beginGame(currentScore:Number = NaN, currentGameState:String = null, customMsg:String = null):void
  • beginLevel(newLevel:int, currentScore:Number = NaN, currentGameState:String = null, customMsg:String = null):void
  • checkpoint(currentScore:Number = NaN, currentGameState:String = null, customMsg:String = null):void
  • customMsg(customMsg:String = null, msgType:String = “custom”, currentScore:Number = NaN, currentGameState:String = null):void
  • endGame(currentScore:Number = NaN, currentGameState:String = null, customMsg:String = null):void
  • endLevel(currentScore:Number = NaN, currentGameState:String = null, customMsg:String = null):void

 

Places to consider implementation:                                                  – function call:

  • UI Components (buttons, levelSelect, upgrades, etc)            – customMsg();
  • Game Starts                                                                            – beginGame();
  • Level Begins                                                                           – beginLevel();
  • Enemies Defeated                                                                   – customMsg();
  • Common Events                                                                     – customMsg();
  • Checkpoints Reached                                                           – checkpoint();
  • Level Ends                                                                              – endLevel();
  • Game Over                                                                              – endGame();
  • Score Submitted                                                                     – alert();
  • Achievement Awarded                                                           – alert();
  • Upgrades/Item Purchases/other important actions                – alert();

 

Step 1 – Make A List: Before taking time to implement an analytics API, like GameTracker, it is important to first figure out exactly what kind of information you would like to track and analyze. To do this, I find it best to play through your own game and think about where it would be helpful to see how the player is interacting with your game. For example, do you know how many players press that mute button? Or how about where most players are struggling with your content? Or how long your players (FI’s, devs, sponsors, etc) are actively playing the game before moving on to another? Sprinkle some GameTracker function calls into your code and you’ll have answers to all of those questions in no time!

 

Step 2 – Initialize The API: Once you have a list of the data that you would like to collect, the next step is to initialize the API to make it ready to use. Start by creating an instance of the GameTracker class somewhere in your code. GameTracker v1.2 now has Singleton support so it no longer matters where the instance is created.

 

Step 3 – Implement The API: Use the list that you created in Step 1 to locate the best places in your code to add the GameTracker calls that will report the data that you seek. For each location decide which GameTracker function fits best (check the above Important Functions section) and add the calls to your code.

  • Call GameTracker from anywhere with a simple call to: GameTracker.api
    • ie. – GameTracker.api.customMsg(“Player died!”);

 

Step 4 – Collect The Data: Once the GameTracker API is implemented, collecting the data is as easy as uploading your game to FGL and finding players to play it. Here are a few ideas for finding testers for your game:

 

Step 5 – Analyze The Data: Every time someone plays your GameTracker enabled game on FGL, the data from their gameplay is recorded and stored in the FGL database. To access this data, all you have to do is go to your game’s Views page and find the GameTracker column. If you implemented GameTracker correctly then just about every game view (there may be a few exceptions) should contain a link labeled ‘view’. Following the link will take you to the GameTracker Analysis page for that gameplay’s data, which contains an overview of the gameplay, a link to view all of the data in detail, and a link to download the detailed data in an easy to analyze csv file.

  • Sample data file: www.edugamedev.com/FGL/Garblactic_session_2231515.csv
  • If GameTracker was not set up correctly or if the player only stayed for a short period of time then the column will read ‘N/A’ with no link.
  • Download the csv file and use all of your favorite Data Mining tools to help determine trends, averages, and more interesting information!

 

Tips / Tricks:

  • Use Existing EventListeners – Drop a customMsg( ) call inside existing EventListeners to easily track all events that pass through them:
public function mouseDOWN(event:MouseEvent):void {
    // -- filter out unwanted noise: ie. “instance####”
    if(String(event.target.name).search("instance") != 0){
        GameTracker.api.customMsg(event.target.name + " pressed in Main");
    }

    … // the rest of your mouseDOWN code

}
  • First Impression Quality Assurance – One of the major side benefits of using GameTracker in your game is being able to identify when a FI reviewer is trying to game the system by playing less than 5 minutes and then leaving feedback that is just vague enough to be believable. With GameTracker you can easily see what they did while playing and how long they were actively playing your game, which can then be used as evidence to have bogus FI’s replaced with new ones.
  • Sponsor Activity – Curious to know what the sponsors were doing in your game for over an hour? With GameTracker you don’t have to wonder anymore! Since sponsors are players too, GameTracker will tell you when they actually started playing your game, how far into the game they got, what options they selected, and whatever else you decide to track.

 

Remember: Do Not Send Unsolicited Advertisements via Private Message!

We’ve been cracking down on developers who send annoying ad messages to sponsors. This breaks our rules and gets you suspended or deleted. The rules aren’t new, and have always been shown on the private-message page, but some developers have expressed surprise about them, so I wanted to reiterate them:

Are you writing a PM asking a sponsor to look at your game(s) or place a bid? Don’t do that. That’s spam! (Think about it: if you get a message from someone you don’t know asking you to buy something, that’s the definition of an unsolicited message, also known as spam.) Don’t be a spammer. Even one spam message is enough to get you kicked out of FGL.

You cannot pester a sponsor just because they looked at your game once or twice. That’s still spamming.

The only time you can contact a sponsor about your game is:

  • If they have bid on this game, or have asked you questions about the game.
  • If you have licensed a different game to that sponsor in the past (and you have a good working relationship).
  • If the sponsor has shown significant interest in your game: they have played it on three separate days for a total of 30 minutes or more.

Once again, if you break these rules we will suspend or delete your account. Thanks for your understanding!

Flash 11 LZMA Now Supported

If you previously were unable to upload a Flash 11 game that used LZMA compression (such as the games generated by Unity’s beta Flash exporter), you should be able to do so now. If you still receive an error, please let FGL_Eric know via private message!

Also remember that if your game uses the Flash 3D apis, you need to check the box that tells us to use wmode=direct when displaying the game. Otherwise you are likely to get errors and weird behavior when you view it.

Using Christmas Music and Characters in Games

If you were raised in the USA (or certain other parts of the world as well) Christmas is heralded by things such as decorated fir or pine trees, hearing (the very 1950s) Frosty the Snowman, ads prominently featuring Santa Claus, renting the 378th remake of The Christmas Carol and watching Rudolph the Red-Nosed Reindeer with “limited” commercial interruption.

While these things might feel as if they’ve been around forever, the fact is a vast majority of your Christmas associations are owned and protected. Now what exactly does “protected” mean? Well, at the core, it means you can’t use it without a license. Period.

Here are some examples of protected music:

  • Frosty The Snowman
  • Rudolph The Red-Nosed Reindeer
  • Carol Of The Bells
  • Jingle Bell Rock
  • Winter Wonderland
  • Have Yourself a Merry Little Christmas
  • White Christmas
  • I’ll Be Home For Christmas
  • The Christmas Song (Chestnuts Roasting on an Open Fire)
  • Let It Snow! Let It Snow! Let It Snow!
  • Santa Claus Is Coming To Town
  • The Little Drummer Boy
  • Sleigh Ride
  • It’s The Most Wonderful Time Of The Year
  • I’ll Be Home For Christmas
  • Rockin’ Around The Christmas Tree
  • Silver Bells
  • Feliz Navidad
  • A Holly Jolly Christmas
  • Here Comes Santa Claus (Right Down Santa Claus Lane)

and some examples of protected characters:

  • Rudolph the Red-Nosed Reindeer
  • Frosty the Snowman
  • The Grinch

Now before you go all Grinch.. err.. I mean Scrooge, there are both music and characters in the public domain.

Public Domain music:

  • Deck The Halls
  • The First Noel
  • Hark, The Herald Angels Sing
  • Jingle Bells
  • Joy To The World
  • Come All Ye Faithful
  • Silent Night
  • The Twelve Days of Christmas
  • We Wish You A Merry Christmas

Public Domain Characters:

  • Santa
  • Scrooge
  • Reindeers without red noses

Also note that while even if songs are in the Public Domain, you can not use any recording of those songs (unless the owner of the recording has put it in the public domain). Recordings are covered by a separate copyright. For more info about Public Domain music, you can visit: http://www.pdinfo.com/.