You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

114 lines
4.6 KiB

  1. <img src="http://www.raylib.com/favicon.ico" width=256>
  2. raylib
  3. =======
  4. about
  5. -----
  6. raylib is a simple and easy-to-use library to learn C videogames programming.
  7. raylib is highly inspired by Borland BGI graphics lib (more specifically WinBGI) and by XNA framework.
  8. Allegro and SDL have also been analyzed for reference.
  9. Want to see how easy is making games with raylib? Jump to [code examples!] (http://www.raylib.com/examples.htm)
  10. history
  11. -------
  12. I've developed videogames for some years and last year I had to taught videogames development
  13. to young people with artistic profile, most of them had never written a single line of code.
  14. I started with C language basis and, after searching for the most simple and easy-to-use library to teach
  15. videogames programming, I found WinBGI; it was great and it worked very well with students, in just a
  16. couple of weeks that people that had never written a single line of code were able to program (and understand)
  17. a simple PONG and some of them even a BREAKOUT!
  18. But WinBGI was not the clearer and most organized lib. There were a lot of things I found useless and
  19. confusing and some function names were not clear enough for most of the students; not to mention points
  20. like no transparencies support or no hardware acceleration.
  21. So, I decided to create my own lib, hardware accelerated, clear function names, quite organized, well structured,
  22. plain C coding and, the most important, primarily intended to LEARN videogames programming.
  23. I've coded quite a lot in C# and XNA and I really love it (in fact, my students learn C# with XNA after C),
  24. so, I decided to use C# language notation and XNA naming conventions. That way, students can jump from
  25. raylib to XNA (or MonoGame) extremely easily.
  26. raylib started as a weekend project and after three months of hard work, here it is the first version.
  27. Enjoy it.
  28. features
  29. --------
  30. * Written in plain C code (C99)
  31. * Uses C# PascalCase/camelCase notation
  32. * Hardware accelerated using OpenGL 1.1
  33. * Transparencies support (RGBA Colors)
  34. * Custom color palette for better use on white background
  35. * Basic 3D Support (camera, basic models, OBJ models, etc)
  36. * Powerful Text module with SpriteFonts support
  37. raylib uses on its core module the outstanding [GLFW3] (http://glfw.org/) library. The best option by far I found for
  38. window/context and input management (clean, focused, great license, well documented, modern, ...).
  39. raylib is licensed under a zlib/libpng license like GLFW3. View [LICENSE] (link to license file).
  40. tool requirements
  41. ------------------
  42. raylib has been developed using exclusively two tools:
  43. * Notepad++ (text editor) - [http://notepad-plus-plus.org/](http://notepad-plus-plus.org/)
  44. * MinGW (GCC compiler) - [http://www.mingw.org/](http://www.mingw.org/)
  45. Those are the tools I recommended to develop with raylib, actually, my students develop using this tools.
  46. I believe those are the best tools to train spartan-programmers.
  47. Someone could argue about debugging. raylib is a library intended for learning and I think C it's a clear enough language
  48. to allow writing small-mid size programs with a printf-based debugging. All raylib examples have also been written this way.
  49. building
  50. --------
  51. raylib could be build with the following command lines (Using GCC compiler):
  52. cd raylib/src
  53. gcc -c core.c -std=c99 -Wall
  54. gcc -c shapes.c -std=c99 -Wall
  55. gcc -c textures.c -std=c99 -Wall
  56. gcc -c stb_image.c -std=c99 -Wall
  57. gcc -c text.c -std=c99 -Wall
  58. gcc -c models.c -std=c99 -Wall
  59. gcc -c vector3.c -std=c99 -Wall
  60. gcc -c audio.c -std=c99 -Wall
  61. ar rcs raylib.a core.o shapes.o textures.o stb_image.o text.o models.o vector3.o audio.o
  62. To compile examples, make sure raylib.h is placed in include path and libraries raylib (libraylib.a) and glfw3 (libglfw3.a)
  63. are placed in the libraries path. It's also recommended to link with file icon.o for fancy raylib icon usage.
  64. cd raylib/src/examples
  65. gcc -o test_code.exe test_code.c icon.o -lraylib -lglfw3 -lopengl32 -lgdi32 -std=c99 -Wl,--subsystem,windows
  66. contact
  67. -------
  68. * Webpage: [http://www.raylib.com](http://www.raylib.com)
  69. * Twitter: [http://www.twitter.com/raysan5](http://www.twitter.com/raysan5)
  70. * Facebook: [http://www.facebook.com/raylibgames](http://www.facebook.com/raylibgames)
  71. If you are using raylib and you enjoy it, please, [let me know][raysan5].
  72. If you feel you can help, then, [helpme!] (http://www.raylib.com/helpme.htm)
  73. acknowledgments
  74. ---------------
  75. The following people have contributed in some way to make raylib project a reality. Big thanks to them!
  76. - Zopokx
  77. - Elendow
  78. [raysan5]: mailto:raysan@raysanweb.com "Ramon Santamaria - Ray San"