{"id":22459,"date":"2023-06-09T12:55:40","date_gmt":"2023-06-09T10:55:40","guid":{"rendered":"https:\/\/daniel.haxx.se\/blog\/?p=22459"},"modified":"2023-06-09T12:55:40","modified_gmt":"2023-06-09T10:55:40","slug":"games-curl-too","status":"publish","type":"post","link":"https:\/\/daniel.haxx.se\/blog\/2023\/06\/09\/games-curl-too\/","title":{"rendered":"Games curl too"},"content":{"rendered":"\n<p>Several years ago when someone highlighted the fact for me that curl was credited in the ending sequence of the megahit game <strong>Grand Theft Auto V<\/strong>, I got a brief moment of acknowledgement from my kids that I might be doing cool stuff before they forgot and moved on.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/09\/GTA-end-credits-libcurl.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"658\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/09\/GTA-end-credits-libcurl-1200x658.jpg\" alt=\"\" class=\"wp-image-9365\" srcset=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/09\/GTA-end-credits-libcurl-1200x658.jpg 1200w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/09\/GTA-end-credits-libcurl-200x110.jpg 200w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/09\/GTA-end-credits-libcurl-450x247.jpg 450w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/09\/GTA-end-credits-libcurl-768x421.jpg 768w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/09\/GTA-end-credits-libcurl.jpg 1279w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><figcaption class=\"wp-element-caption\">GTA V ending sequence<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Later I would find curl credits in more games and it started to become <a href=\"https:\/\/daniel.haxx.se\/blog\/2016\/10\/03\/screenshotted-curl-credits\/\" data-type=\"post\" data-id=\"9334\">somewhat of a pattern<\/a>. I collect screenshotted curl credits and awesome people help me point them out. Many of them are from games.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/10\/curl-battle.net_.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"1185\" data-id=\"9387\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/10\/curl-battle.net_-1200x1185.jpg\" alt=\"\" class=\"wp-image-9387\" srcset=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/10\/curl-battle.net_-1200x1185.jpg 1200w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/10\/curl-battle.net_-200x198.jpg 200w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/10\/curl-battle.net_-450x444.jpg 450w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/10\/curl-battle.net_-768x758.jpg 768w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/10\/curl-battle.net_.jpg 1281w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><figcaption class=\"wp-element-caption\">Battle.net<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2021\/11\/credits-baldurs-gate3.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" data-id=\"17831\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2021\/11\/credits-baldurs-gate3.jpg\" alt=\"\" class=\"wp-image-17831\"\/><\/a><figcaption class=\"wp-element-caption\"><a href=\"https:\/\/baldursgate3.game\/\">Baldur\u2019s Gate 3<\/a><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-2023-06-06-at-16-42-54-Diablo-4-Credits-4K.png\"><img loading=\"lazy\" decoding=\"async\" width=\"2538\" height=\"1428\" data-id=\"22635\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-2023-06-06-at-16-42-54-Diablo-4-Credits-4K.png\" alt=\"\" class=\"wp-image-22635\"\/><\/a><figcaption class=\"wp-element-caption\">Diablo IV<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2019\/02\/Screenshot_2019-02-28-Marvels-Spider-Man-Ending-and-Credits-After-Credits-Scene-HD-1080P-YouTube.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"619\" data-id=\"12030\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2019\/02\/Screenshot_2019-02-28-Marvels-Spider-Man-Ending-and-Credits-After-Credits-Scene-HD-1080P-YouTube-1200x619.png\" alt=\"\" class=\"wp-image-12030\" srcset=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2019\/02\/Screenshot_2019-02-28-Marvels-Spider-Man-Ending-and-Credits-After-Credits-Scene-HD-1080P-YouTube-1200x619.png 1200w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2019\/02\/Screenshot_2019-02-28-Marvels-Spider-Man-Ending-and-Credits-After-Credits-Scene-HD-1080P-YouTube-200x103.png 200w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2019\/02\/Screenshot_2019-02-28-Marvels-Spider-Man-Ending-and-Credits-After-Credits-Scene-HD-1080P-YouTube-450x232.png 450w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2019\/02\/Screenshot_2019-02-28-Marvels-Spider-Man-Ending-and-Credits-After-Credits-Scene-HD-1080P-YouTube-768x396.png 768w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2019\/02\/Screenshot_2019-02-28-Marvels-Spider-Man-Ending-and-Credits-After-Credits-Scene-HD-1080P-YouTube.png 1441w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><figcaption class=\"wp-element-caption\">Marvels Spider Man<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/10\/Screenshot_2018-10-29-Red-Dead-Redemption-2-ENDING-Credits-Post-Credits-Scenes-YouTube.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"675\" data-id=\"11756\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/10\/Screenshot_2018-10-29-Red-Dead-Redemption-2-ENDING-Credits-Post-Credits-Scenes-YouTube-1200x675.jpg\" alt=\"\" class=\"wp-image-11756\" srcset=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/10\/Screenshot_2018-10-29-Red-Dead-Redemption-2-ENDING-Credits-Post-Credits-Scenes-YouTube-1200x675.jpg 1200w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/10\/Screenshot_2018-10-29-Red-Dead-Redemption-2-ENDING-Credits-Post-Credits-Scenes-YouTube-200x113.jpg 200w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/10\/Screenshot_2018-10-29-Red-Dead-Redemption-2-ENDING-Credits-Post-Credits-Scenes-YouTube-450x253.jpg 450w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/10\/Screenshot_2018-10-29-Red-Dead-Redemption-2-ENDING-Credits-Post-Credits-Scenes-YouTube-768x432.jpg 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><figcaption class=\"wp-element-caption\">Red Dead Redemption 2<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2022\/06\/gohst-of-tsushima-credits.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"3024\" height=\"4032\" data-id=\"19509\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2022\/06\/gohst-of-tsushima-credits.jpg\" alt=\"\" class=\"wp-image-19509\"\/><\/a><figcaption class=\"wp-element-caption\">Ghost of Tsushima<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<p>Finding out they use curl is rarely straight forward. They virtually never told us before hand. Many list the curl license somewhere, sometimes you can find the DLL and some actually include a mention in on-screen credits displays.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2018\/09\/Fortnite.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"675\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2018\/09\/Fortnite-1200x675.jpg\" alt=\"\" class=\"wp-image-11597\" srcset=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2018\/09\/Fortnite-1200x675.jpg 1200w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2018\/09\/Fortnite-200x113.jpg 200w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2018\/09\/Fortnite-450x253.jpg 450w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2018\/09\/Fortnite-768x432.jpg 768w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2018\/09\/Fortnite.jpg 1920w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/a><figcaption class=\"wp-element-caption\">Fortnite uses libcurl<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2023\/06\/pubg-battlegrounds.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"630\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2023\/06\/pubg-battlegrounds.jpg\" alt=\"\" class=\"wp-image-22649\"\/><\/a><figcaption class=\"wp-element-caption\"><em>PUBG: Battlegrounds<\/em> uses libcurl<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2023\/06\/roblox.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"630\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2023\/06\/roblox.jpg\" alt=\"\" class=\"wp-image-22651\"\/><\/a><figcaption class=\"wp-element-caption\">ROBLOX uses libcurl<\/figcaption><\/figure>\n<\/div>\n\n\n<p>As this little subset shows, some of the most popular games in the world use libcurl. We rarely get to know exactly for what purpose they use libcurl but we are left to guessing and assumptions. Modern games do a fair amount of internet transfers and what better library to do that with?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Game consoles bundle it<\/h2>\n\n\n\n<p>libcurl is also shipped as an OS component in several game consoles. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft size-large is-resized\"><a href=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/10\/nintendo-switch-curl.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/10\/nintendo-switch-curl-1200x675.jpg\" alt=\"\" class=\"wp-image-9818\" width=\"196\" height=\"109\" srcset=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/10\/nintendo-switch-curl-1200x675.jpg 1200w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/10\/nintendo-switch-curl-450x253.jpg 450w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/10\/nintendo-switch-curl-768x432.jpg 768w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/10\/nintendo-switch-curl-672x372.jpg 672w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/10\/nintendo-switch-curl-1038x576.jpg 1038w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/10\/nintendo-switch-curl.jpg 2048w\" sizes=\"auto, (max-width: 196px) 100vw, 196px\" \/><\/a><figcaption class=\"wp-element-caption\">Nintendo Switch<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-large is-resized\"><a href=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2023\/06\/steam-deck.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2023\/06\/steam-deck.jpg\" alt=\"\" class=\"wp-image-22654\" width=\"214\" height=\"92\"\/><\/a><figcaption class=\"wp-element-caption\">Valve Steam Deck<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2023\/06\/ps5.jpg\" alt=\"\" class=\"wp-image-22658\" width=\"189\" height=\"189\"\/><figcaption class=\"wp-element-caption\">Sony Playstation 5<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft size-large is-resized\"><a href=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2023\/06\/xbox-360.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2023\/06\/xbox-360.jpg\" alt=\"\" class=\"wp-image-22655\" width=\"152\" height=\"177\"\/><\/a><figcaption class=\"wp-element-caption\">Microsoft Xbox 360<\/figcaption><\/figure>\n<\/div>\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">List of curl credits<\/h2>\n\n\n\n<p>libcurl (often mentioned as plain curl) has been frequently used in games for almost twenty years already. <a href=\"https:\/\/github.com\/id-Software\/DOOM-3\">Doom 3<\/a>, from 2004 uses libcurl, just as well as well as <a href=\"https:\/\/en.wikipedia.org\/wiki\/Diablo_IV\">Diablo IV<\/a>, released just days ago in June 2023.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2023\/06\/doom3.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1400\" height=\"788\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2023\/06\/doom3.jpg\" alt=\"\" class=\"wp-image-22669\"\/><\/a><figcaption class=\"wp-element-caption\">Doom 3 from 2004 used libcurl<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1400\" height=\"583\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2023\/06\/Diablo_IV_Logo.jpg\" alt=\"\" class=\"wp-image-22670\"\/><figcaption class=\"wp-element-caption\">Diablo IV from 2023 uses libcurl<\/figcaption><\/figure>\n<\/div>\n\n\n<p>The site mobygames.com maintains a database of people getting credits in games. <a href=\"https:\/\/www.mobygames.com\/person\/177836\/daniel-stenberg\/credits\/\">The entry for me<\/a>, since my name is the one used in <a href=\"https:\/\/curl.se\/docs\/copyright.html\">the curl license<\/a>, right now lists me (curl really) credited in no less than 136 games &#8211; and then the two games listed immediately above here are not even mentioned there so there are reasons to suspect there are others missing as well. Also, as mentioned before, the fact that a game is using curl is sometimes a well hidden secret.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What for?<\/h2>\n\n\n\n<p>I have not been closely involved with any of the makers of these games. I don&#8217;t have insights or special knowledge about exactly what they use libcurl for.  Whatever download or upload purposes they have I guess.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why curl?<\/h2>\n\n\n\n<p>Because curl is Capable, Ubiquitous , Reliable and Libre. It knows how to transfer data in many different ways, is feature packed and it performs well. It runs everywhere so the API works on all platforms. It has proven itself stable and solid for decades without breaking APIs or ABIs. The being available cheap (at no purchase cost at least) is probably also a strong contributing factor combined with the others.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1058\" height=\"1073\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2023\/06\/cap-ubi-rel-lib.jpg\" alt=\"\" class=\"wp-image-22676\"\/><\/figure>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Several years ago when someone highlighted the fact for me that curl was credited in the ending sequence of the megahit game Grand Theft Auto V, I got a brief moment of acknowledgement from my kids that I might be doing cool stuff before they forgot and moved on. Later I would find curl credits &hellip; <a href=\"https:\/\/daniel.haxx.se\/blog\/2023\/06\/09\/games-curl-too\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Games curl too<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":5,"featured_media":13747,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[33],"class_list":["post-22459","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-curl","tag-curl-and-libcurl"],"_links":{"self":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/22459","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/comments?post=22459"}],"version-history":[{"count":34,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/22459\/revisions"}],"predecessor-version":[{"id":22688,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/22459\/revisions\/22688"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/media\/13747"}],"wp:attachment":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/media?parent=22459"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/categories?post=22459"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/tags?post=22459"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}