Du bist nicht angemeldet.
XML:::parserOptions
RECOVER NOENT DTDLOAD DTDATTR DTDVALID NOERROR NOWARNING
1 2 4 8 16 32 64
PEDANTIC NOBLANKS SAX1 XINCLUDE NONET NODICT NSCLEAN
128 256 512 1024 2048 4096 8192
NOCDATA NOXINCNODE COMPACT OLD10 NOBASEFIX HUGE OLDSAX
16384 32768 65536 131072 262144 524288 1048576
// C++:
reader = xmlReaderForFile(filename, NULL, XML_PARSE_HUGE);
// https://github.com/GWRon/bah.mod/blob/master/libxml.mod/src/libxml/xmlreader.h#L329
xmlReaderForFile (const char *filename,
const char *encoding,
int options); // <- da müssen wir ran
vielleicht hilft Dir das weiter,
ich habe leider bei BlitzMax: Ahnung == null
Offline
Ja wo wir ran muessen, ist mir schon klar.
Das Problem ist, dass die Speicherstaende ueber Bruceys persistence.mod ablaufen (Serialisierung und dann Ausgabe ueber XML).
Die Deserialisierung nutzt derzeit von libxml eine Funktion zum Einlesen "per Dateipfad" die eben _nicht_ an die Optionen rangeht. Ich koennte das jetzt entsprechend umschreiben, will aber erstmal von Bruce wissen, ob es irgendwelche Nebenwirkungen hat (er sieht das viel eher als ich).
Das hat im uebrigen nicht nur mit deinen vielen Filmen zu tun - sondern einfach mit der generellen Dateigroesse (oder Baumgroesse? - denn da muesste eine andere Meldung kommen, bin glaube bei 4000er "Tiefe"). Heisst ein Speicherstand von 120 Spieltagen (oder wie viel auch immer) koennte ebenfalls zum Problem werden.
Da eh keiner direkt in die XML reinschaut, waere es vielleicht eh praktischer, "persistence_json" auf den Stand meiner "persistence"-(xml)-Fassung zu bringen. Das erspart das tausendfache Neuschreiben von Feldnamen (<name>Bla</name>) was sicher einen Grossteil der Speicherstandsgroesse ausmacht.
So oder so sollten wir ueberlegen, ob wirklich alle Spielstandsinformationen noch relevant sind. Detailinformationen koennten nach 20 Spieltagen geloescht werden (mache ich bei einigen Sachen schon).
Es ist ja nicht so, dass es weniger Spieldaten werden. Viel mehr wird mit jedem neuen Release die Speichermenge ein wenig vergroessert.
bye
Ron
Offline
Ob das mit der Tiefe oder der "Breite" zu tun hat kann ich recht einfach "testen" ... muss nur die englische desc. oder viel "BlindText" einfügen und schaun was sich tut.
mach ich Vielleicht morgen
Hab irgendwo gestern Nacht (Schlafstörung) im Code von Bruce gelesen Depth=4k*4;
Was anderes:
Ich habe heute noch ne Menge kleiner Dinge (Darstellung) bearbeitet und alle Dokus auf < ..flags="4" ..> gestellt, jetzt gibt es auch wieder ein wenig Kultur im Spiel
https://github.com/DerDannyF/CSharp-XML-API/wiki/fixed
Bin mom bei 9.1k Filme die ich radikal gesenkt habe auf 8.5k. (vieles rausgeschmissen)
Ich überlege gerade wie ich die aktuelle Situation annehme und die Daten von 8.5k Filmen sinnig "aufteile". Jemand eine Idee?
Sollt ich mit http://www.metacritic.com/ den Score abgleichen und damit wieder 20%-30% rausschmeißen und noch sauberere Daten bekommen?
Offline
Der Abgleich mit anderen "Ratings" ist immer gut - gab ja einige Filme, die bei IMDB von den Nutzern kuenstlich abgewatscht oder gepusht worden sind.
(Fuer Serien waere TheMovieDB - also TMDB wohl interessant, da die auch eine Series-DB anbieten - oder eine TVDB!).
@ Reduktion
Ich denke, wir sollten ueberlegen, was fuer Filme man so braucht:
- bei alten Filmen erinnert man sich nur an sehr schlechte ("kult-schlecht" - Plan 9 from Outer Space) oder Klassiker ("Vom Winde verweht")
- bei aktuellen Filmen kennt man halt alles vom Rohrkrepierer bis Kinohit
Wie also umgehen? Ich wuerde sagen, dass die fruehen Jahre mit 2-3 "miesen" Filmen, 2-3 "mittleren" und 4-5 "guten" Filmen bestueckt werden sollten.
Bei neueren Zeiten kann entsprechend die Zahl mit einem Faktor multipliziert werden - so, dass fuer die aktuellen Jahre (1985+) dann auch mal 20-30 Filme zur Verfuegung stehen.
Gedanke waere, dass im Spiel so 1.000 Filme zur Verfuegung stuenden + Serien und Drehbuecher fuer Eigenproduktionen.
(Im Uebrigen waere das sicher fuer manche auch interessant: nicht verwendete Filme als Drehbuecher ausgeben. Ist fuer mich allerdings keine Option, da ich schon die Verbindung "Titel + Schauspieler" mag, und die waere dann ja zerstoert).
Momentan unterstuetzt es das Spiel "grafisch" (GUI) noch nicht, aber es ist vorgesehen, verschiedene Datenbanken zum Spielstart auszuwaehlen. Ein flexibler "Datenbankersteller" koennte dann auch Sets bereitstellen:
- vorrangig Klassiker (erfordert viel Eigenproduktion)
- viel neues (kaum alte Schinken, die vorhandenen sind schnell ausgelutscht - erfordert viel Gewinnerwirtschaftung fuer Neues - oder Eigenproduktion)
- Standard: die gesunde Mischung
- ...
bye
Ron
Offline
So ... Bruce war fleissig und hat n Update eingeschoben:
https://github.com/maxmods/bah.mod/commit/3f9fdcb5a304b7be8753649abadf415d8cefd185
Bin aber dran, "Json" noch mit zu unterstuetzen. Ich muss auch mal schauen, wie stark sich die Speicherzeiten veraendern, wenn ich bei libXML "compress" aktiviere.
Ein "Neues Spiel" Speicherstand ist dann immerhin nur 1.1 MB statt 22MB - nur die Zeit habe ich jetzt mangels Zeit :-p noch nicht gemessen.
bye
Ron
Offline
So ... habe mal die Aenderungen von Bruce eingefuegt und konnte so deinen Speicherstand laden (auch wenn ich dachte, es ist abgestuerzt - nein, es dauerte einfach eine ganze ganze Weile :-)).
Dann nochmal abgespeichert (mit automatischer "Zippung" bei XML):
xml took: 68912ms
json took: 19042ms
quicksave.xml.zip: 8.7mb (238.4mb Original)
quicksave.json: 40.5mb (haendisch gezippt: 6.3mb)
Wenn Euch also die Speicherstaende zu gross vorkommen, kann ich gerne die Kompression aktivieren ("savegameXYZ.zip" statt ".xml").
Dennoch: 240mb Speicherstand sind schon... joa. Selbst die 40MB JSON sind ja an sich noch verringerbar (eine Gleitkommazahl kann man ja in 16 oder 32 bit unterbringen - anstatt als "12.1232443543535" in String-Form zu speichern). Das groesste Potential liegt aber natuerlich in der Vermeidung von anfallenden Daten
bye
Ron
Offline
@verschiedene Db: da habe ich schon 1-2 Ideen wenn es soweit ist
@Größe der Datein: Zum Glück sind die neuen HDD übergroß, wenn ich mir meine 3 SaveGameOrdner anschaue, dann weint mein Herz. (15GB)
Ob das jetzt irgend eine Prio für Dich hat, weiß ich nicht. Mir ist es Egal bis die 120GB TVT HDD voll ist - dann meld ich mich nocheinmal mit viel gejammer, gezetere und gezänke.
@alles ab "Bruce war fleißig": "hui hui hui" da freu ich mich auf den nächsten DevPatch wie ein kleines Kind am Heiligen Abend
@outOfTopic: Ich wollt mir BlitzMax installieren und TvT compilieren, 62 Fehler.
Alles Rot und Blinkt ...
Der Link da unten, da geht der DL im ersten Post nicht - also hab ich mir BlitzMax per google gesucht/geladen, da fehlt irgendwas gravierendes. Ich wollt den Download von Dir hpts. wegen der "readme_deutsch.txt".
https://www.gamezworld.de/phpforum/viewtopic.php?id=13599
Und nicht vergessen
Heut ist Muttertag
Beitrag geändert von DannyF (14.05.2017 02:09)
Offline
Fuer das Kompilieren - neuen Thread aufmachen (und auch beschreiben, ob Du Linux, Windows, 32 oder 64bit ... haben willst).
64 Bit erfordert BlitzMaxNG
32 Bit geht mit NG und mit "vanilla" (Original)
32 Bit unter einem 64bit Linux erfordert die Installation von einigen Bibliotheken (hab dafuer ein "dependency script"). ...
Bei Windows liefere ich einfach in beiden Faellen MinGW mit und es sollte passen.
NG laesst sich auch mit vanilla kompilieren.
Wie gesagt: neuer Thread und dort bitte ein paar Details nennen (dann kann ich auch mit ner VM vor-ausprobieren).
Falls Du dich erstmal selbst versuchen willst - hier die Downloads fuer "NG".
https://github.com/bmx-ng/bmx-ng/releases
Damit solltest Du dann neuere BCC-Versionen kompilieren und auch die Module erneuern:
BCC (Compiler, nach BlitzmaxNG/bin): https://github.com/bmx-ng/bcc
BRL.mod (BRL Module, nach BlitzmaxNG/mod/brl.mod): https://github.com/bmx-ng/brl.mod
PUB.mod (Externe freie Module, nach BlitzMaxNG/mod/pub.mod): https://github.com/bmx-ng/brl.mod
TVTower nutzt "MaxMod2.mod" um Audio zu streamen und fuer NG hat Bruce das auch fuer uns angepasst (wegen 64 bit-Kompatibilitaet):
maxmod2.mod (MaxMod2, nach BlitzMaxNG/mod/maxmod2.mod): https://github.com/bmx-ng/maxmod2.mod
Damit sollte dann die TVTower.bmx kompilieren.
Hmm... ich sollte echt mal ueberlegen, eine "prepare_blitzmaxng_for_tvtower.sh" anzulegen
Bruce hat soetwas aehnliches sogar schon angelegt:
https://github.com/bmx-ng/bmx-ng/blob/master/setup_install.script
(damit kannst Du aus einer bestehenden NG-Installation ein "Paket" fuer verschiedene Platformen erzeugen - mit dem aktuellen Stand des Quellcodes).
bye
Ron
Offline
Themawechsel:
Darf ich Dich (Ronny) fragen was Du für PC Leistungen benutzt (insbesondere sdd / hdd)?
Mir ist auch aufgefallen das die Ladezeiten ansteigen, doch habe ich eine sdd + guten processor so dass ich etwa 2sek / 1000 Datensätze brauche. Den >8k datensatz Spielstand konnt ich noch nicht lesen.
Ich kann mir vorstellen wenn jemand das Spiel auf einen älteren Laptop + hdd spielt die vielen Daten nicht förderlich sind.
Hier wäre ein Ladebalken / blinkender Cursor oä. interessant, damit der User nicht denkt: "Absturz".
Das wären meine ersten Gedanken zu den dB's:
Offline
Ahh, Du meinst, dass zum Spielbeginn Dinge vorgefiltert werden... hmmm erhoeht die Startzeit (ja, auch hier kann man die "Standards" ja cachen...) und sollte den Speicherstand geringer halten.
Mein System ist alt :-)
model name : AMD A8-3850 APU with Radeon(tm) HD Graphics
00:01.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] BeaverCreek [Radeon HD 6550D]
8GB Ram
128GB SSD fuer OS + Programmierdaten (Kompilierung), "Sonstiges" auf 1TB HDD
Ich weiss, dass Gast2s Moehre noch aelter ist - und das wird so mancher aeltere Spieler vielleicht auch so haben (bis dann halt irgendwann wieder mal ein Neukauf/"muss"-Upgrade ansteht).
Einen wirklich schnellen Speicherstand kann man aber dann erzeugen, wenn alles "nachvollziehbar ist". Man speichert dann nur noch die "Interaktion" (Klicks, Tastendruecke) und die dazugehoerige "Runde". Beim Laden muss dann aber das ganze Spiel "vorgespult" werden (es wird sozusagen ohne Rendern "gespielt"). Deshalb waren die Warcraft III Speicherstaende und Replays auch immer so klein ;-)
bye
Ron
Offline
Niemand wird sein PC updaten für TvT (damit fällt AMD, Intel oder NVidia als Sponsor für Dich schon mal raus )
Die DefaultDb ist für alle PCs gut.
Wenn ich aber mit mehr Leistung unterwegs bin (oder beim Laden warten kann), kann ich mir ja noch 10.000 Celebrities dazunehmen, so dacht ich mir.
Das ist aber alles mom. in der vor-vor-Vorüberlegung.
Das Ziel wäre eine individuelle database_programmes und database_peoples / Nutzer die Bock drauf haben.
Offline
@ fuer TVT updaten
Nein das meinte ich nicht. Aber irgendwann faellt was kritisches aus ... und eine Komponente muesste erneuert werden und dann wird XY nicht mehr nutzbar und muss auch erneuert ... und am Ende kauft man sich doch fast n kompletten neuen PC :-)
Man koennte im Spiel auch einen neuen Bereich in den "Einstellungen" integrieren: "Spieleinstellungen". Und dort koennten neue "Pakete" konfiguriert werden ... also neue "DB-Sets" oder so.
Diese "Sets" bestehen neben dem "Standard"-Set und koennen dann bei Spielstart einfach aus einem "DropDown" ausgewaehlt werden.
Der Vorteil ist: man erstellt ein solches Set nur einmal und nutzt es dann immer wieder. Die Startzeit waere dann entsprechend viel kuerzer. Nachteil ist, das die "generierten Datensaetze"/Sets veralten koennen.
Umgehen laesst sich das nur, wenn nur ein Regelsatz definiert wird und dann bei Spielstart die komplette DB durchforstet wird.
@ Celebs
Die bringen es eigentlich nur, wenn man die entsprechenden Filme auch drin hat :-)
Und wenn man die Besetzungsliste auf "Regisseur + 2-3 Schauspieler/Moderatoren/..." limitiert, so kommt da auch weniger zusammen.
Dein Programm koennte sogar klever werden:
- es speichert mehr Personen (Hauptdarsteller und Nebendarsteller "getrennt")
- dann beginnt es die Filme zu beackern
- fuer jede Person wird die Anzahl an Filmen gespeichert
- Hauptdarsteller mit weniger "Filmen" sind fuer die Filme erstmal unwichtiger (mit denen wird dann nicht in Trailern "geworben")
- am Ende werden von den Filmen nur max 2 Hauptdarsteller und 2 Nebendarsteller uebernommen - und zwar die ersten 2 wenn die Personen nach "Filmanzahl" sortiert worden sind
- bei Nebendarstellern ist das wichtiger ("Prominenz") und vor allem dann, wenn nur 1er davon hinzufuegt wuerde
- anderer Ansatz ist: den Hauptdarsteller mit den wenigsten Filmen und den mit den meisten nehmen (hat ja n Grund, wenn manche nur 1 Film in ihrem Leben drehen...neben Tod ist das oft mangelnde Leistung/wenig Publikumsattraktivitaet)
Auch die Filme selbst koennen ueber die Schauspieler gefiltert werden (Mist: Kreuzabhaengigkeit ;-)). Es bringt nix, 85 Tom Hanks Filme drin zu haben, aber nur 1 Arnold Schwarzenegger.
Allerdings sollten "Serien" (Police Academy) trotzdem auch beruecksichtigt werden.
Hmm, auf jeden Fall bietet dies einiges an Potential, der Datenmenge einen Reduktionsriegel vorzuschieben.
bye
Ron
Offline
// Schon vorhanden? Ja -> Porminence +1 (bis max 9) um später Outcome zu berechnen.
...int prominent = Convert.ToInt32 (inhaltNeu.Substring (myPosition, 1));
if (prominent <= 8) prominent++;
Ich habe da schon was im Code (und in der database_peoples) benutze diesen Wert aber noch nicht. Dachte wenn Prominente Leute was drehen, dann wird es grundsätzlich schon mal outcome prodden.
Was mir auch gefallen würde, ist eine sharing Funktion, dass man seine Xml irgendwo ablegt, und das Programm ruft das Verzeichniss ab und ich könnte dann die RonnysMagErotikFilmDb.Xml bei mir integrieren mit dem "Größten Hits der 80, 90 und von Heute". spielen.
Dafür müßte die database_programmes & peoples ~ 2 neue Tags (Titel, Beschreibung) und vielleicht 2-4 neue Attribute bekommen.
<tvgdb>
<version value="3" />
<Daten kat="Fun" cpu="3" time="1985-1990" ... >Danny's Lieblingsfilme 1985</Daten>
<beschreibung>Hier hat der Spieler Danny besonderen Wert auf Filme von Bud Spencer und Jackie Chan gelegt.</beschreibung>
<allprogrammes>
...
Offline
@ Daten und Beschreibung
<meta>
...
</meta>
dann haette man es gleich schoen gruppiert.
@ Prominente was drehen
Ja, die Filme werden ja nicht mehr "produziert" - und da die Personen ja nicht fuer die Eigenproduktion vorgesehen sind, bekommen sie auch keine "XP" oder so fuer die Filme.
Koennte man aendern - und jeden Film quasi "fertigproduzieren" - so dass der Cast von dieser Produktion erfaehrt und Attribute/XP... sich anpassen.
bye
Ron
Offline
Du kannst da nirgends ansetzen - also ausser Du schreibst was in BlitzMax :-)
Idee ist: jeder Film der "veroeffentlicht wird" (das geschieht schon - also alle Filme laufen im Kino, dann Videotheken und dann TV ... oder gleich im TV bei "TV-Produktionen) koennte als Extra auch eine simple "Produktionsfertigstellung" bekommen. Dann muessten Tempo, Kritik ... zurueckgerechnet werden in ein "Potential" - aus dem dann wiederum erkannt wird, wieviel Erfahrung es dem Schauspieler, Regisseur ... gebracht hat.
bye
Ron
Offline
ich alter schussel hab einen freund auf euer projekt aufmerksam gemacht, ich wollte die musikproduktion machen, der meinte damals, du lernst auch noch zu programmieren, jaha, haben wir auch assembler auf x86, lief bloss nicht, später ging es etwas besser als wir bei metager waren, hatten zum start 8% MA in DE mit stetig abnehmender tendenz, martin (aufschwung ost amiga) ist inzwischen doktor, ich wieder student der gartenbauwissenschaften, aber hier die frage: darf man wirklich mitmachen? egal die doof und/oder alt man ist?
main.bmx? ich dachte das heisst .cpp und hat nix mit fahrrädern zu tun^^
Offline
Ein wenig "durch den Wind" ist deine Schreibe aber schon, oder kommt das nur mir so vor?
Ich denke mitmachen ist immer moeglich (github - fork und los gehts).
@ DannyF
Eventuell die nachgestellten Artikel ", Der" wieder vorziehen?
bye
Ron
Offline
@Bären, Die
So wird es das schon nicht mehr geben:
https://github.com/DerDannyF/CSharp-XML-API/wiki/fixed
-alles mit [TV-Serie] im Titel (done12.05.17)
-Alles mit ,Der ,Die ,Das ,The ,Eine ,Des im Titel (done12.05.17)
dafür staubst du keinen Report ab
Ich muss mal aktuellere Spielstände uppen.
bin so busy
@tosh: selbst beim 2ten mal lesen ... Rätselhaft.
Offline
How did it come to this? It turns out bandwidth costs money! CloudFlare has been mitigating this for us, but any option without them would merely transfer these costs to the hosting provider. The invoice image above was a two week simulated rate limiting test (that CloudFlare accidentally charged me for), which is exactly the price range I estimated for a full month $2,500-3,000+
Die Begruendung ist aber schon ein wenig scheinheilig oder sagen wir eher "absichtlich schwammig". Der Betreiber bekam eine Rechnung fuer einen _Test_ der am Limit einer festgelegten Grenze gefahren worden ist.
"Hey, lastet mal bitte den Server aus ... was wuerde das dann kosten?".
@ IMDB Api
https://github.com/tboothman/imdbphp
(erzeugt Caches)
Mal ein weiterer Ansatzpunkt:
http://www.jmdb.de
zum Verarbeiten von:
http://www.imdb.com/interfaces
(kompletter IMDB-Datensatz)
Ansonsten gibt es ja immer noch die themovieDB
https://www.themoviedb.org/faq/api
Hoffe Du+"Interessierte" findet einen Weg mit dem neugeschaffenen Dilemma.
bye
Ron
Offline
Es existieren noch etwa 7k valide-Cache Daten bei mir.
Ich habe das chic gemacht (unter /release) und
nun ist erst einmal schluss mit "testen api".
Das Ziel von 10k Filme ist vorerst nicht realistisch, "ofdbgw" liefert auch nur noch (nicht vollständige) Daten
- habe dort jetzt 100k Datensätze durchforstet...
für langsamere Rechner:
+3k Filme:
für schnellere Rechner:
+6.3k Filme
Beides + mein Cache stelle ich frei unter...
https://github.com/DerDannyF/CSharp-XML-API/tree/master/release
Offline
Zwecks "Langsame Rechner" - ich empfinde die "Darsteller" jetzt nicht ganz so wichtig wie die Menge an Programm. Es waere also vielleicht praktisch, die Anzahl an "Besetzung" limitieren zu koennen, einfach auch, um die Datenmenge im Griff zu halten.
Auch die angesprochene "pro Jahr"-Limitierung waere vielleicht ganz praktisch. Im Hinblick auf "Streaming" und andere Neuerungen ist ein Spielbetrieb nach 2010 eh nicht mehr sooo prickelnd bzw. realistisch. Ein Spiel, das 1985 beginnt koennte also entsprechend in den neueren Jahren mit weniger Filmen ausgestattet werden.
@ Zahlen
Ich finde selbst 1.000 Filme, sofern "irgendwie schon ganz gut balanciert/funktionierend" schon eine Zahl, die so manchem hier gefallen koennte.
bye
Ron
Offline