Blitzbasic-Hobby-Progger will umschulen

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
diceman
Beiträge: 347
Registriert: 06.07.2017 12:24
Kontaktdaten:

Blitzbasic-Hobby-Progger will umschulen

Beitrag von diceman »

Hallo liebe Leute,
Ich habe mich hier im Forum angemeldet, da ich auf der Suche nach einer neuen Plattform für mein Hobby (Programmieren, duh :wink: ) bin. War bislang in Blitz3D unterwegs, welches mittlerweile Open Source ist, und keinerlei Unterstützung durch Entwickler mehr erfährt. Dementsprechend gibt es natürlich erste Probleme mit Windows 10, und ich möchte nicht an einer toten Sprache festhalten, welche eventuell irgendwann gar nicht mehr funktioniert. Ein bißchen weh tut mir der Abschied natürlich, aber so ein Neubeginn kann natürlich auch Chancen in sich bergen.
Ich habe hier und da bereits etwas über PureBasic gelesen, in diversen Foren gestöbert und spiele gerade mit der Demo-Version herum, und bin momentan ganz guter Dinge, daß PB diese Lücke füllen könnte. Die IDE ist schonmal 100% komfortabler aufgebaut. Interessiert bin ich primär an (einfacher) 2D-Spiele-Programmierung (Tile-based/Kartenspiele/Roguelikes/Pacman, sowas halt).
Vielleicht könnt ihr mir auch meine letzten Bedenken nehmen?

Dinge, die ich an Blitzbasic geschätzt habe:
- Natürlich die einfache, intuitive Einbindung von Grafik-Befehlen
- Das Doppel-Buffer System: in den Hintergrundbuffer wird gezeichnet und dann mit "Flip" nach vorne geholt
- Sehr schnelle Manipulation von Grafiken in verschiedenen ImageBuffern, zwischen denen man hin und herwechseln kann
- Types (so wie ich das verstehe, übernehmen in PureBasic "Structs" diese Funktionalität)

Vielen Dank!
Zuletzt geändert von diceman am 04.02.2018 12:27, insgesamt 1-mal geändert.
Now these points of data make a beautiful line,
And we're out of Beta, we're releasing on time.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Blitzbasic-Hobby-Progger will umschulen

Beitrag von RSBasic »

diceman hat geschrieben:Ich habe mich hier im Forum angemeldet
Herzlich Willkommen im Forum.
diceman hat geschrieben:Ein bißchen weh tut mir der Abschied natürlich
Das kann ich gut verstehen.
diceman hat geschrieben:Interessiert bin ich primär an (einfacher) 2D-Spiele-Programmierung (Tile-based/Kartenspiele/Roguelikes/Pacman, sowas halt).
Wenn es um 2D geht, dann wirst du mit PB überhaupt keine Probleme haben, genauso lassen sich mit PB gute Anwendungen schreiben.
Aber bei 3D muss man erst schauen, ob die eingebaute Funktionalität von der 3D-Engine "Orgre" ausreicht.
diceman hat geschrieben:- Natürlich die einfache, intuitive Einbindung von Grafik-Befehlen
Meiner Meinung nach in PB kein Problem.
diceman hat geschrieben:- Das Doppel-Buffer System: in den Hintergrundbuffer wird gezeichnet und dann mit Flip nachvorne geholt
Das unterstützt PB auch. Die Funktion nennt sich FlipBuffers().
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Blitzbasic-Hobby-Progger will umschulen

Beitrag von ccode_new »

Herzlich Willkommen "diceman",

du kommst doch aus der Blitz-Ecke ?
Hast du dir schon mal Monkey 2 oder Cerberus X angeschaut?

Diese Programmiersprachen sind Weiterentwicklungen von BlitzBasic.

Ich sage es auch mal frei Schnauze: "PureBasic ist sehr gut für die Spieleentwicklung geeignet wenn man über die (teils fehlerhaften) Standard-Funktionen hinaus schaut und die Macht der jeweiligen Betriebssystem-API, oder eingebundener externer "Game-Libs" nutzt.
Ansonsten sind die erstgenannten Basic-Programmiersprachen optimierter/besser für die Spieleprogrammierung."

Aber ich finde: "Die Syntax und die systemweiten Möglichkeiten von PureBasic sind besser."

Bei keiner fertigen Gameengine wie: z.Bsp. Godot/GameMaker/...
musst du eben viel mehr selber basteln.

Du bist aber auch flexibler!!!

Dann benötigst du natürlich auch viel mehr externe Lösungen für z.Bsp. : externes Tilemap-Programm, externe Physik-Lib, etc.

Naja...

Viel Spaß mit PureBasic !!!
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
diceman
Beiträge: 347
Registriert: 06.07.2017 12:24
Kontaktdaten:

Re: Blitzbasic-Hobby-Progger will umschulen

Beitrag von diceman »

Hallo,
Vielen Dank schonmal für die Antworten. :-)
Bei MONKEY2 dachte ich immer, das wäre ausschließlich für Smartphone-App-Programmierung geeignet. /:-> Scheint, als sollte ich mir das doch mal angucken. Von Cerberus X habe ich auch noch nie etwas gehört. Danke für den Tip!
Trotzdem tobe ich mich jetzt noch ein bißchen mit der PureBasic-Demo aus, ein bißchen Flexibilität kann schließlich nichts schaden; wenn man Jahrelang immer nur mit derselben Sprache programmiert hat, bekommt man schnell einen Tunnelblick.

Externe Engines und Libraries habe ich für meine Zwecke nie gebraucht (Ausnahme war eine mersenneTwister.dll). So Sachen wie Bresenham-Algorithmus, A-Star-Suche und Tilemaps habe ich auch in Blitz immer selbst programmiert und mir so Schritt für Schritt quasi meine eigene Library angelegt. Sowas macht mir Spaß, und man lernt nebenbei viel, vor allem möglichst abstrakt zu programmieren, so daß man verschiedene Funktionen leicht in anderen Programmen wiederverwenden kann.
Programmieren ist Hobby und Selbstzweck für mich. ;-)
Now these points of data make a beautiful line,
And we're out of Beta, we're releasing on time.
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Re: Blitzbasic-Hobby-Progger will umschulen

Beitrag von DrShrek »

Do solltest Dir mal die Godot Engine ansehen...das ist deutlich besser!
https://godotengine.org/
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Benutzeravatar
diceman
Beiträge: 347
Registriert: 06.07.2017 12:24
Kontaktdaten:

Re: Blitzbasic-Hobby-Progger will umschulen

Beitrag von diceman »

Hmm, also mit 'ner Engine zu arbeiten ist nicht so meins.
Hört sich jetzt vielleicht doof an, aber ich bin tatsächlich nicht an schnellen Ergebnissen interessiert; ich bin kein Entwickler, sondern ein kleiner Hobby-Programmierer, für den Code-Schreiben Selbstzweck ist. Ein deutlicher Vorteil von PB gegenüber Monkey2 und Cerberus X ist natürlich die etablierte, aktivere Community, umfassendere Dokumentation der Werkzeuge; auf den ersten Blick sind mir jene Sprachen auch etwas arg auf OO fokussiert, zumindest was Code-Beispiele angeht - und mich damit auseinanderzusetzen, dafür bin ich schlicht zu alt - ich habe Zeitlebens mit BASIC-Dialekten gearbeitet; da fühle ich mich zuhause, und möchte daran eigentlich auch nichts ändern. Außerdem, was Nachhaltigkeit und langfristigen Support der Sprache angeht, da macht PB momentan einfach den seriöseren Eindruck auf mich. :)
Korrigiert mich. :wink:
Now these points of data make a beautiful line,
And we're out of Beta, we're releasing on time.
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Blitzbasic-Hobby-Progger will umschulen

Beitrag von mk-soft »

Ich glaube du bist hier schon richtig mit Purebasic abgebogen :)

Spiele habe ich noch nicht programmiert, aber mit der 2D-Library ab und zu mal was gemacht.

Wer früher mit 'Basic' angefangen hat und auf Frameworks und auf OOP keine lust hat dieses sich anzutun,
ist mit Purebasic auf der richtigen Seite.
Die Syntax von PB ist auch leicht zu erlernen und die Hilfe (F1) ist schon sehr gut von André schrieben worden.

Ausserdem kannst du Deine 2D-Games auch gleicht für Linux und Mac Schreiben. Für Linux reicht eine VM (VirtuelBox)
Für Mac allerdings einen Mac.

Es gibt schon einige Spiele die mit Purebasic geschrieben worden. Siehe: http://www.purebasic.com/screenshots.php

Ah ja,
Willkommen im Forum
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
diceman
Beiträge: 347
Registriert: 06.07.2017 12:24
Kontaktdaten:

Re: Blitzbasic-Hobby-Progger will umschulen

Beitrag von diceman »

Ich schreibe gerade ein paar kleine Testprogramme (Demo-Version), um herauszufinden, ob sich PureBasic für meine Zwecke überhaupt lohnt ... die zugegebenermaßen hervorragende Hilfedatei leistet dabei gute Dienste.
Folgendes Programm funktioniert zunächst, stürzt dann aber leider nach ein paar Sekunden immer ab, mit der Fehlermeldung "The debugged executable quit unexpectedly". :|

Was das Programm leisten soll:
Ein "*" an der aktuellen Mausposition anzeigen, und immer wenn linke Maustaste gedrückt, die aktuellen Mausposition auf dem Bildschirm ausgeben.
Drücken der rechten Maustaste beendet das Programm.

Code: Alles auswählen

InitSprite()

OpenWindow(1,10,10,800,600,"hello.exe")
OpenWindowedScreen(WindowID(1),0,0,800,600)

InitMouse()
Repeat
  ClearScreen(00000)
  
  StartDrawing(ScreenOutput())
  ExamineMouse()
  DrawText(MouseX(),MouseY(),"*")
  If MouseButton(#PB_MouseButton_Left)
    DrawText(MouseX(),MouseY(),Str(MouseX())+","+Str(MouseY()))
  EndIf
  StopDrawing()
  
  FlipBuffers()
Until MouseButton(#PB_MouseButton_Right)
End
Now these points of data make a beautiful line,
And we're out of Beta, we're releasing on time.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Blitzbasic-Hobby-Progger will umschulen

Beitrag von NicTheQuick »

Ich sehe hier kein einziges If, das irgendwelche Rückgabewerte überprüft.
Folgende Funktionen haben Rückgabewerte: InitSprite(), OpenWindow(), OpenWindowedScreen(), InitMouse(), StartDrawing()
Am besten baust du erst mal da Überprüfungen ein. Wenn das Problem dann immer noch besteht, können wir genauer schauen.
Bild
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Re: Blitzbasic-Hobby-Progger will umschulen

Beitrag von GPI »

WindowEvent() fehlt. Die Windows-Meldungen laufen auf und werden nie abgearbeitet - bis zum absturz.

so z.b.

Code: Alles auswählen

If Not InitSprite()
  End
EndIf

If Not (OpenWindow(1,10,10,800,600,"hello.exe") And OpenWindowedScreen(WindowID(1),0,0,800,600))
  End
EndIf


InitMouse()
Define mx,my,mleft
Repeat
  ClearScreen(00000)
  
  If ExamineMouse()
    mx=MouseX():my=MouseY()
    mleft=MouseButton(#PB_MouseButton_Left)
    If MouseButton(#PB_MouseButton_Right)
      Break
    EndIf
  Else
    mleft=#False
  EndIf
  
  If StartDrawing(ScreenOutput())
    DrawText(Mx,My,"*")
    If mleft
      DrawText(MX,MY,Str(mx)+","+Str(my))
    EndIf
    StopDrawing()
  EndIf

  FlipBuffers()
  
  event=WindowEvent()
  
Until event=#PB_Event_CloseWindow
End
kanns leider nicht weiter hier auf meinen Laptop testen, weil leider hier eine Skalierung eingestellt ist und da die Mouse-Befehle nicht mehr ordnungsgemäß funktionieren.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Antworten