====== Overview ====== The **Rayman 1 multi-platform common engine**((https://ch.linkedin.com/in/yannletensorer)) is an unnamed 2D engine originally developed by Yann Le Tensorer for the multi-platform versions of [[https://raymanpc.com/wiki/en/Rayman_1|Rayman 1]]. It was used for the game on all platform besides the Atari Jaguar which used a [[ray1-jag:overview|separate engine]] coded in Assembly by Frédéric Houde. The engine was later updated both for the PC spin-offs, such as [[https://raymanpc.com/wiki/en/Rayman_Designer|Rayman Designer]], and the [[https://raymanpc.com/wiki/en/Rayman_2_(cancelled_prototype)|cancelled Rayman 2 2D prototype]]. The engine is designed for 2D platforming and has the levels consist of tile-based maps. Backgrounds are either static images or ones consisting of multiple layers to produce a parallax effect. All of the objects in a level are animated using multiple moving sprites, something used to its fullest to give the game its unique style with limbless characters. ===== Topics ===== * [[ray1:basics|Engine Basics]] * [[ray1:editors|Editors Overview]] * [[ray1:structure|File Formats and Data Structures]] ===== History ===== ==== Rayman 1 ==== [[https://raymanpc.com/wiki/en/Rayman_1|Rayman 1]] was originally developed as an exclusive on the Atari Jaguar, but with the underwhelming sales of the platform it was decided that the game would also be released on the upcoming Sony PlayStation. In July of 1994, Yann Le Tensorer as a proof of concept rewrote their current Atari Jaguar prototype for the PC, this time written in C rather than Assembly. Michel Ancel was immediately impressed by the results and Yann Le Tensorer stayed in charge of what would become the new multi-platform engine for the game. Although originally made for and developed on PC it was written to support multiple platforms such as the Sony PlayStation and Sega Saturn. Following the release of the game it was later ported to more platforms, such as Pocket PC, Game Boy Advance and iOS/Android. All of these ports were based off of the PC version. ==== PC spin-offs ==== After the release of the first game there were several spin-offs developed for PC. The first ones were two types of educational games, [[https://raymanpc.com/wiki/en/English_with_Rayman|one focused on learning a language]] (codenamed "EDU") and [[https://raymanpc.com/wiki/en/Rayman_Junior|the other focused on general education]], such as learning to work with numbers (codenamed "QUI", short for quiz). Both of these games were released under different names based on their localization, but were all commonly known as "Rayman Edutainment". Several changes were made for this release which would be kept for the later spin-offs as well. The most notable one is that the game can now be split into multiple "versions", each launched separately from one another. For the educational games these versions would define the language and difficulty level. In later spin-offs it would instead only be used for the language and each version would share the same levels. Other changes include much of the data previously hard-coded in the game's engine now being defined in scripts instead. This was most likely made to make it easier for people unfamiliar with programming to modify the games for the different releases. In the released game these scripts have been compiled into binary data and stored in a new type of archive format. The next spin-off to be released was [[https://raymanpc.com/wiki/en/Rayman_Designer|Rayman Designer]] (codenamed "KIT"). What's notable about this game is that it includes both of the primary editors used to design the game. These are the Mapper, for editing the tile maps, and the Event Editor, for placing objects in a map. Although several features were removed, mostly to make it easier to work with, a lot of leftovers still exist in the code. One of the more notable features missing is the ability to compile a level into its binary format. Instead custom levels have to be shared and played directly through the editor. The last two spin-offs are [[https://raymanpc.com/wiki/en/Rayman_By_His_Fans|Rayman by his Fans]] (codenamed "FAN") and [[https://raymanpc.com/wiki/en/Rayman_60_Levels|Rayman 60 Levels]] (codenamed "60N"). Both of these include levels created directly from the level editor in [[https://raymanpc.com/wiki/en/Rayman_Designer|Rayman Designer]], with the former having ones created by fans. ==== Rayman 2 2D prototype ==== //FIXME TODO: Describe the improvements made to the engine for this prototype// ==== Game Boy Advance and Nintendo DSi ports ==== //FIXME TODO: Describe the changes made to the engine when porting it and some of its development history from interviews//