Counting games for prek


40 Counting Games And Number Activities For Preschoolers

The basic foundation of math is understanding numbers and quantities. One of the best ways to develop these understandings, or number sense, is through handling objects and counting them.  We can listen to preschoolers recite numbers in order, but we want them to apply that to counting objects and understand that those numbers represent quantities of items. Counting games and activities encourage preschoolers to “play” with numbers and quantities and build math skills and number sense in natural ways. These ideas can help you build math and counting skills with preschoolers.

Counting Games and Activities

These 40 preschool math games include counting games and various number activities. They are perfect to help build counting skills and math skills in your preschoolers and kindergarten students.

1. Dog Bone Counting Game (Pre-K Pages) – This is a fun, hands-on counting game for students in your preschool, pre-k, or kindergarten classroom.

2. Farm Animal Counting Activity (Pre-K Pages) – What could be more fun than Counting Feet with farm animals?

3. Printable Counting Book (Pre-K Pages) – Identifying and naming numbers can be a difficult skill for young children in preschool and kindergarten.

4. Homemade Counting Board Game (Pre-K Pages) – This homemade game can help preschoolers develop math concepts while playing a game together.

5. Mouse Counts Game (Pre-K Pages) – Mouse Count inspired this activity that helps children practice counting to ten while also working on their fine motor skills – and it’s lots of fun too!

6. Fire Truck Counting Game (Pre-K Pages) – In this activity, children will explore fire trucks and firefighters with a counting game.

7. Penguin Counting Game (Pre-K Pages) – This Penguin Counting Game is the perfect addition to any winter theme, lots of fun for young children and great practice for counting, number sense, and one-to-one correspondence.

8. Ocean Theme Counting Activity (Pre-K Pages) – The best preschool activities allow children to be interactive and hands on while they explore new concepts. We’ve developed a fun, easy to prepare  ocean theme counting activity to do just that.

9. Nursery Rhyme Number Game (Pre-K Pages) – This nursery rhyme activity relates to “Baa Baa Black Sheep” and encourage number recognition and counting, important math concepts.

10. Digital Counting Activities Using Google Slides (Teaching Mama) – This resource has digital counting activities, which is perfect for the preschool and kindergarten age.

11. Button Counting (Busy Toddler) – Grab a deck of cards for this fun button counting math activity.

12. Football Counting Game (Sunny Day Family) – With a die, football printable, and some yogurt Danimals it’s a fun counting game your preschoolers will love.

13. Snowman Hole Punch Counting (JDaniel4’s Mom) – Use your hole punch to create these snowmen and work in a fun counting activity to go along with it.

14. Ladybug Busy Bag (Preschool Inspirations) – Work on counting with your preschoolers with these adorable paper ladybugs.

15. Cookie Counting Game (Still Playing School) – Have your kids practice counting chocolate chips with these paper chocolate chip cookies.

16. Counting Snowballs (Fun-a-Day) – This easy counting cotton balls activity is a great math activity for your preschoolers.

17. Race to Fill the Cup (Mom Inspired Life) – Have fun filling a cup with these adorable erasers.

18. Count and Compare (Stir the Wonder) – Use these fun Farm Animal Rainbow Counters to inspire young children interested in animals or to go along with a farm theme!

19. Little Miss Muffet Path Game (Preschool Spot) – This fun activity is based on the nursery rhyme, Little Miss Muffet.

20. Tally Marks with Pencils (Munchkins and Moms) – Have fun practicing making tally marks with #2 pencils.

Counting Games and Number Activities For Preschoolers

More preschool math games to enjoy! These counting games and number activities will be definitely enjoyed by your preschoolers and build their math skills.

21. DIY Counting Boxes (Parenting Chaos) – Label containers with numbers and then have your preschooler fill each bucket with the labeled number of items.

22. Play Dough Numbers and Counting (Little Pinch of Perfect) –  This activity is simple to set up and a great way to expose young kids to numbers and lets them visually see the difference in amounts. The activity can be adapted for different skill levels by making smaller or larger numbers.

23. Passing Car Count (Prekinders) – In this activity, we watched for red & blue cars as they passed by on the street. Children recorded the cars they saw by marking dots on their sheet with a corresponding color crayon.

24. Ways to Teach Counting (Prekinders) – Here are 15 ways to teach counting skills in Pre-K.

25. Ants on a Log Game (Teach Preschool) – DIY “ants on a log” counting game with the children then invite the children to draw their own ants on a log…

26. The Math Box (Teach Preschool) Create a simple math box and then watch as your preschoolers love filling it and practice their counting skills.

27. Counting and Addition Tray (Imagination Tree) – Set  up an open-ended maths activity for kids using counting manipulatives, play dough and a dice, in a dip tray!

28. Simple Montessori Counting Activity (My Mundane and Miraculous Life) – This simple counting activity with rocks, your child can work on number recognition.

29. Things to Count With (Pre-K and K Sharing) – Repurpose what you have and count items with your preschooler!

30. How Many Blocks Long? (Brick by Brick) – This is a fun activity where your preschooler can see how many block longs they are and practice counting as they do it.

31. Make Groups of Numbers (Teach Me Mommy) – This simple counting activity is easy to setup, can be played with one or more children and it is fun too!

32. Count and Smash Activity (Stir the Wonder) – The great thing about play dough besides that it is just fun, is that it is also a great way to work on fine motor skills, work in some math skills, and get some sensory input and it can be used in many ways for hands-on learning!

33. Activities with Counting Blocks (Educators’ Spin on It) – These are 8 math and counting activities for your preschooler to enjoy.

34. Where the Wild Things Are Game (Mom Inspired Life) – While playing, children practice counting, learn one to one correspondence and even get some fine motor practice.

35. Listen and Spray Game (Fantastic Fun and Learning) – This activity is great for counting practice but also for fine motor practice.

36. Race to Lose a Tooth Game (Toddler Approved) – This fun dental theme inspired activity with marshmallows is a fun counting game for your preschoolers to enjoy.

37. Roll and Count (Buggy and Buddy) – Here’s a counting math game for kids perfect for practicing one-to-one correspondence. It’s super easy to make and lots of fun for the kids!

38. Count Forward and Back Game (Fantastic Fun and Learning)- This preschool math game would be perfect during St. Patrick’s day and March in your classroom.

39. Build a City Game (Learning 4 Kids) If your preschooler loves playing with Legos then they will love this math game.

40. Mystery Mitten Tactile Counting Game (Preschool Toolbox) – Gather some real mittens and come play a tactile mystery mitten counting game to encourage early math intuition with tactile support!

Also check out the free Winter Play Dough Counting Mats and our other thematic counting mats.

Follow my Counting Pinterest Board for more great ideas!

45 Cool Counting Games and Awesome Activities For Preschoolers

Counting is an essential math concept for preschoolers. Toddlers need to be able to recognize and visualize numbers as well as count sequentially in order to develop the skills necessary to move on to more advanced math concepts.  Teaching toddlers how to count at home or preschool is fun and easy, especially when using the cool games and awesome activities below. Here are 45 Cool Counting Games and Awesome Activities for Preschoolers.

1. Parking Cars

This fun activity is great for developing number recognition. Take several toy cars, trucks, or other vehicles and write a number on each of them. Then, make a parking garage on the sidewalk or several pieces of paper and number the parking spots. Kids can then park the numbered cars in the corresponding spots.

Learn More: Empowered Parents

2. Sidewalk Chalk and Water Paint

For this activity, all kids need is sidewalk chalk, water, and a paintbrush. Write numerals on the sidewalk in large font, then have kids trace the numbers with water and a paintbrush over and over again! Children will learn how to write their numbers with ease.

Learn More: Empowered Parents

3. Counting Around the House

This activity is a great practice to send home with preschoolers so they can practice counting at home. Teachers can use the free printable, and students can record the number of doors, windows, etc. , that they find at home.

Learn More: Early Learning Ideas

4. Penguin Number Games

The website linked below has several game ideas to work on counting, number recognition, and other basic math concepts. From penguin matching to penguin patterns, kids will have fun practicing math with a cute penguin theme!

Learn More: Boy Mama Teacher Mama

5. Feed the Bird

Kids will adore practicing their counting skills while feeding the bird. Kids will practice counting worms in order to feed the bird the correct amount. A counting mat and worm cards can easily be printed from the website.

Learn More: Steamsational

6. Counting Pizza Party

In this fun, “real world” activity, students will count toppings to complete different pizzas that customers order. This is a gamified version of the activity, but teachers could also make their own pizzas and customer orders for kids to practice.

Learn More: Education

7. Ski Counting

This is another gamified lesson that kids will love. As the character skis down the mountain, the child will have to quickly match the number of snowballs that they jumped over to the visual number on the screen. This helps establish number recognition which is the backbone of math fluency!

Learn More: Education

8. Exploding Numbers

Kids LOVE to craft, which also helps them practice number recognition and counting. A teacher or parent will help cut out numbers and then tape the number shapes to construction paper. Kids can then paint around each number to create a visual explosion!

Learn More: First Palette

9. Counting Caterpillar

This creative craft will help kids learn to count, recognize numbers, and create a sequence. They will make a caterpillar using colorful construction paper and tracing a circular object like a toilet paper roll. Once they make the circles, they will number them and create a chain for their caterpillar.  

Learn More: First Palette

10. Apple Tree Number Match

Toddlers can start learning how to match numbers to their symbols using this creative apple tree matching game. Kids will match numbered stickers to their number on the tree. This sticker activity helps to build important math skills.

Learn More: Toddler At Play

11. Trace and Count

This is a great, reusable number project that toddlers will love. Preschoolers will use number cards to place objects. The number of objects fills the number itself. Kids can use household items like buttons or paper clips to practice at home.

Learn More: Modern Preschool

12. Umbrella Counting Craft

Kids will love making this cute umbrella craft, especially on a rainy day! They will start by creating the umbrella with five sections. Then, they will string the corresponding number of beads to that section. So cute, so easy, and so educational!

Learn More: Preschool Play And Learn

13. Flower Power Counting

Teachers or parents can use the printable linked below for their kids to practice counting. They will use their thumbprints to paint the number of leaves on the stem to match the number of the flower. This is an active and fun activity for the busy toddler.

Learn More: Hello Wonderful

14. Frog Hop Game

This is a great movement activity that parents can make at home to help toddlers practice counting. Kids will use lily pads and act like frogs jumping on the lily pads to cross the water. They count as they jump, smiling the whole way!

Learn More: Toddler Approved

15. Fall Leaf Number Hunt

This is a fun, fast-paced activity that helps toddlers build number recognition. They can make the leaves as part of the activity to practice writing their numbers. Then an adult drops the numbered leaves, and the child has to find the number identified by the adult.

Learn More: Toddler Approved

16. Count and Move Song

This song is a great way to motivate kids to get up and move while learning to count. Parents can play this song at home, and teachers can play this at school. The more repetition, the better!

Learn More: Super Simple Songs – Kids Songs

17. Finger Counting

Finger counting helps kids practice using numbers before writing and recognizing written numbers. There is a lot of research that backs up the benefits of finger counting. There are many ways to practice finger counting, but simply having kids show you the number as they count is a great place to start!

Learn More: Stanford.edu

18. Read to Count 

Books are a great learning tool for any age level, but toddlers benefit from the visuals that books provide by learning how to count. Kids can read at home or at school, and there are tons of books that focus on teaching kids how to count, such as those in the link.

Learn More: Scholastic

19. Numbers and Colors Grid Game

This game is so easy to recreate at home or at school, and it helps kids familiarize themselves with BOTH counting and colors. Kids will roll the die; then, they have to place that number of colored items on the grid in separate places. Simple and easy, yet effective!

Learn More: Little Bins For Little Hands

20. Counting Seeds Sensory Bin

Using sensory bins is great for preschoolers exploring the world around them. This sensory bin uses beans and mini pots to help kids learn how to count. They will use their hands or a shovel to find the number of “seeds” corresponding to the number for the pot.

Learn More: Fantastic Fun And Learning

21. Counting Practice Board Game

Most board games are a little tricky for preschoolers, but this game takes us back to basics, and it’s free to print. Kids roll the die and count the number of spaces on the board. If they land on the star, they get to keep one of the pieces. Play until the pieces are gone.

Learn More: Prekinders

22. Teddy Numbers

This gamified counting activity can be played on a computer, tablet, or smartphone. The cute characters and bright colors are engaging and fun for young learners. This game teaches kids to count up to 15 by using the drag-and-drop method.

Learn More: Top Marks

23. Bunny Ride

This counting game can again be played on any smart device. Kids can scan the QR code and get to the game easily. In this game, kids will steer the car to collect carrots for the bunny. This game helps kids learn to count to 50 and recognize all the numbers as they go.

Learn More: PBS Kids

24. Play-Doh Counting

Kids love to play with Play-Doh, and now they can play with purpose using numbered playmats. Kids will use the play mats to make the numbers out of Play-Doh as well as break that number of pieces out of Play-Doh. Once they complete the grid on the mat, they have enough pieces!

Learn More: Teaching 2 and 3-Year-Olds

25. Dump Truck Counting

These counting mats are perfect for the truck or Lego lover. These mats help toddlers count loads of Legos to transport in each truck. This is a great motor practice game and a fun counting activity. 

Learn More: The Measured Mom

26. Ice Cream Counting

Kids love ice cream, and this is a great activity to pair with an ice cream treat. Kids use circular items that are found around the house or classroom to demonstrate scoops of ice cream on the counting mat. Using manipulatives also helps build motor skills.

Learn More: Schooltime Snippets

27. Straw and Pom Pom Counting

This is another fun math-focused and motor skill counting activity. Kids will use a straw to move pom poms into numbered cups. They have to move the same number of pom poms printed on the cup.

Learn More: Nurture Store

28. Dinosaur Counting

This is a fun and reusable crafting activity requiring construction paper, dinosaur cut-outs, and clothes pins. Toddlers will use the clothes pins to create dinosaur spikes on the numbered dinosaurs. They have to use the same number of clothes pins as the number on the dinosaur.

Learn More: Glued To My Crafts Blog

29. Counting Crocodiles

This activity uses the book Counting Crocodiles and numbered crocodile cutouts to help toddlers learn how to count and sequence numbers one through ten. Read the book, then help the toddler line up the crocodiles in order!

Learn More: I Heart Crafty Things

30. If You Give a Mouse a Cookie

Another activity uses a classic kid’s book: If You Give a Mouse a Cookie. Toddlers will make a paper plate mouse with a slit for a mouth and then practice feeding the mouse the number of cookie cutouts; so fun and so easy!

Learn More: The Pinterested Parent

31. Animal Cracker Counting

This is perhaps the EASIEST activity to make on this list, and kids can do it during snack time! Kids will put the number of animal crackers (or other snacks) on the designated number on the mat. Once they get the numbers correct, they can enjoy their snack!

Learn More: I Can Teach My Child

32. Play Store

Kids love to role-play shoppers and store assistants, and this is a great opportunity to team this activity with counting skills. Have the toddler count the number of items that are being “bought,” have them count the cost of the items, etc. There is a myriad of ways to count while playing!

Learn More: Kindercare

33. Make a Recipe

Involving kids in the cooking and/or baking process is another great way to use daily activities as opportunities to teach number recognition, counting skills, and other math skills like measuring. Kids will love spending time in the kitchen as they learn math concepts.

Learn More: Kindercare

34. Paper Bag Counting

Use numbered paper bags to help toddlers learn to count. Toddlers can put any items in the bag to match the number written on the bag. To extend the activity, you can have kids take out the items and count them as they remove each item!

Learn More: Happy Toddler Playtime

35. Uno Dots

Kids can practice counting and number recognition using sticker dots and Uno cards. They will draw an Uno card and place that number of dots in the square. This is an easy activity that is fun and engaging.

Learn More: Happy Toddler Playtime

36. Speaking of Uno…

Play Uno! Uno is a classic card game that families love. Kids can play Uno to learn numbers and colors. As an added bonus, kids will get to spend time making memories with their family and friends.

Learn More: Amazon

37. Counting Dinosaurs Grab Bag

This game helps toddlers work on numbers, counting, colors, and motor skills. They will use the flashcards to determine which color and how many dinosaurs to pick up with the tongs. This active math game is worth every penny!

Learn More: Amazon

38. Magnet Counting

This is another great buy that helps kids use fine motor skills and magnets to learn how to count. This active math game also helps kids practice their colors as they move the magnetic balls into the appropriate cups.

Learn More: Amazon

39. Number/Picture Match

This basic game helps kids recognize numbers and match numbers to the amount shown on a picture card. These matching flashcards can be printed, or kids can make them for an added craft.

Learn More: Learning Without Tears

40. Sing and Sign

This singing and signing activity helps toddlers memorize and show the numbers using movements.  Each number has a different corresponding hand movement. This tactile counting activity is a fun and active math game that toddlers will love!

Learn More: Learning Without Tears

41. Roll and Dot the Number

Toddlers will love this fun number recognition and counting game. Kids will roll the dice and then use a sticker to mark off the appropriate number on the paper. Kids can do this individually or make it a fun game similar to Bingo!

Learn More: Fun Learning For Kids

42. Number Strips

Using number strips is another great way for preschoolers to practice counting and to recognize numbers visually. In this activity, they count the number of bears, then use the number strips and sticker dots to show the number of bears.

Learn More: Fun Learning For Kids

43. Number Lines

Number lines are a great resource that can be used for a variety of counting and number sense games and activities. Toddlers can show their understanding of numbers using objects, fingers, food, etc. They can count using the number lines as well!

Learn More: File Folder Fun

44. Building Block Visual Cards

These visual cards are a great way for kids to practice spatial reasoning as well as counting. They use the visual card to imitate the construction using Legos or other similar blocks.

Learn More: File Folder Fun

45. Tangrams

Tangrams use geometric shapes to help toddlers develop number sense and practice their counting skills. This active math game can be used over and over again to build number sense. Toddlers can also practice spatial awareness and colors!

Learn More: Amazon

Related posts:

Basic metrics and how to live with them - Game designer's cuffs

I suddenly found that the blog does not have an article about the basic metrics that a game designer needs to know and understand, and how (and why) to work with them. Basically, of course, for free-to-play games.

In general, there is such a thing AEM (sometimes AERM) - Acquisition , Engagement , (Retention), Monetization .

Acquisition, Engagement, (Return), Monetization is the basic path a player takes in your game. First, the game shines in the store with beautiful screenshots, videos and a list of features; then the player downloads it and goes through the tutorial, spins in your core loop, ends his session and is either involved (returns) or not (deleted/forgotten). The return is in parenthesis, as in my experience some people lump Engagement and Return into the same category and consider everything together. But the Return is either some kind of internal trigger of the player (an interesting core, “damn, the chest needs to be opened”, “damn, we need to have time to win the tournament”), or external triggers (push), which often remind if the internal ones have burned out (“time open the chest", "the league will end in an hour", "finish the tutor", "your base was attacked"). Well, Monetization is the icing on the cake, which takes all of your engaged and returning players and starts making them think that “paying freeto play” sounds proud.

I like about AERM, as described by Sasha Shtachenko in the presentation about pre-production (slide 10), and also in the report about metrics and stages of game development after the soft launch.

P.S. there is also the term AARRR (Acquisition, Activation, Retention, Referral, Revenue), but more about that some other time or just google it.

Acquisition

Acquisition is not done by game designers, but by game designers-marketers, of course (although it is useful for them to participate). And as a result, game designers get the result of the whole process of attracting a player - New Users (New players) and Total Users (Total number of players). A new player is anyone who has installed the game and logged into it. The total is the sum of all your new players.

These are simple metrics that don't really change after the player enters the game, so just be aware that they are there. The most interesting is next.

Engagement

DAU (WAU, MAU)

The number of unique players who logged into the game at least once a day/week/month.

Somewhere I met young people trying to calculate WAU as the sum of DAU for 7 days. No! I went into the game once a week → became WAU. The same with MAU - once a month.

The metric shows the scale of the project's audience — how many unique players in total from your Total Users play the game every day/week/month. If DAU drops and no new users are added, then there is an obvious problem with retention (1d, 7d and 28d respectively) and attraction: old players do not return to support your DAU, but there are no new ones. The metric should constantly grow, so increase the retention and attract more new players.

Sticky Factor

DAU / WAU or DAU / MAU.

A metric that allows you to determine whether players regularly enter the game. Those. how well your return mechanisms work or how stupidly interesting the game is. Rumor has it that the game cycle should be built in such a way that the main actions in the game clearly fit into the player’s daily routine and he always has something to do in the game at different intervals of his free time. The metric is very closely related to retention and will go up if players stop streaming from your game.

Example

100,000 unique players entered the game in a month. Your average DAU stayed at 20,000 for a month. So it turns out that Sticky Factor = 20%. This means that the average user logged into the game 6 days during the month (30 days × 20%).

If you also have something in the region of 20%, then you are already well done!

Session Count

Each entry into the game by any user.

i.e. each session of each user counts. Started the game → +1 session. An hour later, I logged in again → +1 session. Without context, the metric is useless, other than a happy high number in your top grossing game.

Very, very much depends on the genre of your game and how the session is structured. Intentional splitting of sessions is usually done to keep the player from getting tired of the game, as well as to form a habit in the player, fitting into the daily routine intelligently. The timer mechanic, for example, is one of the most popular mechanics for fitting sessions into a player's daily routine. In general, according to this metric in a daily context, and check what and how.

P.S. it is also useful to count the intervals between sessions, all for the same check, to what extent the user's behavior corresponds to the intended model. It will also help you plan push notifications to bring back players during the day.

Session Length

Total duration of all sessions / number of sessions.

In different games, depending on the intensity/complexity of the core gameplay and the intensity of the session, the average duration varies. Everyone needs to find a middle ground in the number of sessions per day and their duration, which will satisfy all the needs of your player, but will not drain him. Cutkoff once said that "too long game sessions are the mortal sin of mid-core games." Like, if a session takes too long (especially an uninterrupted one), then it will be difficult for players to launch the game several times a day (Session Count decreases), which means that the game will not become a hobby. And if the game does not become a hobby, then you will not see a chic retention either.

Retention

Percentage of players who logged into the game X days after they first logged into the game.

One of the most important metrics for your game. How many players on the first day realized that there is something to catch in your game, and decided that they can go again tomorrow. Once again. Once again. The longer and more, the better.

Many different retentions are calculated - general, certain traffic, organic / inorganic and in general cohort samples that are required for certain purposes. The main thing is to understand how it is generally considered. By days, they usually count 1, 3, 7, 14, 28/30. In general, it depends on the progression of the player and the need to return in a certain period.

Always takes the audience that first entered the game on a given day. From this day, the return is considered.

Example:

It seems like in the example above I gave fairly general benchmarks for different retentions, but in fact they may differ for different genres. Again, no one will punish you for the fact that your retention is higher than that of competitors.

  • To raise 1d retention — fix the tutorial; try different UI solutions; do a normal onboarding for the features of your core loop and explain difficult points or simplify them better; check the resume and download times and keep the player busy to pass the wait.
    • The goal of is to entice the player with core gameplay, correctly introduce them into the core loop and show meaningful short-term goals.
  • To raise 7d retention - evaluate where players drop the game, where they get bored; move the unlock of new features so that they open evenly at the moment when interest subsides; make sure that you don’t lose too often and feel fast enough progress and currency gain. Engage the player as much as possible by showing how good he is with you, and do not try to rip off money from him as quickly as possible (does not apply to slots).
    • The purpose of is to show the breadth and depth of your meta and prove that the game is something to do and worth spending precious time on.
  • To raise 30d retention you need to try. This is really a core audience that has stayed with you, despite all the bugs and tin that you dumped on them. You will basically monetize them. At this point, the social or competitive component of the game should be fully developed in the game. Clans, seasons, tournaments, leaderboards - all this will be updated goals for players, in addition to reaching the highest level in the game and opening high-level content.
    • The purpose of is, in addition to a new huge round of your deep meta, to demonstrate that the game has already become something really significant in the player’s life and to pour it now is at least disrespectful towards clan members.

P.S. you will also come across the term Churn (Dump). This is 100% minus your retention. Those. everything that fell off in the process. Applicable in both splint and retention. Look for problems → fix them → reduce Churn → increase Retention.

Lifetime

The average time of a player's "life".

In general, it is used in the cohort analysis of paying and non-paying audiences to more accurately determine when it is more efficient to launch events, discounts, promotions, or stupidly send some important push. Embed dailies, achievements, generated quests, seasonal tournaments, and so on — extend lifetime by any means. Someday the players will pay you, they said.

You just need to understand when the player is already tired of the game and switched to something else. More precisely, no - when it is already necessary to take measures to resurrect the players.

Monetization

Paying Share

The percentage of paying players from the total number of players.

Of course, it's good to know how many payers you have (they say you need to pray for 2. 5%), but it's often more important for a cohort analysis of either traffic or something else - i.e. sampling for a certain period and a certain audience.

The best way to get this metric to 100% is to pay for the game.

Conversion Rate

Conversion of unique players into paying ones.

In essence, you see every day how much of your DAU is converted into payers. And you need to know why she converted. If players continue to play your game for free after a couple of weeks or a month and are not going to pay a cent, it's time to do something. After all, as you know, it is worth paying once and paying the second time is easier. And your game will bring a stable income precisely because of the constant periodic payments from your paying core audience.

The most well-known ways to increase the conversion in paying people are various offers, preferably personalized, of course. Find the best moment of your player's all-encompassing joy (cherished level-up, completion of a long day or part of a campaign) and offer him an offer for $1. 99 with a cool gun in the picture. And do not forget to sign that so-and-so in the offer of things for all $20-30. And voila - we have a member of the premium community of players. Look and the retention will rise.

Gross Revenue

The total amount of money paid by the players.

You often hear that some game is gross, but you don't? Come on, do not be sad - in ten years you will make your 7th project and it will fly.

In general, what players pay into the game is gross. This is not your money. This is of their money. Next come the commissions of the stores (30% on average) and something else.

Net Revenue

The total amount of money you actually earned.

Once all those greedy apples and gays have taken your hard-earned 30% of your money, the remaining 70% of the money is already considered the income of your game. But for some reason everyone is measured anyway gross. After all, it is important how much you earn, and not how much you pay for a mortgage.

ARPU

Average income per player.

Take the entire Gross and divide by all players (Total Users). Of course, we are not idiots, no one will divide by the total number of players. Therefore, we consider ARPU through DAU, WAU and MAU. We understand how much we get per day / week / month from one player, regardless of whether he paid or not. Used to compare different projects and how your game performs in general.

It's usually worth considering separately for new players and for the core audience to see how much cooler the core audience is compared to newcomers #thanksbokap . Boring, in short.

ARPPU

Average income per paying player.

Add one letter and the metric is transformed beyond recognition. Take Gross and divide by Paying Users. Shows us how much paying players are willing to pay money for a given period. It is not difficult to increase the metric - we stupidly increase the prices in the game, make more beautiful content and sell it. If you are any Tapped Out , then just rivet a ton of content that your paying players will throw money at and eat in 1-2 days. And so on ad infinitum.

ARPDAU

Average daily income per active player.

In general, a mobile metric that implies recurring payments and gives you an idea of ​​how great your game is performing every day. It is usually calculated during advertising campaigns and compared with periods when there are no such advertising campaigns. Well, like, the players came from Facebook ads and charged you more in a couple of days than from VKontakte, usually in a week from organic.

Lifetime Value

???

Here it is - LTV, the holy grail that your producers are discussing in the smoking room, and analysts are arguing about which formula is better to calculate, so that shareholders praise the charts.

In general, this is

Income from the player for the entire period of his gaming life.

You need it, in fact, in order to be in the subject and keep up the conversation in the smoking room when you suddenly hear the name of this metric. After all, this is the same metric that simultaneously determines both Engagement and Monetization. In fact, this is the final metric that will send you to the very roots. Namely, the cost of user acquisition (CPI), with which your LTV will be compared to determine ROI (Return On Investment) - i.e. is the game worth the candle and is it necessary to continue to pour in traflo.


I hope I've talked about the basic project metrics that you need to understand and figure out how to influence them. In addition to the metrics of the project, there are game metrics that you also need to know and evaluate: for example, when evaluating the effectiveness of the game economy, you need to understand the sources of income for players, the flow of currencies, and also money sink - bottomless furnaces that burn your players' money. Or, when assessing the complexity of PvE campaigns, you need to understand what funnels look like, success and fail rates, at which levels players sit for a long time and cannot pass in order to offer a useful purchase for $0.9 in time9. But more about that some other time.

Creating a game theory library in python for the widest possible range of different games / Sudo Null IT News

game theory methods.

This is the author's pet project.

May be useful: a quick introduction to game theory and code examples in two of the most popular libraries: Parsing Game Theory with the python libraries nashpy and axelrod

Let's formulate the functional requirements for the library

The maximum amount of requirements is described here, while only a small part is implemented. In addition, the list of requirements will be updated periodically (adjustments will be shown).

Functional requirements for developing a library for setting, analyzing and solving a wide range of business and production problems using game theory methods (including a description of the strategies of the players), without the involvement of programming (development of algorithms). Here we understand that working with the library "without programming" is a sequential call of the functions for creating classes with certain attributes, and methods of these classes with certain attributes (or such a call by using an interface, including a web interface). Writing code with if, for, while statements, creating functions is considered "programming", that is, developing an algorithm.

  • At the same time, the library must allow the use of user-written functions instead of the standard functions of the library.

  • In order for the library not to be a "black box" for users, it must be open, the code must be available on github, incl. for forks and improvements.

  • The library code can be written in a variety of languages, but python is preferred due to availability, a large number of supporting libraries, and the ability to quickly create and run new code in a large number of environments.

  • The code must be documented, describing all classes, parameters and functions/methods. For each function, method, creation of an instance of a class, at least two examples should be given that are relevant to practical business, marketing, organizational situations.

  • Each entity must be a separate class with its own attributes. The structure and relationship of the library classes should be clear and logical.

  • There can be a lot of input and output information and it must be ordered. Therefore, the library must support ORM - object-relational model. Class instances should be stored in a relational database as tables with automatically generated relationships between them (at least SQLite and PostgreSQL should be supported).

  • The library should be friendly to potential wrappers (interfaces, including web interfaces), which should support all classes, their arguments and methods.

  • An arbitrary connection of at least two types must be maintained between class instances: grouping by some attribute and parent-child relationships so that we can quickly find all the components of the game in the database, see which games, strategies are the progenitor or the development of other games, strategies, etc.

  • Data generators must be present, that is, you can quickly create a group of class instances in which certain parameters change within certain limits. Calculations of a set of games with these parameters should be supported and summary statistics should be displayed (for example, we can play a set of games in which the payoff ratio in strategies A and B varies from 0.1 to 0.9 in increments of 0.01, and the number of players varies from 2 to 100, and evaluate change in the effectiveness of a certain strategy when certain parameters are changed).

  • The fastest Game calculation algorithms must be supported. If there is a theoretically justified formula, this formula is used, otherwise, a sufficiently large number of games are played, and conclusions are drawn from the statistics.

  • Class The player must allow using the widest possible number of strategies by setting their parameters, both without direct programming and with the inclusion of user functions.

  • The number of Players can vary from 0 to "indefinitely large", incl. may be variable in different rounds of the Game.

  • The ability to analyze the Game in terms of optimizing the payoff of a selected Player or group of Players must be supported.

  • Games can be simultaneous (Players move at the same time) or consecutive (Players move in turns), or they can combine simultaneity and sequence, based on any condition, incl. at the choice of the players. In a sequential game, the turn (turn order) of the Players can change according to different rules. When playing simultaneously, the option of one or more "overbidding" is possible, when the Players can change their choice, incl. sequential rebid (Players change the initial choice in turn).

  • Games may be played in any number of rounds (successive games), incl. the number of rounds may depend on certain rules, conditions.

  • The payoff matrix must support the possibility for the Players to receive positive or negative numerical winnings and (or) the option for the Players to receive or return different Resources.

  • Resources in the game can be "tangible", which can be limited to some supply in the game or in each round, the ability of the Player to store, and "intangible". Resources can have different value ratios that change during the game, incl. the values ​​of Resources may differ for different Players, and for one Player the value (utility) of a Resource may depend both on its quantity and on the availability of a certain amount of other specific Resources (complementary Resources).

  • There must be an option for the player to "join or not to join the Game", incl. either in general or in a particular round. It should be possible to assign a fee (or reward) to the Player for joining the Game, in general or in a certain round, including depending on the number of Players who have chosen the Game.

  • The options or "options" that the Players can choose may vary depending on the move number or have a network structure (for example, choosing move A can then choose C or D, but choosing B can then only choose D). A fee may apply for choosing one or another option, incl. depending on the number of Players who have chosen the option.

  • Strategies will generally be called algorithms that include both a constant choice of a certain option, and variants of a complex algorithm for choosing one or another option, depending on the actual or expected choice of other Players in a particular round, other parameters of the Game and Players. The calculation of equilibrium strategies (according to Nash), Pareto-optimal strategies, maximizing the payoff in relation to a certain Player or group of Players should be supported.

  • It should be possible to set different parameters of the objective function of each Player, incl. modeling parameters used in business and for evaluating projects (including profit, profitability, NPV, IRR, payback period, etc., or the absolute or relative increase in these indicators).

  • Players may or may not join coalitions, or be initially assigned to a certain coalition (workshop). The coalition may have its own Resources, incl. receive Resources with a certain choice of Players. It should be possible to take into account the interests of the coalition in the case of finding the best strategies.

  • The game must have various options for randomly choosing the maximum number of Game components (for example, a random number of options available in a round, a random number of resources available when an option is selected, a random number of players in a round, etc.). It should be possible to define risks as probabilities of losing resources or gaining negative utility.

  • It should be possible to introduce incomplete information - the ability to set different levels of knowledge for different Players (availability of knowledge, distorted knowledge) regarding the parameters of the Game (for example, the probability of obtaining a particular Resource when choosing an option, knowledge of the strategy of other Players, etc. .)

  • The library should be friendly to common ML packages, including neural networks: ideally, the neural network should be able to recognize game patterns from a text description (who are the players, what are the game parameters, what resources is the game for, what options exist in the game, how different probabilities are estimated, etc. ), and find optimal solutions.

  • In the course of developing the library and discussing classes, their attributes and methods, changes and clarifications to these Requirements are possible, as well as changes in the priority of certain requirements.

  • Starting library development - implementing a mixin class

    Mixins are classes that are "mixed" with the main classes, adding some common functionality to them so as not to duplicate this functionality in each class.

    Our mixin needs to support:

    1. Create a unique name for each class instance. We need a unique name in order to distinguish this instance from others and store it in the dictionary as a key (all keys in the dictionary must be unique). We will provide uniqueness by adding the suffix "_n", where n is a unique number in order. If the name is not set, then by default a unique one is created, for example, for class Player will create " Player_0" and so on.

    2. Create a description for an instance of each class. This is an arbitrary text string describing the features of the instance. By default, there will be a class name and a list of attributes with values, except for the description attribute itself.

    3. Add to class attribute - dictionary all {instance_name: instance_reference} . This is necessary so that all created instances are stored in a dictionary, and we can quickly find them by name, write them to the database, etc.

     class Mixin(): """Allows you to create a unique name for an instance of any class and add the name to the .all dictionary Input parameters: name - the name of the class instance. If not set, a unique, for example, Player_0 will be created for the Player class, and so on. about - arbitrary description, string. If not set, the class name is included. and parameter values. When an instance of a class is created, its name is added to the . all class attribute, which is a dictionary {name: instance reference} """ def __init__(self, name: str = None, about: str = None, **kwargs): object_name = f'{type(self).__name__}' object_suffix = 0 is_suffix_missing = False if name is None: # Create a unique name that is not in the all class dictionary # in class_n format, if name already exists, add suffix while is_suffix_missing is False: if f'{object_name}_{object_suffix}' in type(self).all: object_suffix += 1 else: is_suffix_missing = True self.name = f'{object_name}_{object_suffix}' else: self.name = name if self.name in type(self).all: while is_suffix_missing is False: if self.name in type(self).all: object_suffix += 1 self.name = f'{name}_{object_suffix}' else: is_suffix_missing = True self. about = about if about is None: tmp_about = f'Class: {object_name}' for key, value in self.__dict__.items(): if key == 'about': continue else: tmp_about += f'/ {key}: {value}' self.about = tmp_about type(self).all[self.name] = self 
    More detailed explanation of the code of the mixin class
     def __init__(self, name: str = None, about: str = None, **kwargs): . We are not instantiating the  Mixin  class, but we will be calling this function from other classes to add a name and description to each class. 

    **kwargs is a dictionary of arbitrary named attributes (attribute:name), they are passed from our main classes so we write them into attribute about .

    type(self) allows us to understand which class we are working with, in particular type(self).name gives us the name of the class.

     type(self).all[self.name] = self 

    Here we write to an attribute of our class (not an instance!) all , which is a dictionary, {instance_name: instance_reference}

    Let's check the correctness of the work code and at the same time create the main class in our library.

    Let's create a Player class based on our mixin Player and check if the mixin code works correctly? The class will have a single attribute - characteristics , which is a dictionary {player_parameter: parameter_value} . We could set these characteristics in **kwargs , but then it would be more difficult to "catch" them. **kwargs will contain name and object if we specify them when creating the instance.

    Please note that we need to create a class attribute (the same for all instances of the class!) all - when creating a class, this is an empty dictionary.

     class Player(Mixin): """Instances of the class contain the characteristics of Players characteristics - an optional dictionary of the Player's characteristics, used in determining the Player's behavior/strategy """ all = dict() # Dictionary of all Players def __init__(self, characteristics: dict = None, **kwargs): self. characteristics = characteristics if characteristics is None: self.characteristics = dict() super().__init__(**kwargs,**{'characteristics': self.characteristics}) 
    Explanation of super().__init__

    By calling super() we call the parent class (in this case Mixin ), and pass in its initialization function __ init__() our **kwargs (in they can be name and about ), as well as an unpacked (by ** ) dictionary of attributes specific to our class, in this case, Player characteristics.

    Suppose we have ancient people with typical ancient names Kaya and Damilola. Let's create some instances of the Player class and check our list and attribute about :

     p1 = Player(name='Kaya', about='Android out of the box, default settings') p2 = Player() p3 = Player() p4 = Player(name='Damilola', characteristics={'Profession': 'Pilot'}) p1 = Player(name='Kaya', characteristics={'Friend': 'Damilola', 'D_Setting': 100, 'C_Setting': 100}) 
     # Check if all instances of the Player class are in the list of Players? Player. all 
     {'Kaya': <__main__.Player at 0x7f39671009a0>, 'Player_0': <__main__.Player at 0x7f39671004f0>, 'Player_1': <__main__.Player at 0x7f39671005b0>, 'Damilola': <__main__.Player at 0x7f39671006a0>, 'Kaya_1': <__main__.Player at 0x7f3967100520>} 

    Great, all 5 players are in the list, including two players created without a name (they are assigned Player_0 and Player_1) and 2 Kai - one is just Kaya, the second, with non-empty characteristics and named Kaya_1 (since the name must be unique, the first instance already existed, presumably with the suffix _0).

     # Player created with name - check his description: p1.about 
     "Class: Player/ characteristics: {'Friend': 'Damilola', 'D_Setting': 100, 'S_Setting': 100}/ name: Kaya_1" 
     # Now check the automatically generated Player description by calling it by name: Player.all['Player_0'].about 
     'Class: Player/ characteristics: {}/ name: Player_0' 

    according to the dictionary, by items() we access the name and reference to the class instance:

     for name, player in Player. 

    Learn more