Beiträge anzeigen

Diese Sektion erlaubt es ihnen alle Beiträge dieses Mitglieds zu sehen. Beachten sie, dass sie nur solche Beiträge sehen können, zu denen sie auch Zugriffsrechte haben.


Nachrichten - Cone Arex

Seiten: [1] 2 3 ... 157
1
Ressourcen / Re: Bernard-Maniacweed-Starterpack
« am: 05. Juni 2025, 21:29:40 »
Zitat
Der Briefkasten will bei mir mit AGS 3.6.2.10 allerdings nicht. Ich habe das jetzt mit einem neuen, frisch erstellten Spiel aus dem Template 1.1 versucht: Spiel ohne Änderungen kompiliert und es gibt keine Standardaktion.
Ok, ich sehe was du meinst. Ich kümmere mich drum.

Zitat
Wird ganz bestimmt deshalb so gemacht sein, weil der offene Briefkasten nicht komplett den geschlossenen verdeckt, im Gegensatz zu den Türen.
Korrekt. Das Problem hatten wir bei ein paar Episoden.

Ich habe dann auch mal ein leeres Maniacweed-Template erstellt: https://github.com/ManiacMansionMania/Maniacweed-Empty
Nur Start- und Abspannraum, Bernard als Charakter, ein Lukenöffner als Item (gibt Kompilierfehler, wenn es gar keine Items gibt), keine Musikstücke und Geräusche nur Schritte und Türen. Das Template kann dann auch für MOR verwendet werden. Wenn man Bernard und den Titelbildschirm rauswirft. Den Lukenöffner habe ich gerade neu gemalt (Lizenz: CC0), ist also unbedenklich.

2
Technik / Re: Weiterentwicklung der Starterpacks (Allgemein)
« am: 05. Juni 2025, 21:23:26 »
Zitat
Ich wäre stark dafür, dass die alten Starterpacks nicht auf AGS 3.6, sondern noch auf AGS 3.5 belassen werden.
Der Grund dafür ist, dass man damit den Timidity-Mist eben nicht braucht, um Midis abzuspielen.
Rückwirkend wäre das wahrscheinlich besser gewesen. Naja, weg sind die Versionen für 3.5 ja nicht.

Zitat
Im übrigen plädiere ich aus dem selben Grund dazu, bei den neuen Maniacweed-Starterpacks die Midis in Wav/Ogg umzuwandeln, aber das ist ein anderes Thema.
Das wurde für das Maniac-Mansion-Titellied bereits gemacht. Das ist im Maniacweed-Template als OGG verhanden.

Zitat
Da hast du locker mal 50 MB mehr pro Spiel zum Herunterladen.
Ich denke, dass das heutzutage nicht mehr groß ins Gewicht fällt. Wie AmigaMaster schon sagte sind GB-große Updates inzwischen die Regel bei professionellen Spielen. Da sind unsere paar MB nix. Ich bin halt dafür, auf MIDIs zu verzichten, weil es so aussieht als würde dort die Kompatibilität zum Problem werden. Und das Thema Kompatibilität wird in Zukunft noch größer werden.

Back to the Updates:
Das Syd-Achmed-SP ist jetzt auch von Unrat beseitigt. Und dieses mal hatte ich auch die Gelegenheit, die CharacterChange-Funktion zu testen. Funktioniert.
Beim Schule-SP bin ich noch unsicher, ob ich das noch updaten soll. Scheint mir verlorene Liebesmüh zu sein.

3
Ressourcen / Re: Bernard-Maniacweed-Starterpack
« am: 04. Juni 2025, 20:55:51 »
Ich habe  noch ein paar Funde in den Räumen gemacht - zwei davon hatte ich zwar in meinem Pull Request, ich vermute aber, dass die .crm Dateien nicht kompatibel waren:
Das lag wohl eher daran, dass der Merge Conflict nicht wie vorgesehen funktioniert hat und ich die Dateien mit einer älteren Version überschrieben habe.  :-[

Zitat
Tippfehler im Object und Hotspotnamen in beiden Kommodentüren, es fehlt das "n" in "Kommodentür"
Ist jetzt gefixt.

Zitat
Standardaktion SCHAU AN für oMailbox "Briefkasten>l" hinzugefügt"
Hotspot "hFrontDoor", Description "Tür>v"
und Objekt "oFrontDoor", Description "Tür>c" - diese beiden Änderungen führen dazu, dass die Standardaktionen für die Haustür auf ÖFFNEN / SCHLIESSEN gesetzt werden.
Verstehe nicht, worauf du hier hinaus willst? Eine Aktion für Schau an-Briefkasten ist doch vorhanden? Ebenso hat die Tür die Standardaktion gesetzt.

Zum Thema timidity habe ich hier schon was geschrieben: https://www.maniac-mansion-mania.de/forum/index.php?topic=2348.msg57368#msg57368 Lässt sich hier übertragen: Gibt jetzt die midi.txt und template.txt, welche auf das MIDI-Problem hinweisen. Ein neues Release kommt die Tage.

4
Technik / Re: Weiterentwicklung der Starterpacks (Allgemein)
« am: 04. Juni 2025, 20:51:31 »
Kommando zurück. Ich war da etwas voreilig damit, die Entwicklung der Starterpacks einzustellen.
Ich musste feststellen, dass AGS die Timidity-Dateien nicht in die Template-Datei einbindet. Soll heißen: Die müssen für jedes Projekt manuell in das Spieleverzeichnis kopiert werden. Als behelfsmäßige Krücke gibt es jetzt die Datei midi.txt, in welcher das Vorgehen zum Importieren beschrieben wird und auch auf das GitHub-Repo mit den Dateien verwiesen wird. Zusätzlich hat jedes Starterpack jetzt eine template.txt-Datei, die beim Erzeugen eines neuen Projekts angezeigt wird (bis AGS 3.6.1) bzw. bei der Template-Auswahl angezeigt wird (bei AGS 3.6.2) und auf diesen Umstand mit timidity und die midi.txt hingewiesen wird.

Außerdem habe ich weitere Probleme mit dem neuen AGS 3.6.2 bemerkt. Funktionsaufrufe von Hotspots, Objects etc. die ins Leere führen (also z.B. eine Hotspot3_AnyClick()-Funktion im Event Pane des GameObjects angegegeben ist, aber keine entsprechend Funktion im Script existiert) erzeugen nun eine Warnung. Nichts weltbewegendes, aber doch nervig. Dazu kommt, dass zumindest standardmäßig die Scriptkompatiblität runter geschraubt wurde und nun eine veraltete Version von SetPlayer() im CharacterChange-Script, sowie die Verwendung von GlobalInts nun Compilerfehler erzeugen. Entsprechend habe ich angefangen, diesen Unrat aus den Starterpacks zu beseitigen. Alle SPs, abgesehen von der Schule und Syd-Achmed, sind bereits durch. Alle überflüssigen Funktionsaufrufe, die GlobalInts und die SetPlayer()-Funktion sind raus und erzeugen keine Probleme mehr mit AGS 3.6.2. Die beiden restlichen SPs kommen dann die Tage, genau wie Releases. Bei der Schule sind wohl größere Umbau-Maßnahmen notwendig, da eine veraltete GlobalScript-Version verwendet wurde.

Ich bin nicht dazu gekommen, dass CharacterChange-Script dann noch auf Funktion zu prüfen. Daher wäre es sehr nett, wenn da nochmal jemand drüber schaut.

Auch wenn ich jetzt sehr viel über die Kompatibilität zu AGS 3.6.2 gesprochen habe, möchte ich noch anmerken dass die Starterpacks weiterhin auf 3.6 ausgerichtet sind. Auf Kompatibilität zu 3.6.2 wird nur zusätzlich geachtet.

Im Übrigen bin ich der Meinung, dass Karthago zerstört werden muss.

5
Technik / Re: Weiterentwicklung der Starterpacks (Allgemein)
« am: 02. Juni 2025, 19:02:46 »
Ich habe die freie Zeit in der Klinik mal dazu genutzt und das längst überfällige Update auf AGS 3.6 bei den alten Starterpacks durchgeführt. Alle SPs setzen nun AGS 3.6 voraus und haben Timidity zwecks MIDI-Wiedergabe integriert und das "Problem" mit den verrissenen Umlauten in der Aktionsleiste ist behoben. Letzte Releases für alle Starterpacks sind erstellt und hochgeladen.
Mit diesem Update schließe ich die Entwicklung der Starerpacks mit alter Codebasis ab. Zukünftige Templates werden auf Tumbleweed-Basis gebaut. Die Repositorys bleiben offen und sollte jemand anderes die Starterpacks warten wollen, kann er dies tun, Pull Requests stellen oder mir die Änderungen zukommen lassen. Ich pflege das dann ein.

6
Ressourcen / Re: Bernard-Maniacweed-Starterpack
« am: 02. Juni 2025, 18:53:45 »
Ich habe das tatsächlich mal gebraucht, nämlich bei Schubladen. Alle Schubladen eines Raums rufen dieselbe Funktion auf und innerhalb der Funktion wird dann geprüft, um welche Schublade es sich handelt. Das reduziert den Code enorm, wenn es um viele Schubladen geht.
Stimmt. Das ist tatsächlich ein sinnvoller Use-Case.

Auch von mir gute Besserung, Cone Arex!
Danke.

7
Ressourcen / Re: Bernard-Maniacweed-Starterpack
« am: 01. Juni 2025, 11:43:48 »
Ich habe deinem Pull Request stattgegeben und in das Repo gemerged.
P.S: Dabei habe ich ein wenig über Räume, Objekte und Hotspots innerhalb von AGS gelernt. Es ist mir allerdings noch schleierhaft, wie das z. B. vor dem Haus mit dem Hotspot der Fenster funktioniert. Woher kommt der "hWindowLivingRoom", wenn der eigentlich Hotspot "hWindow02" benannt ist?
Auf der Eventseite eines GameObjects wie Objekte, Hotspots etc. wird der Name der Funktion angegeben, welche beim Auslösen eines Events (hier: Any Click on hotspot) ausgeführt wird. Zum Beispiel ist bei htHotspot04 hWindowKitchen_AnyClick angegeben. Wenn kein Funktionsname hinterlegt ist, generiert AGS automatisch einen, bestehend aus dem Scriptnamen des Hotspots, an den dann der Name des Events (AnyyClick) angehängt wird. Seit einiger Zeit erlaubt AGS, dass sich die Funktionsnamen von Hotspotnamen unterscheiden können. Auch wenn ich keinen Fall kenne, wo das nützlich ist.
Das wir im Starterpack unterschiedliche Namen haben, ist schlicht ein Flüchtigkeitsfehler unsererseits. Danke für den Hinweis, ist korrigiert.

Ein neues Release (v1.1) mit allen Änderungen ist bereits erstellt und hochgeladen: https://github.com/ManiacMansionMania/Maniacweed-Bernard/releases/tag/v1.1

@Cone Arex
Gute Besserung!
Danke.

8
Ressourcen / Re: Bernard-Maniacweed-Starterpack
« am: 31. Mai 2025, 18:46:43 »
Wie arbeitet AGS, wenn man ein Room-Script ändert? Reicht es, wenn man das Script, also die .asc Datei z. B. als Pull-Request einreicht?
Ja, das sollte reichen. Versuchs einfach mal.

In diesem Fall muss ich aber alphawolf zustimmen. Solcher Code gehört eher nicht in ein Template.

An dieser Stelle möchte ich erwähnen, dass ich aufgrund aktueller Umstände nur sporadisch hier bin und das Update für die alten Starterpacks und andere Dinge sich entsprechend verzögern.

9
Ressourcen / Bernard-Maniacweed-Starterpack
« am: 27. Mai 2025, 16:35:36 »
Also Leute, es ist soweit. Das neue Bernard-Starterpack auf Basis von Tumbleweed hat offiziell Version 1.0 erreicht und steht zur Verwendung bereit.

Neues Repository auf Github.
Direktlink zur Vorlagendatei.

Wir haben beschlossen, zwecks Unterscheidung zu den alten Starterpacks, die Bezeichnung Maniacweed für die SPs mit Tumbleweed-Codebasis fortzuführen. Entsprechend beginnt die Versionierung hier wieder bei 1.0 und wird in einem eigenen Repository gehostet. Die alten Starterpacks bekommen von mir noch ein letztes Update, welches Timidity integriert. Danach werden diese nicht mehr aktiv gewartet. Die Repositorys bleiben aber offen, soll heißen: Wer Änderungen an den alten SPs vornehmen möchte, kann den Code gerne einreichen.

Auf hoffentlich viele neue Spiele!

10
Vor dem Remake von Rescue Mission habe ich genauso gearbeitet. Ein, zwei Kernideen gehabt und dann willt darauf los entwickelt. Genauer hatte ich das für meine alten Episoden bereits hier, hier und hier niedergeschrieben.
Bei Bertholds Rückkehr hatte erstmals genauer geplant. Im Prinzip entstand das Spiel aus drei Überlegungen:
* Die Figur des Berthold - Ursprünglich von JPS für Bernard gegen Berthold erdacht gab es Ideen, wie man die Figur weiter verwenden könnte. Irgendwer schlug vor, dass Berthold ein Cyborg-Doppelgänger von Bernard sein könnte. Mir kam irgendwann die Idee, dass wenn Bernard einen Doppelgänger hat, dann könnte Britney doch genauso eine Doppelgängerin haben? Entsprechend hatte das Spiel dann auch den Arbeitstitel "Britney gegen Brittanny".
* Keine Schlüsselsuche - Irgendwo gibt es eine verschlossene Tür und man muss den Schlüssel finden. Ein Rätsel, das viel zu oft vorkommt. Ich wollte eine Episode entwerfen, dass ohne dieses Rätsel auskommt. Konkret habe ich mir überlegt, wie man in das Bernoulli-Haus eindringen könnte, ohne einen Schlüssel suchen zu müssen. Am Ende kam ich auf die Idee mit dem Kellerfenster, durch welches dieser Part ganz einfach umgangen wurde.
* Ein höheres Produktionsniveau - Ich wollte hier audiovisuell mehr erreichen als in der Vergangenheit. Keine Rips aus kommerziellen Spielen mehr. Keine aus anderen Episoden wiederverwendeten Grafiken. Mehr Animationen und Farbverläufe.
Irgendwann kam ich dann auf den Trichter, alle drei Ideen in ein Spiel zu bringen. In Gedanken lies ich Berthold durch das Kellerfenster einsteigen und überlegte, was logisch passieren könnte. Warum trifft er nicht auf die Bewohner? Tja, dann spielt die Episode nachts. Was muss er tun? Was wenn er doch auf einen der Bewohner trifft? Er trifft auf Britney, was dann? Er muss aus dem Weg räumen. Wie? Er betäubt und fesselt sie. Und dann? Irgendwie kam ich dann auf die Idee dem Gestaltwechseln. Auf die Weise kann ich auch den weißen Mund erklären. (Ich nehme nicht an, dass JPS sich da groß Gedanken nach dem Grund gemacht hat.) Basierend auf diesen Gedanken schrieb ich eine Art Flussdiagramm auf Papier und ordnete die Rätsel logisch an und feilte noch ein bisschen rum. Eigentlich sollte man von einem Teppich ein Stück abschneiden und in Chloroform tauchen, aber mir fiel außer der Küche kein Ort ein, wo von der Logik her eine Schere sein könnte. Und die Küche wollte ich nicht im Spiel haben, um die Laufwege kurz zu halten. Also wurde daraus eine Socke aus dem Bad. Eigentlich sollte man Britney in ihrem Kleiderschrank verstauen, aber mir gefiel die Animation von Britney, wie sich praktisch selbst trägt, zu gut. Also habe ich etnschieden, dass man Britney an einem anderem Ort verstecken muss, damit man die Animation betrachten kann. Und am Ende musste ich dennoch Schlüsselrätsel einbauen, damit das Spiel ein gescheites Ende bekommt.

Tja und seitdem hat sich mein Problem mit dem Planen ins Gegenteil verkehrt. Habe ich früher überhaupt nichts geplant, so hänge ich mich aktuell immer am planen auf. Ich hab bestimmt noch 5 Episoden die im Planstadium festhängen.

11
Zitat
Das, was Cone Arex sagt, ist mir auch in neueren Starterpacks über den Weg gelaufen
Eigentlich sollte das in neueren SPs nicht vorhanden sein. Wenn du aber Starterpacks für 2.7.2 meinst: Die liefen auch noch mit der alten 2.6.2-Codebasis. Ist ein bisschen komplizierter. (Der Wechsel zur objektorientierten Scriptsprache erfolgte mit 2.7, nicht mit 3.0.)

Zitat
aber wenn es unvollständig ist, weiß man natürlich nicht, wo man ansetzen soll.
Da habe ich mich geirrt bzw. falsch ausgedrückt. Der Code fürs Jagen selbst ist vollständig. Nur fehlen die Reaktionen, das Stecken ins Verließ etc.

Und weil ich dummer Vollidiot bin, der nicht weiß was gut für ihn ist, habe ich das alte Hunting-Script mal für AGS 3.6.0 angepasst, mit weiteren Informationen versehen und außerdem Beispielreaktionen implementiert. Statt einfach mal früher pennen zu gehen.
Hunting-Script
Implementation mit Beispielen im Maniacweed-Starterpack (*Werbetrommel rühr*)

In dem Beispiel kann man von Edna (Flur unten), Ed (Kellerraum 1) und Britney (Schlafzimmer) verfolgt werden. Verfolgung über mehrere Räume hinweg wird nicht unterstützt (war in MMD soweit ich weiß auch der Fall). Allgemein finde ich die Umsetzung suboptimal.

12
In den alten Starterpacks mit AGS 2.62-Codebasis gab es. soweit ich weiß unvollständige, Reste des entsprechenden Codes für das Jagen aus Maniac Mansion Deluxe:

GlobalScript:
// ============================= hunter ===========================================
// this section after cutscene functions
int hunter_char = NO_CHAR;
// two-dimeanional hunting
#define STEPS_UNTIL_DIR 10
int steps = STEPS_UNTIL_DIR;
int lastx = -1;
int lasty = -1;
// give player time to act
#define COUNTDOWN_OFF -1
#define COUNTDOWN_START 400
#define COUNTDOWN_STOPPED -2
int countdown = COUNTDOWN_OFF;
int hunter_area = -1;

function StartHunting (int hunter){
  hunter_char = hunter;
  lastx = -1;
  lasty = -1;
  countdown = COUNTDOWN_OFF;
  // switch player disabled
  // avo- SetGlobalInt (291, 1); // avo veraltet
}

function StartCountdown (){
  // give player some time to think and react
  // but player can't move
  SetGlobalInt (2, 0);
  hunter_area = GetWalkableAreaAt (character [GetPlayerCharacter ()].x - GetViewportX (), character [GetPlayerCharacter ()].y - GetViewportY ());
  RemoveWalkableArea (hunter_area);
  countdown = COUNTDOWN_START;
}

function StopHunting (){
  hunter_char = NO_CHAR;
  // player may move
  if (hunter_area >= 0)
  {
    RestoreWalkableArea (hunter_area);
    hunter_area = -1;
  }
  SetGlobalInt (2, 1);
  // switch player enabled
  // avo- SetGlobalInt (291, 0); // avo veraltet
}

function IsHunting (){
  int result = hunter_char != NO_CHAR;
  if (result)
  {
    // stop hunting when chars are in different rooms
    if (character [hunter_char].room != character [GetPlayerCharacter ()].room)
    {
      StopHunting ();
      result = hunter_char != NO_CHAR;
    }
  }
  return result;
}

function HunterSucceeded (){
  int hunter = hunter_char;
}

function TimeToActIsOver (){
  int hunter = hunter_char;
}

function DoHunting (){
  int caught = 0;
  int charid = GetPlayerCharacter ();
  int px = character [charid].x;
  int py = character [charid].y;
  // check distance
  int dx = px - character [hunter_char].x;
  int dy = py - character [hunter_char].y;
  if ((dx * dx + dy * dy) <= 500)
  {
    caught = 1;
    HunterSucceeded ();
  }
  else if (steps <= 0)
  {
    if ((px != lastx) || (py != lasty))
    {
      // correct HUNTER's direction
      MoveCharacter (hunter_char, px, py);
      lastx = px;
      lasty = py;
    }
    steps = STEPS_UNTIL_DIR;
  }
  else steps--;
  return caught;
}

function RepExec_Hunting (){
  int caught = 0;
  if (IsHunting ())
  {
    if (countdown == COUNTDOWN_OFF) caught = DoHunting ();
    else if (countdown == 0)
    {
      countdown = COUNTDOWN_OFF;
      TimeToActIsOver ();
    }
    else if (countdown > 0) countdown--;
  }
  return caught;
}

GlobalHeader:
#define NO_CHAR -1

// --- hunting ---
import function StartHunting (int hunter);
import function StopHunting ();

Du musst mal schauen, ob du das brauchen und eventuell auf die aktuelle Scriptsprache umbauen kannst.

13
Specials / Re: Maniac Mansion Mania Ronmastered Collection
« am: 09. April 2025, 21:21:02 »
Ich hab mir mal den aktuellen Source-Code geholt und ScummVM mal selbstkompiliert. (Die Daily Builds für Debian wollen bei mir wegen irgendwelchen Libraries nicht.)

Stand heute: Der Fehler mit der Schrift ist noch vorhanden. Ich denke, dass wird ein Problem mit ScummVM  bzw. dessen Font Renderer sein, wie Cmdr bereits geschrieben hat. Wir hatten ja schon in der Vergangenheit damit Probleme.  (Siehe den Wiki-Artikel, den ich mal aktualisieren sollte.) In der internen Datenbank ist das Spiel nun als "Maniac Mansion Mania Ronmastered Collection (Ep. 1-9) (German)" gelistet. Interessanterweise gibt es noch ein weiteres Problem: Die Sprachausgabe wird nicht geladen. Bei Episode 41 dagegen funktioniert die Sprachausgabe.

14
Specials / Re: Maniac Mansion Mania Ronmastered Collection
« am: 08. April 2025, 20:21:34 »
Könnte die Person dazu Screenshots anfertigen? Beziehungsweise, ich könnte selbst mal es mir selbst mal in ScummVM ansehen. Es ist nämlich so, dass immer noch Probleme mit der Schrift bzw. dessen schwarzen Outline bestehen. Aus irgendeinem Grund wird bei einigen Buchstaben die unterste Pixelreihe der Outline abgeschnitten. Auch wenn man das Spiel ganz normal mit der integrierten Engine ausführt. Bei dem Eszett (ß) habe ich das korrigiert und die Schrift ist auch im Maniacweed-Template eingebunden. Bei der Ronmastered Collection wird ebenfalls die korrigierte Font benutzt. Ich weiß aber inzwischen, dass das Problem noch bei anderen Buchstaben wie dem kleinen p besteht. Da ist es mir nicht gelungen, es zu ändern. Das wäre also kein Fehler von ScummVM.

15
Ich denke der obere Balken stört nicht. Wie sieht es aus, wenn einige geeignete Räume erweitert werden und andere den Balekn behalten?
Noch schlechter. Ich würde alle Räume entsprechend erweitern. Ich lade demnächst mal ein paar Vergleichsbilder hoch.

Zitat
Wände und Boden der Gummizelle sehen mir zu sehr nach Kacheln und Fliesen aus, nicht nach Polstern.
Genau das habe ich befürchtet. Ich schau mal, dass ich da nochmal rangehe.

Die Screenshots:
Spoiler (hover to show)

Seiten: [1] 2 3 ... 157