Woops my bad - sollte wohl nicht nach nem Bierabend einen Devblog schreiben
nanos Just Cause 3 Multiplayer [von den Machern von GTA (V):MP]
-
-
Und du verwechselst Square Enix mit Take 2, das ist nicht der GTA V Thread @intel_c0re
-
Hallo und willkommen zum 13. Dev Blog!
In dieser Woche wollen wir ein wenig mehr ins Detail gehen und genau aufzeigen, an welchen Problemen wir in der letzten Woche gearbeitet haben und welche Probleme neu dazukamen, während wir an neuen Dingen gearbeitet haben. Neben dem Fixen von ein paar Problemen bei der Waffen Sync haben wir ein paar wichtige, noch fehlende Elemente (z.B. wingsuit und parachute) zu unserer Sync Implementierung hinzugefügt.
Bem Fallschirm war es ziemlich einfach den Spieler in einen Zustand zu bekommen, in dem sich das controll movement replizieren lässt. Siehe hier:
https://crix-dev.com/parachute.mp4
Also was ist tatsächlich mit dem Fallschirm? Sagen wir so: es ist komplizierter als es sich anhört.
Die Probleme die wir haben gehen von seltsamen Positionsverschiebungen, über eine nicht funktionierende Öffnung des Fallschirms bis hin zu einem sich leicht hinter dem Spieler schließenden Fallschirm. Hier könnt ihr euch das Ganze mal ansehen:https://crix-dev.com/notreally.mp4
https://crix-dev.com/parachute_is_weird.mp4
Einige dieser Probleme stehen vermutlich in Zusammenhang mit unserer Umsetzung zur player creation, was wir in der folgenden Woche zu untersuchen haben. Wir sind sehr zuversichtlich, dass wir die Probleme in den nächsten Tagen ausmerzen können und weitermachen können.
Warum auch immer ist das korrekte Öffnen und Schließen des wingsuits derzeit nicht besonders schön anzusehen. Siehe hier:https://crix-dev.com/wingsuit_sucks.mp4
Wir haben ebenso an ein paar Dingen zur internen Infrastruktur gearbeitet.
Buildserver
Wir haben eine Menge Zeit investiert um einen richtigen Build Service für unsere Produkte zu schaffen. So wie wir nightlies built für mehrere Linux Distributionen (bspw. Debian, Ubuntu, CentOS) haben wollten, so entschieden wir docker images als build container zu verwenden. Das Programm, das die automatisierten Builds steuert ist in Golang geschrieben. Wir sind zwar noch nicht ganz fertig, aber der Build Prozess an sich ist bereits fertig.Wir haben zudem nun ordentliche Build Benachrichtigungen für Slack:
Automatisches deployment unserer Webseite
Wir hatten einige Probleme mit der Art und Weise, wie wir unsere Webseite deployen.
Bisher lagen die Files auf unserem Server und wurden manuell via SFTP connection geupdated.
Da wir den Zugang zu unserem Server beschränken möchten, haben wir beschlossen die Webseite in Git-Repositories zu packen und den master branch automatisch zu deployen.
Wir konnten kein passendes Tool finden, welches diesen Job ohne großen Aufwand seltsame Dinge zu installieren erledigt, weshalb wir uns dazu entschieden ein kleines Tool in Go zu schrieben, das diesen Prozess mit POST Webhooks automatisiert.
Wir haben uns ebenso entschieden dieses kleine Tool Open Source zu gestalten (MIT-Lizenz). Zu finden hier: https://development.nanos.io/p…NANOS/repos/hooker/browseIch hoffe der Dev Blog dieser Woche hat euch gefallen und wir sehen euch nächste Woche zum Dev Blog 14 hoffentlich mit ein paar netten, funktionierenden Dingen wieder. Bis nächste Woche!
-
Ist das beabsichtigt, dass ihr über google (fast) nicht zu finden seit?
-
Das ist absichtlich so, damit du uns das fragen und nochmal unterstreichen kannst, wie wenig du von dem Projekt hältst:-)
-
Du weißt doch gar nicht, was ich von diesem Projekt wirklich halte. Aber Deine Aussage ist mal wieder ein repräsentativer Kommentar - Hatte mich ehrlich gesagt gewundert, weil ich mich ein bisschen mehr über das Projekt informieren wollte, aber dann ist mir aufgefallen, dass ihr über google nicht zu finden seit.
Du musst doch nicht immer so schnippisch sein
-
Dass ich auf deine Kommentare so reagiere hast du dir selbst zuzuschreiben. Weitere Ausführungen spare ich mir mal.
Googlest du uns findest du ein paar Presseartikel. Alles weitere auf nanos.io.
-
Dass ich auf deine Kommentare so reagiere hast du dir selbst zuzuschreiben. Weitere Ausführungen spare ich mir mal.
Googlest du uns findest du ein paar Presseartikel. Alles weitere auf nanos.io.
Nur mal um das klarzustellen, repräsentierst Du das Projekt, und sowas kommt einfach nicht gut rüber. Gegenüber meiner Argumentation und Meinung auf den Seiten davor, hattet ihr sowieso nur spärliche Antworten. Genauso wie die jetztige. Aber nun gut.
-
Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.
-
Heute findet unser erster Workday statt, an welchem wir uns eine ganzen Tag dem Team und unserem Projekt widmen.
Der Kaffee ist heiß, wir sind bereit. Erster Punkt der Tagesordnung: interne und externe Kommunikation!
-
Heute findet unser erster Workday statt, an welchem wir uns eine ganzen Tag dem Team und unserem Projekt widmen.
Der Kaffee ist heiß, wir sind bereit. Erster Punkt der Tagesordnung: interne und externe Kommunikation!
Ich muss nicht verstehen, warum ihr einer aus Deutsch verfassten Frage mit Englisch antwortet, oder?
Zum Verständnis internationaler Interessenten ist das ganz nett, aber was wenn der der fragte kein Englisch kann?
Nur so ne Anmerkung für die Zukunft.
Weiter machen. -
Beitrag von Scenzah ()
Dieser Beitrag wurde von Trooper[Y] gelöscht (). -
Wir, als nanos, kommunizieren auf unseren offiziellen Kanälen immer auf Englisch - schon alleine deswegen, damit jeder, egal von welchem Land, versteht, was wir schreiben.
-
Hallo und herzlich willkommen zu unserem 14. Devblog!
Zu allererst müssen wir euch etwas sagen, was nie hätte passieren sollen. Aufgrund eines technischen Fehlers bei XForces Development Setup haben wir die meisten Fortschritte dieser und letzter Woche zur Wingsuit und Parachute Sync verloren. Wir haben eine ganze Weile darüber diskutiert, ob wir diese Nachricht veröffentlichen, aber wie wir immer sagten: die Development Blogs sollen so transparent wie möglich sein. Die Ganze Situation hat natürlich zur Folge, dass wir die meisten unserer Meilensteine um 2 Wochen nach hinten verschieben müssen. Wir haben aus diesem Fehler gelernt und sind uns sicher, dass uns sowas nicht noch einmal passieren wird.
In dieser Woche hat Jan an unserem Build Server weitergearbeitet, um das compilen und packing unserer Linux Builds für verschiedene Distributionen möglich zu machen. Die Änderungen dieser Woche machen es möglich unsere Builds in verschiedenen Channeln unseres Updaters (nightly, stable, rc...) zu fördern. Des Weiteren hat sich Jan darauf konzentriert, fehlende Funktionen, Eigenschaften und Events zur Scripting API hinzuzufügen (bspw. das Setzen der Fahrzeug-Health, was bereits gesynct, aber noch nicht zur Scripting API hinzugefügt wurde).
In dieser Woche haben wir auch einiges an zeit in den Übergang von unserem Bitbucket Setup zur open source Software Gitlab investiert.
Last but not least, wie viele vmtl. schon gestern gelesen haben, hatten wir gestern unseren ersten #nanos_workday. Als einer der Tagesordnungspunkte haben wir darüber diskutiert, was unsere erste Preview-Version enthalten soll. Das sind die geplanten Features:
Synchronisation
On-Foot-Synchronisation (Bewegung, Parachute, Wingsuit, Grappling Hook, Waffen)
Waffen Synchronisation (+Fahrzeug Bewaffnung)
Passagier FunktionalitätScripting API
Clientside und serverside Scripting
CEF
Kontrolle über:- Spieler (+Waffen)
- Fahrzeuge
- Checkpoints
- Map markers
- Objekte
- Nametags
- Kamera
In der ersten Version werden wir keine sticky-bombs, kein Zusammenhängen von Dingen via Grappling Hook und kein world damage (bspw. Wachtürme) synchronisieren.
Wir sind uns sicher, dass wir mit den aufgelisteten Features die meisten essenziellen Dinge für Spieler und Serverbetreiber liefern können.
So das wars wieder für diese Woche. Bis zum nächsten mal!;-)
-
Was nennt man denn Technischer Fehler ? Keine Backups gemacht ? Festplatte gewiped ?
-
Beim switchen vom Bitbucket Git auf den Gitlab Git wurden lokal Files überschrieben, die zwar schon commitet waren, aber noch nicht gepusht.
-
Hallo und willkommen zum 15. Development Blog!
Diese Woche war Ostern, die meisten aus unserem Team nutzten deren Zeit um ihre Freizeit mit deren Familien und geliebten zu verbringen.
Dennoch konnten wir diese Woche einiges machen bzw. schaffen, daher der Fortschritt steigt stetig.Fallschirm/Wingsuit
Nach den Technischen-Problemen der letzten Woche (Migration unserer Git Repos) hat XForce seinen ursprünglichen Fallschirm-Code fast neu-geschrieben. Wir sind nun auf dem Stand der Bereits in Woche 13 gezeigt wurde.Scripting API
Jan hat bekommen an der Scripting-API zu-arbeiten, er hat damit bekommen die Server-seitigen Fahrzeug Methoden (functions) und Eigenschaften (properties) zu implementieren.
Er hat auch mit der Implementierung der Funktionen begonnen um Server-seitige POIs (points of interest) zu erstellen und zu editieren. Diese POIs können auf dem Bildschirm des Clienten angezeigt werden.Scripting DOC
Im Moment arbeiten wir an unseren automatisch generierten Scripting Dokumentationen. Wir polieren gerade die letzten Zeilen unseres Codes und beginnen bald damit diese automatisch in unserer API zu veröffentlichen. In den nächsten Stunden kannst du diese in unserem Repo sehen: https://gitlab.nanos.io/jc3mp/scripting-docs (Done: https://community.nanos.io/ind…o=findComment&comment=723)Das war es für diese Woche.
Und vergesst nicht zu liken und Kommentare zu hinterlassenBis nächste Woche!
Edit:
Hallo und herzlich willkommen zu unserem 16. Development Blog!
Parachute Synch
Wir haben wieder einmal an der Synchronisation für den Fallschrim und den Grappling Hook gearbeitet.
Leider konnten wir das Ganze noch nicht fertigstellen. Wir haben hier einen kleinen Clip, welcher eines der aktuellen Probleme ganz gut zeigt:https://crix-dev.com/kekse.mp4
Script API
Wie man an unserer aktualisierten Scripting Dokumentation sehen kann, haben wir ein paar Funktionen hinzugefügt, um Wetter, Zeit und Zeitskala zu verändern und zu steuern. Nachfolgend findet ihr zwei Clips, welche die neuen Funktionen zeigen:http://in.fkn.space/jc3mp/vide…4-02/time_and_weather.mp4
http://in.fkn.space/jc3mp/videos/2016-04-02/time_scale.mp4
Das war es schon für diese Woche!
Wir würden uns über ein Feedback zu unserem Devblog freuen. Bis nächste Woche!;-)
/edit 2:Hallo und herzlich willkommen zu unserem 17 Development Blog!
Erweiterte Waffen Synchronisation
Bisher sendete der Client Informationen über die gehaltene Waffe, die Zielposition und ob der Spieler gerade schießt oder geschossen hat. Diese Information wurde dann über den Server allen anderen Spielern gesendet.In dieser Woche wurde dieser Synchronisationsprozess noch einmal gemacht: nun hat der Server volle Kontrolle und das volle Wissen über die Waffen. Beispielsweise ist es nun möglich nicht ausgerüstete Waffen zu bekommen und deren aktuellen Munitionsstand via Scripting Funktionen abzufragen. Es ist nicht nur möglich eine erweiterte Scripting API zu haben, sondern es ist auch möglich ein Event hinzuzufügen, welches ausgelöst wird, wenn der Spieler eine Waffe hat, die nicht vom Server erstellt wurde. Das hilft Serverbesitzern beim Aufdecken von Cheatern.
Checkt aufjedenfall unseren kleinen Clip, in welchem wir versucht haben alle Waffenslots zu bekommen. Diesmal hat das allerdings nicht ganz wie gedacht funktioniert;-)
http://in.fkn.space/i/223-5707…5-2016-04-08_17-13-58.mp4
Clientside Scripting
Diese Woche wurde die clientside Scripting-Funktionalität erweitert.Zunächst wurde eine globale localPlayer Variable hinzugefügt. Weiterhin wurden Kamera Funktionen inklusive der Eigenschaften zum Setzen von Rotation, Position und Blickfeld hinzugefügt. Der local player hat ebenfalls eine Kameraeigenschaft, durch welche es ziemlich leicht ist zwischen erstellten Kameras (oder der Hauptspielkamera) zu wechseln. Wie diese Kamerfunktionen zu nutzen sind, könnt ihr im Update unseres Default Packages sehen:
https://gitlab.nanos.io/jc3mp/client-default-package/
https://gitlab.nanos.io/jc3mp/server-default-packageWeitere Änderungen
Funktionen, um die player controls zu sperren, wurden zur Scripting API hinzugefügt. Ebenso wurde das Animationssystem reversed, um gewissen Problemen und Fragen vorallem bei der Parachute Synchronisation auf den Grund zu gehen.Das war es wieder für diese Woche. Falls ihr das kürzlich erschienene Interview mit uns noch nicht gecheckt habt, solltet ihr das aufjedenfall nocht nachholen: http://justcause3mods.com/nano…e-multiplayer-experience/
Übrigens: mitte dieser Woche startet die deutsche Community zu Nanos Just Cause 3 Multiplayer!
Bis nächste Woche!
-
Wow, wieder ein interessanter Dev-Blog!
Ich verfolge Nanos nun schon etwas länger und kenne mittlerweile auch die Jungs hinter den Kulissen ganz gut.
Nun gibt es auch schon ein deutsches Forum zum JC3-MP (wurde das hier schon gepostet? Ich kann nämlich nichts finden...). Im Spoiler ist ein Screenshot von dem Forum, den ich von @Doneasty bekommen habe.Ich freue mich schon auf weitere Dev-Blogs und wünsche euch ein gutes Händchen beim Programmieren und uns allen einen hoffentlich schnellen Start. So langsam würde ich den MP schon mal ganz gerne ausprobieren.
-
Hallo,
in dieser Woche wird es keinen ausführlichen Development Blog geben, da die meisten unserer Entwickler in dieser Woche geschäftlich unterwegs waren.
Einige Verbesserungen bezüglich der Waffen Hashes und Recording Parts auf unseren Web Services wurden getätigt, stellen allerdings keinen adäquaten Inhalt für einen ganzen Development Blog dar.Bleibt gespannt auf nächste Woche: da sollten wir in der Lage sein, mehr Neues und Verändertes zu zeigen;-)
Edit:Hallo und Willkommen zum 19. Development Blog!
In dieser Woche wollen wir euch ein paar Details zu den Problemen, mit denen wir uns zurzeit beschäftigen, verraten.
Animationen
Wir untersuchen gerade wie der Spielcharakter initialisiert wird und die Animationen mittels einer Zustandsübergangsmaschine im Spiel implementiert sind.
Aus bisher unbekannten Gründen können einige Aktionen und Animationen unter bestimmten Bedingungen nicht ausgeführt werden. Sobald wir diese Bedingungen identifizieren können, werden wir eine ganze Reihe von Problemen bzgl. Animationen (z.B. bei der Verwendung des Fallschirms) lösen.Aufgrund der großen Anzahl an Fällen dieser Natur in Just Cause 3, ist das Debuggen eine sehr zeitaufwendige Aufgabe und kann daher zu leichten Verzögerungen in unserem allgemeinen Zeitplan führen.
Andauerndes Problem bei der Waffen-Synchronisation
Obwohl der größte Teil der Waffensynchronisation mittlerweile durch den Server kontrolliert werden (siehe Devblogs der letzten Wochen), sendet jeder Client weiterhin Werte über die Anzahl der Kugeln im Magazin an den Server. Wenn dem Spieler nun eine Waffe gegeben wird und das Wechseln zu dieser nicht erzwungen wird (d.h. dass die Waffe in das Inventar des Spielers gelegt wird), wird die Munition bisher nicht korrekt synchronisiert, bis der Spieler schließlich zu dieser wechselt.Beispiel: [...] (siehe https://community.nanos.io/ind…blog-week-19/#comment-786)
Eindeutige Nutzer-Identifizierung
Einige Benutzer haben ihre Bedenken gegenüber der Möglichkeit Spieler über eine eindeutige ID zu identifizieren geäußert. Die naheliegendste Option ist das Bereitstellen der SteamID.
Da wir jedoch den Wert des Datenschutzes schätzen, muss der Client gegenüber jedem Server einwilligen, dass Steam-Daten mit dem Server geteilt werden. Diese Entscheidung ist nicht verhandelbar.
Wir möchten euch außerdem in diesem Zusammenhang darüber in Kenntnis setzen, dass es niemals möglich sein wird eine sichere und verlässliche ID zur Verfügung zu stellen. Vergesst darüber hinaus nicht, dass wenn euer Server die Steam ID zur Authentifizierung nutzt, ihr ein hohes Risiko eingeht, da Steam IDs manipuliert werden können.So, das war's für diese Woche! Wir hoffen, dass ihr den etwas anderen Stil des Development Blogs genossen habt und freuen uns auf die nächste Woche!
Originalartikel und vollständige Version: https://community.nanos.io/ind…blog-week-19/#comment-786
-
Es geht wieder voran:
https://twitter.com/justcause/status/725708261958254593Waffen mit normaler Munition werden überbewertet - dann doch lieber mit Tieren.
//Edit 01.05.2016:
Hallo und herzlich willkommen zum 20. Development Blog.
Vergangene Woche haben wir große Fortschritte gemacht, weshalb wir uns nun direkt den näheren Details zuwenden wollen:
Objekt Scripting
Die größte Neuerung in diesem Development Blog ist das Objekt Scripting. Wir bieten nun Unterstützung hinsichtlich Positionierung und Erstellung von Objekten.
Im Normalfall sollte man sich über ein existierendes Objektlimit keine Sorgen machen (bisher wurde bis 2048 getestet), da die Objekte vom Server dynamisch gestreamt werden.Schau dir außerdem diese kleinen Videos an, die wir vor ein paar Tagen auf Reddit und Twitter veröffentlicht haben:
http://i.imgur.com/fcix7Rc.webm
http://i.imgur.com/H4XVnOB.gifvAlle neuen Funktionen kann man nun schon in unseren Default Packages sehen:
https://gitlab.nanos.io/jc3mp/server-default-package
https://gitlab.nanos.io/jc3mp/client-default-packageKamera
Es stellte sich heraus, dass Just Cause 3 nur drei Kameraperspektiven unterstützt, ohne direkt instabil zu laufen. Da wir denken, dass dieses Thema nicht so wichtig ist wie andere anstehende Arbeiten, haben wir unser Scripting so modifiziert, dass wir ab sofort keine Kameraobjekte mehr benutzen. Scripter können dies aber recht einfach umgehen. Die neue Prozedur, um eine Kameraeinstellung für einen Spieler zu erstellen, ist sehr einfach: es reicht, die Kamera vom Spieler zu entfernen und an eine neue Position zu setzen.
Dies bedeutet auch, dass wir nun die Hauptkamera anstatt einer speziellen beim Wiederverbinden benutzen.
Andere Änderungen
Wir waren ebenfalls in der Lage, einen zufälligen Client-Crash, bedingt durch das übermäßige Erstellen von Entities, zu verhindern. Wir dachten zuerst, dass der Fehler am Hinzufügen von unserem Code in das Spiel an sich liegt, jedoch handelte es sich um einen Fehler in der STL unorderd_map in Visual Studio 201. Ein reproduzierbares Beispiel außerhalb des Projektes haben wir noch nicht, aber wir gedenken, den Fehler an Microsoft zu melden, damit er in einer zukünftigen Version von Visual Studio gefixt werden kann.
Derzeit untersuchen wir eine Sperre im js-scripting, welche in einigen Shells/Terminals auftritt. Wir konnten die Fehlerquelle noch nicht identifizieren, jedoch arbeiten wir konzentriert an einer Lösung.
Zum Schluss haben wir noch einige Fehler im Dateitransfer gefixt, da einige nicht übertragene Dateiverzeichnisse nicht
Das war es nun für diese Woche. Falls ihr den gestrigen Post über Kommunikation und zwischen Client- und Serverscripts verpasst habt, dann schaut gerne hier:
https://community.nanos.io/ind…-communication-explained/Bis zum nächsten Mal!