Strona G艂贸wna Postal Site

Postal Forum Strona G艂贸wna
Najwi臋ksze na 艣wiecie forum o grach z serii Postal. U nas zawsze jest krwawo!

 SzukajSzukaj  U偶ytkownicyU偶ytkownicy  GrupyGrupy
RejestracjaRejestracja  ZalogujZaloguj  AlbumAlbum
   
 Og艂oszenie 
Zapraszamy wszystkich nowych do udzielania si臋 na naszym forum i do przeczytania Regulaminu.
Zanim napiszesz nowy temat u偶yj opcji szukaj!

Poprzedni temat «» Nast臋pny temat
Przesuni臋ty przez: Tiquill
2013-09-19, 19:32
W艂asny format mapy do gry
Autor Wiadomo艣膰
Ryuq 
V.I.P.



Pom贸g艂: 17 razy
Wiek: 21
Do艂膮czy艂: 03 Pa藕 2010
Posty: 1040
Sk膮d: Galicja
Ostrze偶e艅:
 4/3/4
Wys艂any: 2013-09-13, 19:28   W艂asny format mapy do gry

Jako 偶e w Game Maker robienie czegokolwiek w 3d jest straszne, szukam sposobu na zrobienie w艂asnego formatu mapy, 偶ebym m贸g艂 sobie 艂atwiej pracowa膰.

Jak na razie, po kilku pomys艂ach wymy艣li艂em co艣 takiego.

Ka偶da mapa jest archiwum zip, zawieraj膮cym:
info.xml
xyz.xml
Folder Textures
Folder Models
Folder Scripts

I tak: w Info.xml b臋d膮 informacje typu kto zrobi艂 mape, data, kontakt i inne pierdo艂y.
foldery wiadomo, ostatni folder opowiada za wszelkie w艂asne pliki dodane do mapy, mam na my艣li skrypty w Lua. Z lua akurat pomo偶e mi znajomy, ale niestety ten na razie nie ma jak mi pom贸c, dopiero jak wr贸ci [Ferie/Wakacje] ale do tej pory chce wszystko ogarn膮膰.
w xyz.xml b臋d膮 koordynaty ka偶dego z dodanych obiekt贸w na map臋.

Na pocz膮tku my艣la艂em o wsp贸lnym pliku info.xml z tego typu zawarto艣ci膮:
Kod:
 <map>
  <details>
   <name>nazwamapy</name>
   <author>Ryuq</name>
  </details>
   <main>
    <model>"path_to_3ds_model_in_zip"</model>
    <textures>"Path_to_texture_folder"</textures>
   <objects xyz>
   <object>Trash</object>
   <x>000.000.000.</X>
   <Y>000.000.000.</Y>
   <Z>000.000.000.</Z>
   ...
   </main>
 

Ale to by za du偶o klepania by艂o, wol臋 zrobi膰 przejrzy艣ciej w osobnych plikach.
Czyli osobno info o mapie + model mapy w 3d, i osobno koordynaty wszystkich Actor贸w.

Tak wi臋c zostanie tak:

Info.xml:
Kod:
<meta>
  <info author="Ryuq" name="Mapencja" version="1" type="Map" description="B贸br b贸br b贸贸贸br"/>
  <script src="main.lua" type="server"/>
  </meta>

xyz.xml
Kod:

 <map_objects>
   <object>Trash</object>
   <xyz>000.000.000.</Xyz>
      <object>Pud艂o</object>
      <xyz>000.000.000.</Xyz>
    </map_objects>
   

Itp itp. Mam nadzieje 偶e wiadomo o co chodzi.
Na razie chce sobie tak rozplanowa膰 wszystko, pisa膰 powoli 偶ebym nie doszed艂 do momentu kiedy 偶eby doda膰 map臋 b臋d臋 musia艂 od nowa kompilowa膰 ca艂膮 gr臋, dodawa膰 XXX linijek w kodzie, a i uniemo偶liwi膰 moddowanie.

My艣l臋 偶e taki Zip u艂atwi robot臋 Moddersom, prawda? I przy okazji i mnie na wst臋pie.

Tylko nie wiem co zrobi膰 z BSP, czyli z ca艂膮 geometri膮 itp.
Zrobi膰 po prostu na wst臋pie w "info.xml" co艣 w stylu <model>艣cie偶ka_do_modelu.3ds</model> i tyle?

Czy jakie艣 inne propozycje?


EDIT:
Ale nawali艂em g艂upot, to prawie nawet XML nie jest. Ale mniej wiecej wiecie o co chodzi. Sproboje to poprawic zeby bylo jasniej.
_________________
I'm Moonman, representing white power.
I stack bodies higher than Trump Tower.
Control the memes, control the planet.
Fascism is back and the Left can't stand it.
Ostatnio zmieniony przez Ryuq 2013-09-13, 19:54, w ca艂o艣ci zmieniany 2 razy  
 
 
Lothar 
V.I.P.
Spanish Inqiusition



Pom贸g艂: 19 razy
Wiek: 31
Do艂膮czy艂: 30 Kwi 2007
Posty: 1808
Sk膮d: Gda艅sk
Wys艂any: 2013-09-13, 23:47   

Og贸lnodost臋pne formaty s膮 jak najbardziej mile widziane, (zmutowany)XML POWAH! Osobi艣cie sam u偶ywam czego艣 podobnego, czasami przeskakuj膮c na JSON(ale to g艂贸wnie w HTML5, po prostu 艂atwiej i szybciej mo偶na z JSON-a zrobi膰 tablic臋 ni偶 z XML-a w JavaScript).
Pomys艂 z ZIP-ami te偶 jest dobry, z automatu znikaj膮 problemy z brakiem jakiej艣 paczki z teksturami, czy co艣. Minus jest taki, 偶e dla ka偶dej mapy teoretycznie trzeba te same tekstury pakowa膰 (teoretycznie, bo w praktyce mo偶na zmienia膰 艣cie偶ki dost臋pu), ale z drugiej strony 1GB w jedn膮 czy w drug膮 stron臋 w obecnych czasach to tyle co nic. Fajnie, 偶e z g贸ry bierzesz pod uwag臋 modding gry. :)

Zamiast r臋cznego klepania polecam wykorzysta膰 np.: Blender-a jako edytor map. Jest masa skrypt贸w eksportuj膮cych do format贸w zbli偶onych do XML-a, we藕my taki txml na przyk艂ad:
Kod:
<scene >
  <entity id="100" >
    <component type="EC_Name" sync="1" >
      <attribute value="Cube.003" name="name" />
      <attribute value="" name="description" />
    </component>
    <component type="EC_Placeable" sync="1" >
      <attribute value="1.622870,0.474269,-4.258871,0.000000,0.000000,0.000000,1.000000,1.000000,1.000000" name="Transform" />
      <attribute value="false" name="Show bounding box" />
      <attribute value="true" name="Visible" />
      <attribute value="1" name="Selection layer" />
    </component>
    <component type="EC_Mesh" sync="1" >
      <attribute value="Cube.mesh" name="Mesh ref" />
      <attribute value="Material.material" name="Mesh materials" />
      <attribute value="0" name="Draw distance" />
      <attribute value="false" name="Cast shadows" />
    </component>
  </entity>
  <entity id="101" >
    <component type="EC_Name" sync="1" >
      <attribute value="Lamp" name="name" />
      <attribute value="" name="description" />
    </component>
    <component type="EC_Placeable" sync="1" >
      <attribute value="4.076245,5.903862,-1.005454,127.261052,106.936317,-3.163707,1.000000,1.000000,1.000000" name="Transform" />
      <attribute value="false" name="Show bounding box" />
      <attribute value="true" name="Visible" />
      <attribute value="1" name="Selection layer" />
    </component>
    <component type="EC_Name" sync="1" >
      <attribute value="Lamp" name="name" />
    </component>
    <component type="EC_Light" sync="1" >
      <attribute value="0" name="light type" />
      <attribute value="1.0 1.0 1.0 1" name="diffuse color" />
      <attribute value="1.0 1.0 1.0 1" name="specular color" />
      <attribute value="true" name="cast shadows" />
      <attribute value="59.99996566772461" name="light range" />
      <attribute value="1.0" name="brightness" />
      <attribute value="0" name="constant atten" />
      <attribute value="0.25" name="linear atten" />
      <attribute value="0.0" name="quadratic atten" />
    </component>
  </entity>
</scene>

Powy偶szy kod to mapa z 4 sze艣cianami (plik Cube.mesh). Mo偶na np.: doda膰 atrybut "pickupType" z mo偶liwymi parametrami "health", "armor", "weapon1", ..., "none". Przy obrabianiu pliku przez silnik gry dodajesz prostego if-a albo switch-a, kt贸ry sprawdza (mi臋dzy innymi) ten parametr. I tak oto je艣li jest na "none" to traktuje obiekt jako element mapy, a np.: "weapon1" -> wyrzuca kostk臋 i podstawia shotgun-a.

W pliku xyz.xml maj膮 by膰 tylko i wy艂膮cznie koordynaty? Jak chcesz zapisywa膰 same obiekty wyst臋puj膮ce w grze - podobnie pliki .xml, z podanym modelem, tekstur膮, ewentualnie shaderami, rozmiarami i innymi parametrami, czy obiekty b臋d膮 "hard-coded"?

Co do BSP - je艣li w grze maj膮 przewa偶a膰 otwarte przestrzenie, polecam darowa膰 sobie t臋 technologi臋. Najzwyczajniej si臋 nie sprawdza, jest powolna w por贸wnaniu np.: do Octree (powtarzam - przy OTWARTYCH przestrzeniach). Pozostaje pytanie, czy w og贸le powiniene艣 sobie czym艣 takim zawraca膰 g艂ow臋? Masz jaki艣 silnik na oku, chcesz jako艣 to wmontowa膰 w Game Maker? Na start mo偶esz po prostu traktowa膰 ca艂膮 map臋 jako prosty zlepek modeli 3D, a dopiero p贸藕niej bawi膰 si臋 w optymalizacje, o ile b臋d膮 konieczne. 8-)
_________________

Gry, recenzje, zapowiedzi, kody, poradniki, fora Skyrim
 
 
Ryuq 
V.I.P.



Pom贸g艂: 17 razy
Wiek: 21
Do艂膮czy艂: 03 Pa藕 2010
Posty: 1040
Sk膮d: Galicja
Ostrze偶e艅:
 4/3/4
Wys艂any: 2013-09-14, 00:13   

Jak na razie korzystam z zagrzybia艂ego Ultimate 3d kt贸ry dostosowuje do swoich potrzeb.

Cytat:
W pliku xyz.xml maj膮 by膰 tylko i wy艂膮cznie koordynaty? Jak chcesz zapisywa膰 same obiekty wyst臋puj膮ce w grze - podobnie pliki .xml, z podanym modelem, tekstur膮, ewentualnie shaderami, rozmiarami i innymi parametrami, czy obiekty b臋d膮 "hard-coded"?

og贸lnie to chce zrobi膰 tak 偶eby jedynie mapy by艂y, bez modeli pakowane. Modele "dostarczone z gr膮" b臋d膮 normalnie w folderze "models" d藕wi臋ki w "sfx" itp. Ale doczytywane "zewn臋trzne" ju偶 b臋d膮 musia艂y by膰 w zipie. Ka偶dy dodatkowy obiekt itp musi by膰 w zipie, w odpowiednim folderze, razem ze skryptem w Lua.
My艣l臋 偶e wi臋kszo艣膰 plik贸w STANDARDOWYCH b臋dzie zrobionych po prostu ju偶 w grze, i b臋dzie sie mo偶na do nich odwo艂a膰 z poziomu takiego XML'a podaj膮c odpowiednio ID, oraz koordynaty gdzie ma sie pojawi膰 obiekt.
Ale jak ju偶 wszystko zapisze, to dodam kilka przyk艂adowych skrypt贸w, albo "opcji" typu ustawienie "nastroju" [posta膰 krazy sobie po mie艣cie, albo chce zabi膰 gracza itp]
kt贸re b臋d膮 pozwala艂y na modyfikacje Standardowych bystander贸w, na map臋 stworzon膮 przez u偶ytkownika.
Z broni膮 b臋dzie pewnie podobnie, ew zrobimy plik "template" pistoletu, i zostawimy dla Modders贸w.
Jak nowy "bystander" to w "Scripts" wszystko, ew w podkatalogu "Bystanders" i tyle. Tam wszelkie skrypty wrzucane.

Cytat:
Fajnie, 偶e z g贸ry bierzesz pod uwag臋 modding gry. :)

Bior臋 przyk艂ad z Postala. :P
A chc臋 nie tylko u艂atwi膰 sobie prac臋, ale i modderom, kt贸rzy nie b臋d膮 chyba 藕li, je偶eli U艂atwi臋 im prac臋? :D
_________________
I'm Moonman, representing white power.
I stack bodies higher than Trump Tower.
Control the memes, control the planet.
Fascism is back and the Left can't stand it.
 
 
Lothar 
V.I.P.
Spanish Inqiusition



Pom贸g艂: 19 razy
Wiek: 31
Do艂膮czy艂: 30 Kwi 2007
Posty: 1808
Sk膮d: Gda艅sk
Wys艂any: 2013-09-14, 02:24   

W przypadk贸w mod贸w bardzo przyjemnym rozwi膮zaniem by艂by miks obs艂ugi mod贸w z TES III - V + Quake III Arena.
Innymi s艂owy - poza standardowymi folderami ze wszelkimi zasobami doda膰 jeszcze jeden o, zupe艂nie nic nie m贸wi膮cej, nazwie MODS. Do tego te偶 folderu u偶ytkownik/gracz/modder wrzuca艂by mody albo tworzy艂 w艂asne. Oczywi艣cie mod musia艂by zawiera膰 podstawow膮 hierarchi臋 plik贸w i folder贸w, czyli np.:
Kod:
-MOD1:
    -MAPS
    -SCRIPTS
    -TEXTURES
    -SFX
    -MUSIC
    -MODELS
    -modinfo.xml

Plik modinfo.xml zawiera艂by info o autorach (mo偶e prosta struktura dla credits-贸w), nazw臋 moda, ewentualnie wersja, jakie艣 dane do kontaktu, mo偶e adres url do auto-update'贸w, etc. czyli co艣 w stylu:
Kod:

<?xml version="1.0" encoding="UTF-8"?>
<modinfo version="0.9.2">
    <modname>MOD1</modname>
    <author>Autor</author>
    <releaeDate>14.09.2013</releaseDate>
    <authorEmail>email@example.com</authorEmail>
    <updateServer>http://example.com/mod1/updateinfo.xml</updateServer>
    <credits>
        <person position="Author">
            <name>Imi臋 autora</name>
            <lastName>Nazwisko Autora</lastname>
            <contactEmail>Email autora</contactEmail>
            <www>Adres strony WWW autora</www>
        </person>
        <person position="Programmer">
            <name>Imi臋 programisty</name>
            <lastName>Nazwisko programisty</lastname>
            <contactEmail>Email programisty</contactEmail>
            <www>Adres strony WWW programisty</www>
        </person>
        <person position="Graphics">
            <name>Imi臋 grafika</name>
            <lastName>Nazwisko grafika</lastname>
            <contactEmail>Email grafika</contactEmail>
            <www>Adres strony WWW grafika</www>
        </person>
        <person position="Graphics">
            <name>Imi臋 grafika 2</name>
            <lastName>Nazwisko grafika 2</lastname>
            <contactEmail>Email grafika 2</contactEmail>
            <www>Adres strony WWW grafika 2</www>
        </person>
    </credits>
    ...
</modinfo>

Foldery - jak same nazwy wskazuj膮 - zawieraj膮 mapy, skrypty, modele, etc..
W grze mo偶na by zaimplementowa膰 prosty launcher, pozwalaj膮cy na wybranie mod贸w, kt贸re maj膮 zosta膰 odpalone. I tak np.: gracz ma zainstalowane mody "MOD1", "MOD2", "MOD3" = struktura wygl膮da tak:
Kod:
-MODS:
    -MOD1:
        -...
    -MOD2:
        -...
    -MOD3:
        -...

Ale stwierdza, 偶e chce gra膰 tylko z MOD1 i MOD3 -> zatem wybiera je w launcherze i klika URUCHOM/GRAJ/COKOLWIEK. Efekt jest taki, 偶e gra np.: uruchamia si臋 z parametrem: gra.exe -mods mod1,mod3.
To daje silnikowi do zrozumienia, 偶e ma nieco zmieni膰 standardowe uruchamianie gry z przyk艂adowego:
Kod:
1. uruchom silnik
2. wczytaj zasoby z oryginalnych folder贸w
3. wczytaj skrypty
4. poka偶 menu
5. TUTAJ_WKRACZA_U呕YTKOWNIK

na:
Kod:
1. uruchom silnik
2. wczytaj zasoby z oryginalnych folder贸w
3. wczytaj skrypty
4. wczytaj zasoby z folder贸w dla MOD1 (je艣li zasoby w modzie maj膮 takie same nazwy jak orygina艂y -> zast臋puj膮 je)
5. wczytaj skrypty z MOD1 (je艣li skrypty w modzie maj膮 takie same nazwy jak orygina艂y -> zast臋puj膮 je)
6. wczytaj zasoby z folder贸w dla MOD3 (je艣li zasoby w modzie maj膮 takie same nazwy jak orygina艂y -> zast臋puj膮 je)
7. wczytaj skrypty z MOD3 (je艣li skrypty w modzie maj膮 takie same nazwy jak orygina艂y -> zast臋puj膮 je)
8. poka偶 menu
9. TUTAJ_WKRACZA_U呕YTKOWNIK

Taki zabieg praktycznie wyzerowa艂by mo偶liwo艣膰 nieprawid艂owej instalacji modyfikacji, u艂atwi艂 prac臋 i tworzenie paczek z modami no i nie trzeba by by艂o robi膰 kopii zapasowej ca艂ej gry przez instalacj膮 czegokolwiek :D
Oczywi艣cie koniczne by艂oby dodanie te偶 mo偶liwo艣ci zmiany kolejno艣ci wczytywania mod贸w, bo np.: chcemy tektury i modele z MOD3, ale skrypty z MOD1 a okazuje si臋, 偶e MOD3 nadpisuje te same skrypty co MOD1. 8-)
_________________

Gry, recenzje, zapowiedzi, kody, poradniki, fora Skyrim
Ostatnio zmieniony przez Lothar 2013-09-14, 02:25, w ca艂o艣ci zmieniany 1 raz  
 
 
Ryuq 
V.I.P.



Pom贸g艂: 17 razy
Wiek: 21
Do艂膮czy艂: 03 Pa藕 2010
Posty: 1040
Sk膮d: Galicja
Ostrze偶e艅:
 4/3/4
Wys艂any: 2013-09-14, 12:02   

Jak na razie pisze prosty skrypcik, kt贸ry b臋dzie sie pojawia膰 przy starcie gry.
Kt贸ry b臋dzie odpala膰 odpowiednie mapy, zamiast startowa膰 kolejny room itp.
Co b臋dzie przydatne, bo nie b臋d臋 musia艂 robi膰 XXX osobnych room'贸w do nast臋pnych map, tylko jeden pusty Room w kt贸rym sie wszystko wygeneruje. Ewentualnie jeden room na Menu, a drugi do gry. A ten skrypcik wszystko b臋dzie ju偶 sobie generowa艂.
Tam te偶 w okienku, podobnym do tego z AWPModa [w przysz艂o艣ci] b臋dzie mo偶na ustawi膰 jakie mody maj膮 by膰 odpalane.
Ewentualnie wmontuje to w opcje po prostu. :D

Ja tak planuje to wszystko szczeg贸艂owo, bo chc臋 wiedzie膰 na wst臋pie co robi膰. Bo nie chce doj艣膰 do momentu takiego, 偶e 3/4 Silnika b臋dzie g贸wno warte, non moddable, albo jedynie 偶e b臋d臋 m贸g艂 sobie Hello World'a wklei膰 i sie cieszy膰. :D
_________________
I'm Moonman, representing white power.
I stack bodies higher than Trump Tower.
Control the memes, control the planet.
Fascism is back and the Left can't stand it.
 
 
Wy艣wietl posty z ostatnich:   
Odpowiedz do tematu
Nie mo偶esz pisa膰 nowych temat贸w
Nie mo偶esz odpowiada膰 w tematach
Nie mo偶esz zmienia膰 swoich post贸w
Nie mo偶esz usuwa膰 swoich post贸w
Nie mo偶esz g艂osowa膰 w ankietach
Nie mo偶esz za艂膮cza膰 plik贸w na tym forum
Mo偶esz 艣ci膮ga膰 za艂膮czniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

www.Game-State.com www.Game-State.com
www.Game-State.com www.Game-State.com www.Game-State.com
FacebookSteamYouTubeDiscord

Powered by phpBB modified by Przemo © 2003 phpBB Group
Style created by Kula & Gozda modified by prawdziwy 666
艢mieszne obrazki