[Abstimmung]Programmierwettbewerb Nr 4

Wessen Code hat Dir am besten gefallen


  • Umfrageteilnehmer
    13
  • Umfrage geschlossen .

KaPiTN

Boomer ♪♪♫♪♫♫♪
Registriert
14 Juli 2013
Beiträge
22.329
Nach hartnäckigem Wunsch aus der Programmieraufgabe auch einen Wettbewerb mit Abstimmung zu machen, gibt es jetzt hier die Möglichkeit über die eingereichten Quellcodes abzustimmen.
Dazu sind diese alle verlinkt, so daß man sich durch alle durchwühlen kann. Der Code von MingsPing ist nicht lieferbar, daher fällt er aus der Wertung.
Jetzt ist es nicht leicht, sofern man nicht alle verwendeten Sprachen beherrscht, alles zu verstehen und der zeitliche Aufwand ist sicher auch höher, als wenn man die Wahl zwischen ein paar Bildern hat. Dennoch der Hinweis, daß es um den Code geht, nicht um eine Abstimmung, wer die coolste Engine verwenden konnte.

Danke an theSplit, der die ganzen Links aus dem Thread extrahiert und zusammengestellt hat.

Natürlich sollen alle mit wenig bis gar keinen Programmierkenntnissen hier nicht direkt wegklicken. Es sind alle herzlich eingeladen die Spiele anzutesten.
Sollte es Schwierigkeiten geben, die Programme zum Laufen zu bekommen, so stehen die Entwickler natürlich gerne mit Tat und Rat zur Seite (24/7 Besonders gerne in der Nacht ;) )




Abgaben Programmierwettbewerb 4

Rakorium-M

Sprache👎: Kotlin
Abgabepost: https://ngb.to/threads/40532-Aufgabenstellung-Programmierwettbewerb-Nr-4?p=935513#post935513

Download EXE:
Download SRC: https://ngb.to/attachment.php?attachmentid=53932&d=1556630920

Screenshot/Video:
viewer.php



exomo

Sprache👎: C++
Abgabepost: https://ngb.to/threads/40532-Aufgabenstellung-Programmierwettbewerb-Nr-4?p=935442#post935442

Screenshot:
viewer.php

Download EXE:
Download SRC:




KaPiTN

Sprache👎: C#
Abgabepost: https://ngb.to/threads/40532-Aufgabenstellung-Programmierwettbewerb-Nr-4?p=952659#post952659

Screenshot/Video:

[video=picflash;Form104IVJHW5.08IVJHW5.201918_06_38_38IVJHW5.webm]https://www.picflash.org/picture.php?key=IVJHW5&action=show[/video]

[video=picflash;Form104GZ7SBR.08GZ7SBR.201918_08_00_00GZ7SBR.webm]https://www.picflash.org/picture.php?key=GZ7SBR&action=show[/video]
[video=picflash;Form1049PJ3U5.089PJ3U5.201918_08_41_419PJ3U5.webm]https://www.picflash.org/picture.php?key=9PJ3U5&action=show[/video]

Download EXE: 2 Parts, bei zweitem Link einmal ".zip" entfernen
https://ngb.to/attachment.php?attachmentid=54800&d=1564938622 und https://ngb.to/attachment.php?attachmentid=54801&d=1564938643
Donwload SRC: https://ngb.to/attachment.php?attachmentid=55179&d=1568824029




Roin

Sprache👎: Javascript/HTML/CSS
Abgabepost: https://ngb.to/threads/40532-Aufgabenstellung-Programmierwettbewerb-Nr-4?p=935674#post935674

Screenshot/Video: ---

Download EXE/SRC: https://ngb.to/attachment.php?attachmentid=53943&d=1556705395



theSplit

Sprache👎: Javascript/HTML/CSS
Abgabepost: https://ngb.to/threads/40532-Aufgabenstellung-Programmierwettbewerb-Nr-4?p=932418#post932418

Screenshot/Video:
viewer.php

Download EXE/SRC:



MingsPing

Sprache👎: ?
Abgabepost: nicht vollständig eingereicht ( https://ngb.to/threads/40532-Aufgabenstellung-Programmierwettbewerb-Nr-4?p=928877#post928877 )

Screenshot/Video

Download EXE/SRC: ---
 
Zuletzt bearbeitet:
Ay, dass hier ist fein, endlich die Abstimmung hier zu haben. Ich bin wirklich gespannt und hoffe auf rege Beteiligung von Spielern wie auch Codern gleichermaßen :T
 
Der Source von @exomo ist derzeit leider nicht mehr verfügbar.
Ansonsten sehr schön, dass hier ein paar Lösungen in verschiedenen Stadien abgegeben wurden.

ich habe die verfügbaren Lösungen (abgesehen von meiner) kurz überflogen.
Zu allen:
  • Die Methodennamen und Funktionen sind alle sinnvoll benannt.
  • Wie man durch die Videos bereits während der Entwicklung gesehen hat, ist der Code bei allen lauffähig.
  • Abgesehen von Rakorium-M wurden in allen Abgaben kaum Kommentare untergebracht, die einzelne Code-Blöcke etwas besser beschreiben. Gerade bei sehr großen Funktionen ist eine Unterteilung in sinnhafte Abschnitte mit einem kurzen Kommentar ganz hilfreich.
Viel mehr kann ich bei dem kurzen Überfliegen kaum bewerten. Meine Stimme geht dennoch an theSplit, da seine Lösung meinem Vorgehen am ähnlichsten war.
 
Super cool! Da ich die Schönheit der Programmierung nicht in vollem Umfang würdigen kann, gebe ich hier mal meine Designerische Meinung zu den Einreichungen in Stichpunkten:


Rakorium-M
+
Schöne Grafik, horizontales scrolling ist ein cooler touch, super Fluggefühl, schöne Details wie die animierten Flugdüsen, sowie ein gutes, nachvollziehbares GUI
-
Keine Explosion bei Aufprall, Keine Optionen.

Exomo
Leider nicht herunterladbar, Screenshot sieht aber cool aus. :)

KaPiTN
+
Sehr schöne Grafik, Bockschwer
-
Stürzt leider ab wenn man den Bildschirm verlässt, GUI/Bedienung nicht so klar, darum Neustart nach Fluggerät-crash nicht möglich. Sehr starke Gravitation, dadurch nicht so gutes Fluggefühl

Roin
+
Viele Optionen, sauber aufgebautes GUI
-
sehr nüchterne Grafik, unlösbar -> crash selbst bei minimalster Geschwindigkeit. Am Anfang ein random Drift würde das Spiel erst zum spiel machen, derzeit kommt das Schiff einfach straight runter und ich als Spieler muss nur den main-thruster bedienen.

theSplit
+
Vom Gesamteindruck her am "Komplettesten", gutes Fluggefühl, viele Funktionen, verständliches GUI, coole Details wie der Partikeleffekt für die Düsen und der explosion
-
etwas simple Grafik, "Weltraum"-Feeling kommt nicht so recht auf. Sehr lila :p

MingsPing
Leider nix zum anschauen, das Video im Originalpost siehr aber cool aus. Evtl noch einen Link dahin in den screenshot spoiler?


Letztendlich habe ich mich für Rakorium_M's Beitrag entschieden. Auch wenn ihm die Optionen fehlen, hat mir die Lunar-Lander Umsetzung einfach am meisten Spaß gemacht. :)
 
  • Thread Starter Thread Starter
  • #5


Ich hatte nicht kalkuliert, daß das jemand testen würde, da habe ich mir eigene Tests erspart. :o
Absturz darf natürlich nichts ein. Das muß ich mir noch einmal anschauen.
Einstellunge, wo man dann die Gravitation auch hätte anpassen können, ist auch hinten runter gefallen.

Beim Neustart war ich dann auch faul. Der müßte nach eine Weile automatisch geschehen. Ich starte einen neuen Prozeß und beende den alten. Das kann schon einmal dauern. :D

Du hast zwar keinen Code bewertet (völlig ok), aber Du hast Dich eindeutig mit den Ergebnisse auseinander gesetzt. Dafür ein fettes Danke!
 
Also, ich hab mir mal die Quellen jetzt etwas genauer angeschaut.

Raktorium-M hat eine recht komplexe MVC Struktur - muß nicht zwingend verkehrt sein, wäre mir aber zu viel Boilerplate um mit dem Projekt richtig warm zu werden. Der Code ist, größtenteils, kommentiert, was ich sehr gut finde, ich hab selbst nichts kommentiert. Finde dies aber hilfreich. Zum Java bzw. Kotlin Code kann ich nicht viel sagen, aber scheinbar wird für das Rendering eine OpenGL Biblitohek verwendet, ziemlich cool wenn die Moonlander Variante eine Hardwarebeschleunigung nutzt. Interessant auch der Ansatz hierbei mit Rigid Bodies zu arbeiten, was ermöglicht das der Lander schaden nehmen kann wenn ein Teil des Körpers des Landers zu stark belastet wird, also auch Hitpoints (HP) am Werk sind.

Bei KaPiTN finde ich die Unterteilung des Codes im Vergleich angenehmer, die Klassen sind in einzelnen Files angelegt - Arten aber nicht an Komplexität aus und es bleibt überschaubar was wo steht und gemacht wird. Was ich etwas schade finde, man sieht anhand der auskommentierten Codezeilen, da wollte jemand noch viel mehr programmieren. Das ist etwas schade, da scheinen noch nette Features geplant gewesen zu sein. Ansonsten finde ich den Code aber sehr übersichtlich und könnte mich, auch ohne viel Erfahrung von C# bzw. C Sharp damit befassen.

Roin's Version setzt ebenfalls wie ich auf den Browser als Engine und Javascript. Gut finde ich hierbei das diese Version viele Optionen anbietet welche das Spielgeschehen beeinflussen können. Und der Code ist größtenteils dokumentiert. Was ich am Code bemängeln würde, Javascript Standard Style wäre eine kleine Bereicherung, da dieser auch von (aktuellen) Browsern ohne zicken und murren unterstützt wird - das würde ich persönlich anregen. Ist einfach noch ne Ecke hübscher. Ansonsten aber alles sehr klar benannt und der Code ist Objektorientiert, auch schön zu sehen. In wie weit die genutzte Library "P5.js" dabei werkelt entzieht sich aber meiner Kenntnis da ich diese vorher noch nicht gesehen bzw. nicht in Nutzung hatte.

Es ist wirklich schwer sich einen Favoriten rauszusuchen. Technisch wäre ich für Raktorium-M's Version, allerdings ist das MVC wirklich eine Hürde wenn man nicht vorher mit so etwas gearbeitet hat und es ist sehr viel drumherum. Die Version von KaPiTN besticht (mich) durch eine klare Struktur die nicht so viel "overhead" hat. Und Roin's Version wiederum, hat eine Menge Optionen, die das Spiel auch für Wiederholungen interessant machen können.

In allen Versionen, auch meiner Version, fehlt leider aber eine Art von Score um sich zu wirklich zu duellieren - sei es durch das Verändern von EckVariablen wie: Windstärke, Gravitation und geringer Spritverbrauch, "sanfte Landung" oder ähnlichem. Auch vermisse ich bei allen Abgaben dass man nicht eine "Random Seed" selbstständig setzen kann, um Beispielsweise ein Terrain zu reproduzieren.

Ich stimme, auch wenn es mir wirklich schwer fällt für den KaPiTN.
 
Zuletzt bearbeitet:
Entschuldigt meine kaputten links, ul.to löscht die files nach einer bestimmten Zeit (ka ob die über Premium noch verfügbar wären). Ich kümmere mich demnächst darum.

EDIT:

Hier sind neue Links:
Binaries (Windows): alternativ:
Source Code (C++): alternativ:
(Leider stimmt irgendwas nicht mit dem Hintergrundbild des Startbildschirms, aber ich habe aktuell keine Zeit mir das genauer anzuschauen, deshalb jetzt erstmal so)

Ich schaue mir die anderen Codes auch mal an sobald ich dazu komme :D

EDIT2: Oben noch alternative Links auf tinyupload hinzugefügt, die haben angeblich unbegrenzte Speicherdauer.
 
Zuletzt bearbeitet:
So, jetzt muß ich mal was zu exomos Code loswerden! :)

Erster Eindruck, der Code besitzt eine klare Aufteilung in Ressourcen, Source und Header Files und für das Buildsystem, hier CMake. Der Code ist an vielen Stellen kommentiert was positiv auffällt.

Die Funktionen sind klar benannt und Error Handling ist ebenfalls enthalten. Was etwas markant ins Auge sticht, die hohen Werte für die X und Y Position des Landers/des unterliegenden Koordinatensystems und ein fixer Faktor ( * 5000 ) für die Kollision, der etwas magisch wirkt.

Warum posX, zum Beispiel, mit -500000 initialisiert wird, ist mir etwas schleierhaft, ich würde aber vermuten, dass ein Zoom geplant gewesen ist und deshalb die Werte so hoch gesetzt sind - worauf vielleicht auch das "setScale" im Code hinweist.

Und zu guter letzt, ich finde die Idee mit dem Sound super und sehr passend. Auch der Trick die Flamme zufällig skalieren zu lassen um so einen Brenneffekt zu erzeugen find ich gut, weil es Variation einbringt.
 
Zurück
Oben