2016-08-20:

Konkurs - gra w 1234 bajtach

konkurs
Przez następny tydzień będę trochę zajęty niestety, więc streamu się raczej nie uda zrobić (kolejny stream będzie więc 30 sierpnia, od 8 rano do północy, 16h - więcej szczegółów bardzo niedługo), więc, żeby zbyt nudno nie było, zróbmy sobie kolejne compo. TL;DR: tym razem tematem będzie gra w 1234 bajtach; nagroda jak ostatnio - amazon.co.uk gift card na 100 GBP. Szczegóły w treści posta.

Start: już teraz :)
Deadline: 28 sierpnia 23:59
Temat: gra w 1234 bajtach
Nagroda dla top1: gift card 100 GBP na amazon.co.uk

Detale/wymagania techniczne:
Gra może zostać napisana w prawie (czytaj dalej) dowolnej technologii i dowolnym języku programowania, ale wszelkie RPGMakery i inne game creatory odpadają.

Liczy się wielkość pliku do uruchomienia ALBO wielkość pliku źródłowego (decyduje autor).
Przykładowo, można zgłosić plik gra.py mający 1234 bajty, gra.pyc mający 1234 bajty, gra.exe mający 1234 bajty, gra.java mający 1234 bajty (nawet jeśli ten kompiluje się do .class mającego 10 MB), etc.

Zgłosić należy tylko i wyłącznie jeden plik, tj. nie może być żadnych dodatkowych nie-standardowych plików zgłoszonych razem z pracą (żadnych plików z grafikami/dźwiękami/etc).

Gra musi się uruchomić na Windowsie 10 x86-64 lub Ubuntu x86-64 na VM (będę się starał uruchomić każdą zgłoszoną pracę do skutku, ale prosiłbym nie komplikować tego za bardzo).

Można korzystać jedynie z bibliotek, które są dostępne standardowo w systemie (wyjątek: msvcr*.dll - doinstaluje wersje jaką trzeba w razie potrzeby) lub standardowo po zainstalowaniu SDK danego języka w domyślnej konfiguracji (np. po zainstalowaniu Java JDK lub Pythona 2.7).

Można wykorzystać dowolne pliki które znajdują się na dysku w domyślnej instalacji Windows 10 x86-64 lub Ubuntu x86-64. Nie będę złośliwie usuwał żadnych plików, ale również nie będę doinstalowywał nic poza to co jest w domyślnej instalacji, więc upewnijcie się, że dany plik faktycznie jest gdzie powinien być.

Razem z pracą prosiłbym o przesłanie zgody na jej publikację (tak, żeby po zakończeniu konkursu można od razu wrzucić paczkę na sieć).
Kody źródłowe / dodatkowe skrypty użyte w procesie tworzenia mile widziane :) (ale ich obecność lub brak nie jest istotna dla wyników konkursu)

Link do pracy (hostowanej gdziekolwiek indziej - gmail z którego korzystam odrzuci exeki) wraz z sumą SHA256 paczki w mejlu należy przesłać do 28 sierpnia godziny 23:59 na adres gynvael@coldwind.pl, a następnie napisać w komentarzach tutaj (albo na IRCu), że się wysłało.
Jeśli nie potwierdzę odbioru w 24h, należy mnie ścigać na FB/IRCu/tutaj w komentarzach/gdziekolwiek i spytać czy doszło (będę starał się potwierdzać od razu, ale chce uniknąć sytuacji, w której coś zaginęło).

Jeśli w konkursie weźmie udział ktoś z moich znajomych, sędzią oceniającym pracę zostanie inna osoba, nie związana z uczestnikami konkursu.

Standardowo zastrzegam sobie możliwość rozdania dodatkowych nagród wedle uznania (to mogą być zarówno stare sznurówki, jak i jakaś prenumerata czy gift card o niższej wartości; no idea). Zastrzegam sobie również możliwość nie rozdawania dodatkowych nagród :)

Wyniki postaram się ogłosić w przeciągu tygodnia lub dwóch od zakończenia podczas streamu / na blogu.

EDIT: W razie wszelkich wątpliwości co do zasad - pytajcie (gynvael@coldwind.pl albo IRC)! Lepiej zapytać, niż być zdyskwalifikowanym :)

Good luck and may the odds ever be in your favor ;)

Comments:

2016-08-20 17:21:21 = marass
{
A JavaScript?
}
2016-08-20 17:21:51 = Gynvael Coldwind
{
@marass
Dozwolony.
}
2016-08-20 17:43:56 = Luke
{
@marass @Gynvael
A jak będziesz wtedy uruchamiał tego JS, skoro może być tylko jeden plik? W przeglądarce, załączając go w tagu script w pustym HTML-u, wklejając kod w konsoli, czy jeszcze jakoś inaczej?
}
2016-08-20 17:48:18 = Luke
{
Czy wspomniany plik musi mieć 1234 bajty, czy może mieć mniej?
}
2016-08-20 18:08:45 = Gynvael Coldwind
{
@Luke
Detale techniczne pozostawiam uczestnikom :)

Plik może mieć mniej niż 1234 bajty.
}
2016-08-20 18:12:36 = Timus
{
Według wymagań praca nie może zostać zgłoszona z dodatkowymi plikami, ale nic nie mówi o pobieraniu tych assetów ze zdalnego serwera. Zakładam, że to też jest zabronione, ale jednak warto zapytać czy taka praktyka jest dozwolona?
}
2016-08-20 18:14:55 = Hello
{
Pomysl liczbe. Rzuc kostka. Jak sie zgadza to wygrales.

Jakieś 56 bajtów:) A tak na serio: super konkurs, ciekaw jestem co też zobaczymy:)
}
2016-08-20 18:35:02 = Gynvael Coldwind
{
@Timus
Załóż, że komputer będzie pozbawiony dostępu do Internetu :)

@Hello
Yup :)
}
2016-08-20 23:26:53 = MetRiko
{
Czy można użyć biblioteki <windows.h>?
Jak by nie patrzeć "bez dostępu do internetu" też zadziała, a przydała by się jakaś wygodna obsługa wejścia.
}
2016-08-21 00:22:42 = Gynvael Coldwind
{
Tak, windows.h to WinAPI, a WinAPI jest OK wedle zasady: "[m]ożna korzystać [...] z bibliotek, które są dostępne standardowo w systemie".
}
2016-08-21 05:58:18 = SS
{
Można używać Crinklera jako zamiast linkera Microsoftowego?
}
2016-08-21 06:20:17 = Gynvael Coldwind
{
@SS
Technika stworzenia .exe jest nieistotna ;)
}
2016-08-21 13:04:35 = HawkDeath
{
Można zgłosić tylko plik *.cpp/*.c ?
}
2016-08-21 16:42:44 = Timus
{
Czy stworzenie sobie języka programowania i runtime do niego oraz napisanie w tym języku gry jest dozwolone?
}
2016-08-21 17:04:58 = obl
{
A czy można przesłać plik źródłowy c lub cpp bo przerobiłem mój stary projekt gry konsolowej napisanej w c++ ale program *.exe jest duży (około 9,5 kb), natomiast cpp spełnia wymagania znaczy się jest mniejszy niż 1234 bajtów.
}
2016-08-21 17:11:24 = Gynvael Coldwind
{
@HawkDeath
Tak.

@Timus
Nah, tylko prawdziwe języki się bawią jeśli chodzi o źródła ;) (trudno jest argumentować, że taki runtime byłby "standardowy")
Wyjątek: jeśli zgłasza się plik .exe, to on może być stworzony jakkolwiek (przy czym w tym wypadku tylko standardowe biblioteki obecne w systemie można używać ofc).

@obl
Tak.
}
2016-08-21 21:38:58 = stryku
{
Zakładam, że obok pliku z kodem źródłowym, można przesłać też instrukcję jak grać, żeby nie tracić miejsca na helpa w kodzie?
}
2016-08-21 22:11:24 = duq
{
@stryku

Domyślam się, że w treści maila takie rzeczy warto wrzucić. Ale można zaczekać na oficjalne info.
}
2016-08-22 03:38:38 = Xion
{
Mógłbyś podać linki do dokładnych ISO które będziesz używał do testowania? Czy to za duża podpowiedź by była? ;-)

Also, czy zamiast wysyłania maila można po prostu linknąć publiczne repo, do konkretnego commita&pliku? O tyle to wygodne że cała reszta repo będzie od razu zawierała poboczne rzeczy jak instrukcja czy skrypty.
}
2016-08-22 06:35:13 = Gynvael Coldwind
{
@stryku
Tak.
Najlepiej jakiś readme.txt w paczce z grą.

@Xion
http://releases.ubuntu.com/16.04.1/ubuntu-16.04.1-desktop-amd64.iso
Przy czym jeśli ktoś użyje jakieś w miarę nowej innej wersji, to też postaram się ją zainstalować (z domyślnymi ustawieniami) i na tym przetestować.

Może być publiczne repo :)
}
2016-08-22 08:03:15 = Raydley
{
Czy można zgłosić kilka prac?
}
2016-08-22 08:05:40 = Gynvael Coldwind
{
@Raydley
Tak, przy czym w rozsądnej ilości (2-3, raczej nie więcej).
}
2016-08-22 09:47:29 = Marcin648
{
Parę pytań ;)
Czy kompresory kodu typu minify są dozwolone?
'Środowisko' LÖVE to raczej już przesada, prawda? (Uruchamia się love.exe mojagra.lua)

Co będzie oceniane? Gameplay, efekt graficzny?
Jaki wpływ będzie miała wybrana technologia? (W js łatwiej zrobić efekty niż np w C)
}
2016-08-22 15:07:56 = Gynvael Coldwind
{
@Marcin648
minify (jeśli masz namyśli minimalizacje wielkości js/css) - tak.
LOVE - game engine do Lua, więc traktuje to jako niestandardową bibliotekę, więc nie.

Co do oceny, to liczy się całokształt efektu końcowego, że tak enigmatycznie powiem.
Technologia będzie miała niewielki wpływ - liczy się efekt, a nie to ile ktoś musiał czasu poświęcić. Każda technologia ma swoje wady i zalety.
}
2016-08-22 17:39:22 = ak
{
A biblioteka X11? Dość standardowa na Linuksach, ale headerów jednak nie ma w domyślnej instalacji, więc nie można skompilować bez dociągnięcia tychże. Ewentualnie można kompilować na innym komputerze, sama binarka, o ile wiem, powinna chodzić gładko.
}
2016-08-22 17:55:50 = Gynvael Coldwind
{
@ak
Jest jak piszesz - nagłówków/biblioteki .a do kompilacji nie ma w standardzie, ale DSO - libX11.so.6 & co.) już są.
}
2016-08-22 18:02:35 = ak
{
Czyli nie wiem czy zrozumiałem - czy plik includujący np. X11/Xlib.h się kwalifikuje czy nie?
}
2016-08-22 18:09:21 = Gynvael Coldwind
{
@ak
Nie, nie kwalifikuje się - nie ma go w domyślnej instalacji Ubuntu (nawet po zainstalowaniu gcc/g++).
}
2016-08-22 20:32:48 = stryku
{
Czy można dodać skrypt do uruchomienia, lub komendę, którą uruchomisz program?
}
2016-08-22 20:35:08 = Gynvael Coldwind
{
@stryku
Nie, zgłoszony może zostać jedynie jeden plik, który uruchomię.
Mogę uruchomić komendą, byle była prosta (np. python asdf.py) lub skompilować w odpowiedni sposób (np. gcc asdf.c c:\windows\syswow64\kernel32.dll). Odpadają natomiast komendy typu: program "a tutaj kod bajtowy w base64 ktory bedzie wykonany" ;)
}
2016-08-22 21:10:24 = Xion
{
Zawsze mozna jeszcze nazwac plik odpowiednio i czytac argv[0] ;)
}
2016-08-22 21:13:48 = Gynvael Coldwind
{
@Xion:
https://i.kinja-img.com/gawker-media/image/upload/s--obRhx6jf--/x4alpjavc0y5nl5yvter.jpg
}
2016-08-22 21:35:24 = stryku
{
@Gynvael Coldwind
ok, dzięki (:
}
2016-08-22 22:26:23 = Argeento
{
Poszło : ) JS
}
2016-08-23 00:23:10 = akrasuski1
{
Wrzucone
}
2016-08-23 08:04:19 = Luke
{
@Gynvael
> Nie, zgłoszony może zostać jedynie jeden plik, który uruchomię.

To jak z tym uruchamianiem JS - pusta struktura HTML z załączonym skryptem będzie ok i sam skrypt będzie się liczył do rozmiaru?
}
2016-08-23 08:18:16 = Gynvael Coldwind
{
@ Argeento & akrasuski1
Wysłałem Wam potwierdzenia na mejla.

@Luke
Tak jak jest napisane - można zgłosić tylko jeden plik. Nie za bardzo rozumiem czemu chcesz rozdzielać plik HTML od skryptu JS.
}
2016-08-23 09:31:52 = Kos
{
Czyli jeśli JS to musi działać na przeglądarce domyślnie zainstalowanej, czyli Edge lub Firefox?
}
2016-08-23 09:33:37 = Gynvael Coldwind
{
@Kos
Może być Edge, IE, Opera, Firefox lub Chrome jak dla mnie :)
}
2016-08-23 16:37:55 = devdri
{
Zostało 10 bajtów zapasu :) to zmieści się jeszcze jakiś jeden ficzer! Będzie wybuchowo w JS ES6
}
2016-08-23 16:43:52 = PLX
{
Czy wybrana technologia bedzie miala znaczenie?
Jak by nie patrzec api JS daje duzo wiecej niz czyste inne jezyki.
Chciał bym sprobowac w pythonie 3.5 :)
}
2016-08-24 11:39:44 = j0700
{
Widze ze marne szanse na wygrana, skoro Xion startuje (a przynajmniej wydaje sie to prawdopodobne po jego zainteresowaniu) :< Ale spróbuje anyway. Bedziesz przeglądał te gry na streamie Gyn? (jak z grami na dyskietkach)
}
2016-08-24 11:46:27 = Gynvael Coldwind
{
@devdri
Wysyłałeś mi już pracę btw? Pytam na wszelki wypadek - czasu jeszcze jest sporo :)

@PLX
Nie, liczy się całokształt - technologia jest dowolna, więc każdy może wybrać najlepszą wedle własnego uznania :)

@j0700
(Xion, ludzi mi straszysz ;D)
Tak, będę przeglądał gry na streamie :)
}
2016-08-24 12:40:25 = PLX
{
@Gynvael
Poszło
}
2016-08-24 20:19:35 = RobertOlechowski
{
Mail wysłany. Fajny konkurs.
}
2016-08-24 20:27:06 = Rashmistrz
{
Dlaczego nie system 32 bitowy? D:
Może ja bym chciał podesłać
DOSowy plik wykonywalny?

He he heh...
}
2016-08-24 23:53:59 = Gynvael Coldwind
{
@PLX, @RobertOlechowski
Potwierdzam odbiór. Zresztą, macie potwierdzenia na mejlu :)

@Rashmistrz
Może byś i chciał, ale to nie ten konkurs :)
Może następnym razem będzie DOS, kto wie ;)
}
2016-08-25 17:20:34 = Xonix43
{
Poszło :)
}
2016-08-25 19:19:06 = Rashmistrz
{
@Gyn
Nie wiem czy dobrze kombinuję,
ale miałem taki pomysł by zaoszczędzić bajty na formacie
i później przemianować zadanie V86 na zwykły 32 bitowy proces.

I have no idea what I am doing... :D
_____________________________________________________

Niestety nie mam wystarczająco zasobów
by przystąpić do konkursu.

Następnym razem przy podobnym konkursie
polecam by maksymalnym rozmiarem było
1337 bajtów albo 4096 jak przy Java4K jest.
Co prawda to wciąż mało, ale więcej. ;)
}
2016-08-25 19:44:02 = Tinekk
{
@Gyn
Hej, czy kompilator Microsoftu, a konkretniej
cl main.cpp "user32.lib" "Gdi32.lib"
wchodzi w grę?

Nie wiem czy muszę pobrać inny żeby potestować ;)
}
2016-08-25 20:51:51 = Szymon Jankowski
{
Również poszło ;)
}
2016-08-26 07:12:44 = Piotr Cywoniuk
{
Praca wysłana.
}
2016-08-26 11:36:48 = Timus
{
Poszło!
}
2016-08-27 17:39:40 = Piotr Cywoniuk
{
@Gynvael Coldwind
Jak tam, moja praca doszła? Nie dostałem jeszcze potwierdzenia na mejlu.
}
2016-08-27 18:37:44 = PLX
{
Poszła kolejna
}
2016-08-27 19:40:46 = Paweł Iwaszkiewicz
{
Poszła!
}
2016-08-27 23:03:10 = Gynvael Coldwind
{
@Xonix43, PLX, Paweł, Piotr, Timus, Szymon
Potwierdziłem Wam odbiór mejlowo przed chwilą :)

@Tinekk
Tak, to jest OK (póki to są standardowe systemowe liby).

@Rashmistrz
Będą jeszcze inne konkursy z innymi rozmiarami :) Czasem będzie mniej bajtów, a czasem więcej ;)
}
2016-08-27 23:07:46 = BPS
{
Paczka wysłana.
}
2016-08-27 23:19:35 = Gynvael Coldwind
{
@BPS
Również potwierdziłem Ci odbiór :)
}
2016-08-28 00:54:50 = Tinekk
{
Poszło
}
2016-08-28 06:46:27 = Szymon Stefański
{
Podesłałem link na maila :)
}
2016-08-28 07:40:27 = duq
{
Wysłane, ptd email :D
}
2016-08-28 12:49:59 = Łukasz Basiński
{
Wysłane na maila :)
}
2016-08-28 13:05:18 = Gynvael Coldwind
{
@Tinnek, Szymon, Łukasz, duq
Potwierdzone ;)
}
2016-08-28 13:16:29 = Marcin G.
{
Wysłane :)
}
2016-08-28 14:55:59 = Komeniusz
{
Plik wysłany
}
2016-08-28 19:02:43 = BioBroni
{
Wysłałem
}
2016-08-28 19:26:56 = Marcin648
{
Praca wysłana. :)
}
2016-08-28 20:32:37 = norcuron
{
Wysłane na maila.
}
2016-08-28 21:59:50 = Dab
{
Poszło! :)
}
2016-09-01 22:40:38 = Rashmistrz
{
@Dab
Spóźniłeś się! Wysłałeś po 23:59 ;-;

@Gynvael Coldwind
"Gra może zostać napisana w prawie
dowolnym języku programowania"

Co jeśli ktoś stworzy własny dziwny
język programowania do tego celu?
( Przykładwo takowy podobny do HQ9+ )

Taka osoba nie mogła by być zdyskwalifikowana,
bo nie złamałaby zasad tego konkursu...
}
2016-09-01 22:44:12 = Gynvael Coldwind
{
@Rashmistrz
Konkretniej, Dab wysłał *komentarz* o 23:59:50 ;)

Ad język - już na to odpowiadałem w komentarzach - bawiły się jedynie standardowe języki, z oczywistych powodów.
}
2016-09-09 09:16:52 = a niech to, przegapiłem konkurs
{
No dobran Gynvael, ale na którym IRCu Ty siedzisz?
}
2016-09-10 10:22:22 = Gynvael Coldwind
{
Np. na #gynvaelstream na freenode ;)
}

Add a comment:

Nick:
URL (optional):
Math captcha: 3 ∗ 5 + 3 =