Download:
vm_beta2_1b.zip (537kb, źródła załączone) - The Virtual Machine
helloname2_adam_i.zip (627kb, źródła załączone) - praca adam_i
catos_2008-08-29.zip (74kb, sźródła załączone) - praca kotek951 (wersja post compo)

Jakiś czas temu miałem ochotę zrobić jakieś na prawdę hardcore'owe compo. Po zastanowieniu się chwilę nad tym, wpadł mi do głowy pomysł żeby zrobić bardzo prostą maszynkę wirtualną. Taka prosta, acz funkcjonalna, maszynka miała by własny bytecode, możliwość wyświetlania grafiki (ale bez trybu tekstowego), możliwość odczytu stanu klawiatury i myszy, coś w rodzaju HDD, no i... brakowało by jej najczęściej używanych instrukcji, takich jak odejmowanie, mnożenie czy dzielenie ;>
Stworzenie takiego VM okazało się bardzo proste (większość kodu napisałem siedząc w pociągu z mojej rodzinnej miejscowości do miasta w którym obecnie mieszkam). Może i VM nie był specjalnie szybki (wstępnie 300k instrukcji na sekundę, później do około 800k udało się dojść), ale działał ;>

Po skończeniu prac nad VM, zasady compo zostały ujawnione: należy stworzyć cokolwiek i ma się na to półtora miesiąca. Nie można używać kompilatora (tylko nasm z instrukcją db, ale ta zasada nie przetrwała do końca konkursu ;p), można pisać samemu lub w drużynie, można dzielić się kodem, i należy się dobrze bawić! I się dobrze bawiliśmy, mimo że większość z nas (w tym ja ;p) nie skończyła pracy na czas.

Następujące osoby nadesłały swoje rozwiązania:
fr3 - który stworzył grywalnego ponga z fajnym tłem na dwie osoby (screenshot do góry po lewej)
kotek951 - który stworzył CatOS, zawierający konsolkę, zegar, kalkulator, i oczywiście prosty tryb tekstowy (screenshot do góry po prawej, oraz na dolę na środku - z wersji post-compo)
adam_i - który stworzył prosty tekstowy system okienek, i prosty system plików (screenshot w środkowej linii po lewej)

Dodatkowo jimix przesłał swoje rozwiązanie, niestety odrobinę po terminie, jednak na prawdo warto o nim wspomnieć - stworzył on grę logiczną dla jednego gracza, w której trzeba dostać się do kolejnych kufli piwa (co nie jest takie proste jak się wydaje, bo gracz może zacząć się poruszać, ale zatrzyma się dopiero na najbliższej ścianie). Screenshot w środkowej linii po prawej.

Update: kotek951 i adam_i zgodzili się abym zamieścił ich pracę tutaj, dodatkowo kotek951 przesłał mi wersję post-compo z grywalnym Snakiem

Już dawno temu miałem zebrać komisję która sprawdzi kody źródłowe prac i wyłoni technicznego zwycięzce - oczywiście jeszcze tego nie zrobiłem, ale skoro już mam tego bloga którego mogę zalewać swoimi tekstami ile mi się podoba, to pewnie zrobię to bardzo niedługo ;>

Dodatkowo jak tylko będę miał chwilę, to powrzucam techniczny opis VM, oraz rozwiązania pewnych problemów które to (rozwiązania) zostały użyte przeze mnie i przez innych uczestników compo - moim zdaniem jest to przynajmniej interesujący temat.

Add a comment:

Nick:
URL (optional):
Math captcha: 8 ∗ 10 + 1 =