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.
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]
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
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 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.
Chrise beim erklären
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
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...
- Zuletzt aktualisiert am 2.11.2010 von Thunder.