LPC je računalniški programski jezik, ki se uporablja predvsem v igrah iger, vendar ima aplikacije tudi v drugih nastavitvah, morda najbolj kot osnova za jezik Pike. Razvil ga je švedski računalničar Lars Pensjö in od tod izvira del imena »LP«. “C” prihaja iz jezika C, iz katerega je nastal. C je eden najpogostejših programskih jezikov, na njegovem hrbtu pa je bilo zgrajenih veliko različnih platform in programov. Pensjö je svoj program ustvaril vsaj deloma kot način za učinkovitejše ustvarjanje predmetov in načrtov v večuporabniških ječah (MUD), ki so del več platform za spletne igre. Ena od najbolj določujočih značilnosti tega jezika je, da igralcem omogoča vnašanje ukazov z bolj ali manj naravnim besedilom, številne različne igralne platforme pa uporabljajo njegovo osnovno sintakso in specifikacije. Čeprav je ponavadi najbolj priljubljen v skupnosti iger na srečo, je našel številne uporabe tudi drugod v svetu odprtokodnega kodiranja.
Začetek in prvotni namen
MUD-ji so priljubljeni deli nekaj različnih mainstream spletnih igralnih platform. Igralci od koder koli na svetu – kjer koli imajo internetno povezavo – se lahko srečajo, običajno v personi avatarja, in izmenjujejo informacije, se borijo ali ustvarjajo predmete drug z drugim s kodiranimi kontrolami. Vsakdo, ki igra večuporabniško igro, kot je ta, običajno potrebuje vsaj osnovno razumevanje kodiranja in sintakse ukazov, da se vključi. Preprostejši format, ki temelji na C, je bil zasnovan predvsem zato, da bi bil ta del igre lažje dostopen.
Osnovna sintaksa
Osnovna sintaksa katerega koli kodirnega jezika je sistem, ki se uporablja za generiranje leksikalnih in sintaktičnih analizatorjev. Preprosteje povedano, to so matice in vijaki, kako kodiranje teče, je napisano in sprejeto s strani gostiteljev. V večini ključnih vidikov LPC zrcali jezik C, vendar nima močno tipiziranih spremenljivk. To omogoča, da se uporablja za ustvarjanje predmetov namesto predmetov. V okolju ječe so na primer sobe, orožje, pošasti in oklep predmeti. Programski jezik uporabnikom omogoča ustvarjanje, spreminjanje, brisanje in reproduciranje teh objektov na skoraj kateri koli način, ki ga izberejo.
Specifikacije programiranja
Na splošno jezik podpira številne različne vrste programiranja, vključno s proceduralnimi, modularnimi, strukturiranimi, objektno usmerjenimi, definiranimi podatki in šibkimi spremenljivkami, zaradi česar je izčrpen in vseobsegajoč računalniški jezik. Ena ključnih značilnosti Pensjöjeve zasnove je njegova relativna odpornost na pogoste programske napake, ki jih izvajajo graditelji vsebin. Splošna stabilnost strežnika je skoraj vedno izboljšana tudi s tem jezikom, ki se uporablja, kar lahko novim programerjem omogoči, da se osredotočijo na nalogo gradnje stvari, namesto da bi jih uporabljala samo programska logika.
Vloga načrtov
Čeprav je skoraj vse objekt v LPC, ne uporablja koncepta razredov. Namesto tega je predmet v tej nastavitvi objekt načrta ali klon objekta načrta; čeprav se tehnično razlikujejo od razreda, je mogoče te načrte pogosto obravnavati na enak način. Do vseh atributov in metod je mogoče dostopati na ravneh primerka in razreda v tem jeziku, kar ni vedno tako v drugih objektno usmerjenih jezikih, ki omogočajo, da so omejeni na razred in primerek.
Razmerje objektov do osrednje datoteke
V kodi LPC so skupni objekti definirani v centraliziranih datotekah. Ko so ustvarjene različne »sobi« igre, podedujejo predmete iz osrednje datoteke, zato bo sprememba te datoteke vplivala tudi na vsak kos kode, kjer se ta predmet uporablja. To preprečuje potrebo po kodiranju vsakega od teh objektov na vsako lokacijo, kar olajša pisanje in vzdrževanje kode. Ta centralizacija ni edinstvena, ampak je del tega, kar omogoča ustvarjanje zapletenih iger s tem programskim jezikom.
Prilagodljivost in druge uporabe
Prilagodljivost kode kot celote je privedla do tega, da se uporablja za različne namene, razen za ustvarjanje igre MUD. Široka uporaba vključuje ustvarjanje programskega jezika Pike, ki skoraj v celoti temelji na Pensjöjevem modelu. Pike se pogosto uporablja za večpredstavnostne aplikacije, naloge sistemske administracije in internetne strežnike.