Laika līnija

No BASIC līdz AI aģentiem

Aptuveni reizi piecos gados es no jauna apguvu amatu: Pascal, C++ un OpenGL, Unity, Solidity, TypeScript, un tagad izstrādi ar AI aģentiem. Lūk, ko es pa ceļam uzbūvēju.

  1. 2025+ Izstrāde ar AI aģentiem
  2. 2026

    TaleCheck

    Statiskā analīze daiļliteratūrai, ko uzbūvēju viens pats ar Claude Code un paralēliem aģentiem: 1 662 komiti mazāk nekā trīs mēnešos, darbojas ar maksājošiem lietotājiem.

    TypeScriptNestJSClaude CodeAnthropic API
    TaleCheckTaleCheck
  3. 2026

    Vokseļu pasaule nedēļā 📷 4

    Minecraft stila vokseļu pasaule Unity, uzbūvēta apmēram nedēļā 2026. gada februārī ar Claude Code: procedurāls reljefs ar kalniem, upēm un mežiem, pasaule, sadalīta čankos, un rediģēšana ar bloku otu — līdz pat koku stādīšanai.

    UnityC#Claude Code
    Procedurāls reljefs: upe, pakalni un kalni.

    Procedurāls reljefs: upe, pakalni un kalni.

  4. 2025–2026

    Griddle Fun 📷 4

    Spēle uz tiešsaistes kriptovalūtas grafika: tu pieskaries režģa šūnai, kurā, tavuprāt, nonāks cena, un laimē ar šīs šūnas koeficientu. Grūtākā daļa bija matemātika — katras šūnas koeficienta aprēķins. To darīju kopā ar matemātiķi: es uzstādīju uzdevumu, testēju viņa rezultātus un sūtīju atpakaļ to, kas nebija kārtībā, un paralēli veidoju pašu spēli. Simulācijas testēšana bija mana: boti ar dažādām stratēģijām, alkatīgām un ne tikai, spēlēja pret izmaksām, līdz koeficienti noturējās. Simulācija ar 604 800 sekunžu cenu datiem (viena nedēļa) iznāca gandrīz precīzi bez peļņas un zaudējumiem, ROI ap 0,4%, kā iecerēts.

    Režģis: katrai šūnai cenas līnijas priekšā ir savs koeficients.

    Režģis: katrai šūnai cenas līnijas priekšā ir savs koeficients.

  5. 2017+ Web3 un reāllaika platformas
  6. 2022–

    CTO uz daļslodzi

    Tehniskais partneris dibinātājiem: izstrāde ar fiksētu apjomu, arhitektūras pārskati un due diligence.

  7. 2021

    Ģeneratīvi NFT koki, kas aug 📷 2

    Web3 spēlei es izveidoju kokus, kas aug blokķēdē. Katrs NFT saņem 256 bitu genomu no Chainlink VRF, un mans dekoders to pārvērš koka raksturā: zaru garums un resnums, leņķi, noliekšanās un izliekums, gravitācijas spēks, vainaga blīvums. Tad rekursīvs algoritms uzzīmē koku vokseļu režģī, bloku pa blokam Minecraft stilā, ar 3D simplex troksni vainaga formai un zaru izliekumiem. Katrs augšanas solis, līdz desmit, ir transakcija, un katram zaram ir savs seed, tāpēc koks tieši aug, nevis tiek pārzīmēts: zariņš no iepriekšējā soļa kļūst par zaru un sazarojas tālāk. Attēlā nonāk arī pasaule ap to: vainags sabiezē vai paretinās līdz ar tokena cenu starp soļiem (no Chainlink cenu plūsmas), mizas krāsa nāk no īpašnieka adreses, debesis mainās pa stundu garu dienas un nakts ciklu, lapotnē deg laterniņas, bet īpašnieki, kas tikko bija nobalsojuši par projektu, saņēma zelta vai rozā vainagus. Sākumā attēlus veidoja vokseļu staru izsekotājs, ko piedāvāja studija, ar kuru mani iepazīstināja partneri: es tam sūtīju režģi pēc saskaņota protokola, tas ielika uzdevumu rindā, un es periodiski vaicāju rezultātu. Taču tas zīmēja tikai kubus, bija maksas, un es biju atkarīgs no svešiem serveriem. Tāpēc pārgāju uz Blender: katrs modelis tiek eksportēts GLTF formātā un renderēts serverī ar Blender Cycles, izmantojot Python skriptu, un nu es varēju pievienot jebkādus objektus, zemes plāksnes, kameras un gaismas — uz nobrieduša atvērtā koda dzinēja. Metadatu serviss atdod katra augšanas soļa attēlu. Apmēram mēnesis darba 2021. gada oktobrī, Polygon un BNB Chain. Zemāk redzamos renderus 2026. gadā izveidoju vēlreiz no oriģinālā koda, ar Blender 2.93 un oriģinālo ainu.

    TypeScriptNode.jsBlenderChainlink
    Divpadsmit nejauši genomi, katrs savā pēdējā augšanas solī.

    Divpadsmit nejauši genomi, katrs savā pēdējā augšanas solī.

  8. 2021–

    Roach Racing Club 📷 9

    Web3 sacīkšu spēle no nulles, ko vada tiešsaistes kriptotirdzniecība: viedlīgumi, tokenomika, savs WebGL dzinējs 10 dalībnieku tiešraides sacīkstēm, sacīkšu modelis, kas sabalansēts manā paša simulatorā, un mikroservisu bekends. Tīmeklī un Telegram.

    SolidityThree.jsTypeScript
    Roach Racing Club
  9. 2020–2024

    Dice Chess

    Reāllaika šahs ar kauliņu variantu, par kuru atbildēju no idejas līdz palaišanai: specifikācija, arhitektūra, sava testēšanas sistēma šaha pozīcijām; slodzes testi 20 000 vienlaicīgiem spēlētājiem.

    JavaVueTypeScriptMicroservices
    Dice Chess
  10. 2017–2021

    Blockchain Cuties

    Rakstīju Ethereum viedlīgumus citiem, pēc tam līdzdibināju Cuties un palaidu to četros mēnešos (2018. gada aprīlī), vēl pirms ERC-721 bija galīgi pieņemts. Tēli un vairošana — blokķēdē, priekšmeti un kaujas — serverī ar vienreizējiem parakstiem, ko pārbauda līgumi. Ethereum, pēc tam EOS, TRON, NEO un Polygon — daudzķēžu arhitektūra, vēlāk paplašināta līdz 7 tīkliem. #1 DappRadar; 2021: pārvaldības tokena līgumi un IDO.

    SolidityNode.jsEOSTRON
    Blockchain CutiesBlockchain Cuties
  11. 2017

    Decrypted Kitties 📷 4

    CryptoKitties stila spēle, uzbūvēta apmēram nedēļā un publicēta Google Play 2017. gada 31. decembrī ar nosaukumu „Crypto Kitties Decrypted Simulator”, — pirmais solis kriptospēlēs. Kolekcionē, audzē un pārdod kaķus ar saviem gēniem, bez maka un ētera.

    Unity
    Decrypted Kitties, Google Play, 2017. gada decembris.

    Decrypted Kitties, Google Play, 2017. gada decembris.

  12. 2010+ Unity un studija ar 35 cilvēkiem
  13. 2015–2020

    Zebrainy 📷 3

    Līdzīpašnieks un tehniskais direktors uzņēmumā, kas veido izglītojošas spēles maziem bērniem. Viena no tā lietotnēm, Zebrainy ABCs, māca alfabētu: bērns velk mirdzošas lodītes burta formā, pēc tam izpēta ilustrētu pasauli ar vārdiem, kas sākas ar šo burtu, — 26 burti, 26 pasaules.

    Unity
    Zebrainy ABCs: burta A pasaule.

    Zebrainy ABCs: burta A pasaule.

  14. 2015–2016

    Bezmaksas spēļu izstrādes darbnīcas 📷 2

    Atvērām MadSword biroju vietējai kopienai bezmaksas vakara darbnīcām: kā spēles tiek veidotas Unity un Blender, un nianses, ko bijām apguvuši ražošanā, — no tēlu riggošanas līdz pretkrāpšanas sistēmas veidošanai Unity C#. Ieraksti ir YouTube.

    UnityC#Blender
    Es uzstājos MadSword darbnīcā, 2015. gada decembris.

    Es uzstājos MadSword darbnīcā, 2015. gada decembris.

  15. 2013

    Steam Defense izlaišana

    MadSword pirmais pašu laidiens — Kongregate, VK un Odnoklassniki: savs scenāriju skriptēšanas mehānisms, mākslīgais intelekts skirmish un PvP režīmiem un BotWars — visu nakti ilgs slodzes tests ar desmitiem tūkstošu vienību, kas trīs nedēļās padarīja spēli stabilu, bez avārijām.

    UnityC#Networking
  16. 2013

    Fizikas pulciņš pirmsskolniekiem

    Brīvprātīgs fizikas pulciņš Rīgā pirmsskolas vecuma bērniem. Draugi to sāka saviem bērniem, tad paziņu bērniem, un es pievienojos kā pasniedzējs; bērni maksāja simbolisku maksu, bet es naudu neņēmu. Mēs palaidām raķetes ar saspiestu gaisu un CO₂, spēlējāmies ar sauso ledu, blīvumu un rotaļu mašīnītēm. Video ir viens no raķešu eksperimentiem.

  17. 2013

    Global Game Jam: Tankraft

    Tīkla vairāku spēlētāju tanku kauja, uzbūvēta vienā nedēļas nogalē kopā ar komandas biedru: paša spēlētāja vai atvēlēts serveris, divi ieroči, tanki ar fiziku. Izlaista Windows, macOS, Linux un pārlūkam.

    UnityC#Networking
    Global Game Jam: Tankraft
  18. 2012–2018

    MadSword 📷 7

    Līdzdibināju spēļu studiju un izaudzēju to līdz 35 cilvēkiem. Sākām Steam Defense pie virtuves galda, piesaistījām investoru, pēc tam pārgājām uz pasūtījuma spēlēm izdevējiem: viens atkārtoti izmantojams Unity dzinējs ar līmeņu redaktoru un kopīgu serveri deva 100+ spēļu un reskinu un tūkstošiem līmeņu. Kopā 160+ spēļu un 20M+ lejupielāžu, lielākoties caur kādu Nīderlandes izdevēju. Bija arī VR spēles.

    UnityC#Java
    MadSword
  19. 2012

    MyCountry innoWate studijā

    Divi mēneši Game Insight studijā pie MyCountry — pilsētbūves spēles ar 5M+ instalācijām Google Play: kļūdu labošana un vecu mehāniku atgriešana.

    C++Mobile
  20. 2011

    Nunnery

    Divu dienu spēļu džems Londonas hakerspeisā, pilnā ar lodāmuriem, robotiem un serveriem. Devos turp pēc Igora uzaicinājuma — universitātes paziņas, kurš bija strādājis Sony un tagad taisīja 2D spēles uz sava starpplatformu dzinēja IGE, kas bija paredzēts galvenokārt tādām konsolēm kā PSP. Mūsu komanda uztaisīja divas spēles; es biju galvenais programmētājs spēlē Get Me to a Nunnery — platformerī par lēkājošu mūķeni. Izvēlējos IGE, nevis Unity, lai iepazītu dzinēju nākamajām spēlēm, un vēl divas dienas mājās refaktorēju kodu.

  21. 2011

    Unity: Bastions

    Pirmā Unity spēle: divi torņi — būvē savu un apšaudi pretinieka torni ar lielgabaliem. Plānota kā vairāku spēlētāju spēle.

    UnityC#
  22. 2004+ C++, OpenGL un savi dzinēji
  23. 2008

    Labyrinth 📷 6

    Mans maģistra darbs Latvijas Universitātē (2008, vadītājs doc. Kārlis Freivalds): Steel Engine, kas izaudzis līdz apmēram 30 000 C++ rindām, un Labyrinth — tīkla sacīkstes pa ģenerētu labirintu — kā tā demonstrācija. Es nodibināju un vadīju mūsu DiVision komandu un uzrakstīju visu, izņemot skaņu, ko veidoja Andrejs Movļaiko. Svarīgākais: pikseļu līmeņa apgaismojums GLSL, kur katrai gaismas avotu skaita un materiāla karodziņu kombinācijai vienreiz tiek nokompilēts savs šeiders, kas pēc tam tiek kešots; ēnu tilpumi ar Carmack’s reverse, izvēlēti shadow mapping vietā precīzu ēnu dēļ; redzamības algoritms labirintiem, kas ļāva spēlēt 100×100 labirintu 14×14 vietā, jo zīmēto objektu skaits vairs nebija atkarīgs no labirinta izmēra; un tīkla protokols virs enet bibliotēkas ar paša izdomātu sinhronizācijas metodi, penalty synchronization: dažādu spēlētāju ķermeņi uz brīdi var pārklāties, un spēki tos atgrūž vienu no otra.

    C++OpenGLGLSLNetworking
    Labyrinth
  24. 2006–2012

    whiteCryption

    Programmatūras arhitekts white-box kriptogrāfijā un koda aizsardzībā (RSA, ECC, SHA, AES). Izstrādāju v5 arhitektūru, kas joprojām darbojas produkcijā ~15 gadus vēlāk, tagad kā daļa no Zimperium.

    C++Cryptography
  25. 2006

    Steel Engine 📷 5

    Pašam savs C++ dzinējs: ainas, kas aprakstītas konfigurācijā, prefabi ar pārdefinējamiem parametriem — ideja, ko vēlāk padarīja populāru Unity. Tas bija arī mans bakalaura darbs „Mehāniskās kustības modelēšana datorgrafikā” (Latvijas Universitāte, 2006, vadītājs Dr. Paulis Ķikusts): atsevišķi grafikas un fizikas dzinēji, kur objekts tikai apraksta, kā tas izskatās, bet dzinējs izlemj, kā to zīmēt; un cieto ķermeņu fizikas modelis, no nulles uzrakstīts 3D, ar sešām brīvības pakāpēm — cilindru metode un secīgais sadursmju algoritms, pārņemti no mana 2D kursa darba, skriptētas trajektorijas līdzās brīvai kustībai, sadursmes, kas atrisinātas pēc impulsa un enerģijas saglabāšanās likumiem, ap simts ķermeņu reāllaikā. Recenzents atzīmēja, ka kustība demo patiešām pakļaujas fizikas likumiem, kā daudzos tā laika grafikas dzinējos nebija. Pirmkods ir publisks.

    C++OpenGL
    Steel Engine
  26. 2005–2018

    muo.lv

    Privāts MuOnline serveris, ko līdzdibināju un programmēju: 300–400 spēlētāju tiešsaistē dažu nedēļu laikā pēc palaišanas 2006. gadā. Es uzbūvēju visu ap spēli — PHP vietni ar spēlētāju tirgu, reitingiem, izsolēm, priekšmetu tirdzniecību un uzdevumiem, SMS maksājumus, kredītu ekonomiku, VIP serveri, publiskus banu sarakstus —, kā arī savu pretkrāpšanas sistēmu, servera tuneli, palaidēju un automātisko atjauninātāju un botu, kas vadīja notikumus spēlē.

    PHPSQL
    muo.lv Season 6 gados: tēlu reitingi un kas ir tiešsaistē.

    muo.lv Season 6 gados: tēlu reitingi un kas ir tiešsaistē.

  27. 2005

    ULTRA ParaShop: mana paša CMS 📷 3

    Interneta veikals paraplānu klubam — spārni, iekares sistēmas, deltaplāni, motodeltaplāni — uz mana paša dzinēja virs PHP 5 un PostgreSQL, nevis uz gatavas CMS. Katra lapa ir koks, kas glabājas datubāzē: lokācija, bloki (pa kreisi, centrā, pa labi), grupas, pagelets. Katru daļu zīmē veidne, kas arī glabājas datubāzē un tiek rediģēta administrēšanas panelī, manā paša veidņu valodā ar mainīgajiem, nosacījumiem, cikliem un ligzdotiem komponentiem. Administrators rediģē dzīvo lapu turpat uz vietas: katram blokam un grupai ir sava rīkjosla, lai pievienotu, pārvietotu, paslēptu vai dzēstu. Preces ar krāsām un modeļu tabulām, grozs ar pasūtījumiem, kas tiek nosūtīti pa e-pastu, komentāri, apmeklējumu un pārdošanas statistika, trīs valodas (RU, EN, LV), attēli datubāzē, kā arī dublēšana un atjaunošana no administrēšanas paneļa, nosūtot dampu pa e-pastu. Ap 10 000 PHP rindu. 2026. gadā es to no jauna palaidu Docker no 2005. gada novembra dublējuma, lai uzņemtu šos ekrānuzņēmumus.

    PHPPostgreSQLJavaScript
    Veikala sākumlapa krievu valodā, atjaunota no 2005. gada dublējuma.

    Veikala sākumlapa krievu valodā, atjaunota no 2005. gada dublējuma.

  28. 2005

    Xray

    Pasūtījuma demo uz mana dzinēja: rentgenstari iziet cauri puscaurspīdīgam kaulam.

    C++OpenGL
  29. 2004–2006

    Physics 2D

    Kursa darbs, kas izauga par mana bakalaura darba 3D fiziku uz Steel Engine: pašam savs fizikas dzinējs un pilnvērtīga spēle uz tā, iedvesmota no Elasto Mania un Half-Life 2. 2005. gada kursa darbs „Collision Detection” prof. Paula Ķikusta vadībā izvirzīja mērķi: simts cietu daudzstūra ķermeņu reāllaikā, kas nekad neizlien cits caur citu pat pie zema kadru ātruma. Tajā apskatīts, kā to darīja spēles — ierobežojošie taisnstūri Doom un Mario, režģa hešošana Warcraft, daudzstūri Quake un Havok —, un pievienotas manas paša metodes: cilindru metode, kas kustīgu, rotējošu ķermeni telpā „2D plus laiks” aplūko kā savītu cilindru, lai sadursmi laika solī atrastu precīzi, secīgais sadursmju noteikšanas algoritms un patvaļīga daudzstūra inerces moments.

    C++STLOpenGL
    No kursa darba: zvaigzne, kas kustas un griežas, zīmēta telpā „plakne plus laiks”, kļūst par savītu cilindru. Sadursmju noteikšana pārvēršas par šādu cilindru krustošanās vietu meklēšanu.

    No kursa darba: zvaigzne, kas kustas un griežas, zīmēta telpā „plakne plus laiks”, kļūst par savītu cilindru. Sadursmju noteikšana pārvēršas par šādu cilindru krustošanās vietu meklēšanu.

  30. 2004

    C++ un OpenGL: Chess 3D 📷 2

    Pārgāju uz C++ (ar STL olimpiāžu uzdevumi kļuva krietni vieglāki) un uz pilnvērtīgu 3D. Pirmais pasūtījuma projekts: 3D šahs ar bump mapping un atstarošanas kartēm.

    C++OpenGL
  31. 1994+ BASIC, Pascal un olimpiādes
  32. 2003–2007

    Sistēmadministrators Progmeistars 📷 2

    Paralēli pasniegšanai biju skolas sistēmadministrators: uzstādīju un uzturēju tās Linux serverus uz Gentoo un rūpējos, lai skolēnu klases datori darbotos, līdz pat paša kompilētiem kodoliem.

    LinuxGentooNetworking
    Konfigurēju Linux 2.6 kodolu skolas datoram, 2005. gada oktobris.

    Konfigurēju Linux 2.6 kodolu skolas datoram, 2005. gada oktobris.

  33. 2003–2004

    Testing Suite

    Kopā ar Sergeju Kozloviču un Aleksandru Belovu, maniem ACM komandas biedriem, uzbūvējām sistēmu programmēšanas olimpiāžu rīkošanai. Sergejs uzrakstīja testēšanas kodolu: iesūtīto risinājumu rinda, dalībnieku programmas tiek palaistas ar atsevišķu lietotāju chroot vidē ar laika, atmiņas un bērnprocesu ierobežojumiem, C++ un Free Pascal kompilatori. Aleksandrs uzrakstīja pārbaudītāju spraudņus. Es izveidoju tīmekļa daļu PHP un MySQL: pieteikšanos, risinājumu iesūtīšanu, rezultātus, jautājumus žūrijai un katras olimpiādes iestatījumus, piemēram, kad dalībnieki un viesi drīkst redzēt kopvērtējumu.

    PHPMySQLC++Linux
  34. 2003

    Datorprogrammu turnīrs

    Uzvarēju 12. Datorprogrammu turnīrā Progmeistars (kā Andrey Ivanov), kur programmas spēlē spēli cita pret citu. Triks bija iepriekš aprēķināta 16 miljonu pozīciju tabula, saspiesta 2 MB.

    PascalAlgorithms
  35. 2003

    IRC baunseris

    IRCdaemon: IRC starpniekserveris un baunseris C++ valodā uz tīra WinSock, bez tīkla bibliotēkām. Savu IRC klientu pieslēdzi tam ar paroli; kad aizgāji, tas palika tavos kanālos ar prombūtnes ziņu. Vairāki lietotāji, katram savs segvārds, serveris un kanāli, administratora tiesības un atkļūdošanas režīms, kas žurnālā ierakstīja visu datplūsmu.

    C++Borland C++ BuilderWinSockIRC
  36. 2003

    Mans PHP kurss

    Uzrakstīju pats savu tīmekļa programmēšanas kursu PHP valodā skolai Progmeistars un pasniedzu to.

    PHPMySQL
  37. 2002–2011

    Pasniedzēja darbs Progmeistars

    Deviņus gadus mācīju programmēšanu skolēnu grupām lielākajā bērnu programmēšanas skolā Latvijā; izveidoju jaunu mācību programmu. Mana metode: vispirms problēma, tad rīks. Naktīs rīkoju LAN ballītes, kas pulcēja olimpiāžu bērnus, universitātes grupas, skolotājus un mūziķus.

    Progmeistars, 2006: skolēns zaudēja derības savam skolotājam un norēķinājās uz tāfeles.

    Progmeistars, 2006: skolēns zaudēja derības savam skolotājam un norēķinājās uz tāfeles.

  38. 2002

    Half-Life un Counter-Strike kartes 📷 10

    Kartes Counter-Strike spēlei, veidotas, balstoties uz gadiem ilgu spēlēšanu: mums nepatika pusminūti skriet līdz pretiniekam tikai tāpēc, lai tur nomirtu. cs_mini ir neliela karte ar daudziem ceļiem — teroristi sāk aplenktā mājā, pretteroristi var to apiet no divām pusēm, nolaisties kanalizācijā vai uzkāpt uz jumta trīs dažādos veidos. ge_roy ir vēl mazāka, 4 pret 4.

    Valve Hammer Editor
  39. 2002

    kindex.times.lv — mana pirmā vietne 📷 2

    Mana pirmā vietne bezmaksas times.lv hostingā, ar roku rakstīta HTML un JavaScript: intro, par mani, CV, mana segvārda stāsts, fotogrāfijas, mans Winamp atskaņošanas saraksts, saites un viesu grāmata. Galvenā lapa bija progs — manas programmas lejupielādei: Doom RF („ietilpst vienā disketē”), Space War 2K, F(x) un divas Counter-Strike kartes. Demo, ko rakstīju tajā gadā, savā skrejošajā tekstā aicināja uz to. No tā paša laika, Delphi vidē: Ticker, metronoms manām ģitāras nodarbībām. Ekrānuzņēmumos ir 2004. gada decembra versija.

    HTMLJavaScriptDelphi
    kindex.times.lv, 2004. gada decembra versija.

    kindex.times.lv, 2004. gada decembra versija.

  40. 2002–2006

    ACM ICPC

    Piecas ACM Starptautiskā studentu programmēšanas konkursa sezonas Latvijas Universitātes komandā. 2002. gadā, būdami pirmkursnieki, — Aleksandrs Belovs, Sergejs Kozlovičs un es, visi trīs no IOI 2002 — mēs ieņēmām 1. vietu universitātes atlasē, 6. vietu ceturtdaļfinālā Minskā, bet Ziemeļaustrumeiropas pusfinālā Sanktpēterburgā kļuvām par labāko komandu no Baltijas valstīm. Tieši pateicoties šim pirmā kursa rezultātam, universitātei atļāva sūtīt uz nākamo ceturtdaļfinālu četras komandas divu vietā. Vēlāk kā komanda BUGS-XP un pēc tam BUGS.NET mēs ieņēmām 3. vietu 2004. gada ceturtdaļfinālā Minskā un 5. vietu 2005. gadā.

    AlgorithmsC++
    Mūsu Latvijas Universitātes komanda: Aleksandrs Belovs, Sergejs Kozlovičs un es (pa labi).

    Mūsu Latvijas Universitātes komanda: Aleksandrs Belovs, Sergejs Kozlovičs un es (pa labi).

  41. 2002–2008

    Latvijas Universitāte 📷 3

    Datorzinātnes Latvijas Universitātē, bakalaura un pēc tam maģistra grāds. Bakalaura darbs „Mehāniskās kustības modelēšana datorgrafikā” par manu Steel Engine iekļuva labāko desmitniekā starp 125 darbiem konkursā e-Dimensija 2006, ko rīkoja Microsoft Latvia un Ekonomikas ministrija. Video zemāk — mūsu fakultāte, modelēta manā paša dzinējā Steel Engine, ar tekstūrām no fotogrāfijām, ko tur uzņēmu pats.

    C++Numerical methods
    Pie tāfeles: Furjē metode, Latvijas Universitāte.

    Pie tāfeles: Furjē metode, Latvijas Universitāte.

  42. 2002

    IOI zelta medaļa

    No algoritmu grāmatām un Progmeistars sponsorētās elites grupas līdz 2. vietai Latvijas olimpiādē un bronzai Baltijas olimpiādē, pēc tam zelts Starptautiskajā informātikas olimpiādē Jonginā, Korejā — 18. vieta kopvērtējumā, viena no 23 zelta medaļām (protokolā Andrejs Ivanovs, Latvija). Latvijas olimpiādē es vienīgais ieguvu 100 punktus divos uzdevumos, viens no tiem — „Operācija @”, iekavu izvietošana 250 ciparu izteiksmē ar neasociatīvu operāciju, un tas man atnesa Progmeistars speciālbalvu par risinājumu kvalitāti. Par olimpiādēm saņēmu apbalvojumus no Latvijas valdības un Rīgas domes.

    AlgorithmsPascal
    IOI zelta medaļa
  43. 2001

    Pinball: vektoru fizika 📷 2

    Gribēju trešo Space War bez tā sadursmju problēmām, tāpēc ķēros pie vektoru fizikas. Katra bumba ir rotējošs daudzstūris, sienas ir patvaļīgi nogriežņi, un solis no vecās pozīcijas uz jauno tiek krustots ar katru sienu un tuvumā esošo bumbu, tāpēc ātra bumba nevar izlidot cauri. Iespiešanās tiek izstumta pa normāli, kas svērta ar masām, atsitiens saglabā 98% ātruma un pievieno griešanos, un bumbas var pievilkt cita citu kā planētas. Free Pascal un režģis pār pasauli to paātrināja no apmēram 39 līdz vairāk nekā 200 kadriem sekundē. Šeit sākās ceļš uz manu fizikas kursa darbu, Steel Engine un maģistra darbu.

    Free PascalPhysics
    Pinball, 2001. gada septembris: bumbas krājas kaudzē, līnija katrā no tām rāda tās rotāciju.

    Pinball, 2001. gada septembris: bumbas krājas kaudzē, līnija katrā no tām rāda tās rotāciju.

  44. 2000–2003

    Lamera tests

    Humoristisks tests, kas pasaka, kas tu esi attiecībās ar datoriem: iesācējs, lamers, lietotājs, hakeris, programmētājs vai spēlētājs. Katra atbilde pieskaita punktus visiem sešiem tipiem, un uzvar tie tipi, kas ir vistuvāk labākajam rezultātam. Vispirms kā DOS programma 2000. gada decembrī, pēc tam 2003. gadā kā vietne PHP un MySQL ar reģistrāciju pēc segvārda un atbilžu statistiku.

    Turbo PascalPHPMySQL
  45. 2001

    Doom RF 📷 2

    Uztaisīju divās nedēļās kā dzimšanas dienas dāvanu klasesbiedram, pēc tam gadu slīpēju: 4 spēlētāji pie viena datora plus 8 boti, kas pārvietojas pa kontrolpunktiem, līmeņu redaktors un banku pārslēgšanas triks, lai zīmētu 640×480 ārpus 64 KB video loga. 2026. gadā pārnesu uz 64 bitiem un SDL2, pievienoju skaņu un izlaidu kā pilnvērtīgu laidienu.

    Borland PascalFree PascalSDL2
    Doom RF
  46. 2000

    Nauda un vara

    Stratēģijas spēle Heroes of Might and Magic garā, kas apvieno gājienu un reāllaika kaujas: nodokļi dod naudu, armija dod varu, burvestības dod maģiju, un dizaina dokumentā, datētā ar 2000. gada jūliju, jau bija vienību raksturlielumi, morāles formula un prasmes, piemēram, telepātija un mirušo augšāmcelšana. Komanda saucās IVAvision: kodu rakstījām mēs ar Sergeju Trasko, grafiku zīmēja mans draugs Pāvels Burakovs. Pati spēle tā arī netika pabeigta, bet tās daļas ir saglabājušās.

    Turbo PascalVGA
  47. 2000

    Krievu Pascal

    Translators, kas ļāva rakstīt Pascal krieviski, — iespēja sākt tiem, kuri nezināja angļu valodu. Atslēgvārdi nāca no rediģējamas vārdnīcas, tāpēc derētu jebkura valoda; krievu identifikatori tika automātiski transliterēti; << un >> aizstāja begin un end, un bija iekļautie makro. Tas pieslēdzās Borland Pascal IDE kā karstais taustiņš izvēlnē Tools: Shift+F9 pārtulkoja failu, nokompilēja to ar paša Borland kompilatoru un palaida. Neliela rezidenta programma izcēla krievu atslēgvārdus tieši Borland redaktorā.

    PascalBorland Pascal
  48. 2000

    Space War 2K: viens dzinējs, trīs spēles 📷 4

    Iedvesmojies no tā, kā darbojās Half-Life modi, es uzbūvēju vienu dzinēju un vienu izpildāmo failu, kas darbināja trīs dažādas spēles — kosmosa kuģu kaujas, tankus ar skatu no augšas GTA garā un Worms līdzīgu artilērijas spēli —, tikai nomainot resursu mapes un konfigurācijas noteikumus. Galvenajā izvēlnē gāja 3ds Max renderēts video, atskaņots ar manu paša delta kadru formātu un BMP ielādētāju, Pascal valodā, kurai video atbalsta nebija vispār.

    PascalEngineVideo codec
  49. 2000

    Lamer-Killer: 3D bez dzinēja

    Šāvējspēle ar skatu no augšas, ko sākām kopā ar klasesbiedru, pārvērtās par manu paša programmatisko 3D renderētāju — bez dzinēja, bez GPU, katrs pikselis aprēķināts uz CPU ar projekcijas formulu, ko izvedu pats, gadiem pirms uzzināju, kā to darīja Doom. Līmeņu redaktors glabāja karti kā izejamības režģi, un optimizētājs garās sienas apvienoja atsevišķos daudzstūros.

    PascalSoftware rendering
  50. 1998–2002

    Demoscēna

    Nelielas programmas, kas vienkārši uzzīmē kaut ko skaistu, — no punktiem uz sfēras 1998. gadā līdz uguns intro ar skrejošu tekstu 2002. gadā. Lielākā daļa ir daži desmiti rindu, kas raksta tieši video atmiņā.

    PascalFree PascalVGA
    Demoscēna
  51. 1998–2002

    DiVision projekti

    Viss, kas nebija spēles. Mūsu skolā katru ziemu notika programmēšanas konkurss, un dažus gadus tas bija mans galvenais iemesls rakstīt kodu. 1998. gada janvārī es atnesu četras programmas un saņēmu balvu par oriģinālāko; 1999. gada konkursam man bija desmit; 2001. gadā ieguvu pirmo vietu trijās kategorijās un skatītāju simpātiju balvu. Visvairāk es taisīju to, kas bija vajadzīgs man pašam: failu pārvaldnieku, čaulu, vārdu trenažieri, metronomu.

    Turbo PascalFree PascalDelphi
    DiVision projekti
  52. 1998–2001

    DiVision spēles

    Mazākās spēles, ko taisīju starp lielajām (Tank, Space War, Lamer-Killer, Doom RF), Turbo Pascal un vēlāk Free Pascal vidē. Lielākā daļa no tām rakstīta skolas programmēšanas konkursam, un visas joprojām darbojas DOSBox.

    Turbo PascalBGIText mode
    DiVision spēles
  53. 1999

    Space War

    Mana pirmā labā spēle: divu kuģu duelis, pagriešana ar sinusu un kosinusu, līdz kurai nonācu pats, kuģi, kas taranējot deformējas, vektoru kuģu redaktors, ducis ieroču, misijas un paša rakstīti BMP/WAV ielādētāji.

    PascalBGIVector graphics
  54. 1998

    Tank — mans pirmais pabeigtais produkts

    Mana pirmā lielā programma, ko es novedu no idejas līdz gatavai spēlei: tanku kauja Pascal valodā, zīmēta teksta režīmā uz 80×50 režģa, ar līmeņiem, ieročiem, izvēlni un titulekrānu. Ap tūkstoti rindu, kas no 1998. gada marta līdz maijam izauga līdz versijai 1.60; tā paša gada rudenī sekoja Tank 2 jau ar grafiku.

    Turbo PascalText mode
  55. 1997

    Super Amik 📷 9

    Izdomāju platformeri uz papīra, līmeni pa līmenim skolas burtnīcā: spēļu dizains vēl pirms tam, kad bija dators, uz kura to uzbūvēt.

    Paper
  56. 1996

    Pascal

    Pārgāju uz Pascal — visu olimpiāžu un manu pirmo īsto spēļu valodu. Nodarbībās mēs gandrīz sacentāmies, kuram uzrakstīts vairāk programmu: katram bija sava diskete, „man ir simts programmu” — „bet man simt divdesmit”. Programmas bija pavisam vienkāršas, piemēram, ievadi divus skaitļus un izvadi to summu, taču katra nodarbība kaut ko pievienoja. Pēc tam man sagribējās uztaisīt pašam savu lielu spēli, un es sāku Tank.

    Pascal
  57. 1994

    Pirmās programmas BASIC valodā

    Sāku programmēt BASIC valodā uz padomju mājas datora BK-0010, pēc tam QBasic uz PC.

    BASICBK-0010QBasic