A Review of Games Written in R on CRAN (2024)

Posted on September 11, 2022 by R on Dr. Rick Tankard in R bloggers | 0 Comments

[This article was first published on R on Dr. Rick Tankard, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)

Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

R is primarily designed for statistical computing and graphics, andthat’s where I’ve spent most of my time in R. This includes developing an Rpackage, exSTRa, for my PhD. Risn’t an ideal language for video games, without native support forreactive programming. Though where there’s computing, there are games.

A brief review of games

I decided to look at what games are available on CRAN, searchingfor either “game”. Games outside of CRAN may be covered inanother post.For each R package that was a game, I’ve given a short review.

In this post, CLI stands for command-line interface (games without a graphics window).

Here’s the list, in a random order:

  • twenty48

    A CLI tile puzzle game where you slide the board in a directionto combine the same number. It didn’t come with instructions onthe rules of the game but is similar to a game called Threes, so Iwas able to work it out. Overall a good implementation.

    A Review of Games Written in R on CRAN (1)

  • proton

    A CLI text adventure game that gets you performing some datawrangling in order to solve the puzzles. This is a game that has areason to be in R. I quite enjoyed it, really. This game could berecommended to students for teaching R.

    Pietraszko uses a password which is very difficult to guess.At first, try to hack an account of a person which is not as cautious as Pietraszko.But who is the weakest point? Initial investigation suggests that John Insecure doesn'tcare about security and has an account on the Proton server. He may use a passwordwhich is easy to crack.Let's attack his account first!Problem 1: Find the login of John Insecure.Bit has scrapped 'employees' data (names and logins) from the www web page of TechnicalUniversity of Warsaw. The data is in the data.frame `employees`.Now, your task is to find John Insecure's login.When you finally find out what John's login is, use`proton(action = "login", login="XYZ")` command, where XYZ is Insecure's login.
  • BetaBit

    BetaBit is a sequel to proton.Wait a minute, it has proton in it along with two other games!These are The Frequeon Game and The Regression Game.The programming tasks get a bit harder here, but still a good way to havesome challenges for learning R.

     _____ _ _____ _____|_ _| |_ ___ | __|___ ___ ___ _ _ ___ ___ | __|___ _____ ___| | | | -_| | __| _| -_| . | | | . | | | | | .'| | -_||_| |_|_|___| |__| |_| |___|_ |___|___|_|_| |_____|__,|_|_|_|___||_|You've Got MailFrom: [emailprotected]To: [emailprotected]Subject: Interested?Hi,We are looking for a smart guy with extraordinary hacking skills.Our mutual friend assured us that you are our man.TL;DR: We are observing a group of terrorists that are planning something.We have intercepted some data, but do not know how to read it (attached).There is a password somewhere. We have to find it to stop terrorists.Would you like to join our team? Help us and we will help you in the future.It's not clear how to start. Our informer told us that the key is somehow related withthree key phrases: `guns`, `and`, `roses`.Probably these are the names of some messages / datasets.Would you like to check if you have access to any of them?If you want to help, please type:`frequon(subject = "Re: Interested?",content = "Text of the message that you have access to")`so as we could read the message too.Remember: any time you want, you can get some piece of advice, justtype: `frequon(hint=TRUE)`.
  • wordler

    This is a CLI implementation of Wordle.Pretty standard stuff, except it also gives you a programmatic interfaceso you can explore properties and strategies for the game Wordle.

  • ztype

    This isn’t really an R game, as it instead provides a function that issupposed to submita form to https://zty.pe to include functions from a package.In my case, that didn’t seem to work and I just got ordinary words in thebrowser.

  • sokoban

    A transport puzzle game where you push crates around in a warehouse to getthem to storage locations. An alright game.I couldn’t get it to work in R Studio, but did work in the R Gui on Windows.

    A Review of Games Written in R on CRAN (3)

  • happytime

    Another implementation of 2048.I prefer the twenty48 version more due to the use of colours.

    A Review of Games Written in R on CRAN (4)

  • FourScores

    This is basically Connect 4, except you can choose the size of the board.You can play either against the AI or against another human player.

    A Review of Games Written in R on CRAN (5)

  • casino

    A CLI game implementing Blackjack, Poker and a 3-reel Slot machine.Performs well.

    A Review of Games Written in R on CRAN (6)

  • pixelpuzzle

    Pizzle puzzle is a variation on the jigsaw puzzle, where instead, you have toshift rows of pixels until the image matches the original pixel image.Not a bad CLI game at all. It can get quite challenging at the harder difficultylevels.

    A Review of Games Written in R on CRAN (7)

  • tictactoe

    A CLI game of Tic Tac Toe.Allows you to simulate games of two AIs against each other, optionally ofdifferent levels.

    A Review of Games Written in R on CRAN (8)

  • rwarrior

    This is my own CLI game, so I am a bit biased. As a programming game,rwarrior would play differently if implemented in any other programminglanguage.I hope to add a graphical interface.

    A Review of Games Written in R on CRAN (9)

  • lightsout

    An R implementation of the Lights Out game in R.This Shiny app plays well and is quick to react.An excellent little puzzle game.

    A Review of Games Written in R on CRAN (10)

  • snake

    A graphical R implementation of the classic game snake.Unfortunately, it feels a bit laggy where you have to press yourinput when the snake is one block before when intending to move.

    A Review of Games Written in R on CRAN (11)

  • codebreaker

    A CLI implementation of Mastermind (though I don’t know if the rules vary here).Nice and colourful.A well-implemented game.

    A Review of Games Written in R on CRAN (12)

Two-player-only games:

  • BoardGames

    Despite the name, this package only implements the game Ultimate Tic Tac Toe on a 9×9 board for two players (no option for a single player).Still a game you could do on pen and paper, thisimplementation helps to check you are following the rules properly.The game runs smoothly.

    A Review of Games Written in R on CRAN (13)

Other packages I found that simulated or analysed games, but not a game inthemselves, included:

  • SnakesAndLaddersAnalysis

    Want to play Snakes and Ladders but only have a minute to play?Use SnakesAndLaddersAnalysis!This is more for simulating games of Snakes and Ladders than actual play.Learning to count is the point of the game, and you won’t get any of this here.

  • CamelUp

    Simulates the board game CamelUp in a Shiny interface but only supports thegame as one player.

  • stockfish, bigchess, chess and rchess are packages related to Chessengines, file formats, playing chess programmatically and analysis.It wasn’t apparent how these may let you play chess against theStockfish Chess engine or give a graphical interface.

Closing remarks

Have you tried any games in R?Games I’d recommend include BetaBit, pixelpuzzle, lightsout and my own package rwarrior.Some of the others aren’t really worth the hassle and you are better off playing a web version.With the Github releasednarapackage, we might be seeing more graphical based games coming to R.Let’s just hope nara can get on CRAN soon.

Related

To leave a comment for the author, please follow the link and comment on their blog: R on Dr. Rick Tankard.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.

Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

A Review of Games Written in R on CRAN (2024)

FAQs

What is a cran in R? ›

The Comprehensive R Archive Network (CRAN) is R's central software repository, supported by the R Foundation. It contains an archive of the latest and previous versions of the R distribution, documentation, and contributed R packages. It includes both source packages and pre-compiled binaries for Windows and macOS.

Is it possible to make a game in R? ›

Well, don't expect to create the next GTA in R, but you can still develop simple, enjoyable, and easy to play games. Our engineer Pedro Silva used Shiny to create a game called Shiny Decisions, which was a Grand Prize Winner in the RStudio's 2nd Annual Shiny Contest.

What is a CRAN used for? ›

A static crane is a permanent/semi-permanent structure fixed to the ground or building that lifts and moves loads along a fixed path. A mobile crane is mounted on treads or wheels and can be moved from job site to job site. Mobile cranes are not restricted to a fixed path like a static crane.

How many packages are in CRAN R? ›

R is the language of data science which includes a vast repository of packages. These packages appeal to different regions which use R for their data purposes. CRAN has 10,000 packages, making it an ocean of superlative statistical work. There are lots of packages in R, but we will discuss the important one.

Is it illegal to emulate a game you already own? ›

If you own a game physically, you are likely to emulate or own a ROM of the game. However, there's no legal precedent in the United States to say it's illegal. There is no trial on record of any company going to court over emulators or ROMs and their use.

Can R be used for gaming? ›

This specialised computer language is not designed for games in R. Not many R developers have written games. R has a games package in CRAN, but this library is about the mathematics of game theory. These articles demonstrate how to program games with the R language.

Can you build AI in R? ›

R has several packages and libraries to assist with the development of artificial intelligence. Since it is known for its strong data analysis capabilities, this feature becomes useful when developing machine learning models.

What is the difference between RStudio and CRAN? ›

ORStudio installs packages from CRAN that are not in Base R. CRAN contains all of the data that RStudio users need for analysis. OCRAN creates visualizations based on an analyst's programming in RStudio.

What is CRAN in data analysis? ›

Understanding CRAN in Simple Terms and its Purpose

CRAN is a network of servers storing R packages. R is an open-source programming language for statistical computing. The packages on CRAN enhance data analysis capabilities. CRAN serves as the primary platform for sharing packages with the R community.

What does the acronym CRAN stand for in the context of R? ›

Cran may refer to: C-RAN, cellular network architecture. Comprehensive R Archive Network. Cran (unit), of uncleaned herring. Representative Council of France's Black Associations.

How do I check my R package for CRAN? ›

Use R CMD check and R CMD check --as-cran or, with devtools, check() . Modify your package so that there are no errors or warnings. You are now done with the essentials and have a proper R package! Go back to the main page, or go to the page about putting your R package on GitHub.

Top Articles
Latest Posts
Article information

Author: Dong Thiel

Last Updated:

Views: 5637

Rating: 4.9 / 5 (79 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Dong Thiel

Birthday: 2001-07-14

Address: 2865 Kasha Unions, West Corrinne, AK 05708-1071

Phone: +3512198379449

Job: Design Planner

Hobby: Graffiti, Foreign language learning, Gambling, Metalworking, Rowing, Sculling, Sewing

Introduction: My name is Dong Thiel, I am a brainy, happy, tasty, lively, splendid, talented, cooperative person who loves writing and wants to share my knowledge and understanding with you.