Czy podczas tworzenia szybkich prototypów lepiej jest użyć języka, którego będziesz używać na końcu?

23

Pracuję z SFML (C ++) i Flash (AS3) i zwykle tworzę prototypy niektórych pomysłów.

Czy lepiej jest użyć języka, którego będziesz używać na końcu (zwykle C ++), czy użyć czegoś prostego i szybkiego (AS3, Python itp.), Aby go uruchomić, a następnie zacząć od zera, gdy zaczynasz od głównego produktu?

Lalafur Waage
źródło

Odpowiedzi:

31

Zależy to w dużej mierze od twoich celów.

Jeśli próbujesz udowodnić rozgrywkę, szybkość iteracji jest prawdopodobnie najważniejszym celem, dlatego powinieneś wybrać język i środowisko odpowiednie do tego.

Jeśli próbujesz udowodnić, że korzystasz z technologii (przy użyciu oprogramowania pośredniego lub w inny sposób), Twoje cele obejmowałyby również wybór używanego języka.

Tetrad
źródło
6
Jedną rzeczą do dodania jest to, że użycie języka innego niż końcowy język docelowy zapobiegnie przekształceniu prototypu w kod produkcyjny. Możesz wziąć to pod uwagę, gdy myślisz o polityce swojej firmy.
jessecurry
1
@jessecurry, uwielbiam jak powiedziałeś „pomóż zapobiegać”. Zauważyłem, że prototypowy kod Ruby zaczyna działać w ciągu kilku dni wraz z instalowaniem obsługi Ruby na serwerach hostingowych.
gradbot
O ile nie chcesz udowodnić wydajności, wybór języka nie ma również znaczenia dla udowodnienia technologii. To znaczy, aby odpowiedzieć na pytanie „Czy to w ogóle zadziałałoby”, szybki prototyp skryptu może dostarczyć wszystkich potrzebnych odpowiedzi.
Rachel Blum,
@Rachel Cóż, jasne, dlatego całe pytanie poprzedziłem słowem „to zależy”.
Tetrad
14

Ideą prototypowania jest uzyskanie szybkiej i brudnej działającej wersji swojego pomysłu, a następnie usunięcie prototypu w celu stworzenia solidnej architektury dla końcowego produktu.

Ważne jest, aby pamiętać, że Prototyp nie ma być (i nigdy nie powinien zostać przekształcony) w produkt, więc nie jest konieczne pisanie go w tym samym języku, w którym chcesz napisać końcową grę. Lepiej wybrać język programowania, który pozwala na szybki rozwój, na przykład Flash, jak wspomniałeś.

Prototypy ze swej natury nie są zaprojektowane do długotrwałego kodu. Prototypy są przeznaczone do wyrzucenia. Są jednorazowe. Nieodpowiednie jest przeprojektowywanie prototypu. Prototyp jest jak miasto w zachodnim filmie. To wszystko fasada. Nic za tym nie stoi. Nie możesz się wprowadzić i założyć rodziny w jednym z tych domów.

Jeśli chcesz zbudować coś, co możesz chcieć dalej wykorzystać, nie jest to Prototyp, ale raczej Tracer Bullet, jak to nazywają Andy Hunt i Dave Thomas w książce The Pragmatic Programmer .

Michael Klement
źródło
4

Ogólna rada dotycząca prototypów polega na użyciu czegoś, co jest całkowicie wyrzucane. Celem prototypu podczas opracowywania gier jest po prostu zapewnienie sobie radości. Czy główna mechanika gry, na której opiera się twoje oprogramowanie, sprawia, że ​​gra jest fajna? To ważne pytanie, na które chcesz jak najszybciej odpowiedzieć. Użyj wszelkich niezbędnych środków, aby uzyskać odpowiedź.

hokiecsgrad
źródło
1

Myślę, że odpowiedź tutaj zależy w pewnym stopniu od wygody w różnych językach oraz od technicznych potrzeb produktu końcowego. W dzisiejszych czasach wiele gier o małym budżecie naprawdę nie ma potrzeby kodowania w C ++ - nigdy nie będziesz potrzebować prędkości, jaką ci to zapewni.

Z mojego doświadczenia wynika, że ​​jeśli mocno zacinasz się, aby uzyskać prototyp do działania, dokonałeś różnego rodzaju kompromisów w jakości kodu, aby się tam dostać. Lubię wyrzucać te prototypy i kodować je; z lekcji, których nauczyłem się od nich, kodowanie tego, czego chcę ponownie (bez względu na język, w którym się znajduje) będzie dość szybkie i będzie miało znacznie lepszą jakość kodu.

Dowódca
źródło