Patchen

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

Waveblue

Betreff: Patchen

BeitragFr, März 04, 2005 20:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Very Happy

Hab mal wieder ne Frage!

Viele Spiele , die auf den Markt kommen, enthalten Fehler, die dann durch sogenannte Patches beseitigt werden!

Ich fänds dahingehend praktisch, da nicht das komplette Programm oder die Exe ersetzt wird, sondern nur Teile davon, was eine Aktualisierung ungemein Downloadvolumensparend macht!

Seltsamerweise hab ich hier noch kein Spiel gesehen, das Patches anbietet, sondern man muss immer komplett die neue Version laden!

Geht sowas mit Blitz zu realisieren?
This is 10% luck
20% skill
15% concentrated power of will
5% pleasure, 50% pain
and 100% reason to remember the name

@ndinho

BeitragFr, März 04, 2005 20:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich glaube nicht, denn wenn du eine EXE erstellt hast, kannst du sie ja nicht mehr in BB umändern bzw. den Code verändern
User posted image

Mein PC: AMD 3000+ / 1024 DDR-Ramm 400 / Geforce 6800
Meine Lieblingsspiele: World of Warcraft, Warcraft III, Pro Evolutions Soccer 4, Blitz Basic Smile

Artemis

BeitragFr, März 04, 2005 20:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Du könntest deinen ode auslagern also als bb datei einbinden.
das solltest du aber verschlüsseln und umbenennen.
dann ersetzt du einfach deine "einbau"-datei und fertig!
 

#pointer#

Gast

BeitragFr, März 04, 2005 20:37
Antworten mit Zitat
nein, aber du kannst das Programm dynamisch machen, und dann die entsprechenden Dateien editieren.

maximilian

BeitragFr, März 04, 2005 20:38
Antworten mit Zitat
Benutzer-Profile anzeigen
@JonasCleve: WAS? o_O
Variety is the spice of life. One day ignore people, next day annoy them.

Artemis

BeitragFr, März 04, 2005 20:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Erstell BB datei:Code: [AUSKLAPPEN]
hallo=getcolor(2,2)

die datei verschlüsselt zum program tuen. mit bb das entschlüsseln und ausführen.

wenn du patchst dannCode: [AUSKLAPPEN]
hallo=getcolor(x,y)

dann wieder verschlüsseln.
  • Zuletzt bearbeitet von Artemis am Fr, März 04, 2005 20:43, insgesamt einmal bearbeitet
 

D²O

BeitragFr, März 04, 2005 20:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, das funktioniert auch mit BB.
Nur musst Du hier auch eine Patch.exe machen und die ist dann sowieso fast so gross wie die spiele.exe.

Das Prinzip ist,
die neue exe mit der alten exe vergleichen (Readbyte) dann die offsets, (die punkte ab wann bis wohin, speichern wo sie sich unter scheiden, und
jetzt nur diesen teil in einer extra datei speichern.

Bei patchen musst Du dann nur noch ab dem gespeicherten punkt,Offset, die datei in die exe einfügen.

Du kannst ja die patch.exe in der ersten version mit liefern, dann muss man sich nur noch die patch datei downloaden,
oder,
Die patch.exe wird, z.b. mit PureBasic gemacht, hier ist die exe sehr klein.
Blitz+; Blitz3d; BlitzMax; GLBasic; Purebasic;
GameMaker Studio 1.4xx; AGK;

Waveblue

BeitragFr, März 04, 2005 20:44
Antworten mit Zitat
Benutzer-Profile anzeigen
D²O hat Folgendes geschrieben:
Ja, das funktioniert auch mit BB.
Nur musst Du hier auch eine Patch.exe machen und die ist dann sowieso fast so gross wie die spiele.exe.

Das Prinzip ist,
die neue exe mit der alten exe vergleichen (Readbyte) dann die offsets, (die punkte ab wann bis wohin, speichern wo sie sich unter scheiden, und
jetzt nur diesen teil in einer extra datei speichern.

Bei patchen musst Du dann nur noch ab dem gespeicherten punkt,Offset, die datei in die exe einfügen.

Du kannst ja die patch.exe in der ersten version mit liefern, dann muss man sich nur noch die patch datei downloaden,
oder,
Die patch.exe wird, z.b. mit PureBasic gemacht, hier ist die exe sehr klein.


hm, klingt interessant!
Aber bevor ich das kann............. Wink
This is 10% luck
20% skill
15% concentrated power of will
5% pleasure, 50% pain
and 100% reason to remember the name

DA

BeitragFr, März 04, 2005 20:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Moin,

Viel zu schwer. Einfach mit deinem Server verbinden. Dan eine Datei runterladen die du vorher dort darauf geladen hast. Darin stehen dan die Updates. Wen ein neuer da ist, wieder verbinden mit dem Server und herunter laden. Dan die neue exe durch die Alte ersetzen. Feddich Wink.

Edit:
Oder es so machen wie D²O. Wink


Thx
DarkAngel
Deutscher Blitz Basic Chat
  • Zuletzt bearbeitet von DA am Fr, März 04, 2005 20:47, insgesamt einmal bearbeitet

blitzmaster

BeitragFr, März 04, 2005 20:46
Antworten mit Zitat
Benutzer-Profile anzeigen
du könntest zum beispiel eine Patch-Funktion sowieso in den alten Code einbauen Confused ob das funzt? weiss nich... aber so könntest du's irgendwie machen...
***************
Blitzmaster

Waveblue

BeitragFr, März 04, 2005 20:46
Antworten mit Zitat
Benutzer-Profile anzeigen
@DarkAngel:

gesetzt den Fall:

Ein Spiel-Exe erreicht eine Größe von 4MB!

Nun wird es veröffentlicht, viele laden es und dann stellt sich ein Fehler in
der Highscore-Function heraus!

Der Bug is nicht größer als ne Zeile und dafür sollen alle nochmal 4MB laden?
Praktisch wäre in dem Fall die Möglichkeit durch einen kleinen Patch das zu beheben!
This is 10% luck
20% skill
15% concentrated power of will
5% pleasure, 50% pain
and 100% reason to remember the name
 

D²O

BeitragFr, März 04, 2005 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
blitzmaster hat Folgendes geschrieben:
du könntest zum beispiel eine Patch-Funktion sowieso in den alten Code einbauen Confused ob das funzt? weiss nich... aber so könntest du's irgendwie machen...


Jo, das wär schön platzsparend wenn die Patchfunktion in der eigenen exe liegt, nur kann sich die eigene exe wenn sie schon geöffnet ist nicht selbt überschreiben.
Blitz+; Blitz3d; BlitzMax; GLBasic; Purebasic;
GameMaker Studio 1.4xx; AGK;

blitzmaster

BeitragFr, März 04, 2005 20:59
Antworten mit Zitat
Benutzer-Profile anzeigen
mann könnte ja eigentlich doch eine kleine Exe erstellen die den Code verändert. Man tut sich nur eine InI File Downloaden in der zum beispiel steht:
Code: [AUSKLAPPEN]

;alte Zeile
hllo = hallo + 1
;durch die sie ersetzt werden soll
hallo = hallo + 1


aus dieser File list dann die Patch.exe die Zeilen heraus, und verändert Sie dann im alten Programm

Könnte das Funktionieren Confused Confused Question Question
***************
Blitzmaster
 

D²O

BeitragFr, März 04, 2005 21:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Jain,
wenn aber ein fehler selber im code ist, Runtimefehler, dann nütz das nichts.

Stell Dir vor du hast eine for i = 0 to go
schleife in der ein Array(go) laufen, das go wird aber an irgendeiner anderen stelle unter bestimmten bedingungen verändert das aus go = 10 ein go = 11
wird und das array aber nur 10 felder hat.

Dan gibts saures Wink

genau für sowas ist die patch.exe gedacht.
Blitz+; Blitz3d; BlitzMax; GLBasic; Purebasic;
GameMaker Studio 1.4xx; AGK;

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragFr, März 04, 2005 21:10
Antworten mit Zitat
Benutzer-Profile anzeigen
zum Teil möglich, da meist nur die Exe ausgetauscht werden muss aber die Bilder und Sounds nicht!
Die exe patchen geht auch einfach wenn nur zb nur einzelne Bytes ausgetauscht werden müssen
Aber ändert sich die Dateigröße dann wird es sehr schwierig!
Abgesehen davon lohnt es sich nicht in der exe die daten zu tauschen da das Patch Programm ,wenn es in BB geschrieben wird, schon eine enorme Größe hat!
Interessant wird das erst wenn du alles an Grafik und Sounds mit in die Exe gepackt hast!

@JonasCleve: Wie? Etwa mit include das später reinziehen Confused
[BB2D | BB3D | BB+]

Sir Dan

BeitragFr, März 04, 2005 21:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie wäre es denn wenn man alle Functionen (mit einem extra geschriebenen Universaleditor) in eine datei auslagert

z.B.:
Code: [AUSKLAPPEN]

; Universaleditor

datei = Writefile("test.func")
writeline(datei,"Function exe()")
usw.....

 



Ist zwar viel schreibarbeit, aber man nach dem compilieren
immernoch darauf zugreifen.
Und wenn der Fehler dann doch in der exe sein sollte, ist der ersatz
download dann nicht mehr so groß.
(\_/)
(O.o)
(> <) This is Bunny. Copy Bunny into your signature to help him on his way to world domination.

BladeRunner

Moderator

BeitragFr, März 04, 2005 21:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Das wird so nicht funktionieren. ihr könnt die exe ja nicht aus 3 kleineren exes zusammenwürfeln.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

Apocalyptic

BeitragFr, März 04, 2005 21:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Waveblue hat Folgendes geschrieben:
@DarkAngel:

gesetzt den Fall:

Ein Spiel-Exe erreicht eine Größe von 4MB!

Nun wird es veröffentlicht, viele laden es und dann stellt sich ein Fehler in
der Highscore-Function heraus!

Der Bug is nicht größer als ne Zeile und dafür sollen alle nochmal 4MB laden?
Praktisch wäre in dem Fall die Möglichkeit durch einen kleinen Patch das zu beheben!


Eine normale BB-Exe ist selten größer als 4MB. Wenn sie dann noch mit UPX, Zip oder Rar komprimiert ist, sollte die Größe nicht wirklich ein Problem darstellen. Natürlich darfst du keine Dateien in die Exe packen. Theoretisch sollten auch sonstige Dateien möglichst nicht zu einem Archiv (zB mit Terrabits Packmacker) gepackt werden - sonst muss immer das ganze Archiv upgedatet werden (es sei denn, du investierst mehr Zeit und machst es so wie D²O es beschrieben hat Wink).
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]

skey-z

BeitragFr, März 04, 2005 22:34
Antworten mit Zitat
Benutzer-Profile anzeigen
hier war ja die Rede davon, dass der patch die Grösse der normalen Spiele Datei /dateien errichen kann.

wenn di programme recht klein sind, ist das wohl kein grosser aufwand, sich eine verbesserte Version zu saugen, wenn es wirklich grosse Mängel gibt, aber das vom Gameplay her viel spass macht.

und wenn man sich manche Patches für komerzielle Spiele anschaut, sind diese manchmal mehrere 100 MB groß, ich weiss das dies jetzt nicht in Relation zu BB Spilen steht, weil diese selten komerziell sind und wahrscheinlich auch keine 2-4gig erreichen werden.
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

D2006

Administrator

BeitragSa, März 05, 2005 0:41
Antworten mit Zitat
Benutzer-Profile anzeigen
macht es so, wie es D²O beschrieben hat.

Ich habe mal sowas gecodet. Eine EXE mit ca. 100 Zeilen Unterschied zu vorigen konnte so in eine ca. 80 KB Datei umgewandelt werden.

Habe das Projekt abgebrochen, da ich weiter gehen wollte, als es möglich war und dieses^^ Prinzip mir trotzdem nicht mehr reichte.

MfG
D2006

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group