Female Gamers: Trends and Statistics

Leave a comment Standard

So every few years I put out a new survey to all the members on my text-based internet games. Most of the members of my games are teenage girls. All of my games are animal related and targeted at a tween/teen age range. Most of my members spend four hours a day playing my games in 20 minute intervals. Some of the members of my games have been playing for close to 10 years.

Video Game Demographics

Total Participants: 225

Age:

10: 2%
11: 2%
12: 8%
13: 13%
14: 7%
15: 5%
16: 4%
17: 3%
18: 4%
19: 2%
20: 4%
21: 5%
22: 2%
23: 3%

Average Age of Participant: 14

Gender:

No Answer: 16%
Male: 1%
Female: 83%

Current Video Game Habits


Which of these do you play video games on?

Cell Phone: 33%
Traditional Board Games: 37%
Internet: 76%
Console (Playstation, Xbox, Wii, PSP, DS): 46%
Computer: 80%


Do you play video games with?

Yes Sometimes No
Violence 16% 24% 52%
Blood, Guts and Gore 11% 23% 58%
Drugs 4% 10% 77%
Alcohol 6% 14% 72%
Foul Language 10% 24% 59%
Adult Themes/Situations 13% 30% 49%
Sexual Themes 5% 16% 71%
Nudity 4% 12% 75%
Death 16% 22% 55%
Guns 12% 24% 56%
Fighting 16% 24% 52%
Killing 14% 21% 57%


What type of internet games do you play?

Facebook (FarmVille, Mafia Wars, SongPop, etc): 39%
Flash (MiniClip, Pogo, Habbo Hotel, etc): 26%
MMO (World of Warcraft, Runescape, etc): 22%
Console (Halo, America’s Army, etc): 27%
Computer (SecondLife, EverQuest, Free Realms, etc): 61%
Mobile (Draw Something, Angry Birds, etc): 56%

Video Game Ownership


Which consoles do you own or have owned in the past?

Wii: 61%
Playstation: 22%
Nintendo 3DS: 12%
Nintendo DSi: 22%
Playstation Vita: 0%
Nintendo 3DS XL: 1%
Nintendo DSi XL: 6%
Gameboy: 31%
Playstation 2: 34%
Playstation 3: 14%
Xbox: 31%
Gameboy Advanced: 25%
GameCube: 16%
Nintendo DS: 53%
PSP: 9%


How often do you (or a parent) buy video games?

Once A Week 0%
Once Every Two Weeks 1%
Once Every Three Weeks 0%
Once A Month 13%
Every Six Months 28%
Every Year 33%


What type of video games do you currently own?

Music: 25%
Puzzles: 40%
Trivia: 20%
Arcade: 31%
Kinect Motion: 10%
Adventure: 71%
Exploration: 43%
Role Playing: 38%
Strategy: 45%
Racing: 45%
Building: 35%
Sports: 33%
Fighting: 29%
Simulation: 49%
Brain Training: 24%
Educational: 24%
Dancing: 31%
Party (4+ player games): 28%
MMORPG: 22%


How many video games do you currently have?

1 3%
2 1%
3 4%
4 3%
5 7%
6 3%
7 2%
8 1%
9 3%
10+ 57%


How often do you play video games?

Several Times A Day 12%
Once A Day 19%
Several Times A Week 12%
Once A Week 15%
Several Times A Month 6%
Once A Month 11%
Several Times A Year 7%
Once A Year 4%


How many hours straight (without leaving the game) do you spend playing video games?

5-10 Minutes 0%
10-20 Minutes 10%
20-45 Minutes 15%
1 Hour 22%
2 Hours 19%
3 Hours 10%
4 Hours 4%
5 Hours 0%
6+ Hours 5%

Video Game Preferences


I would make sure my video game had:

Yes No
Violence 21% 73%
Blood, Guts and Gore 15% 79%
Drugs 5% 88%
Alcohol 8% 85%
Foul Language 12% 81%
Adult Themes/Situations 25% 68%
Sexual Themes 11% 81%
Nudity 6% 87%
Death 22% 71%
Guns 18% 76%
Fighting 26% 66%
Killing 20% 73%


Some things are more important than others in my video game are:

Important Not Important
Storyline 80% 14%
Character Development 77% 17%
Sound Effects 44% 49%
Animation 74% 20%
Graphics 79% 14%
Music 45% 48%
Easy To Learn 77% 17%
Easy To Play 72% 22%
Easy To Navigate 82% 11%
Easy To Start/Install 83% 11%


My perfect video game would have:

Contests: 38%
Flash: 12%
Social Interaction: 37%
Turns: 8%
Fighting: 19%
Shooting: 15%
Killing: 16%
Businesses: 21%
Sports: 18%
Racing: 30%
Strategy: 40%
Adventure: 61%
Polls: 26%
Role Playing: 47%
Puzzles: 23%
Exploration: 45%
Weapons: 18%
Action: 55%
Building: 29%
Simulation: 51%
Design: 38%
Free Downloads: 35%
Music: 40%
Storyline: 52%
Magic: 40%
Vampires: 21%
Experimentation: 24%
Building & Construction: 25%
Management of Other Players: 15%
Music: 40%
Animation: 52%
Lifecycles (birth, growth, death): 56%
Pay To Play: 2%
Free To Play: 62%
Upgrade For Extra Features: 21%
Upgrade For Game Perks: 12%
Lots of Graphics: 43%
Minimal Graphics: 4%
Drag/Drop Interface: 14%
Expand/Collapse Interface: 14%
Customizable Site Layout: 30%
Zombies: 12%
Aliens: 6%
Werewolves: 21%
Phone Friendly: 32%
iPhone/iPad App: 27%
Role Playing: 49%
Insects: 9%
Fish: 20%
Birds: 19%
Conquest: 16%
World Domination: 14%
Resource Management: 16%
Economics: 18%
Witches: 20%
Animals: 86%
Fantastical Creatures: 37%
People: 44%
Clothes & Fashion: 32%
Creativity: 56%
Discovery: 42%
Surprises: 47%
Player vs Player Competition: 28%
Player vs Computer Competition: 18%
Free For All Competition: 30%
Team Competitions: 19%
Advertisements: 2%
Prizes: 38%


Video game m
usic would be:

Upbeat 51%
Dramatic 16%
Slow 7%
Spooky 5%


The video game would include these themes:

Romance: 47%
Comedy: 54%
Suspense: 33%
Drama: 44%
Horror: 16%
Violence: 19%
Family Friendly: 46%
Realistic: 60%
Educational: 25%
Science Fiction: 28%
Fantasy: 52%
Occult: 5%
Mystery: 52%


The video game would have these features:

Message Boards: 51%
Items: 64%
Stores: 67%
Maps: 51%
Level Ups: 52%
Bank System: 62%
Avatars: 61%
Weather: 56%
Customizable Characters: 69%
Customizable Clothes: 55%
Customizable Weapons: 30%
Live News Updates: 27%
Newspaper: 40%
RSS Feeds: 7%
Photo Gallery: 36%
Journals: 36%
Pet/Character Trading: 64%
Chat Rooms: 53%
Dynamically Colored Pets/Characters: 57%
Item Trading: 46%
Messaging System: 51%
Giving Gifts To Other Members: 52%
Random Occuring Events: 51%
Randomly Found Items: 60%
Quizzes: 37%
Polls: 40%
Limited Edition Items: 43%
Collectibles: 40%
Player Avatars/Tags: 47%
Pets/Characters: 84%
Limited Edition Pets/Characters: 52%
Currency Trading: 44%
Mini Games: 48%
Clubs: 41%

These results are provided for free  by
Design1online.com, LLC | Games For Girls.

PHP Tutorial: Searching and Pagination

Comments 43 Standard

In the work that I’ve done for clients and just in browsing the web I’ve seen a fair amount of strange pagination scripts out there. If you’re looking for a simple pagination solution then you’ve found the right tutorial. This tutorial assumes you know PHP basics, SQL basics, and you can display results from a MySQL query result set.

1. Build The Search Page

In order for this to work you need to create a simple search page. In this example we’ll use a simple member’s table. The member’s table has three fields: member id (key, auto_increment), username (varchar 15) and email address (varchar 25). So our create table SQL looks like this:

CREATE TABLE members (
 id INT NOT NULL AUTO_INCREMENT,
 username VARCHAR(15) NOT NULL,
 email VARCHAR(25) NOT NULL,
 PRIMARY KEY (id)
);

Now that we have our table we can build our PHP search page. We want to be able to search all three fields of our member’s table so we’ll need three text input fields. We wrap a <form> around those input tags so we can use a submit input type to submit our form to the server:

<?php
require_once('database.php'); //connect to your database in this file

//display our search form
echo "<h2>Search Members</h2>
<form method='post'>
    <p>ID: <input type='text' name='id' /></p>
    <p>Username: <input type='text' name='username' /></p>
    <p>Email: <input type='text' name='email' /></p>
    <p align='center'>
        <input type='submit' name='submit' value='Search' />
    </p>
</form>";

/**
* We'll display our search results down here in the next step!
**/
?>

2. Build The Search Query

Now that we have our search form we need to create a query that will generate the results we’re looking for. Inside of our $_POST submit if statement we want to build a query based on which search values have been filled in. Our updated PHP file will look like this:

<?php
require_once('database.php'); //connect to your database in this file

//display our search form
echo "<h2>Search Members</h2>
<form action='{$_SERVER['PHP_SELF']}' method='post'>
    <p>ID: <input type='text' name='id' /></p>
    <p>Username: <input type='text' name='username' /></p>
    <p>Email: <input type='text' name='email' /></p>
    <p align='center'>
        <input type='submit' name='submit' value='Search' />
    </p>
</form>";

/**
* Display Search Results Below Here
**/
//build our query based on what they entered in the form
$sql = "SELECT * FROM members WHERE 1=1";

if (isset($_POST['id']))
   $sql .= " AND id='" . mysql_real_escape_string($_POST['id']) . "'";

if (isset($_POST['username']))
   $sql .= " AND username='" . mysql_real_escape_string($_POST['username']) . "'";

if (isset($_POST['email']))
   $sql .= " AND id='" . mysql_real_escape_string($_POST['email']) . "'";

$loop = mysql_query($sql)
   or die ('cannot run the query because: ' . mysql_error());

while ($record = mysql_fetch_assoc($loop))
   echo "<br/>{$record['id']}) " . stripslashes($record['username']) . " - {$record['email']}";

//this gets the total number of records returned by our query
$total_records = mysql_num_rows(mysql_query($sql));

echo "<center>" . number_format($total_records) . " search results found</center>";
?>

3. The Pagination Function

In the previous step we created the form to pull up all the results but if our member’s table has thousands of records in it our browser can timeout and the loading times can be really slow trying to display a large list of members. To remedy that we add pagination so only a few records appear on the page at a time. Our function will show the page numbers so we can easily add them to multiple parts of the search results (ie before and after the results):

/****
* Purpose: paginate a result set
* Precondition: current page, total records, extra variables to pass in the page string
* Postcondition: pagination is displayed
****/
function pagination($current_page_number, $total_records_found, $query_string = null)
{
    $page = 1;

    echo "Page: ";

    for ($total_pages = ($total_records_found/NUMBER_PER_PAGE); $total_pages > 0; $total_pages--)
    {
        if ($page != $current_page_number)
            echo "<a href=\"?page=$page" . (($query_string) ? "&$query_string" : "") . "\">";

        echo "$page ";

        if ($page != $current_page_number)
            echo "</a>";

        $page++;
    }
}

5. The Completed Script

Now that we have a function to display our page numbers we need to update our search to send the correct information to our function. We also need to update our query to only display a limited number of records. Since we’re going to use a variable in both our query and our function we’re going to define it as a global – that way both the function and the query can see it and we don’t have to pass it to our function or declare it twice. Mix that all together and here’s what you get:

<?php
require_once('database.php'); //connect to your database in this file
define("NUMBER_PER_PAGE", 5); //number of records per page of the search results

/****
* Purpose: paginate a result set
* Precondition: current page, total records, extra variables to pass in the page string
* Postcondition: pagination is displayed
****/
function pagination($current_page_number, $total_records_found, $query_string = null)
{
    $page = 1;

    echo "Page: ";

    for ($total_pages = ($total_records_found/NUMBER_PER_PAGE); $total_pages > 0; $total_pages--)
    {
        if ($page != $current_page_number)
            echo "<a href=\"?page=$page" . (($query_string) ? "&$query_string" : "") . "\">";

        echo "$page ";

        if ($page != $current_page_number)
            echo "</a>";

        $page++;
    }
}

echo "<h2>Search Members</h2>
<form action='{$_SERVER['PHP_SELF']}' method='post'>
    <p>ID: <input type='text' name='id' /></p>
    <p>Username: <input type='text' name='username' /></p>
    <p>Email: <input type='text' name='email' /></p>
    <p align='center'>
        <input type='submit' name='submit' value='Search' />
    </p>
</form>";

/**
* Display Search Results Below Here
**/

//load the current paginated page number
$page = ($_GET['page']) ? $_GET['page'] : 1;
$start = ($page-1) * NUMBER_PER_PAGE;

/**
* if we used the search form use those variables, otherwise look for
* variables passed in the URL because someone clicked on a page number
**/
$id = isset($_POST['id']) ? $_POST['id'] : isset($_GET['id']) ? $_GET['id'] : null;
$username = isset($_POST['username']) ? $_POST['username'] : isset($_GET['username']) ? $_GET['username'] : null;
$email = isset($_POST['email']) ? $_POST['email'] : isset($_GET['email']) ? $_GET['email'] : null;

$sql = "SELECT * FROM members WHERE 1=1";

if ($id)
    $sql .= " AND id='" . mysql_real_escape_string($id) . "'";

if ($username)
    $sql .= " AND username='" . mysql_real_escape_string($username) . "'";

if ($email)
    $sql .= " AND email='" . mysql_real_escape_string($email) . "'";

//this return the total number of records returned by our query
$total_records = mysql_num_rows(mysql_query($sql));

//now we limit our query to the number of results we want per page
$sql .= " LIMIT $start, " . NUMBER_PER_PAGE;

/**
* Next we display our pagination at the top of our search results
* and we include the search words filled into our form so we can pass
* this information to the page numbers. That way as they click from page
* to page the query will pull up the correct results
**/
pagination($page, $total_records, "id=$id&username=$username&email=$email");

$loop = mysql_query($sql)
    or die ('cannot run the query because: ' . mysql_error());

while ($record = mysql_fetch_assoc($loop))
    echo "<br/>{$record['id']}) " . stripslashes($record['username']) . " - {$record['email']}";

echo "<center>" . number_format($total_records) . " search results found</center>";

pagination($page, $total_records, "id=$id&username=$username&email=$email");
?>

Since the function makes things look a little messy I cleaned up my downloadable version so it includes the pagination function via a functions.php file. It also includes the SQL for creating the members table with some data in it. Happy searching!

Try the Working Version or Download The Source Code