Einige kleine Updates

Ich habe 2 neue Seiten hinzugefügt (VocabParser und Feedback System), habe das Feedback System hier auf dem Server (/feedbacktext) auch auf den neuesten Stand gebracht und das uralte Browser-Script auf /files gegen ein besseres ausgetauscht, das endlich keine Warnungen mehr raus schmeißt. Das Twitter Widget wurde jetzt auch wieder einmal verschönert und gegen ein neueres ausgetauscht.

Das waren nur einige kurze Updates zur Website, ich bringe hier im Moment wieder alles auf Vordermann :)

Viele Entwicklungen rund um die Startseite

Ich habe mich längere Zeit mit der Startseite beschäftigt (also http://maximaximal.com/ ohne blog/) und versucht, ihr endlich wieder etwas mehr Stil und Bedeutung zuzuschreiben. Diesen Versuch habe ich jetzt ersteinmal aufgegeben, da ich dafür eher ein ganzes CMS programmiert hätte. Stattdessen habe ich nun endlich diesen Blog als Hauptseite eingerichtet und ihn nun, nach mehreren Jahren, endlich offiziell als das Herz von maximaximal.com festgelegt. Auch wenn hier nicht wirklich oft etwas geschrieben wird (und damit untertreibe ich stark), ist das hier doch die praktischste Plattform um Inhalte zu veröffentlichen :)

Nebenbei habe ich auch noch versucht auf Basis von Drupal auf einem eigenen Root-Server eine neue Webiste aufzubauen mit einem eigens entwickeltem Drupal Theme und diese Website dort hin zu migrieren. Das Theme werde ich eventuell noch freigeben (es ist eine Entwicklung auf Basis des Zen Frameworks und Drupal 7), es ist allerdings nicht gerade weit entwickelt da ich in den Sommerferien eher andere Beschäftigungsfelder hatte.

Außerdem habe ich mittlerweile einige neue Projekte begonnen die nach Artikeln und Heimseiten nur so schreien, diese werden natürlich noch folgen. Immerhin brauche ich ja irgendeinen Link wo ich alles hin verlinken kann ;)

Das war widereinmal eine kurze Meldung von mir, die Nächste wird nicht mehr so lange dauern!

Lg, Max

Übernahme von WhatsApp durch Facebook

WhatsApp, der mehr als bekannte Instant-Messaging Dienst wurde heute von Facebook für einen stutzig machenden Betrag von 16 Milliarden $ aufgekauft worden. 3 Milliarden sollen in Form von Facebook Aktien noch folgen.

Weiterlesen

Website Update: Neue Permalink Struktur & SEO

Die Struktur für Permalinks hier auf maximaximal.com hat sich jetzt zum 1. Mal signifikant geändert. Ich habe früher die hässlichen Adressen mit den nummerierten Artikeln verwendet und bin jetzt auf die schöneren Text-Permalinks gemixt mit dem Veröffentlichungsdatum umgestiegen.

Diese Änderung wird wahrscheinlich die Hälfte der alten Seite unbenutzbar machen, aber der Blog gefällt mir so ehrlich gesagt um einiges besser, da die Adressen nun auch einen Sinn ergeben.

Außerdem werde ich jetzt zum 1. Mal besser auf Search Engine Optimization (SEO) achten. Es ist ein sehr interessantes Thema und auch sehr nützlich um selber besser gefunden zu werden. Ich bin schon recht gespannt ob nach den nächsten paar Artikel mehr Besucher kommen als vorher :)

Lg,
Max

Spacegasm Devlog #1: Networking Entities

Synchronizing entities over the network is easy in the beginning, but harder when there are a ton of different entity types and flavors. Every different type needs an own synchronizer on both sides (client & server), which means that you will have to write tremendous amounts of code for a new object in your game.

The first thought that strikes your mind could be “Then I’ll just create a base class for them and store everything in there!”. Well, that could really be a good solution, when there weren’t that many attributes entities can have you have to worry about. The base-class could have a position, a velocity, a sprite, a rotation, a height, et cetera. These attributes are available in every child-class and are all managed by your single synchronizer. That’s fine, but then you get an entity with additional attributes. You would then have to extend your synchronizer and build it to support these new values and you end up with the same manager-mess you’ve had before with even more traffic because of more useless packets (not every entity has a velocity).

Managing Components instead of Entities

The next step would then be to forget all this object oriented entity hell and build up a new system on top of a component entity system (like Artemis & C++ Port of Artemis). This approach is bundled with a new way to think over the entities: They are only combined components and an ID. Entities can be equipped with new components and the components can be updated using an entity-processing-system. You can request components and just work with them instead of dealing with pointless bundles of variables.

You will eventually need some time to wrap your head around this idea, but it works out quite well once you realize how to use it in a good way.

Sync those Components

For network synchronization you will have a system for each component (eventually combined with sort of a chunk-component describing in which chunk the entity is) to send it over the network to the other side and a system there to create or update the components according to the new updates

You will eventually also have a class like a player manager to manage the players. You could throw a screen size manager into this class which knows exactly what parts of the world is viewable by the players (in chunks) and can send packets to only those players who see the chunk the entity is in. This is not necessary when you have a smaller world of course.

When the component packets arrive at the clients, they check if the entity on their side exists and if it has the received component. If not, the entity will be created, the ID from the server will be assigned to it (= GlobalID) and the component gets attached. Else, the component simply gets updated with the new received data.

Low Traffic

This system keeps traffic relatively low, as long as you keep the sending intervals long. I am using a default interval of 1/20s for physics- and 1/5s for graphics-components (less critical ones). Because you don’t have to synchronize everything, you will not suffer from a too big load of incoming or outgoing packages.

Conclusion

I have worked on my synchronization system for a long time, and, because it is a critical part of the game, it has to work without flaws and with a minimal footprint on the resources of the server. I don’t know if I have completed this goal and I still think there will be some major design changes in the future, but this is definitely a good starting point to build up from :)

I hope you could get some new insights about this topic, Max

Theme geändert

Ich habe nun seit sehr langer Zeit (ich glaube 2 ganze Jahre) wiedereinmal das Design des Blogs geändert. Das gute alte Twenty Eleven war zwar sehr schön und funktionierte immer gut, allerdings gefällt es mir hier wieder ein bisschen neuen Glanz durch Schlichtheit herein zu bringen.

Das neue Theme hier ist das Twenty Twelve (der Nachfolger des alten) und glänzt durch die schöne Einfachheit die es austrahlt. Das Grün im Hintergrund habe ich dazu gegeben, ich finde Grün passt mittlerweile schon ganz gut ins Internet und kommt etwas von dem ganzen Bootstrap Einheits Blau/Grau weg ;)

Liebe Grüße,
Max

SFML Sidescroller: Version 0.07 veröffentlicht!

Gerade als ich Version 0.06 hochgeladen hab, sagt mir der Roland doch glatt, dass das Spiel wegen einem dummen Bug, der erst nach 1000 Punkten auftauchte, unspielbar sei. Ich, der ich ja nur so bis 700 Punkte getestet hab, versinke fast im Boden und bügle den Bug natürlich schnell aus. Also gibts jetzt schon Version 0.07, obwohl die eigentlich erst für später vorgesehen war :)

Download

Version 0.07 (also auch die 0.06er) bringt:

  • Komplett überarbeitete GUI (Technisch besser, schönerer Code, reagiert schneller, besser erweiterbar, Text mit Mausrad scrollbar, etc…)
  • Funktionierendes Optionsmenü (Man kann die Lautstärke der Sounds einstellen, weitere Optionen werden bald hinzugefügt werden, wenn ich Checkboxes fertig hab)
  • 2 neue Menühintergründe (1x ein Trollface mit Leekspeech, 1x lustige Paprika aus Gimp) – werden bei jedem Start zufällig ausgewürfelt
  • Neues update System (Man muss nichts mehr machen, das Programm updatet sich vollautomatisch – bis jetzt nur auf Windows (Linux folgt, war nur zu dem Zeitpunkt grad bei einem Windows Rechner))
  • Grafische Explosionseffekte wenn Asteroiden explodieren
  • Neues Logo, das sich auch automatisch der Bildschirmgröße anpasst.
  • Screenshots sollten nun auch funktionieren! Einfach F2 drücken – sie werden im Ordner Data/Screenshots gespeichert. Falls kein Ordner vorhanden ist, dann bitte anlegen! Das wird später noch automatisch erledigt, aber ich habe gerade Probleme mit der zuständigen Library…
  • Neue Grafiken für das Raumschiff (vielen Dank an Lukas Magauer für das bearbeiten der alten Texturen! :))
  • Button-Click Sound Effekt (Sinnlos, aber cool ;))
  • Besseres Asteroiden-Spawning (mehr Zufall)
  • Neue MD5 Library (nur technisch, aber es ist trotzdem sinnvoll)
  • Die Shuffle-Wiedergabe der Hintergrundmusik ist nun der Standardmodus (Auf Windows gab es Probleme mit dem zufälligen Auswählen – es spielte immer nur der selbe Titel)

Das HUD habe ich einfach mal auf die nächste Version verschoben. Das neue Menü war schon ein Haufen Arbeit, die ich schon veröffentlichen will :)

Ich wünsche euch viel Spaß mit dem neuen Update, und ich hoffe es hat nicht zu viele Bugs! :D

Falls ihr Fehler entdeckt, dann schreibt bitte einfach einen Kommentar. Wenn ihr cool seid, dann meldet euch doch einfach bei unserem Bugtracker an! Dann können wir die Fehler besser bearbeiten :)

lg max

 

SFML-Sidescroller Version 0.06

Die 6. Version Release-Version in der Geschichte von SFML-Sidescroller wird, falls alles nach Plan läuft, bald auf dem Update Server zuhause sein! Die neue Version ist jetzt schon länger am Entstehen, was daran liegt das ich ein kleines Motivationstief hatte, und die komplette Benutzeroberfläche und alle Menüs neu programmiert habe (wahrscheinlich war genau das der Auslöser für mein Motivationstief ;) )

Die Version 0.06 wird folgendes beinhalten:
(grün = fertig, orange = im Entstehen, rot = noch nicht angefangen)

  • Neue GUI Struktur (zum einfacheren Erstellen von neuen Elementen und für weniger Speicherverbrauch)
  • Neue Gui
    • Text
    • Editierbarer Text
    • Scrollbarer Text (Mausrad)
    • Bilder
    • Buttons
    • Menüs neu geschrieben
    • Slider
    • Checkboxes
    • Options-Menü
  • 2 neue Hintergrundbilder
  • neues Logo
  • Komplett automatisches Update für Windows Systeme
  • Spiel-Icon
  • HUD-System

Diese Liste wird vielleicht noch geändert, aber das wird sich dann beim Release weisen. Ich versuche gerade, alle mir bekannten Bugs herauszuangeln und zu fixen, aber neue Features sind dann doch immer wieder verlockend ;)

Ich muss mich dann auch nochmal dafür entschuldigen, dass ich hier so selten was reinschreibe. Ich bin gerade sehr viel mit anderen Dingen beschäftigt, und darum blogge ich hier auch eher weniger. Ich versuche aber trotzdem weiterhin mein bestes :D

lg max

maximaximals Hosted Wiki Update

Ich hab mein privat gehostetes Wiki (auf einem NAS bei mir zu Hause) mal wieder einem DokuWiki Update unterzogen :D. Die ganze Prozedur hat zwar einiges an Nerven gekostet, aber mittlerweile läuft das Teil ja endlich wieder so wie es soll!

Anderer Style

Das Wiki hat jetzt auch einen neuen Style, nämlich den Standard DokuWiki Style. Dieser ist mittlerweile im Vergleich zum alten um einiges schöner anzusehen und er funktioniert im vergleich zu dem den ich ersatzweise installiert hatte um einiges besser.

Geschwindigkeit des Servers

Der Server servert nicht professionell herum, sondern nur mit einer ~130kbyte Verbindung. Wenn man also durch die Seiten stöbern will muss man immer mal wieder kurz warten, da der Server hinter meine sonstigen Internetaktivitäten geschaltet ist.

Falls der Server mal ausfällt werd ich versuchen ihn schnellstmöglich wieder herzurichten. Nett wärs trotzdem wenn mir jemand einen Kommentar/E-Mail schreibt, falls ichs mal wieder überseh ;)

Neuer Content?

Jein, am Content hab ich nicht herumgeschrieben. Neu ist nur wiedermal ein SFML-Sidescroller Build für Linux32. Ich werd bald mal einen Artikel über das Teil schreiben müssen, es wird von Woche zu Woche besser ;).

Bis dahin, lg max