LPC je računalni programski jezik koji se prvenstveno koristi u igrama, ali ima i aplikacije u drugim postavkama, možda ponajviše kao osnova za jezik Pike. Razvio ga je švedski informatičar Lars Pensjö, a odatle dolazi dio imena “LP”. “C” dolazi iz jezika C, iz kojeg je i izvedeno. C je jedan od najčešćih programskih jezika, a na njegovoj pozadini izgrađeno je mnogo različitih platformi i programa. Pensjö je stvorio svoj program barem djelomično kao način da učinkovitije kreira objekte i nacrte u višekorisničkim tamnicama (MUD), koje su aspekt nekoliko platformi za online igre. Jedna od najvažnijih značajki ovog jezika je da igračima omogućuje upisivanje naredbi s više ili manje prirodnim tekstom, a brojne različite platforme za igre koriste njegovu osnovnu sintaksu i specifikacije. Iako ima tendenciju da bude najpopularniji u zajednici igara, također je pronašao brojne namjene i drugdje u svijetu otvorenog koda.
Početak i izvorna svrha
MUD-ovi su popularni dijelovi nekoliko različitih mainstream platformi za online igre. Igrači s bilo kojeg mjesta na svijetu – bilo gdje s internetskom vezom, odnosno – mogu se sastati, obično u liku avatara, i razmjenjivati informacije, boriti se ili stvarati objekte jedni s drugima putem kodiranih kontrola. Svatko tko igra igru s više korisnika poput ove obično treba barem osnovno razumijevanje kodiranja i sintakse naredbi kako bi se uključio. Jednostavniji format baziran na C osmišljen je prvenstveno kako bi taj dio igre bio lakši pristup.
Osnovna sintaksa
Osnovna sintaksa svakog kodnog jezika je sustav koji se koristi za generiranje leksičkih i sintaktičkih analizatora. Jednostavnije rečeno, to su matice i vijci kako se kodiranje izvodi, piše i prima od strane domaćina. U većini ključnih aspekata LPC zrcali jezik C, ali nema jako tipizirane varijable. To mu omogućuje da se koristi za stvaranje objekata umjesto stavki. U tamničkom okruženju, na primjer, sobe, oružje, čudovišta i oklop su objekti. Programski jezik omogućuje korisnicima da stvaraju, mijenjaju, brišu i reproduciraju ove objekte na gotovo bilo koji način koji odaberu.
Specifikacije programiranja
Općenito, jezik podržava mnoge različite tipove programiranja, uključujući proceduralne, modularne, strukturirane, objektno orijentirane, definirane podatke i slabu varijablu, što ga čini sveobuhvatnim i sveobuhvatnim računalnim jezikom. Jedna ključna značajka Pensjöovog dizajna je njegova relativna otpornost na uobičajene programske pogreške od strane graditelja sadržaja. Opća stabilnost poslužitelja gotovo je uvijek poboljšana s ovim jezikom koji se također koristi, što može omogućiti novim programerima da se usredotoče na zadatak izgradnje stvari, a ne da se zaokupljaju samom logikom programiranja.
Uloga nacrta
Iako je gotovo sve objekt u LPC-u, on ne koristi koncept klasa. Umjesto toga, objekt u ovoj postavci je objekt nacrta ili klon objekta nacrta; iako se tehnički razlikuju od klase, ti se nacrti često mogu tretirati na isti način. Svim atributima i metodama može se pristupiti na razinama instance i klase u ovom jeziku, što nije uvijek slučaj u drugim objektno orijentiranim jezicima koji im omogućuju da budu ograničeni na klasu i instancu.
Odnos objekata prema središnjoj datoteci
U LPC kodu uobičajeni su objekti definirani u centraliziranim datotekama. Kako se stvaraju različite “sobe” igre, one nasljeđuju objekte iz središnje datoteke, te će prema tome promjena te datoteke također utjecati na svaki dio koda u kojem se taj objekt koristi. To sprječava potrebu za kodiranjem svakog od tih objekata na svakom mjestu, što olakšava pisanje i održavanje koda. Ova centralizacija nije jedinstvena, ali je dio onoga što omogućuje stvaranje kompliciranih igara s ovim programskim jezikom.
Fleksibilnost i druge namjene
Fleksibilnost koda u cjelini dovela je do toga da se koristi u razne svrhe osim za stvaranje MUD igre. Široka upotreba uključuje stvaranje programskog jezika Pike, koji se gotovo u potpunosti temelji na Pensjöovom modelu. Pike se naširoko koristi za multimedijske aplikacije, zadatke administracije sustava i internetske poslužitelje.