Introduktion - Om mig - Projekt - Curriculum vitae - Arbetsbetyg - Kontakt
Här kan du hitta en del av det som jag har programmerat genom åren, grupperat efter några olika perioder i mitt liv, i omvänd kronologisk ordning. Självklart så är senare perioder mer representativa för vad jag kan nu.
![]() |
RemarBoy Implementerat 2016-2017, kod på github RemarBoy startade som en enkel disassembler till GameBoy, men har sedan växt i ambition. Tanken är att det ska bli en komplett miljö för att plocka isär ett GameBoy-spel i dess beståndsdelar (kod, grafik, ljud) för att sedan kunna modifiera dessa och sätta ihop delarna. Började först koda i Python, för att sedan gå över till Java, för att till sist gå över till C++ på grund av prestanda. Mycket av C++-koden för processorn genereras av ett Python-program. |
![]() |
Randomhack Implementerat 2013-2016, Google Play-sida Randomhack är ett enkelt rougelike (datorrollspel) för Android, och finns tillgängligt på Google Play. Det är implementerat i Java och använder sig av libgdx för abstraktion av grafik, ljud och touchinput. Det här är mitt första och enda kommersiellt utgivna spel. :-) |
![]() |
Castle of Elite DS Implementerat 2010-2011, kod på github Implementation av Castle of Elite till Nintendo DS. Implementerat i C++ och använder sig av Rage (se nedan). |
![]() |
Remar's Abstract Graphics Engine for Nintendo DS Implementerat 2010, projektsida Grafikabstraktion till Nintendo DS, med ett C++-interface, som gör det enklare att göra spel. Relativt simpel, tanken var att den stegvis skulle byggas på med bättre funktionalitet. Det här är ett av mina mer seriösa projekt som jag jobbat med på fritiden, Rage är väldokumenterat och har en ordentlig tutorial (genomgång av funktionaliteten). |
![]() |
Retrobattle Implementerat 2007-2010, projektsida NES-liknande retrospel implementerat i C++ till GNU/Linux. Använder sig av remar2d nedan för att hantera grafiken. Se projektsidan för mer information. |
![]() |
remar2d Implementerat 2007-2010, hämta på github Mycket simpel sprite-motor med tile-baserad bakgrund. Använder sig av TinyXML för att läsa in definitioner av sprites och bakgrunder som är kodade i XML. Implementerad i C++ i GNU/Linux och använder sig såklart av SDL. |
![]() |
LightsOut Implementerat 2007, hämta här Mitt första lilla projekt till Nintendo DS. Jag skaffade en DS-eXtreme 4 Gbit, och var självklart tvungen att prova att skriva program till DS:en. Det första resultatet blev denna mycket enkla version av Lights Out som bara går på ca 250 rader C-kod. Om du inte råkar ha en Nintendo DS med tillhörande flashbar kassett så finns det ett antal någorlunda fungerande emulatorer, jag rekommenderar NO$GBA. |
Den här perioden är det tydligt att jag programmerar i skolan eftersom många av projekten som listas här är olika skolprojekt. Som man kan se på projekten så är det mycket som implementerats i Java, så jag har mycket erfarenhet av just Java.
![]() |
No Friction Implementerat 2005-2006, releasesida No Friction är ett simpelt pusselspel implementerat i C++ till GNU/Linux. Det använder sig av SDL för att hantera grafiken och för att läsa av tangentbordet. No Friction implementerades först av Daniel Remar i Game Maker till Windows. Till skillnad från de andra projekten i den här sektionen så gjordes det här helt på fritiden. |
![]() |
MDT - Modelica Development Tooling Implementerat 2005-2006, projektsida Modelica Development Tooling är mitt och Elmir Jagudins exjobb (D-nivå, 20 poäng, ca 800 timmar). MDT är en samling Eclipse Plug-Ins, implementerade i Java, som integrerar OpenModelica-kompilatorn med Eclipse. MDT tillsammans med OpenModelica-kompilatorn tillhandahåller en utvecklingsmiljö för att jobba med Modelica-projekt. När vi var färdiga med exjobbet så tog Adrian Pop, doktorand på IDA/PELAB vid LiU, över utvecklingen av MDT, och än idag används MDT på PELAB för utveckling av OpenModelica-kompilatorn. Exjobbsrapporten kan hämtas här. |
![]() |
reMind Vidareimplementerat 2003, projektsida I kursen "Programutvecklingsprojekt i ett helhetsperspektiv, PUM projekt" så var jag med och vidareutvecklade ett verktyg för industriell optimering som utvecklats på Linköpings Universitet. I PUM-gruppen så var jag implementationsansvarig, och jag gjorde en stor del av implementationen. Jag hjälpte även arkitekturansvarig att ta fram en arkitektur för programmet, som till stor del fanns sen tidigare, men som mådde bra av att göras om till viss del. |
![]() |
Yukiawa Implementerat 2003-2004, projektsida Yukiawa är en klon av pusselspelet Puzzle Bobble. Det är implementerat i Java och gjordes som ett projekt i kursen "Programmeringsprojekt för Internet/WWW". Det här var nog en av de roligare kurserna på universitetet, eftersom det till skillnad från de flesta andra programmeringskurserna inte delades ut "skelett" som skulle fyllas i med kod. Istället så fick vi sitta och skriva en kort kravspec och sedan implementera ett nätverksspel från scratch. Det här projektet gjorde jag tillsammans med Elmir Jagudin. Kursen var på 3.5 poäng (ca 140 timmar) men jag tror vi lade åtminstone det dubbla. Så fick vi ju en femma också. |
![]() |
L33t T3tri5 Implementerat sommaren 2001, hämtas här Köpte den utmärkta boken (tyckte jag då) Tricks of the Windows
Game Programming Gurus av André Lamothe, och funderade på vad jag
skulle koda för spel. Funderade ett tag och hittade sen en sida
på GameDev.net med en lista på
olika spel man skulle implementera för att lära sig programmera spel,
och överst på listan var ju självklart Tetris! Implementerade själva
spellogiken på en dag, resten av funktionaliteten och finputsandet tog
sisådär två månader. Då började jag förstå vad spelprogrammering gick
ut på... |
På gymnasiet så får jag äntligen gå kurser i programmering, x86 assembler och C++. Jag hade fortfarande svårt att motivera mig själv till att lära mig dessa språk på egen hand, så det var bra att dessa kurser fanns. Jag har inget sparat av x86-programmeringen, men det känns inte så viktigt, det viktiga med assemblerprogrammering nu för tiden är att förstå på en lägre nivå hur en dator programmeras. Det mesta jag programmerar under den här tiden är C-program.
![]() |
Combat Life Implementerat 2000, hämtas här Alla programmerare stöter nån gång på Conway's Game of Life, och fascineras såklart av dess eleganta enkelhet. Det här är en implementation som jag egentligen tänkte göra till nån sorts multiplayer-Life där olika stammar av Life-celler slogs mot varandra, men riktigt så långt kom jag aldrig. Men det är en solid implementation med editor för att kunna testa olika Life-mönster. Implementerat i C till MS-DOS. |
![]() |
Vertex Killer Implementerat 2000, hämtas här Inspirerad av Star Fox till SNES så försökte jag implementera min egen rymdskjutare i 3D. Men jag hade väldigt dålig koll på hur 3D fungerade, så det här är ett ganska lamt försök, men ändå lite kul att se. Även detta implementerat i C till MS-DOS. |
![]() |
Remfract Implementerat 1999, hämtas här På gymnasiet så var man ju tvungen att göra ett specialarbete, så jag såg till att mitt specialarbete skulle låta mig sitta och programmera. Jag skrev om fraktaler och implementerade en fraktalzoomare som kan zooma både Mandelbrot och Julia. Implementerat i C till MS-DOS. |
![]() |
Slide Implementerat kring 1998, hämtas här Enkel implementation av ett 15-pussel, mest för att jag ville använda ritprogrammet nedan för att göra några bitmaps. Implementerat i C till MS-DOS. |
![]() |
RawEdit Implementerat kring 1998, hämtas här Ett simpelt ritprogram för att pixla bitmaps som sen sparas i ett eget format. Kan flippa bilder både vertikalt och horisontellt! I princip alla bilder som finns i de andra projekten som implementeras kring den här tiden använder sig av RawEdit till grafiken. Implementerat i C till MS-DOS. |
Jag började programmera nån gång i mellanstadiet, och då var det såklart olika former av BASIC som gällde. Jag tror att jag började med GW-BASIC på en 286:a, men ganska snart började jag med det betydligt trevligare QBasic på pappas 386:a.
På den här tiden så fanns det programmeringsböcker för barn! Jag lånade en bok om BASIC på skolans bibliotek. Den hade massor med färgglada bilder och kodlistningar, vilken dröm! Jag har ingen aning om hur mycket jag lärde mig från den boken, och hur mycket jag lärde mig av att kolla runt i QBasics interaktiva hjälp-funktion, men jag lärde mig tillräckligt för att börja programmera väldigt enkla spel.
Det finns tyvärr inget sparat från den här tiden, det hade varit kul att titta på, mest för nostalgins skull i så fall. Det mest avancerade jag gjorde var en 3D-dungeon med vektorgrafik, men tyvärr får du aldrig se den. :-)