Wien-Treff III

Szene Stammtische

Hallo Blitzer,

schon vor einigen Tagen haben wir Wiener gemeint, es wäre Mal wieder Zeit für ein Treffen in Wien. Dazu haben sich einmal Eingeproggt, Chrise, coolo und ich (Thunder) abgesprochen wie, was, wo und wann passieren sollte. Wir waren alle froh, als auch Chrise endgültig zugesagt hat.

Also haben wir uns gestern, zu Allerheiligen, ohne zeitliche oder örtliche Probleme um 15:00 im Metalab getroffen und es uns dort gemütlich gemacht. Was aufgrund der "Infrastruktur" für uns PC-Freunde ja kein Problem war: drei offene WLAN-Netze und 10fach-Stromverteiler sind ausreichend selbst für größere Treffen.

user posted imageuser posted image
Unser Platz

Mit den obligatorischen Projektvorstellungen hat Thunder begonnen, da komischerweise niemand anderer dazu bereit war. Schon bald hat sich ein Phänomen gezeigt: Jeder hatte schon mindestens eine Planetensimulation programmiert oder gar ein Spiel welches auf Gravitation basiert. Es wurde kurzerhand von Chrise "so nebenbei" ein Klon erstellt mit dessen Verfeinerung wir uns gemeinsam ein wenig beschäftigten.
Das Besprochene ging weiters von Codes für BCCs über Compiler und Interpreter bis hin zu Animations- oder Musikanalyseprogrammen.

Chrises Programm:
Code: [AUSKLAPPEN]

SeedRnd MilliSecs()
Graphics3D 800,600,0,2
SetBuffer BackBuffer()
Global PLAYER_X#,PLAYER_XS#=Rnd(-5,+5)
Global PLAYER_Y#,PLAYER_YS#=Rnd(-5,+5)
Global PLAYER_RAD#=5

Global HIT.PLANET

Local CAM_POSX#
Local CAM_POSY#

Global GW2=GraphicsWidth()/2
Global GH2=GraphicsHeight()/2

CreateWorld()

Local Timer=CreateTimer(60)
While Not KeyHit(1)
   Cls
   
   Updateplayer()
   ControlPlayer()
   DrawPlayer()
   DrawWorld()
   
   Text 50,50,PLAYER_XS
   Text 50,65,PLAYER_YS
   
   WaitTimer Timer
   Flip 0
   
Wend
End

Type PLANET
   Field X#,Y#,RAD#
End Type

Function ControlPlayer()
   
   Local W#,D#
   If KeyDown(203) Then
      If HIT<>Null Then
         W=ATan2(HIT\Y-PLAYER_Y,HIT\X-PLAYER_X)-90
         PLAYER_XS=PLAYER_XS-Cos(W)*2
         PLAYER_YS=PLAYER_YS-Sin(W)*2
      EndIf
   EndIf
   If KeyDown(205) Then
      If HIT<>Null Then
         W=ATan2(HIT\Y-PLAYER_Y,HIT\X-PLAYER_X)+90
         PLAYER_XS=PLAYER_XS-Cos(W)*2
         PLAYER_YS=PLAYER_YS-Sin(W)*2
      EndIf
   EndIf
   If KeyHit(57) Then
      If HIT<>Null Then
         D=Distance2D(HIT\X,HIT\Y,PLAYER_X,PLAYER_Y)
         W=ATan2(HIT\Y-PLAYER_Y,HIT\X-PLAYER_X)
         PLAYER_XS=PLAYER_XS-Cos(W)*((4.0/3.0*Pi*HIT\RAD*HIT\RAD*HIT\RAD)/(D*D))*0.02
         PLAYER_YS=PLAYER_YS-Sin(W)*((4.0/3.0*Pi*HIT\RAD*HIT\RAD*HIT\RAD)/(D*D))*0.02
      EndIf
   EndIf
   
End Function
Function DrawPlayer()
   
   Color 255,0,0
   Oval GW2+PLAYER_X-PLAYER_RAD,GH2+PLAYER_Y-PLAYER_RAD,2*PLAYER_RAD,2*PLAYER_RAD,1
   Color 255,255,255
   
End Function
Function Updateplayer()
   
   Local P.PLANET,W#,D#,DD#,DX#,DY#,G#
   For P=Each PLANET
      D=Distance2D(P\X,P\Y,PLAYER_X,PLAYER_Y)
      W=ATan2(P\Y-PLAYER_Y,P\X-PLAYER_X)
      G=0.001*((4.0/3.0*Pi*P\RAD*P\RAD*P\RAD)/(D*D))
      PLAYER_XS=PLAYER_XS+Cos(W)*G
      PLAYER_YS=PLAYER_YS+Sin(W)*G
   Next
   PLAYER_X=PLAYER_X+PLAYER_XS
   PLAYER_Y=PLAYER_Y+PLAYER_YS
   HIT=Null
   For P=Each PLANET
      D=Distance2D(P\X,P\Y,PLAYER_X,PLAYER_Y)
      If D<PLAYER_RAD+P\RAD Then
         W=ATan2(P\Y-PLAYER_Y,P\X-PLAYER_X)
         PLAYER_X=P\X-Cos(W)*(PLAYER_RAD+P\RAD)
         PLAYER_Y=P\Y-Sin(W)*(PLAYER_RAD+P\RAD)
         PLAYER_XS=0
         PLAYER_YS=0
         HIT=P
      EndIf
   Next
   
   
End Function
Function CreateWorld()
   
   Local P.PLANET,i
   For i=1 To 15
      P=New PLANET
      P\X=Rnd(-500,+500)
      P\Y=Rnd(-500,+500)
      P\RAD=Rnd(20,100)
   Next
   
End Function
Function DrawWorld()
   
   
   Local P.PLANET
   For P=Each PLANET
      Oval GW2+P\X-P\RAD,GH2+P\Y-P\RAD,P\RAD*2,P\RAD*2,1
   Next
   
End Function

Function Distance2D#(x#,y#,x2#,y2#)
   Return Sqr((x#-x2#)*(x#-x2#)+(y#-y2#)*(y#-y2#))
End Function


Ungefähr zu dieser Zeit explodierte ein im Metalab stehendes Dixi-Klo! - zugegeben eine Explosion war das nicht, es hat denen nur Spass gemacht, mit der Nebelmaschine so lange reinzublasen bis es oben wieder rausrauchte. War recht unterhaltsam Very Happy
user posted image

Während wir Infos über Projekte austauschten bzw. am Programmieren waren, wurden wir auch ein-, zweimal von Metalab-Besuchern auf unsere Arbeiten angesprochen. Zuletzt wurde uns auch noch angeboten, am "Super Gamedev Weekend" als Team teilzunehmen. Auf jeden Fall ist es eine Überlegung wert.

Wie auch immer, haben sich die 2 vertiefenden Themen "Bilderkennung" und "Chatbots" heraus kristallisiert an denen sich 2 Teams zu je 2 Leuten drangemacht haben (Chatbots: coolo und Thunder | Bilderkennung: Eingeproggt und Chrise) - um dem Treffen auch ein semi-professionelles Auftreten zu verpassen Wink Was sich dann letztendlich so dargestellt hat, dass Coolo und Thunder Selbstgespräche mit ihren Bots geführt haben, während Chrise und Eingeproggt planlos vor sich hin tippten und in 3 Stunden nicht mehr als eine Kantenfindung umgesetzt haben.

user posted image
Chrise beim erklären

user posted image
Coolo und Thunder beim Chatbot schreiben

Die Chatbots sollten möglichst korrekt auf Eingaben des Benutzers antworten; was mit EBNF zur Beschreibung der Syntax der Deutschen Sprache begann und mit der Implementierung hätte fortgesetzt werden sollen, endete mit einer simplen Vergleichsfunktion mit Hashes - die ich im Nachhinein als Blödsinn ansehe.
Dabei waren die Ergebnisse von Eingeproggt und Chrise schon etwas mehr Wert.

Letztendlich - es war nun schon 21:00 - wurden beide Arbeitsgruppen aufgrund des mangelnden Erfolgs zu Recht ins Lächerliche gezogen Very Happy
So gegen 22:00 unternahmen wir noch einen kleinen Spaziergang am Wiener Ring - wobei Eingeproggt feststellen konnte wie wenig er aus der Schule über Geschichte und Kultur weiß...

Und da wir unfähig waren, ein Bild zu machen, auf dem wir alle vier drauf sind, ohne dass Köpfe fehlen...
user posted imageuser posted image

  • Zuletzt aktualisiert am 2.11.2010 von Thunder.