LPC on arvutiprogrammeerimiskeel, mida kasutatakse peamiselt mängude jaoks, kuid millel on rakendusi ka muudes seadetes, võib-olla kõige olulisem Pike keele alusena. Selle töötas välja Rootsi arvutiteadlane Lars Pensjö ja siit pärineb nime osa “LP”. “C” pärineb C-keelest, millest see tuletati. C on üks levinumaid programmeerimiskeeli ning selle tagaküljele on ehitatud palju erinevaid platvorme ja programme. Pensjö lõi oma programmi vähemalt osaliselt selleks, et luua tõhusamalt objekte ja jooniseid mitme kasutaja koopasse (MUD), mis on mitme võrgumänguplatvormi tahk. Selle keele üks kõige määravamaid omadusi on see, et see võimaldab mängijatel sisestada enam-vähem loomuliku sõnastusega käske ning mitmed erinevad mänguplatvormid kasutavad selle põhisüntaksit ja spetsifikatsioone. Kuigi see kipub olema mängude kogukonnas kõige populaarsem, on see leidnud ka mitmeid kasutusviise mujal avatud lähtekoodiga kodeerimise maailmas.
Algus ja esialgne eesmärk
MUD-id on populaarsed osad paaris erinevas peavoolu võrgumänguplatvormis. Mängijad kõikjalt maailmast – kõikjal, kus on Interneti-ühendus – saavad kokku saada, tavaliselt avatari kehastuses, ja vahetada teavet, võidelda või luua üksteisega objekte, kasutades kodeeritud juhtnuppe. Igaüks, kes mängib sellist mitme kasutajaga mängu, vajab tavaliselt vähemalt põhiteadmist kodeerimisest ja käskude süntaksist. Lihtsam C-põhine formaat loodi peamiselt selleks, et muuta see mänguosa hõlpsamini juurdepääsetavaks.
Põhisüntaks
Iga kodeerimiskeele põhisüntaks on süsteem, mida kasutatakse leksikaalsete ja süntaktiliste analüsaatorite genereerimiseks. Lihtsamalt öeldes on need mutrid ja poldid selle kohta, kuidas kodeerimine töötab, kirjutatakse ja hostid selle vastu võtavad. Enamikus olulistes aspektides peegeldab LPC keelt C, kuid sellel pole tugevalt trükitud muutujaid. See võimaldab seda kasutada üksuste asemel objektide loomiseks. Näiteks vangikoopasse on ruumid, relvad, koletised ja soomused objektid. Programmeerimiskeel võimaldab kasutajatel neid objekte luua, muuta, kustutada ja reprodutseerida peaaegu mis tahes viisil.
Programmeerimise spetsifikatsioonid
Üldiselt toetab keel paljusid erinevaid programmeerimistüüpe, sealhulgas protseduurilisi, modulaarseid, struktureeritud, objektorienteeritud, määratletud andmeid ja nõrku muutujaid, muutes selle terviklikuks ja kõikehõlmavaks arvutikeeleks. Üks Pensjö disaini põhiomadus on selle suhteline vastupidavus sisuloojate levinutele programmeerimisvigadele. Serveri üldine stabiilsus paraneb peaaegu alati ka selle keele kasutamisel, mis võimaldab uutel programmeerijatel keskenduda asjade loomisele, mitte programmeerimisloogikale endale.
Jooniste roll
Kuigi peaaegu kõik on LPC-s objekt, ei kasuta see klasside mõistet. Selle sätte objekt on selle asemel kavandiobjekt või plaaniobjekti kloon; kuigi tehniliselt erinevad klassist, saab neid kavandeid sageli käsitleda samal viisil. Kõigile atribuutidele ja meetoditele pääseb juurde selles keeles eksemplari ja klassi tasemel, mis ei ole alati nii teiste objektorienteeritud keelte puhul, mis võimaldavad neid piirata klassi ja eksemplariga.
Objektide seos kesktoimikuga
LPC-koodis määratletakse tavalised objektid tsentraliseeritud failides. Erinevate mängutubade loomisel pärivad need objektid kesksest failist ja vastavalt sellele mõjutab selle faili muudatus ka iga koodi, kus seda objekti kasutatakse. See hoiab ära vajaduse kodeerida kõiki neid objekte igasse asukohta, muutes koodi kirjutamise ja hooldamise lihtsamaks. See tsentraliseerimine ei ole ainulaadne, vaid on osa sellest, mis võimaldab selle programmeerimiskeelega keerulisi mänge luua.
Paindlikkus ja muud kasutusalad
Koodi kui terviku paindlikkus on viinud selleni, et seda kasutatakse erinevatel eesmärkidel peale MUD-i mängu loomiseks. Laiaulatuslikud kasutusvõimalused hõlmavad Pike programmeerimiskeele loomist, mis põhineb peaaegu täielikult Pensjö mudelil. Pike’i kasutatakse laialdaselt multimeediumirakenduste, süsteemihaldusülesannete ja Interneti-serverite jaoks.