Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > World of Warcraft > WoW Private Server
You last visited: Today at 16:36

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



"Engine" für Launcher oder "ich hab mal was gebaut"

Discussion on "Engine" für Launcher oder "ich hab mal was gebaut" within the WoW Private Server forum part of the World of Warcraft category.

Reply
 
Old   #1
 
Kent_Brockman's Avatar
 
elite*gold: 0
Join Date: Mar 2011
Posts: 535
Received Thanks: 202
"Engine" für Launcher oder "ich hab mal was gebaut"

Die Überschrift ist jetzt nicht sehr glücklich gewählt aber trifft es in etwa.
(Sorry Crazy, ich publishe es mal schnell hier rein)

Vorwort:

Vor etwas längerer Zeit suchte ich eine neue Herausforderung und stolperte wieder über OpenGL.
Weil ich davon keine Ahnung habe (hat sich bis heute nicht geändert), dachte ich mir dass man es ja mal lernen kann.

Er sollte es ein kleines Spiel werden, was auch ganz in Pokemon Manier gut aussah und schon recht nett funktionierte, aber irgendwie gefiel mir der Gedanke nicht, dass das Programm dann nur für einen Zweck ausgelegt war.
So hatte ich das ganze Umgestrickt und letztlich diese "Engine" gebastelt.


Sourcecode:
Der Quellcode ist hier zu finden:
Und worauf es läuft und wie es funktioniert erkläre ich jetzt.


Voraussetzungen:
Die Engine läuft grundsätzlich auf Linux und Windows, wenn die Grafiktreiber OpenGL mitmachen.

Linux
Unter Linux sollte man auf alle Fälle GLUT, GLEW, OpenAL installiert haben.
Zusätzlich wären MP3, flac und ogg libs nicht verkehrt.
Cmake ist Pflicht und gcc sowieso.

Windows
VisualStudio >2012 und OpenSSL ist Pflicht, den Rest liefert die Engine frei Haus.
Leider ist nur ein Release-Compile möglich, Debug macht hier einige Fehler, weil ich generell die Release Libs nutze.


Ist ja alles toll und so, aber was kann es nun?

Vom Prinzip ist das Spielzeug eine Client/Server-Anwendung.
Bedeutet ihr habt euren Code, welchen der Client ausführen soll dem Server liegen und der Client läd nur die main.as herunter.

Die main.as sollte idealerweise eine Art Bootloader sein, welche dann alle anderen Dateien welche zum Projekt gehören mit herunterläd.
Sieht recht langweilig aus und für den Nutzer ists eher unspektakulär, aber
1. Läd er beim nächsten Start nur noch geänderte Dateien herunter.
(Also wirds schneller.)
2. Kann man das ganze via GLSL und einem ModuleTracker-File etwas optisch und akustisch aufwerten.
(Was bei geschickter Programmierung richtig was her machen kann)

2. Kann in etwa so aussehen und bei ~32kb Code kann man auch nicht meckern.

Source:

Wer nun sagt: Hey diese .as Dateien sehen fast wie C++ aus, liegt nicht ganz falsch.
Als Scriptsprache habe ich AngelScript genutzt, Lua war mit zu gebräuchlich und Python (auch wenn ich es gerne habe) mehr ein Overkill.


Schön und gut, Effektballerei ist zwar nice aber wie bekomme ich meinen Launcher mit dem Teil gebaut?

Das erfahrt ihr dann im nächsten Teil, wenn ich wieder halbwegs ausgeschlafen habe.
Dann erkläre ich ein wenig, wie man andere Dateien (Wow.rar, etc) herunter läd, Grafiken platziert, Buttons ansteuert und ein wenig Text nach Wahl auf den Bildschirm zaubert.
Kent_Brockman is offline  
Thanks
1 User
Old 09/10/2015, 08:12   #2
 
Kaev <3's Avatar
 
elite*gold: 110
Join Date: Mar 2008
Posts: 856
Received Thanks: 388
Ich glaube, dass du das Wort "Framework" suchst.
Habe bis jetzt noch nicht mit AngelScript gearbeitet, sieht aber wirklich wie eine Mischung aus C++ und Ruby aus. Kann man bestimmt was schönes mit erstellen.
Wollte mir demnächst auch mal OpenGL anschauen, vielleicht kann ich ja sogar ein wenig aus deinem Code lernen.
Kaev <3 is offline  
Old 09/10/2015, 15:05   #3
 
Kent_Brockman's Avatar
 
elite*gold: 0
Join Date: Mar 2011
Posts: 535
Received Thanks: 202
@Kaev <3
Thx, Framework hatte ich gesucht.

Ich weiß nicht ob man was von dem Quellcode lernen könnte. Denk wenn ja, dann wie man es nicht macht. :P
Aber sonst ist da nicht viel Zauberei eingebaut.
Höchstens der Spaß mit den Shadern und dass ich gerne CallListen verwende.
CallListen sind bei komplexeren Objekten ganz praktisch, denn so puzzelst du nur einmal dein Objekt, schiebst es in die Graka und musst nur noch nen Call machen um das Objekt anzuzeigen, manipulieren, etc.
Frisst weniger Zeit, als es jedes mal neu zusammen zu stecken und man hat die Textur gleich auf dem Mesh kleben.
(Habs etwas laienhaft ausgedrückt, aber vom Prinzip richtig)


EDIT:
Wenn man die (fast vollständige) Doku für die Befehle sucht, welche ich in dem Retroloader verwende, kann einfach ins /doc Verzeichnis der SourceRepo schauen, da ist so ziemlich alles erklärt.
Kent_Brockman is offline  
Reply




All times are GMT +1. The time now is 16:36.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.