Jammer-Thread

Hier kann über allgemeine Themen diskutiert werden, die sonst in kein Forum passen.
Insbesondere über Szene, Games, Kultur, Weltgeschehen, Persönliches, Recht, Hard- und Software.
glassbear
Establishment
Beiträge: 324
Registriert: 08.04.2003, 18:09
Alter Benutzername: Enrico_
Echter Name: Enrico
Wohnort: San Diego
Kontaktdaten:

Re: Jammer-Thread

Beitrag von glassbear »

j.klugmann hat geschrieben:Würde mich mal interessieren, wie viel Duplicated Code bei solch einem riesigen Projekt existiert. Ich tippe, ohne je an solch einem Projekt gearbeitet zu haben, auf 15%. :D
Ich kann sicherlich nicht fuer das ganze System sprechen, doch fuer die Teile, die ich kenne: Dort gibt es erstaunlich wenig duplizierten Code. Was es auch nicht gibt, es einheitliche Fehlerbehandlung (wahlweise ueber Exceptions, die einfach weggeworfen werden, einfache Ausgaben auf stdout/stderr bis hin zu zu asserts(), die in Release-Builds deaktiviert werden :roll: ). Oder ein Memory Management. Oder hilfreiche Fehlermeldungen. Oder ...
Ein Hoch auf uns Männer... Auf die Frau, die uns HAT ( oder hat, und nicht weiß, dass sie uns hat ) ...auf die Idiotinnen ... besser gesagt VOLLPFOSTINNEN ... die uns hatten und uns verloren haben ... und auf die GLÜCKLICHEN, die das Vergnügen & Glück haben werden uns kennenzulernen!
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4321
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Jammer-Thread

Beitrag von Chromanoid »

Historisch gewachsen halt :)
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4321
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Jammer-Thread

Beitrag von Chromanoid »

http://www.gamesindustry.biz/articles/2 ... ine-gamers
Das amerikanische Schulsystem ist schuld an schlechten Spielen -.-
;)
glassbear
Establishment
Beiträge: 324
Registriert: 08.04.2003, 18:09
Alter Benutzername: Enrico_
Echter Name: Enrico
Wohnort: San Diego
Kontaktdaten:

Re: Jammer-Thread

Beitrag von glassbear »

Chromanoid hat geschrieben:http://www.gamesindustry.biz/articles/2 ... ine-gamers
Das amerikanische Schulsystem ist schuld an schlechten Spielen -.-
;)
Punkt 1 kann ich aus verschiedenen Multiplayer-Spielen (Mass Effect 3, Rage, ... ) definitiv bestaetigen :evil: Sobald es schwierig wird, quitten viele Leute. Oder wenn sich jemand mit Light Armor einem grossem Mech in den Weg stellt und stirbt, ist natuerlich das Spiel dran Schuld :roll:
Ein Hoch auf uns Männer... Auf die Frau, die uns HAT ( oder hat, und nicht weiß, dass sie uns hat ) ...auf die Idiotinnen ... besser gesagt VOLLPFOSTINNEN ... die uns hatten und uns verloren haben ... und auf die GLÜCKLICHEN, die das Vergnügen & Glück haben werden uns kennenzulernen!
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Jammer-Thread

Beitrag von CodingCat »

Matthias Gubisch hat geschrieben:Die CUDA-OpenGL interop ist echt der letze Dreck...

cudaGraphicsGLRegisterBuffer(..) funktioniert bei 2 von vier Buffern einwandfrei bei den anderen beiden zerschiest es mir den Speicher und ich bekomm ein Race zwischen OGL und CUDA :(
Nähere Informationen? Ich habe mich gerade selbst 2 Wochen mit DX11/CUDA rumgeärgert. Was nicht zuverlässig ging: Interop mit StructuredBuffers, Interop mit sehr großen Puffern. Außerdem haut cudaGraphicsMapResource() gigantische Verzögerungen ins Programm, sobald allgemein der VRAM knapp wird.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Matthias Gubisch
Establishment
Beiträge: 518
Registriert: 01.03.2009, 19:09

Re: Jammer-Thread

Beitrag von Matthias Gubisch »

CodingCat hat geschrieben:
Matthias Gubisch hat geschrieben:Die CUDA-OpenGL interop ist echt der letze Dreck...

cudaGraphicsGLRegisterBuffer(..) funktioniert bei 2 von vier Buffern einwandfrei bei den anderen beiden zerschiest es mir den Speicher und ich bekomm ein Race zwischen OGL und CUDA :(
Nähere Informationen? Ich habe mich gerade selbst 2 Wochen mit DX11/CUDA rumgeärgert. Was nicht zuverlässig ging: Interop mit StructuredBuffers, Interop mit sehr großen Puffern. Außerdem haut cudaGraphicsMapResource() gigantische Verzögerungen ins Programm, sobald allgemein der VRAM knapp wird.
Kommt demnächst in nem eigenen Thread
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: Jammer-Thread

Beitrag von eXile »

Na, mögt ihr alle unique_ptr? Ja? Dann schaut mal her:

Code: Alles auswählen

auto nicePointer = std::unique_ptr<char>(new char[123]);
Schön, oder?

Gratulation, wir haben gerade ein Speicherloch erzeugt. Genauer: Unter Visual C++ 2010 werden 122 chars nicht freigegeben, weil nur delete, aber nicht delete[] aufgerufen wird. unique_ptr wählt den auszuführenden Deleter (d.h. delete oder delete[]) anhand des Template-Parameters, und der ist nun einmal kein Array. Richtig lautet es:

Code: Alles auswählen

auto nicePointer = std::unique_ptr<char[]>(new char[123]);
Wenn man sich mit C++03 den Fuß abschießen kann, dann kann man sich wohl mit C++11 den halben Torso wegblasen. :roll:
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: Jammer-Thread

Beitrag von kaiserludi »

eXile hat geschrieben: Wenn man sich mit C++03 den Fuß abschießen kann, dann kann man sich wohl mit C++11 den halben Torso wegblasen. :roll:
Mal schauen, wie viele Standardversionen es noch dauert, bis bei Fehlern ganze Universen ausradiert werden :lol:
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Jammer-Thread

Beitrag von CodingCat »

Ja, dass make_unique() es nicht in den Standard geschafft hat, ist eine erschreckend grobe Verfehlung.
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Benutzeravatar
Thoran
Establishment
Beiträge: 228
Registriert: 15.05.2009, 12:51
Wohnort: Stuttgart
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Thoran »

eXile hat geschrieben:Wenn man sich mit C++03 den Fuß abschießen kann, dann kann man sich wohl mit C++11 den halben Torso wegblasen. :roll:
Zum Glück bläst man sich nicht den Kopf weg, sonst würde man ja kopflos programmieren ;)
Da wäre dann wohl das Ausradieren des Universums die bessere Alternative. Man kann wenigsten keine Programmierfehler mehr machen. ;)
Wer Rechtschreibfehler findet, darf diese gerne behalten.
Mein Entwicklertagebuch
Aktuelle Projekte: Universum: Domination (ehemalig AlphaOmega),Universum: Sternenjäger, PixelWars: Highscore-based Top-Down-Spaceshooter
Spieleengine Unreal 5
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4321
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Jammer-Thread

Beitrag von Chromanoid »

Ich glaube phpBB hat irgendwie deinen Avatar ausradiert. Sehr komisch was da momentan als Alternative prangt.
Benutzeravatar
Schrompf
Moderator
Beiträge: 5401
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Schrompf »

Ich komme mir grad blöd vor. Ich suchte ein regelmäßiges Muster, um ein 32x32-Feld zu beackern, so dass nicht immer benachbarte Pixel drankommen, am Ende aber trotzdem alle erwischt werden. Überschaubare Zahlenbereiche, also schnell mal in Code gegossen:

Code: Alles auswählen

  static const size_t GROESSE = 32;
  for( size_t a = 1; a < GROESSE*GROESSE; ++a )
  {
    std::vector<bool> erreicht(GROESSE*GROESSE, false);
    size_t zaehler = 0; 
    for( size_t b = 0; b < GROESSE*GROESSE; ++b )
    {
      erreicht[zaehler%(GROESSE*GROESSE)] = true;
      zaehler += a;
    }

    if( std::all_of( erreicht.cbegin(), erreicht.cend(), [](bool b) { return b; }) )
      Traum::Konsole.Log( "Muster klappt für Abstand %d", a);
  }
Und siehe da: es klappt für jede ungerade Zahl. Ich komme mir gerade ziemlich dumm vor, dass ich das nicht sofort gesehen habe. Grmpf.

[edit]Korrektur: noch einen Test für "doppelt erreicht" eingebaut und immernoch das selbe Ergebnis. Jetzt fühle ich mich richtig blöd. Eigentlich logisch... es klappt nicht für Schrittweiten, die durch Teiler der Größe teilbar sind.
Zuletzt geändert von Schrompf am 15.08.2012, 13:03, insgesamt 1-mal geändert.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Thoran
Establishment
Beiträge: 228
Registriert: 15.05.2009, 12:51
Wohnort: Stuttgart
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Thoran »

Chromanoid hat geschrieben:Ich glaube phpBB hat irgendwie deinen Avatar ausradiert. Sehr komisch was da momentan als Alternative prangt.
Was prangt den da? Ich kann nämlich nur Text sehen, oder meintest du das?
Wer Rechtschreibfehler findet, darf diese gerne behalten.
Mein Entwicklertagebuch
Aktuelle Projekte: Universum: Domination (ehemalig AlphaOmega),Universum: Sternenjäger, PixelWars: Highscore-based Top-Down-Spaceshooter
Spieleengine Unreal 5
Alexander Kornrumpf
Moderator
Beiträge: 2198
Registriert: 25.02.2009, 13:37

Re: Jammer-Thread

Beitrag von Alexander Kornrumpf »

Schrompf hat geschrieben: [edit]Korrektur: noch einen Test für "doppelt erreicht" eingebaut und immernoch das selbe Ergebnis. Jetzt fühle ich mich richtig blöd. Eigentlich logisch... es klappt nicht für Schrittweiten, die durch Teiler der Größe teilbar sind.
Das kommt mir aus der Krypto Vorlesung sehr bekannt vor.
Benutzeravatar
Schrompf
Moderator
Beiträge: 5401
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Schrompf »

Alexander Kornrumpf hat geschrieben:Das kommt mir aus der Krypto Vorlesung sehr bekannt vor.
Weil Du eine hattest. Und Dich daran erinnerst. Daher fühle ich mich immer latent blöd, wenn ich hier im Forum mitlese.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Alexander Kornrumpf
Moderator
Beiträge: 2198
Registriert: 25.02.2009, 13:37

Re: Jammer-Thread

Beitrag von Alexander Kornrumpf »

Schrompf hat geschrieben:
Alexander Kornrumpf hat geschrieben:Das kommt mir aus der Krypto Vorlesung sehr bekannt vor.
Weil Du eine hattest. Und Dich daran erinnerst. Daher fühle ich mich immer latent blöd, wenn ich hier im Forum mitlese.
Nein im Gegenteil. Ich kann mich ums verrecken nicht mehr an die Details erinnern, die helfen würden zu beweisen warum das was du da gemacht hast so sein muss. Aber ich bin sicher es ist eigentlich recht einfach.
Alexander Kornrumpf
Moderator
Beiträge: 2198
Registriert: 25.02.2009, 13:37

Re: Jammer-Thread

Beitrag von Alexander Kornrumpf »

Was ist denn davon zu halten:

Gegeben \(Z/nZ\) (Restklassenring) und \($k : ggT(k,n)=1$\)

Zu zeigen:

\($\forall z \in Z/nZ \exists m<n : k\cdot m \equiv z \mod n$\)

Hmm...

\($k \cdot m \equiv z \mod n \Leftarrow z\cdot k^{-1} \equiv m \mod n \Leftarrow$ k ist invertierbar in Z/nZ $ \Leftarrow ggT(k, n) = 1$\)

Stimmt das? Hilft das?
Benutzeravatar
Schrompf
Moderator
Beiträge: 5401
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Schrompf »

Danke. Leider hilft es nicht mehr wirklich, da ich das experimentell schon für den einen Fall ermittelt habe, den ich brauche, und bereits beim nächsten Thema bin :-)
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4321
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: Jammer-Thread

Beitrag von Chromanoid »

Thoran hat geschrieben:
Chromanoid hat geschrieben:Ich glaube phpBB hat irgendwie deinen Avatar ausradiert. Sehr komisch was da momentan als Alternative prangt.
Was prangt den da? Ich kann nämlich nur Text sehen, oder meintest du das?
Das meinte ich. Seltsam, dass da Text angezeigt wurde. Muss irgendwas mit dem alt-Attribut und einem nicht ladbaren/anzeigbaren Bild zu tun gehabt haben.
antisteo
Establishment
Beiträge: 1018
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: Jammer-Thread

Beitrag von antisteo »

Heute mindestens 4 Stunden verschwendet durch ein korrupt kopiertes USB-Image. Die Software funktionierte dann nicht ordentlich und der Rest ist verschwendete Zeit gewesen.
https://memcp.org/ <-- coole MySQL-kompatible In-Memory-Datenbank
https://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Jammer-Thread

Beitrag von CodingCat »

Mein kleines, vor einigen Jahren entstandenes, PHP-basiertes CMS ist kriechend langsam (BBCode etc. per Textersetzung, Regex ...) und macht exzessiven Gebrauch von Singletons. Der größte Feind ist des Programmierers ist immer noch sein nur wenige Jahre jüngeres Selbst. Für den Moment kümmert mich das zwar wenig, aber ich war doch kurz entsetzt. ;)
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: Jammer-Thread

Beitrag von kaiserludi »

MSVC++ meldet mir hunderte "redefinition; different basic type"s Fehler in Zeile 130 einer .cpp, welche nur 129 zeilen umfasst :(
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Benutzeravatar
Krishty
Establishment
Beiträge: 8421
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Visual Studio hat alle meine Ordner mit versteckten .suo-, .opensdf- und .vs11irgendwas-Dateien verpestet. Es ist mir nur aufgefallen, weil ich beim Deployment skeptisch wurde, why the fuck 7-Zip für so komische Dateitypen optimiert, wo doch nur .cpp und .hpp vorkommen sollten. Da hatte doch echt jemand den Popo offen.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: Jammer-Thread

Beitrag von kaiserludi »

Wer sich nicht grundsätzlich immer versteckte Dateien anzeigen lässt, der hat es auch nicht anders verdient.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Benutzeravatar
Krishty
Establishment
Beiträge: 8421
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Ich habe halt nur begrenzten Bildschirmraum und wenn dann überall desktop.inis rumschwirren stört es mehr als dass es hilft :(

————

Ich weiß, wie ich auf den aktuellen Thread Environment Block komme; und von da aus auf den aktuellen Process Environment Block, und von dort zum Handle meines Process Heaps. Damit könnte ich ein paar WinAPI-Aufrufe sparen. Ich weiß außerdem von OldNewThing, dass Microsoft alles daran geben wird, diese Datenstrukturen kompatibel zu halten.

Aber es ist falsch. Ich darf es nicht. Böse, böse, böse. Ich will aber so sehr :(
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: Jammer-Thread

Beitrag von kaiserludi »

Also bei mir schwirt nicht mehr als eine pro Bildschirm rum.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Benutzeravatar
Krishty
Establishment
Beiträge: 8421
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

Ich habe auf meinem Desktop zwei, und noch dazu eine sporadisch erneuerte thumbs.db. Dazu kommen einige internen Dateien von SyncToy. (Wozu erlaubt NTFS schon Metadaten, wenn man einfach verstecke Dateien anlegen kann?…)
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8421
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

C++

y u no allow initialization of arrays of objects

Im Ernst – wie kann so ein absolut fundamentales und kritisches Feature fehlen?! Wie lächerlich ist das denn?! Ich habe das Glück, viel mit POD zu arbeiten, so dass es mir selten auffällt. Aber jetzt habe ich so einen Fall und muss mir einen Wrapper mit Placement New basteln. Es kotzt mich an, was für gigantische Lücken in dieser Flickensprache klaffen …

Nachtrag: Jetzt musste ich eine eigene ObjectArray-Klasse schreiben. Ist die Welt jetzt ein Besserer Ort? Sind Hunger, Seuchen und Armut besiegt? Nein. 15 Minuten verschwendet weil irgendjemand im Standardkommitee seinen Arsch nicht hochgekriegt hat.

Damit ihr nochmal versteht, worum es geht:

Code: Alles auswählen

class NeedsInitializer {
public:
    explicit NeedsInitializer(char *);
private:
    NeedsInitializer(); // verboten
};

NeedsInitializer array[10] = { error because FUCK YOU
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: Jammer-Thread

Beitrag von eXile »

Ich wäre ja bereits zufrieden, wenn Visual Studio 2012 mal wenigstens Initializer-Lists implementieren würde, damit dann so etwas geht (was übrigens in Clang ohne Probleme kompiliert):

Code: Alles auswählen

class myClass
{
public:
	explicit myClass(
		int a, 
		int b
	) : i{a, b}
	{
		return;
	}

private:
	int i[2];
};
Benutzeravatar
Krishty
Establishment
Beiträge: 8421
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Jammer-Thread

Beitrag von Krishty »

so true

Habe ich mich übrigens schon darüber ausgekotzt, wie endlos bescheuert es ist, durch std::initializer_list STL und Sprache noch mehr ineinander zu verweben? Manche haben echt den Schuss noch nicht gehört.

Bild
„Diese Sprache ist dekadent und überladen. Wenn du programmieren willst, muss deine Sprache hart und freudlos sein. Wie eine russische Rübe!“
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Antworten