Raylib - Raylib
tento článek obsahuje obsah, který je napsán jako reklama.Září 2020) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Vývojáři | Ramon Santamaria a přispěvatelé |
---|---|
První vydání | 18. listopadu 2013 |
Stabilní uvolnění | 3.0.0 / 1. dubna 2020 |
Úložiště | github |
Napsáno | C konkrétně C99 |
Plošina | Okna, Linux, Operační Systém Mac, FreeBSD, Android, Raspberry Pi, HTML5 |
Typ | API |
Licence | licence zlib[1][2] |
webová stránka | www |
Raylib (stylizované malými písmeny jako raylib) je napříč platformami open-source vývoj softwaru knihovna. Knihovna je určena k vytváření grafických aplikací a her. Oficiální web jej představuje jako „jednoduchou a snadno použitelnou knihovnu pro programování videoher“. [3][4]
Knihovna je velmi inspirována Grafická knihovna Borland BGI a podle Rámec XNA a je obzvláště vhodný pro prototypy, nástroje, grafické aplikace, vestavěné systémy a vzdělávání. Zdrojový kód je napsán v prostém jazyce C (C99 ) a je primárně určen pro začátečníky, distribuován pod a zlib / libpng OSI certifikovaná licence open-source. Podporuje kompilaci na mnoho cílových platforem, včetně Windows, GNU Linux, macOS, FreeBSD, Android, Raspberry Pi a HTML5.
raylib byl přenesen na více než 40 programovací jazyky (ale nejedná se o stabilní porty) ve formě vazeb, které uživatelům umožňují přístup k funkcím knihovny v jejich oblíbeném programovacím jazyce.[5]
Dějiny
vývoj raylib zahájil v srpnu 2013 Ramon Santamaria na podporu kurzu vývoje her zaměřeného na studenty bez předchozích zkušeností s kódováním a uměleckým profilem; knihovna fungovala jako přímá náhrada WinBGI. V průběhu kurzu byl raylib dále rozvíjen na základě zpětné vazby studentů a do června 2014 se knihovna začala prezentovat na několika akcích vývoje her v Barceloně.
raylib 1.0 byl vydán v listopadu 2013 a obsahoval přibližně 80 funkcí pro správu oken a vstupů, kreslení základních tvarů, načítání a kreslení textur, načítání písem, kreslení textu, kreslení základních 3D tvarů, správu audio systému a načítání a přehrávání zvukových souborů. První verze raylib prošla 8 iteracemi subverze (od raylib 1.1 po raylib 1.8), rostoucí verze po verzi s přidáním nových modulů, nových platforem a nových funkcí po dobu 5 let. Některá z nejvýznamnějších vylepšení byla Android, WebAssembly a Raspberry Pi podpora, více OpenGL backendy, VR podpora a desítky příkladů k prozkoumání a učení.
raylib 2.0 byl vydán v červenci 2018 a knihovna poprvé odstranila všechny externí závislosti, jsou zahrnuty všechny kompilované knihovny a kompilovány podél raylib. Tato verze také odhalila řadu možností konfigurace pro funkce knihovny, aby se minimalizovala velikost, a výrazně se vylepšila vybudovat systém, podporující různé kontinuální integrace systémy. V průběhu následujících dvou let bylo přezkoumáno a vylepšeno několik částí knihovny a také celý ekosystém knihovny. Uprostřed tohoto procesu byla vydána jedna iterace raylib 2.5.
raylib 3.0 byl vydán v dubnu 2020 a obsahuje několik velkých interních redesignů, které zlepšují přenositelnost knihoven a generování vazeb. Některé z klíčových změn raylib 3.0 byly přesunutí globálních proměnných do globálních stavových kontextů, podpora vlastních alokátorů paměti, centralizovaný souborový systém pro načítání dat z paměti a kolekce příkladů kódu +115 k prozkoumání a učení.
raylib se po několik let neustále rozrůstal a zdokonaloval s přidáváním několika funkcí, ale vždy si udržel svou základní hodnotu: být jednoduchou a snadno použitelnou knihovnou, která vám usnadní programování.[6][7][8]
Funkce
raylib přichází s následujícími funkcemi:[9][10]
- Podpora mnoha platforem, včetně Windows, Linux, macOS, Android a HTML5
- Podpora pro OpenGL 1.1, 2.1, 3.3 a OpenGL ES 2.0 jako backend
- Načítání obrázků, textur a písem a kreslení z několika formátů
- Načítání a přehrávání zvuku z několika formátů a podpora streamování
- Matematické operace pro vektory, matice a čtveřice
- 2D vykreslování pomocí fotoaparátu, včetně automatického dávkování skřítků
- Vykreslování 3D modelů včetně vlastních shaderů a shaderů po zpracování
- Podpora pro VR, včetně konfigurovatelného HMD zařízení parametry
- Podpora animovaných i neanimovaných 3D a 2D modelů
- Velká sbírka příkladů s příklady kódu +115
Příjem a adopce
raylib byl primárně určen pro výuku videoher a programování grafiky, ale díky své jednoduchosti a snadnému použití si ho osvojilo také mnoho vývojářů her.
Existují aktivní a rostoucí komunity v různých sítích, jako jsou reddit a discord.[11]
GitHub uvádí přes 120 projektů na téma raylib.[12][13]
Softwarová architektura
Moduly
raylib se skládá z několika modulů, které jsou programátoru vystaveny prostřednictvím API. Každý modul je obsažen v jediném souboru s kódem C a některé moduly lze použít v samostatném režimu:
- jádro - Zpracovává tvorbu okna a OpenGL inicializace kontextu i správa vstupů (klávesnice, myš, gamepad a dotykový vstup)
- rlgl - Rukojeti OpenGL backend, abstrahování více verzí do společného API. Tento modul lze použít jako samostatný.
- tvary - Zpracovává základní vykreslování 2D tvarů (čára, obdélník, kruh ...) a základní detekci kolizí
- textury - Zpracovává načítání obrázků a textur (CPU a GPU) a správu, včetně funkcí manipulace s obrázky (oříznutí, měřítko, odstín ...)
- text - zpracovává načítání písem jako spritesheet a vykreslování textu, zahrnuje také některé funkce správy textu (spojení, rozdělení, nahrazení ...)
- models - Handles 3D models loading and drawing, including support for animated models
- raudio - Zpracovává správu zvukových zařízení a načítání a přehrávání zvukových souborů, včetně podpory streamování. Tento modul lze použít jako samostatný.
- raymath - Poskytuje sadu matematických funkcí pro struktury Vector2, Vector3, Quaternion a Matrix
Vázání
raylib má jazykové vazby pro téměř 50 různých programovacích jazyků poskytovaných několika přispěvateli. Mezi jazyky patří: Rez, Jít, C# a Lua. Všechny vazby lze zobrazit v souboru BINDINGS.md v úložišti GitHub knihovny. Mnoho nových programovacích jazyků, jako je Beef, Odin a Ring, poskytuje vazbu pro raylib.
Programovací jazyk Ring obsahuje raylib ve standardní knihovně.[14][15]
Doplňky
komunita raylib přispěla několika doplňky raylib k rozšíření funkcí a propojení raylib s dalšími knihovnami. Některé z modulů jsou:
- raygui - Okamžité grafické uživatelské rozhraní modul pro snadný vývoj nástrojů pomocí raylib[16]
- physac - fyzikální modul určený pro použití s raylib[17]
- libpartikel - modul systému částic pro raylib[18]
- spine-raylib - modul integrace animací páteře pro raylib[19]
- cimgui-raylib - Vážený integrační modul Imgui pro raylib[20]
Ocenění
V dubnu 2019 byl vývojář raylib oceněn cenou Google Open Source Peer Bonus za příspěvek do ekosystému open-source pomocí raylib.[21]
V srpnu 2020 získal raylib Epic MegaGrant od Epické hry na podporu vývoje raylib. [22]
Příklady
Následující program v Programovací jazyk C. používá raylib k vytvoření bílého okna s centrovaným textem.
#zahrnout "raylib.h"int hlavní(prázdnota){ konst int šířka obrazovky = 800; konst int výška obrazovky = 450; InitWindow(šířka obrazovky, výška obrazovky, "příklad raylib [jádro] - základní okno"); SetTargetFPS(60); zatímco (!WindowShouldClose()) { BeginDrawing(); ClearBackground(RAYWHITE); DrawText(„Gratulujeme! Vytvořili jste své první okno!“, 190, 200, 20, SVĚTLE ŠEDÁ); EndDrawing(); } Zavřít okno(); vrátit se 0;}
Viz také
Reference
- ^ "Licence".
- ^ "raylib GitHub".
- ^ Thomas (01.08.2019). „Best 2D Game Engines: The Complete List (2020)“. Thomas Gervraud. Citováno 2020-07-20.
- ^ „Hadí hra napsaná v PHP (s Raylibem)“. webová stránka thephp.. Citováno 2020-07-20.
- ^ "raysan5 / raylib". GitHub. Citováno 2020-07-15.
- ^ "Vydání · paprsky5 / raylib". GitHub. Citováno 2020-07-15.
- ^ "historie raylib". historie raylib github.
- ^ 262588213843476. "raylib: 6 let zábavy". Podstata. Citováno 2020-07-23.CS1 maint: číselné názvy: seznam autorů (odkaz)
- ^ „raylib – C ++ herní knihovna ideální pro začátečníky“. www.gamefromscratch.com. Citováno 2020-07-20.
- ^ „Vydán Raylib 2.5“. www.gamefromscratch.com. Citováno 2020-07-20.
- ^ „Připojte se k serveru raylib Discord!“. Svár. Citováno 2020-07-15.
- ^ „Budujte software lépe, společně“. GitHub. Citováno 2020-07-15.
- ^ "raysan5 / raylib". GitHub. Citováno 2020-07-15.
- ^ Začátek programování vyzvánění - od nováčka po profesionála | Mansour Ayouni | Apress.
- ^ „Vývoj her pomocí dokumentace RingRayLib - Ring 1.13“. ring-lang.sourceforge.net. Citováno 2020-07-20.
- ^ Ray (2020-07-15), rayan5 / raygui, vyvoláno 2020-07-15
- ^ Fisac, Víctor (2020-07-14), victorfisac / Physac, vyvoláno 2020-07-15
- ^ Briemann, David Linus (10.06.2020), dbriemann / libpartikel, vyvoláno 2020-07-15
- ^ WEREMSOFT (2020-06-27), WEREMSOFT / páteř-raylib-runtime, vyvoláno 2020-07-15
- ^ WEREMSOFT (12. 7. 2020), Šablona WEREMSOFT / c99-raylib-cimgui, vyvoláno 2020-07-15
- ^ „Vítězové peer bonusů Google Open Source jsou tady!“. Blog Google s otevřeným zdrojovým kódem. Citováno 2020-07-15.
- ^ „RayLib dostává Epic MegaGrant“. GameFromScratch.com. 2020-08-07. Citováno 2020-08-10.