Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

71

12.07.2014, 10:33

Hab' mir mal deinen Code auf Github angesehen. Gefällt mir, aber kommt mir teilweise bekannt vor. :) Diente mein Repo als Inspiration?
Mich würde mal interessieren, seit wann du eig. eine eigene Sprache haben wolltest, was war der Auslöser? Uni Vorlesung?
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

72

12.07.2014, 11:39

Dein Repo kenne ich ja auch, aber ich glaube ich hab eher angefangen :P
Das sich vieles ähnlich sieht liegt wahrscheinlich daran, dass wir beide ja auch nicht das Rad neu erfinden. Du hast dich sicherlich ja auch vorher informiert.

Also eine eigene Scriptsprache brauche ich natürlich nicht unbedingt. Aber es reizt mich ein bisschen dann damit evt. mal ein Storylastiges Spiel zu schreiben, also mit gescripteten Scenen (kann ja auch 2D sein). Und ich hatte dann richtig Lust als ich das hier gelesen hatte.
Und natürlich ist es auch eine schöne Herausforderung ;)

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

73

12.07.2014, 11:44

Achso, du willst es als quasi Ersatz für z.B. Lua, oder wie kann ich das verstehen?
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

74

12.07.2014, 12:18

Jup genau. Aber mit der Möglichkeit das ganze evt. sogar soweit auszubauen, dass man damit komplette Programme schreiben kann.
Das wichtigste später wird die Schnittstelle C++ <-> Snippet.

Evrey

Treue Seele

Beiträge: 245

Beruf: Weltherrscher

  • Private Nachricht senden

75

12.07.2014, 15:12

C++... einer der Haupt-Motivatoren für mich, Onyx anzufangen. Man sieht nicht gerade oft VMs, durch die man unbesorgt Exceptions werfen kann.

C-/C++-Quelltext

1
2
3
4
int main(int _argc, char** _argv) noexcept {
  asm volatile("lock cmpxchg8b %eax");
  return 0;
} // ::main
(Dieses kleine Biest vermochte einst x86-Prozessoren lahm zu legen.)

=> Und er blogt unter Hackish.Codes D:

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

76

12.07.2014, 16:31

Ich fange ja aktuell einfach alles ab, geht es dir darum?
Wenn das ganze in meine Engine soll muss das so sein, da ich kein Verhalten ala ArmA 3 haben möchte, in dem dann das ganze Spiel mit Fehlermeldung abstürzt wenn man ein Semikolon vergessen hat.

Evrey

Treue Seele

Beiträge: 245

Beruf: Weltherrscher

  • Private Nachricht senden

77

12.07.2014, 22:09

Öh... also in Onyx werden Exceptions mit throw/catch geworfen und abgefangen. Exceptions mit denen Onyx was anfangen kann werden verpackt in oxval_ts geworfen, dem Handle-Typen der VM. Will also eine C++-Funktion Onyx ermöglichen, die Exception zu verarbeiten, schmeißt sie einfach eine Onyx-Exception in oxval_ts. Fliegt hingegen eine andere Exception durch die Gegend, z.B. std::bad_alloc, betreibt die Onyx-VM trotzdem korrektes Stack-Unwinding und Tracing. Die Exception kann bloß nicht von Bytecode verarbeitet werden. Also wird die Exception weiter gereicht bis eine C++-Funktion sie abfängt.

Zu vergessenen Semikolons: Einfach SyntaxError oder ScriptError abfangen.

C-/C++-Quelltext

1
2
3
4
int main(int _argc, char** _argv) noexcept {
  asm volatile("lock cmpxchg8b %eax");
  return 0;
} // ::main
(Dieses kleine Biest vermochte einst x86-Prozessoren lahm zu legen.)

=> Und er blogt unter Hackish.Codes D:

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

78

12.07.2014, 23:00

Ah ok, jetzt hab ichs verstanden.

Werbeanzeige