Autor Thema: Kleines Projekt zum Theme Spieleprogrammierung  (Gelesen 38828 mal)

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« am: 09. June 2005, 20:20 »
Alloa.

Da ich gerade an einem kleinen Spiel arbeite, hatte ich mich entschlossen eine umfangreiche Dokumentation dazu zu schreiben.

Wer interesse hat kann sich das ja mal auf www.jay-code.de unter Projekte -> Bomberman anschauen.

Kritik ist ausdrücklich erwünscht :)

mfg
TJ

PS: Nicht das ich die Leute zur Spieleprogrammierung bekehren möchte, aber kann ja sein das der ein oder andere ohnehin interesse daran hat.
----------------------
Redakteur bei LowLevel

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #1 am: 09. June 2005, 21:26 »
Kleine Kritik: C ist für Spiele dieser Art totaler Misst und Schrott, nimm lieber BlitzBasic. ;) (Okay, C is meiner Meinung nach immer Schrott, aber wir wollen ja keine Flames :P)
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #2 am: 09. June 2005, 21:39 »
Bei allem Respekt, aber das ist Käse. Zum einen ist C die gebräuchslichste Sprache generell, zum zweiten mag ich Basis dialekte nichm und zum dritten glaubst du wohl kaum das ich jetzt nochmal von vorne Anfangen nur weil ein Herr meint das C dafür nit geeignit sei *G*

Sry, aber das war ein Punkt von Kritik der in gewisser Hinsicht sinnlos war :)
----------------------
Redakteur bei LowLevel

matthieuriolo

  • Beiträge: 226
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 09. June 2005, 21:57 »
BlitzBasic is ehrlich ne mist sache ^^ sorry ich kenns, wenn basic dann RealBasic :P

stultus

  • Beiträge: 486
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 09. June 2005, 22:02 »
Quatsch ^^ Purebasic rulez :D
aber back2topic:
interessantere idee, ich werds mir morgen mal genauer ansehn, jetz keine zeit mehr :)
MSN: planetconquestdm@hotmail.de
ICQ: 190-084-185

... Wayne?

SSJ7Gohan

  • Beiträge: 398
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 09. June 2005, 22:48 »
Ich würde es besser finden, keine Winapi zu benutzen, sondern stattdessen irgenteine Lib (SDL usw.) zu benutzen, aber das ist Geschmackssache und du wirst es warscheinlich nicht mehr ändern wollen.

Der Aufbau sieht schonmal gut aus, ich habe jedoch 3 Kritikpunkte:
1. ProcessFrame() sollte nur aufgerufen werden, wenn keine Nachrichten mehr verarbeitet werden müssen.
2. Die Limitierung auf 30 Frames ist nicht sehr schön meiner Meinug nach, ich würde lieber die Geschwindigkeit des Spiels nicht auf Frames, sondern auf der vergangenen Zeit basieren lassen.
3. timeGetTime() oder queryPerformanceTimer() verwenden, getTickCount hat nur eine Auflösung von etwa 10ms.

Legend

  • Beiträge: 635
    • Profil anzeigen
    • http://os.joachimnock.de
Gespeichert
« Antwort #6 am: 09. June 2005, 22:58 »
Zitat von: joachim_neu
Kleine Kritik: C ist für Spiele dieser Art totaler Misst und Schrott, nimm lieber BlitzBasic. ;) (Okay, C is meiner Meinung nach immer Schrott, aber wir wollen ja keine Flames :P)


Ausser man hat vor was richtig gutes zu machen! Dann brauch man auch ne ordentliche Engine. Und sollte man meiner Meinung nach z.B. in C++ oder ähnlichem machen! ;)
*post*

The-Programmerfish

  • Beiträge: 434
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 09. June 2005, 22:59 »
Zitat von: N00B
Quatsch ^^ Purebasic rulez :D

Ah, jemand mit Geschmack ^^

Zitat von: SSJ7Gohan
Ich würde es besser finden, keine Winapi zu benutzen, sondern stattdessen irgenteine Lib (SDL usw.) zu benutzen, aber das ist Geschmackssache und du wirst es warscheinlich nicht mehr ändern wollen.

Find ich auch aber war ja eh klar dass ich als (größtenteils) penetranter Linux User mich darüber beschwer ^^

Anonsten find ichs lustig auch wenn ichs mir noch nicht so genau angeschaut hab ^^
<- Verhasst, Verdammt, Vergöttert

GhostCoder

  • Beiträge: 187
    • Profil anzeigen
Gespeichert
« Antwort #8 am: 10. June 2005, 13:21 »
Hi,

hab's auch noch nicht gelesen, würde aber C++ mit GL/glut oder SDL empfehlen, ist viel einfacher finde ich. Und unter Linux/MacOS läuft es auch...

Gruß GhostCoder
A man, a legend!

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #9 am: 10. June 2005, 14:07 »
Auf seiner Homepage steht, dass TJ damit die WINDOWS-Programmierung lernen will. Also wäre es dem Ziel ziemlich abträglich, wenn er auf Linux achten würde.
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #10 am: 10. June 2005, 14:51 »
Ist ein reines WinAPI-Interface nicht schneller, als wenn man alles noch zusätzlich ueber eine Lib laufen lassen muesste?
Stelle ich mir mal als Performance-Steigerung vor, wenn direkt die WinAPI angesteuert wird.

Im Kapitel "Was ist Bomberman" fehlen die Screenshots :)
Kapitel I, Seite 5, Absatz 3: "hIcomSm ist ein Handel ähnlich..." Du meintest sicher Handle :-)
Absatz 7: Du wiederholst den Teilsatz "Dies erreichen wir durch den Wert"
Auf Seite 8, Absatz 2 hast du einen Tippfehler mit "Maximieren".

Den Rest lese ich später :) Hoffe, es stört nicht, wenn ich sowas sage.

Svenska

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #11 am: 10. June 2005, 17:37 »
@Roshl&Legend: Es geht um einen Bomberman-Clone, nicht um ein 3D-Online-Taktic-Shooter, wie SplinterCell. Und für solche kleinen Spiele eine extra Engine zu bauen und möglichst noch zu abstrahieren oder sonstwas ist total übertrieben! Da sollte man was einfaches wie Basic lohnen, der Mehraufwand lohnt sich erst bei großen Projekten, wo dann auch der Lohn (der erst bei wachsender komplexität auftritt/wächst) merklich ist. In dem Fall hat C KEINEN Vorteil, sondern NUR nachteile.
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

Another Stupid Coder

  • Beiträge: 749
    • Profil anzeigen
Gespeichert
« Antwort #12 am: 10. June 2005, 18:00 »
Das ist deine Ansicht, joachim_neu.
Ich zum Beispiel sehe in C eine deutlich strukturierte Sprache als BASIC, bei der ich auch noch Monate lang spaeter was mit dem Code anfangen kann, vorallem kann man mit C irgendwie "modularer" programmieren und daher ist der code besser wartbar und erweiterbar

@TJ Nettes Projekt, gefaellt mir sehr :)[/quote]

The-Programmerfish

  • Beiträge: 434
    • Profil anzeigen
Gespeichert
« Antwort #13 am: 10. June 2005, 18:57 »
Das ist nicht nur seine Ansicht ich würde für solche Sachen auch nen Basic Compiler (Purebasic!) Nehmen aber ich bin ja auch ein n00b....

Sind wir nicht alle n00bs? (Bei N00B isses ja eh klar ^^)
<- Verhasst, Verdammt, Vergöttert

Homix

  • Beiträge: 138
    • Profil anzeigen
Gespeichert
« Antwort #14 am: 10. June 2005, 19:03 »
hi,
also ich glaube, dass solche kleinen Projekte eher zum Lernen dienen, damit man dann auch irgendwann mal ein größeres Projekt starten kann.
Meiner Meinung bringt es dann nichts, wenn man das "Lernprojekt" mit (in diesem Fall) Blitzbasic programmiert, da man Blitzbasic in größere Projekten eh nicht hernimmt und der Lerneffekt dann gleich null ist (biss auf spezielle Techniken, die unabhängig von der Programmiersprache sind).

cu,
stefan2005

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #15 am: 10. June 2005, 21:10 »
@stefan2005: stimmt
@asc: eben, weil man nach monaten den code nichtmehr lesen muss und modulare programmierung da nicht notwendig ist. da macht man sich nur nen aufwand für die "lesbarkeit und wartbarkeit", den man aber nicht brauchen wird. bomberman proggste an einem tag in BB...
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #16 am: 11. June 2005, 09:47 »
@JN Du hast nicht kapiert warum TJ das proggt:P
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #17 am: 11. June 2005, 10:25 »
Hm... Mag sein ;) Ich habs verallgemeinert. :)
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

TeeJay

  • Beiträge: 630
    • Profil anzeigen
    • http://www.jay-code.de
Gespeichert
« Antwort #18 am: 11. June 2005, 15:12 »
Also:
- TIppfehler etc schaue ich mir gerade selbst noch an. Hab erstmal die erste Fassung online. Hab mir die Kapitel ausgedruckt und lese nochmal. Evtl ändere ich noch Satzbau und auf jeden Fall Schreibfehler.

- EIne Extra Engine ist für ein so simples 2D spiel überzogen. Mir geht es auch viel mehr darauf einzugehen wie der generelle Ablauf eines Spiels ist. So das man einen EInstieg hat. Wenn das Ding erstmal steht werd ich anstatt der GDI vielleicht auch die Grafikausgabe durch DirectX ersetzen. Ist ja für reines 2D ohne große Effekte auch nicht so das Problem.

- Im Grunde ist der meiste code auch für Linux portierbar. Aufrufe zum erstellen von Fenstern etc. müssen natürlich ausgetauscht werden. Der meiste Code (der zumindest noch folgt) hat relativ wenige API Aufrufe.

- Das ProcessFrame() kann ruhig permanent aufgerufen werden. Die einzigen Messages die verarbeitet werden sollen, sind die WM_CLOSE und später dann noch jene für das inaktiv setzen des Programms. Da muss ich nicht erst alle Messis abarbeiten.

- An der Sprache C wird nix geändert. C ist meiner Meinung nach die am weitest verbreitete (inklusive C++). Und es soll ja auch ein bissl Know-How rüberkommen. Basic-Dialekte gehen meist nicht so ins Detail, weshalb ich den Lerneffekt dort nicht für sonderlich doll erachte. Zum anderen soll das Projekt ja auch nur einen Einstieg/Anregung sein um evtl später ein eigenes, durchaus größeres Projekt zu machen.

- DIe Limitierung auf 30 Frames ist bei dem Spiel eher unrelevant. Es wird auch sicher auf älterer Hardware schnell genug laufen und wie auch im Tut beschrieben ist die Umsetzung einfacher wenn man sich an eine feste Anzahl Frames orientieren kann. Immerhin habe ich die andere Möglichkeit ja erwähnt und beschrieben.

- Die Funktionen timeGetTime() und queryPerformanceCounter() werde ich mir mal anschauen und diese ggf. einsetzen.

@Joachim_Neu
Es geht mir nit darum zu zeigen wie man möglichst "an einem Tag" Bomberman programmiert. Sondern generell ein paar Techniken zum Theme Spieleprogrammierung zu zeigen. Und von Basicdialekten bin ich schon eine ganze Weile geheilt ^^
----------------------
Redakteur bei LowLevel

Coffee

  • Beiträge: 470
    • Profil anzeigen
Gespeichert
« Antwort #19 am: 24. February 2006, 21:12 »
also ich finds ehrlich ganz witzig

@die_basic_progger:  jede der sprachen die ihr nanntet hat bestimmte vorteile, die die andern net so ham:

pure basic: einfache zugriife auf WIN-Funktionen
                 einfache 3d-programmierung
blitzbasic: mein favorit, einfach klasse, leider ohne guten support...
darkbasic: die sprache für 3d-games
realbasic: kennichnich
glbasic: neu und ganz ok
........

 

Einloggen