WiP - Work in Progress - Part XVIII

Übersicht Sonstiges Projekte

Gehe zu Seite 1, 2, 3, 4, 5, 6, 7  Weiter

Neue Antwort erstellen

BladeRunner

Moderator

Betreff: WiP - Work in Progress - Part XVIII

BeitragSo, Jan 15, 2012 22:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Willkommen zur 18. Runde der Vorstellungsrunde für eure laufenden Projekte.

Beachtet bitte die geltenden Regeln.

Und seid natürlich produktiv, ihr Lieben Smile

Zuletzt beehrte uns Nicdel mit einem ConsoleClient für Minecraft.
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

skey-z

Betreff: WIP - The GodGame

BeitragMo, Jan 16, 2012 20:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute,

da ich hoffe, dass es mich noch etwas mehr motiviert, zeige ich euch heute mal, woran ich gerade arbeite.

user posted image

Das spiel nennt sich The GodGame, zumindest vorerst, es ist eine Adaption von Solar°Sytem, einem Spiel welches ein Jahrgang der Mediadesign Hochschule in Berlin vor ca. 1 Jahr entwickelt hat.
Leider ist es nach meiner Recherche nicht fertig geworden, auf eine E-Mail von den Verantworlichen warte ich gerade noch.

Wer etwas über das Original wissen möchte schaue sich folgende Links an

Projektseite Solar System
Webseite eines (ehemaligen) Studenten

Und das ganze wurde von Eurogamers.de/Create begleitet, aber es fehlen die letzten 2 Kapitel, sowie auch Informationen auf der Projektseite, deshalb kann ich nicht sagen, ob es im Rahmen des Projektes fertiggestellt wurde.

Da mich dieses Projekt damals fasziniert hat, vor allem weil man den professionellen Erschaffungsprozess direkt mitverfolgen konnte, hatte ich seither die Idee dieses Spielkonzept für mich selber um zu setzen.

Nun also zu meinem Ansatz, da es schon ein Design Dokument gab, konnte ich davon viel übernehmen und auch lernen, wie man es kurzfristig umsetzen kann.

In dem Spiel geht es darum, dass man sich als junger Gott gegen 3 weitere Spieler/junge Götter in einem Sonnensystem durchsetzen muss.

Zentrales Element des Spiels sind die Elemente(Gas, Gestein, Wasser, Land und Gottpartikel) selber.
Mit den ersten beiden lässt sich die größe eines Planeten erstellen, in der heißen und kalten Zone bestimmt dann der Anteil dieser, was für ein Planet es wird.
Gas, Gestein, Magma, Wüste und Eis.
Wird der Planet in der gemäßigten Zone erstellt, kann der Spieler durch die Elemente Wasser und Land bestimmen, was aus dem Planeten wird, Erdähnlich, Wasser, Dschungel.
Durch den Gottpartikel kann Leben auf den Planeten der gemäßigten Zone erstellt werden, sowie auch einfaches Leben auf allen Gasplaneten.

Um Spieltiefe hinein zu bekommen gibt es Gottfähigkeiten, da bin ich mir noch nicht sicher, ob diese gekauft oder pro Spieler zufällig eine gewisse Anzahl verteilt werden, damit können zB eigene Planeten geschütz oder andere Planeten angegriffen werden.

Zum aktuellen Stand:
-Grafikfenster anhand einer INI-Datei erstellen
-Orbit/Umlaufbahnen als Disk(offene Scheibe) erstellen
-Planeten erstellen, Zone hat auswirkung auf die Farbe und sie bewegen sich auf der Umlaufbahn
-Monde, je Nach Planetengröße erstellen

Ich weiß, es hört sich nach nicht viel an und ein großer Teil steht noch bevor, aber die Grundfunktionen sind vorhanden, darauf kann nun einzelnd aufgebaut werden

ToDo's(grob und nach Wichtigkeit):
-Elemente in Sonne und Planeten generieren
-Planetentypen erstellen(durch hinzufügen von Elementen)
-InGame Menü für Planeten und Monderstellung, sowie Fähigkeiten erstellen
-Asteoriden mit Elementen erstellen
-Fähigkeiten benutzen
-Skybox erstellen
-Sonnensystem anhand einer XML-Datei generieren
-Objekte texurieren, für die Grafikjunkies Wink
-Multiplayerfähig machen, anders als beim 'Original'
-Menü mit verschiedenen Galaxien und Sonnensystemen erstellen

Kurz noch ein Bild, damit ihr euch das ganze ein wenig besser vorstellen könnt

user posted image


Sobald es eine spielbare Version gibt, werde ich auch ein WL erstellen, zuvor wird aber auch noch ein wenig Zeit vergehen, da ich hauptsächlich nur am Wochenende zeit dafür habe.
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

Xeres

Moderator

BeitragMo, Jan 16, 2012 20:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Sieht ganz interessant aus - viel Erfolg dabei!
Übernimm dich bloß nicht mit Features.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

skey-z

BeitragMo, Jan 16, 2012 21:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Ne, da habe ich ja schon Erfahrung mit, also mit dem übernehmen Wink

Ich lasse mir schön Zeit damit und eines nach dem anderen, zuerst die wichtigsten Funktionen und dann das hübsche.

Auch wenn ich schon viele Ideen hatte, meistens habe ich es mir mit sehr kompliziertem Code verbaut und hatte dann keine Lust neu an zu fangen.

Allein 1 Tag ist schon fast drauf gegangen, weil mir Atan2 komische Ergebnisse geliefert hat(0 oder-180), also den betreffenden Teil noch mal komplett neu gebaut und es klappt, warum auch immer.
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

Eingeproggt

BeitragDi, Jan 17, 2012 0:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Neue Runde des WiP und ich gebe mir selbst die Ehre hier von meiner Datenbank weiter zu erzählen.

Nach einem eher chaotischen Wochenende (Ich werde nicht müde zu erzählen wie müde ich nach meinem ersten Nachtdienst bin... In der Nacht Saufen oder Arbeiten sind 2 verschiedene Paar Schuhe Confused ) hab ich nun heute meine ersten Schritte in Richtung select gemacht.

Ich sags gleich vorweg: Es hebt das Schwierigkeitsniveau dieses Projekts in noch nicht gekannte Höhen. Das Parsen krieg ich mit meiner stupiden Routine schon sehr gut hin aber dann die gewonnen Informationen so zu verarbeiten dass am Ende das Richtige rauskommt... nicht so einfach! Denn für den interessierten Leser hier eine kleine selbst geschriebene Erklärung der Syntax (SQL allgemein, sollte nichts mit MySQL oder meinerm Projekt zu tun haben):

SELECT feld1
FROM `tabelle`

Der einfachste Fall. Jeder für den mein Beitrag hier interessant ist sollte das verstehen ohne dass ichs erkläre.

SELECT datenbank.tabelle.feld1 as feld_alias, tab_alias.feld2
FROM datenbank.tabelle as tab_alias
WHERE tab_alias.feld3 = 'ein bestimmter Wert'

Und hier gehts gleich mal hardcore weiter. Die farblichen Hervorhebungen sollen die Zusammenhänge erkenntlich machen. Wenn euch das soweit klar ist dann stell ich die entscheidende Frage: Wie macht man das einem Computer klar? Razz Wir haben also viiiiele Optionen, sowohl im SELECT-Teil als auch bei FROM und WHERE. Wir können die Akut-Zeichen (`) verwenden, müssen aber nicht. Dann haben wir Datenbanken bzw. Tabellen (deren Angabe teilweise optional ist, also mit der nicht gerechnet werden darf). Zu dem kommen die Alias-Bezeichnungen und die "normalen" Werte (Strings hier in einfachem Anführungszeichen ('))

Ok, aber bevor ich mich noch weiter in Details verliere hier mal die gute Nachricht:
All das kann ich schon verarbeiten! (naja, fast alles... bei den Strings hab ich noch das Problem dass blind einfach alles mit Lower behandelt wird und somit einige Abfragen auf Groß / kleinschreibung nicht klappen)

Also beispielsweise habe ich folgende Tabelle ("typ" ist mein interner Datentyp):
Code: [AUSKLAPPEN]
Datenbank: datenbank
  Tabelle: test
      |name|alter|noch was|
      |BEC|14|0.0|
      |DWM|20|0.0|
      |VUT|27|0.0|
      |HLA|29|0.0|
      |UBK|33|1.0|
      |DKD|42|0.2|
      |MRK|62|0.0|
      |franz|64|0.0|
      |MLD|74|0.0|
      |OMX|75|0.0|
      |ATQ|90|0.0|


und einfache Select-Queries liefern schon das Richtige Resultat, zB:
Code: [AUSKLAPPEN]
select * from test where `alter`>50;
      |MRK|62|0.0|
      |franz|64|0.0|
      |MLD|74|0.0|
      |OMX|75|0.0|
      |ATQ|90|0.0|


oder:

Code: [AUSKLAPPEN]
select test.Name as hallo, t.`Alter` age from test t where `noch was`!=0;
      |UBK|33|
      |DKD|42|


Doch ich will und kann nicht verschweigen dass ich großen Problemen gegenüber stehe. Meine anfängliche Zurückhaltung gegenüber Joins werde ich vermutlich rasch überwinden, denn auch wenn es auf großen Datenmengen eher nicht performant zugehen wird, so ist die Grundidee ja doch recht einfach. Und Joins sind immerhin ein Schlüsselkonzept in relationalen Datenbanken. Außerdem will ich so Sachen wie von ZEVS angesprochen umsetzen mit "WHERE tabelle1.verweis=tabelle2.id"
Was uns aber gleich zum 2. Problem führt... meine bereits implementierte Suche kommt nur mit einer Tabelle klar... Ob es nun so einfach geht dass ich die Tabellen zuerst zu "einer großen" joine und in der dann suche... oder ob da eine neue Idee her muss - das werd ich mir in nächster Zeit anschauen.
Genauso wie ich dann je nach Lust und Laune die "einfachen Zusatzfeatures" einbaue wie LIMIT und ORDER BY.

Soweit von meiner Seite, Fragen sind immer gern gesehen.

mfG, Christoph

PS: In dem ganzen Geschreibsel hab ich komplett vergessen: beim WHERE kann ich noch kein and / or... aber das sollte schnell gehn.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

ozzi789

BeitragDi, Jan 17, 2012 17:20
Antworten mit Zitat
Benutzer-Profile anzeigen
ieXtractor rippt mittels einer third party exe sämtliche icons aus einer exe, und speichert diese ab.
Nun können diese angezeigt werden, dies auch skaliert.
Dinge wie CLS Color und Mask Color können bequem ausgewählt werden.

Exportiert wird als bmp/jpg/png skaliert oder in der Originalgrösse.
Sämtliche Einstellungen sowie Fensterposition werden gespeichert.


user posted image
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Eingeproggt

BeitragDo, Jan 19, 2012 2:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein Bild sagt mehr als 1000 Worte, daher eröffne ich mit einem Bild als "Inhaltsverzeichnis" diesen Beitrag:

user posted image

(1) Crossjoin: großes Kreuz in der Mitte
(2) Löschen: rechts oben
(3) Sortierung: links oben
(4) Limit: Zange rechts unten
(5) Statistik: links unten

Zuerst einmal hab ich wie angekündigt den Crossjoin (1) umgesetzt. 2 Tabellen nehmen und eine große neue daraus erzeugen is ja nicht sooo schwer gewesen. Und Laufzeit ist mir erstmal egal.

Problematisch war dann nur das Löschen (2). Da bin ich drauf gekommen dass das nicht so sauber über die Bühne ging bisher (Aus einer Tabelle wurden alle Daten gelöscht... Nur Strings nicht). Das musste überarbeitet werden. Und wie man das so gut kennt zieht diese Änderung natürlich viiiiele andere Änderungen mit sich. Denn beim Crossjoin wurden die Daten nicht "aus den Tabellen übernommen" sondern vielmehr "dorthin verlinkt".... was natürlich Probleme aufwirft wenn man mit Löschen anfängt wie man sich denken kann. Wie auch immer, alles gelöst Smile

Beim Select war ich ja ursprünglich und da kam Sortierung (3) (Order-by) und Duplikate-entfernen (Distinct) dazu. Wobei zu sagen wäre dass ich im Moment nur nach einem Attribut sortieren kann und somit auch Distinct nicht wirklich sauber arbeitet... da es sich nur auf ein Feld anstatt aufs gesamte Ergebnis bezieht.
Weiters gibt es noch die Option, den Select-Zusatz "Limit" (4) anzuwenden.

Zu guter Letzt eine kleine Statistik (5) (Danke an den Profiler):
In 14 Code-Dateien befinden sich 94 Funktionen auf 3708 (mittelmäßig kommentierten) Zeilen.
Und damit ich auch was "konkretes" aufzeigen kann: Eine Datei mit 20 Queries (gemischt: Create Table, Insert und Select. Zusammen 2.83kb mit SQL-Kommentaren) wird in 31ms ausgeführt, wobei 2 ms fürs Parsen drauf gehn und 29 fürs eigentliche "ausführen". Das macht ~1.5sek pro Query, ohne Debugmode. Find ich eine ganz brauchbare Zeit Smile Leider sind kaum Daten vorhanden, in jeder der 5 Tabellen sind max. 10 Einträge...

Ein kleiner Ausblick noch: Ich werde beim Select weiter schauen dass ich möglichst viel davon sauber unterstütze (and-or-Verknüpfung bei Where vor allem, aber auch Group-By oder das Sortieren nach mehreren Kriterien gehören da dazu). Und erst dann schau ich mir was neues an... event. Alter Table oder was mich auch reizen würde, der Blob-Datentyp (obwohl ich den nie verwende...)

Dann mal bis zum nächsten mal,
mfG, Christoph.

PS: Ja, das Bild da am Anfang is nur als Blickfang gedacht damit die Leute meinen Beitrag auch wirklich anschauen.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

ozzi789

BeitragDo, Jan 19, 2012 18:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Wow scheint ja echt vorwärts zu gehn!
Den Speed find ich auch ganz beachtlich Cool
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

theotheoderich

BeitragDi, Jan 24, 2012 1:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Habe an meinem Terraria Clone weitergearbeitet....

Neu hinzugekommen (ausser jeder Menge Bugfixes)
- einfache Holztüren (haben mich zwei Abende Arbeit gekostet)
- Grundlagen eines Partikelsystems (vorerst nur bei Fackeln...im Screen nicht wirklich zu erkennen)
- Laden / Speichern von Karte, Objekten, Inventory

user posted image
....klick mich zum vergrößern....

ToDo:
- Crafting
- Kisten
- Bewegungsanimation der Figur
.....1000 Dinge.....

mal sehen, wie lange meine Motivation anhält Very Happy
Gruß
TheoTheoderich
--
The box label said, "Requires Windows XP or better.", so I bought an Amiga Computer.

BladeRunner

Moderator

BeitragDi, Jan 24, 2012 7:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Matthias hat Folgendes geschrieben:
Hay.

Die einfachste Möglichkeit in Blitz eine Landschaft zu realisieren ist der Befehl LoadTerrain.
Dann lädt man eine Textur und legt sie über das Terrain und fertig.
Leider ist die Auflößung auch sehr niedrig.

Das Terrainsystem was ich jetzt vorstelle unterstützt bis zu 7 Texturebenden.
Was eine bessere Auflösung ermöglicht.

Sowie ein dreistufiges Level of Detail System.
Außerdem noch eine Automatische Autotexturierung.

Ich habe versucht möglichst wenige Befehle zu benutzen
um die Benutzung zu vereinfachen.

Ein Beispiel.
Code: [AUSKLAPPEN]

Graphics3D 1024,768,32,2
Include "World.bb"
Timer=CreateTimer(60)
CamPA=CreatePivot() PositionEntity CamPA,256*8,5,256*8
CamPB=CreatePivot(CamPA) RotateEntity CamPB,22,0,0
Camera=CreateCamera(CamPB) PositionEntity Camera,0,0,-130
Light=CreateLight() TurnEntity Light,45,45,0
CameraClsColor Camera,0,0,255 SetBuffer BackBuffer()
Setup()

Repeat
   If KeyHit(57)=1 Then WFrame=1-WFrame WireFrame WFrame
   X=MouseX()-MX Y=MouseY()-MY
   Z=(MouseZ()-MZ)*-EntityZ(Camera)
   MD=MouseDown(1)+MouseDown(2)*2+MouseDown(3)*3
   MZ=MouseZ() U#=EntityZ(Camera)*-.001
   If Z<>0 Then MoveEntity Camera,0,0,Z*.2                 
   If MD=2 Then TurnEntity CamPA,0,-X,0
   If MD=2 Then TurnEntity CamPB,Y,0,0
   If MD=3 Then MoveEntity CamPA,X*U,0,-Y*U
   If MD<>3 Then MX=MouseX() MY=MouseY()
   
   X=EntityX(Camera,1)/8 Z=EntityZ(Camera,1)/8
   World_Update(X,Z,1000/8)
   
   RenderWorld()
   Tris$="Triangles:"+TrisRendered()
   Color 0,0,0 Text 10,10,Tris
   Color 255,255,0 Text 9,9,Tris 
   Flip 0:WaitTimer(Timer)
Until KeyDown(1)=1 End

Function Setup()
   P$="MeineWelt\"
   Terrain=World_LoadTerrain(P,"HeightMap.png")
   ScaleEntity Terrain,8,60,8
   AddTex(Terrain,P+"WGround1.png",32,32,1)
   AddTex(Terrain,P+"WGround2.png",16,16,20)
   AddTex(Terrain,P+"Sand.png"    , 8, 8,30)
   AddTex(Terrain,P+"Gras1.png"   , 8, 8,40)
   AddTex(Terrain,P+"Fels1.png"   , 8, 8,120)
   AddTex(Terrain,P+"Rock1.png"   , 8, 8,255)
   World_SetAutoTex()
End Function
 
Function AddTex(T,Textur$,ScaleX,ScaleZ,Lev)
   Tex=LoadTexture(Textur):ScaleTexture Tex,ScaleX,ScaleZ
   World_TerrainTexture(T,Tex)
   World_SetAutoTexLevel(T,Tex,Lev)
End Function   


Den Beispielcode sowie die Lib könnt ihr hier laden.
http://www.file-upload.net/dow...m.rar.html

Ohne pix saug ich nix.
user posted image

Es ist noch einiges zu tun. zB Beleuchtung, Manuelles auftragen von Texuren und einiges mehr.

Mangels Rückmeldung auf eigene Faust hierhin verschoben.
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

Eingeproggt

BeitragDo, Jan 26, 2012 16:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Ein kleiner Ausblick noch: [...] and-or-Verknüpfung bei Where [...] Group-By [...] Sortieren nach mehreren Kriterien [...] Blob-Datentyp

Wer kann sich noch erinnern? Wink
Ziemlich genau eine Woche her... und seither hat sich einiges getan. Das Sortieren nach mehreren Feldern ist möglich... Leider etwas "suboptimal" aber ich denke noch vertretbar. Also zuerst wrd nach einem Wert mit Quicksort sortiert und anschließend mit plumpen Bubblesort nach den anderen. Für Quicksort hätte ich alle Daten nochmal neu in die "Sortier-Types" bringen müssen und außerdem gehe ich davon aus dass meist nur nach einem Feld sortiert wird und wenns mal anders kommt sollte es sich um eine halbwegs vorsortierte Reihenfolge handeln - so der Plan.
Blob-Datentyp hab ich gleich wieder vergessen da meine aktuelle String-Speicherung ohnehin sowas in der Art ist, also kein Bedarf danach Wink

Der Code wurde dann über weite Strecken komplett umgegraben (kennt man ja... man fängt so schön sauber an und irgendwann kommt man dann drauf dass man um ein "nahezu Rewrite" nicht herum kommt Rolling Eyes )
Auslöser dafür war das and / or... Ja, diese 2 Wörter haben mir soviel Arbeit beschert. Hätte ich mir leichter vorgestellt, denn an sich konnte ich diese Verknüpfungen schon unterstützen... Aber geklammerte Ausdrücke waren nicht drin. -> es gibt nun n Parser / Auswerter für arithmetische Ausdrücke (was anfangs nur als "wenn-ich-gut-drauf-bin-Feature" geplant war)
Mit dieser Kanone kann ich nun die Spatzen-And's wegblasen Laughing

Und um mal wieder Einblicke zu gewähren, hier ein Beispiel:
Code: [AUSKLAPPEN]
select * from jointest.person2
where ((nachname='Maier' and plz=1100) or plz=(1200));

Wird in einem ersten Schritt zu
Code: [AUSKLAPPEN]
select * from jointest . person2 where ( ( nachname = 'Maier' and plz = 1100 ) or plz = ( 1200 ) )

und weiter zu einem anfänglichen Parsebaum:
Code: [AUSKLAPPEN]
- select
 - *
 - from
 - jointest
 - .
 - person2
 - where
  - (
   - (
   - nachname
   - =
   - 'Maier'
   - and
   - plz
   - =
   - 1100
   - )
  - or
  - plz
  - =
   - (
   - 1200
   - )
  - )

Daraus lese ich schonmal die Felder in Select (hier nur *) sowie die Tabellen in From (hier nur eine obwohl Crossjoins super klappen Wink ) aus. Und der Where Ausdruck wird Spezial-behandelt. Nach einer relativ aufwendigen Auswertung die auch die Priorität der Operatoren von selbst beachtet kommt sowas raus:
Code: [AUSKLAPPEN]
- OR [operator]
 - AND [operator]
  - = [operator]
   - ( [Datenbankzugriff]
    - 5
    - 4
   - Maier [String]
  - = [operator]
   - ( [Datenbankzugriff]
    - 3
    - 8
   - 1100 [Int]
 - = [operator]
  - ( [Datenbankzugriff]
   - 3
   - 8
  - 1200 [Int]

Wobei die Ausdrücke in eckigen Klammern der "interne Typ" der jeweiligen Node ist. Beim "Datenbankzugriff" wurde kräftig optimiert (auf Deutsch: herum gepfuscht). Ich versuche gar nicht sie zu erklären, wer Interesse hat darf sich gerne melden, aber glaubt mir einfach dass ich mit den 2 Zahlen (5,4) bzw. (3,8) auf das gewünschte Feld zugreifen kann Wink
Und letztendlich werden diese nahezu nur noch "elementaren" Knoten schnell ausgewertet und fertig sind wir. Ich erkläre aber auch gerne das größte Problem, siehe hier:
BlitzBasic: [AUSKLAPPEN]
If args[0]\typ=DB_SQL_NODE_TYPE_FLOAT Or args[1]\typ=DB_SQL_NODE_TYPE_FLOAT Then
Return Float(args[0]\value$) = Float(args[1]\value$)
Else
Return args[0]\value$ = args[1]\value$
EndIf

Das ist der Ausschnitt der mir das = auswertet... für JEDEN Operator den ich unterstütze (welche das genau sind kommt ein andermal) hab ich so nen Block... Ziemlich unprofessionell Sad
Aber wie könnte man das anders lösen? Also in meinen "Parsebaum-Knoten" sind nur Strings drinnen... Wenn man nun "0.0" mit "0" vergleicht kommt "ungleich" raus obwohl man die beiden Zahlen nach Typecast ja als identisch ansehen würde. Wie soll ich nun "automatische Typecasts händisch machen"? (ein Widerspruch in sich ^^ Gemeint sind die Typecasts die zB in BB automatisch erfolgen muss ich auch berücksichtigen bei meiner Auswertung) Mir fiel mit BB-Bordmitteln keine Lösung ein für das Dilemma. Und mit Funktionszeiger-Libs herum tun wollte ich nicht, hätte wohl nur zu MAVs geführt...

Mit "MAV" sind wir schon beim nächsten Kapitel. Nachdem ich alles umgewurschtelt habe wollte ich natürlich wieder die Peformance testen... Doch da hab ich vorhin ganz schön dumm aus der Wäsche geguckt... Wenn man den aktuellen Code durch den Profiler jagt und und ihn "normal" ausführt gibts n MAV... führe ich ihn im Debugmode aus, gehts. Und führe ich meinen Code ohne Profiler aus gehts auch...
Somit hab ich jetzt unfreiwillig nur noch Debugmode-Werte, und die sehen deutlich schlechter aus als zuvor. Ich stehe bei ~15ms pro SQL-Query. Klar wird mein Parser das Geschehen etwas einbremsen... Aber auch der Debugger braucht seine Zeit weshalb ich jetzt nicht weiß wie aussagekräftig der Wert ist Sad

Na jedenfalls hab ich dem interessierten Leser genug Stoff für den Donnerstag Abend beschert - Viel Spass!

Fahrplan für die nächste Zeit: Select und Extras endlich mal auf die Seite legen, Alter Table machen zur Abwechslung Wink Und bevor ich mich Update und Delete zuwende werd ich Select mal durchtesten... event. auch mit eurer Hilfe? Ich meld mich sobald es spruchreif wird!

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

Lobby

BeitragSa, Jan 28, 2012 22:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Last Start

Last Start ist ein Tool welches rechts unten über der Taskleiste Informationen über den Akkuzustand sowie den Zeitpunkt des zuletzt Hochfahrens des Rechners angibt (letzteres zu Überwachsungszwecken des eigenen Rechners).
Neben dem aktuellen Akkuladezustand wird auch angezeigt, wie lange der Akku noch hält oder wie lange es noch dauert, bis er aufgeladen ist. Da leider die Hardware einiger Laptops von sich aus keine Information hierzu angibt (und auch Windows sich keine errechnet), wird in solchen Fällen einfach anhand des sinkenden/steigenden Ladezustands ein ungefährer Wert ermittelt und dieser stattdessen angezeigt (einer der Hauptgründe für mich, dieses Minitool zu schreiben).

user posted image
Die verbleibende Zeit hier wären ungefähr vier Stunden und eine Minute

Per Rechtsklick lassen sich zusätzliche Optionen wie Transparenz und 'Immer im Vordergrund' über ein Kontextmenü auswählen. Da das Programm sehr rechenleistungssparend programmiert ist, fällt es im normalen Betrieb nicht weiter auf (nach Taskmanager bei mir dauerhaft 0% CPU-Auslastung seitens des Tools). Umgesetzt ist das Progrämmchen in BlitzMax unter Zuhilfenahme von Maxgui und ein paar WinAPI-Befehlen zum Auslesen des Akkus.

Zu Downloaden ist das Programm hier.

Um das Minitool bei jedem Computerstart automatisch starten zu lassen, muss man es manuell im Autostart verknüpfen (aber wer will das schon).
TheoTown - Eine Stadtaufbausimulation für Android, iOS, Windows, Mac OS und Linux

Nicdel

BeitragSa, Jan 28, 2012 23:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Sieht gut aus.
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

Thunder

BeitragSo, Jan 29, 2012 19:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Lobby: Schaut bei dir ja echt gut und nützlich aus. Bei mir ist aber leider der Text verschwommen... Sad
user posted image

Ich hab es auch schon mit anderen Transparenzwerten versucht, keine Änderung (bis auf die Transparenz).

mfg Thunder

Lobby

BeitragSo, Jan 29, 2012 20:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey thunder, möglicherweise rührt der verschwommene Text von einer schlecht eingestellten Mipmap-Texturen-Qualität. Obwohl das keinen Einfluss haben sollte, hat es scheinbar einen. Also einfach mal in den Einstellungen deiner Grafikkarte nachsehen Wink .
TheoTown - Eine Stadtaufbausimulation für Android, iOS, Windows, Mac OS und Linux

Thunder

BeitragSo, Jan 29, 2012 20:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Deine Vermutung scheint zu stimmen, danke!
Ich musste in den 3D-Einstellungen meines Intel-Chips unter der Registerkarte 3D ein Häckchen bei "Benutzerspezifische Einstellungen" machen und die Texturqualität von Leistung auf Balance oder Qualität ändern. - Für den Fall, dass es ähnliche Probleme gibt.

Eingeproggt

BeitragDi, Jan 31, 2012 1:22
Antworten mit Zitat
Benutzer-Profile anzeigen
"Der Mensch ist doch ein Augentier
Und schöne Dinge wünsch' ich mir"
(Zitat aus dem Liedtext von Rammstein - "Morgenstern")

Und für euch Augentiere hab ich jetzt was Smile
user posted image

Ja da schaut ihr, gell? keine langen und breiten Erklärungen mehr gefolgt von trockenem Code... nein, was buntes und wunderschönes *ausflipp*
Naja, zurück zur Realität: Hier sieht man den heute binnen weniger Stunden entstandenen Versuch, ein User interface zu bauen mit dem man mein Datenbanksystem etwas bequemer bedienen kann... natürlich vor allem zu Testzwecken. Aber ich sags gleich: Es gibt jetzt noch keinen Download... das Ding is wirklich nur dazu da um mal was graphisches in Händen zu halten. Und es ist ungefähr so fertig wie die Griechen mit ihrem wirtschaftlichen Aufschwung Razz

Kurz erklärt:
1.) Optionen: "Import" öffnet ne SQL-Datei, bei "Enter" kann man selbst was eintippen (siehe auch 5)
"Help" öffnet eine anfängliche HTML-Hilfe im Browser... die werdet ihr noch früh genug genauer sehen dürfen Wink
2.) Auswahl der Datenbank / der Tabelle. Dazu sei event. gesagt dass die Datenbank "default" einfach immer existiert... weil ich mir das so einbilde *punkt*
3.) Statusmeldung... muss noch genutzt werden. Soll dann später mal ähnliche Infos wie die farblichen Meldungen von phpMyAdmin enthalten (Fehler, Ausführungsdauer, Anzahl der Datensätze)
4.) Ein kleines Kunstwerk: Multi-Column-Listboxen mit "blitzUI" (Insider wissen dass das meine Lieblings-GUI ist und mehrspaltige Listboxen fehlen einfach... die hab ich halt aus mehreren zusammen gebastelt und ihre Auswahl sowie ihre Scrollposition "verlinkt")
5.) Möglichkeit, SQL-Queries direkt einzugeben

Joa, das wars auch schon wieder. Hinter den hier abgebildeten Kulissen hab ich mit Delete angefangen, allerdigns geht da nur mal der Syntax für eine Tabelle, nicht für mehrere.

Wünsche euch n schönes Wochenende!
ups, Ferien haben gerade erst angefangen und ich hab schon das Zeitgefühl verloren ^^

mfG, Christoph
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

ozzi789

BeitragDi, Jan 31, 2012 9:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Wow da geht aber was! Cool
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Eingeproggt

BeitragFr, Feb 03, 2012 1:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja da geht wirklich was - und jetzt noch viel mehr Smile

Ich hab ein wenig rumgefeilt und präsentiere nun einen aller ersten bleibenden (*) Eindruck.
(*) "bleibend", weil er zum Downloaden ist und somit auf eurer Festplatte "bleiben" kann ^^

Das wichtigste: Download

Das zweitwichtigste: Screen (nur verlinkt weil er dem zuvor geposteten sehr ähnlich sieht. Danke übrigens an ozzi der für die Testdaten gesorgt hat Wink (Ich darf die eh herzeigen?))

Erklärung:
Man öffne die Datei DB_Demo.bb und führe sie aus. Geschrieben in B3D, sollte auch in B+ laufen. Hab extra die Copy&Paste-Funktion in der blitzUI rausgenommen damit es ohne decls lauffähig ist und ihr somit schneller zum rumspielen kommt Wink (Wer trotzdem Copy&Pasten will der kann das "innerhalb" des Programms, jedoch nicht Windows-weit)
Falls Interesse an einer Exe besteht, bitte laut schreien! Falls nicht so sei dazu gesagt dass ich hier 4883 Zeilen Code herschenke, also bitte Feedback Wink

So, für alle die schon genug haben: Viel Spass und falls der eine oder die andere SQL-interessierte sich ein paar Minuten hinsetzen könnte und mal ein paar Tests macht würde ich mich über jede Rückmeldung freuen. Auch über Bugmeldungen, eh klar!

Einschränkungen dieser Demo:
Soviele dass ich sie kaum aufzählen kann... Also von den "bekannten SQL-Befehlen" fehlt noch Update und Alter... und von den "gewohnten Features" fehlen (mir) vor allem Subqueries. Aber auch gewisse Funktionalitäten wie zB die Ausführung von Berechnungen in Select (select 1+1 ist zB nicht möglich). Weiteres kann man der Hilfe entnehmen. Bzw. man kanns mal versuchen, aber die Hilfe ist noch unvollständiger als die Demo ^^

und weil es mir so gefällt wieder ein paar Worte zur Performance:
user posted image
Toll, nicht? Aber um das zu verstehen müsst ihr weiter lesen Razz
Das Bild zeigt die durchschnittliche Ausführungszeit bei einem Testlauf mit 49 Queries ohne Debugmode. Create Database bzw. Create Table brauchen 0ms, sind daher nicht in der Statistik. Und Delete ist hier gar nicht verwendet worden.
Allerdings: Glaube nur der Statistik die du selbst gefälscht hast! Es waren allesamt sehr einfache Select-Anweisungen... Zum Verglech eine komplexere: 3-fach-Crossjoin (hat 343 Datensätze ergeben), 3 Where-Ausdrücke mit 4 Datenbankzugriffen darin -> Der Spass braucht schon 17ms... ohne Debug Sad

Zum Abschluss stelle ich aber noch die ironische Frage warum ich mich eigentlich so in die Performance-Analyse verbeiße... Denn im Moment ist nur sehr wenig optimiert und mein interesse gilt auch weiterhin mal dem Unterstützen weiterer Funktionen, wie eben Update. (Davon red ich ja auch schon verdammt lange Sad )

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

theotheoderich

BeitragFr, Feb 03, 2012 8:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo zusammen,

ich habe mal ein kleines Video von meinem Terraria Clone erstellt.
Es läuft allerdings ziemlich ruckelig da das Aufnahmeprogramm nur auf 15 FPS gestellt war Confused

http://youtu.be/Y3kpauYpabI

Was ist bereits zu sehen, bzw. im "Spiel" möglich:

- Steine abbauen und einsammeln
- Steine setzen in Vorder- und Hintergrund
- setzen von Lichtquellen (deren sichtbarer Lichtschein ist abschaltbar, gerade bei vielen Lichtern überstrahlt es sonst)
- setzen von statischen Items wie Möbeln / Deko usw.
- setzen von Türen...lassen sich nach rechts oder links öffnen (sofern Platz ist)
- simples Inventory
- ganz neu der Mülleimer, in dem man nicht mehr benötigte Dinge löscht


Was ist NOCH NICHT möglich / eingebaut:
- herstellen von Gegenständen
- benutzen von Werkzeugen
- Rohstoffe
- Pflanzen
- Terrain Generator (erster WIP Entwurf steht aber)
- Partikeleffekte (ausser zum testen bei Fackeln)

Wie gesagt, mal sehen wie lange meine Motivation anhält Very Happy
Gruß
TheoTheoderich
--
The box label said, "Requires Windows XP or better.", so I bought an Amiga Computer.

Gehe zu Seite 1, 2, 3, 4, 5, 6, 7  Weiter

Neue Antwort erstellen


Übersicht Sonstiges Projekte

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group