Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
QuakeC – 1996 жылы id Software компаниясының Джон Кармак жасаған, Quake видео ойынының бөліктерін бағдарламалауға арналған құрастырылған тіл. QuakeC-ті пайдалану арқылы бағдарламашы, Quake ойынына қару-жарақ қосу, ойын логикасы мен физикасын өзгерту және күрделі сценарийлерді жазу арқылы оны кең ауқымда бейімдей алады. Ол ойынның жасанды интеллектісінің бөліктері, триггерлер немесе деңгейдегі өзгерістер сияқты көптеген аспектілерін басқару үшін қолданылуы мүмкін. Quake ойын қозғалтқышы QuakeC-ті қолдаған жалғыз ойын қозғалтқышы болды. Id Tech 4 және одан кейінгі қозғалтқыштарда C және C++ тілдерінде жазылған DLL ойын модульдері қолданылды.
Compiled language
QuakeC is a compiled language developed in 1996 by John Carmack of id Software to program parts of the video game Quake. Using QuakeC, a programmer is able to customize Quake to great extents by adding weapons, changing game logic and physics, and programming complex scenarios. It can be used to control many aspects of the game itself, such as parts of the AI, triggers, or changes in the level. The Quake engine was the only game engine to use QuakeC. Following engines used DLL game modules for customization written in C, and C++ from id Tech 4 on.
Шолу
QuakeC бастапқы коды, id Software компаниясының Quake ойынының логикасы 1996 жылы жарияланды және жалауды басып алу сияқты түрлендірулердің негізі ретінде қолданылды. QuakeC бастапқы коды qcc деп аталатын құрал арқылы байт-кодқа компиляцияланады, ол прогтар.dat файлында сақталады. Quake түрлендірулерін жасаушы бағдарламашылар өздерінің бастапқы кодын жарияламай-ақ байт-кодарын жариялай алатын болды. Quake түрлендірулерінің көпшілігі осылай шығарылды. QuakeC, Quake ойын қозғалтқышының бірінші тұлғадан ату жанрына бағыт беруіне мүмкіндік берді. Кармактың видео ойындардың өмірін шексіз кеңейту арқылы ұзарту идеясының (Doom ойынында кеңейту мүмкіндігі маңызды рөл атқарды) арқасында, ойыншылар мен бағдарламашылардан құралған үлкен интернет қауымдастығы пайда болды, ал көптеген қазіргі заманғы көп ойыншылы ойындар белгілі бір деңгейде кеңейтіледі. QuakeC интерпретацияланған тіл деп есептеледі, себебі Quake іске қосылғанда, ол үнемі прогтар.dat файлындағы кодты интерпретациялайды.
The QuakeC source to the original id Software Quake game logic was published in 1996 and used as the basis for modifications like capture the flag and others. QuakeC source code is compiled using a tool called qcc into a bytecode kept in a file called The programmers of Quake modifications could then publish their bytecode without revealing their source code. Most Quake mods were published this way. QuakeC allowed the Quake engine to dominate the direction of the first person shooter genre. Thanks to Carmack's idea of extending video game life by adding unlimited expandability (extensibility already played a big role in Doom), an enormous Internet community of gamers and programmers alike has arisen and many modern multiplayer games are extensible in some form. QuakeC is known as interpreted because as Quake runs, it is continually interpreting the progs. dat file.
Өзгертілген компиляторлар мен тілдік кеңейтулер
Армин Риго (DEACC және REACC деп аталады) декомпилятор және рекомпилятор шығарды. Бұл бағдарламалар кері инженерия процесі арқылы жасалды және qcc шығарылғанға дейін жарияланған болуы мүмкін. id Software 1996 жылы өздерінің QuakeC компиляторы qcc-нің бастапқы кодын, сонымен қатар бастапқы QuakeC кодын жариялады. Көп ұзамай, өзгертілген нұсқалар пайда болды, оның ішінде Джонатан Ройдің fastqcc және Райан "FrikaC" Смиттің FrikQCC. Бұл бағдарламалар функционалдық мүмкіндіктерді, оңтайландыруды және компиляция жылдамдығын арттырды. 1999 жылы id Software Quake қозғалтқышының кодын GNU General Public License (GPL) лицензиясы бойынша шығарғанда, байт-код интерпретаторының жұмысы зерттелді және J. P. Grossman'ның qccx сияқты жаңа QuakeC компиляторлары шығарылды, сондай-ақ FrikQCC-нің жаңа нұсқасы да пайда болды. Бұл компиляторлар жаңадан ашылған мүмкіндіктерді артқа қарай үйлесімділікпен пайдаланды, соның салдарынан байт-кодты өзгертілмеген Quake қозғалтқыштары дұрыс интерпретациялай алды. Жаңа мүмкіндіктерге массивтер, сілтемелер, бүтін сандар, for циклдары және жолдармен жұмыс істеу кіреді. Quake қозғалтқышының бастапқы кодын өзгертуге мүмкіндік болғандықтан, QuakeC-ке жаңа функциялар түрінде қосымша мүмкіндіктер енгізілді. QuakeC бағдарламашылары ұзақ жылдар бойы күткен мүмкіндіктер, сондай-ақ файлдармен және жолдармен жұмыс істеу функциялары, кеңейтілген жол буферлері, математикалық функциялар және т.б. енді іске асырылды. Дегенмен, осы өзгерістерді пайдаланған бағдарламашылар өзгертілмеген Quake қозғалтқышымен артқа қарай үйлесімділікті жоғалтты. Xonotic 0.7 нұсқасынан бастап gmqcc компиляторын пайдаланады.
A decompiler and a recompiler were released by Armin Rigo (called DEACC and REACC respectively). These programs were made through the process of reverse engineering, and were most likely published before the release of qcc. id Software released the source of qcc, their QuakeC compiler, along with the original QuakeC code in 1996. Modified versions soon sprung up, including Jonathan Roy's fastqcc and Ryan "FrikaC" Smith's FrikQCC. These added functionality, optimizations, and compiling speed boosts. In 1999, when id Software released the code from Quake's engine under the GNU General Public License (GPL), the workings of the bytecode interpreter were examined and new QuakeC compilers were released, such as J. P. Grossman's qccx and a new version of FrikQCC. These compilers took advantage of newly discovered features in a backwards compatible way so that the bytecode could still be properly interpreted by unmodified Quake engines. New features include arrays, pointers, integers, for loops and string manipulation. With the Quake engine source code now able to be changed, further features were added to QuakeC in the form of new built in functions. Features long yearned for by QuakeC coders finally reached realization as QuakeC now had file and string handling functions, enlarged string buffers, more math functions, and so on. However, programmers taking advantage of these changes lost backwards compatibility with the unmodified Quake engine. Xonotic since version 0.7 uses the gmqcc compiler.
Клиенттік QuakeC
Кейбір жетілдірілген Quake қозғалтқыштары (әсіресе Darkplaces және FTEQW) қалыпты QuakeC-нің кеңейтілген нұсқасын қолдайды (қазір көбінесе серверлік QuakeC деп аталады), бұл Quake қозғалтқышын тек клиенттік жағынан ғана бағдарламалауға мүмкіндік береді, және CSQC (клиенттік QuakeC) деп қысқартылады. Бұл әсіресе графикалық интерфейстер, HUD және серверде модельдеуді қажет етпейтін және желі арқылы жіберілмейтін визуалды эффекттер үшін өте пайдалы.
Some enhanced Quake engines (notably Darkplaces and FTEQW) have support for an extension of regular QuakeC (now commonly referred to as server side QuakeC) that allows client side only scripting of the Quake engine, also abbreviated as CSQC (client side QuakeC). This is especially useful for GUIs, HUDs and any visually heavy effects that do not need to be simulated on the server and transferred over the network.