Skocz do zawartości


W sprawie silnika do tworzenia przyszlej gry.


10 odpowiedzi w tym temacie

#1 Rastaman

    Nowy na forum

  • Użytkownicy
  • 6 Postów:

Napisano wto, 18 wrz 2012 - 17:22

Witam wszystkich serdecznie.Chialbym zacząć zabawę z jakimś silnikem do tworzenia gier 3D.Jednak jestem początkujący w tym temacie i prosilbym o pomoc.Slyszalem,że dobry jest CryEngine UDK,bo na tej wersji można tworzyć gry którę bedzie można póżniej sprzedawać.Co wy na to?Może macie coś innego do zaproponowania.Z milą chęcią się czegoś nowego dowiem.

#2 Jason

    Avatar

  • Super użytkownicy
  • 1118 Postów:

Napisano śro, 19 wrz 2012 - 08:47

No cóż... wiodące silniki do najłatwiejszych nie należą. W każdym silniku można stworzyć grę, którą będzie można sprzedawać (chyba, że chodzi Ci o koszty licencyjne silników, a nie o doświadczenia wizualne gracza). Ja bym na początek polecił Pandę 3D - z silników, które przeglądałem, właśnie w Panda 3D najszybciej uzyskałem Hello World'a :D Wystarczy zainstalować SDK, którego nie trzeba w żaden sposób dodatkowo konfigurować w swoim IDE dzięki zastosowaniu języka Python - nie musisz dołączać żadnych libów, a najprostsza aplikacja z użyciem tego silnika ma minimalną ilość linii kodu ;)

Oto przykładowy kod po prostu wyświetlający model 3D przygotowany i eksportowany w Blenderze:
python
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import direct.directbase.DirectStart
"""moduł zawierający funkcję run() potrzebną do wystartowania aplikacji
w pandzie, główna pętla aplikacji itp."
""
from direct.showbase.DirectObject import DirectObject
""" po tej klasie dziedziczy główna klasa programu, bez tego nie
mielibyśmy np. metody accept, do obsługi klawiszy"
""
from pandac.PandaModules import * # ładuję moduły Pandy
import sys # ładujemy moduł systemowy
class Game(DirectObject):
"""główna klasa aplikacji"""
def __init__(self):
  """funkcja pełniąca rolę konstruktora klasy, jednak nie można
  jej nazwać konstruktorem, ponieważ obiekt jest już utworzony przed
  wywołaniem metody __init__, a my już otrzymujemy poprawną referencję
  do świeżo utworzonego obiektu"
""
  pLight = PointLight( 'pointLight' ) #tworzę obiekt światła punktowego
  pLight.setPoint(Point3(0,-30,30)) # ustawiam jego pozycję
  pLight.setColor(Point4( 0.9, 0.9, 0.8, 1 )) # ustawiam jego kolor
 
  #dodaję utworzone światło do sceny
  pLightNode = render.attachNewNode(pLight)
  render.setLight(pLightNode)
  basic = loader.loadModel("basic")
  """ ładuję model egg, wyeksportowany z Blendera, gdy nie ma
  wpisanego rozszerzenia, jest ono ustalane automatycznie, bo
  w Pandzie 3D modele mogą mieć różne rozszerzenia, np.
  skompresowane pzip'em modele *.egg.pz"
""
  basic.reparentTo(render) # dodaję model do sceny
  #basic.setShaderAuto() # można dodać automatyczne cieniowanie dla modelu
  base.setBackgroundColor(0,0,0) # ustawiam kolor tła
  base.disableMouse() # wyłączam sterowanie kamerą za pomocą myszy
  base.camera.setPos(0,-10,0) #ustawiam pozycję kamery
  base.camera.lookAt(basic) # każę kamerze patrzeć na załadowany model
 
  self.accept("escape",sys.exit) # przypisujemy wyjście z programu do przycisku escape
g=Game() # tworzę instancję klasy, wywołuję funkcję init()
run() # uruchamia aplikację


#3 Rastaman

    Nowy na forum

  • Użytkownicy
  • 6 Postów:

Napisano śro, 19 wrz 2012 - 15:32

Dzięki za odpowiedz,ale kilku rzeczy nie rozumiem i proslibym o ich wytlumaczenie:
1) jeżeli chodzi o sprzedawanie gry na silniku Cry to tylko wchodzi podobnież w rachubę UDK?Chodzi mi glównie o to by nikt się nie przychrzanil,że zrobiona przezemnie gra jest oparta na danym silniku zrobionym przez jakąś firmę,
2) a co w UDK trzeba coś tam konfigurować?
3) co to znaczy IDE?
4) język python jest po to by tworzyć grę?Tylko dzięki temu językowi można stworzyć grę?Skąd wziąć polecenia do niego by coś nim zdzialać?
5) co to są liby?
Jestem początkujący więć z tąd te moje pytania.

#4 Jason

    Avatar

  • Super użytkownicy
  • 1118 Postów:

Napisano śro, 19 wrz 2012 - 16:56

1) W tym biznesie często zespoły pracujące nad grą wykorzystują silnik stworzony przez inną firmę (wykupują licencję lub używają darmowych), ewentualnie modyfikują dany silnik, o ile mają dostęp do jego źródeł. Jeśli masz prawo do wykorzystania danego silnika (poniesiesz koszty licencyjne, lub wykorzystujesz silnik udostępniany za darmo na licencji pozwalającej na użytek komercyjny), to jesteś kryty i nikt się z Tobą nie będzie o to sądził. Jeśli korzystasz z UDK komercyjnie, to zapoznaj się z komercyjnymi warunkami używania - http://www.unrealeng..._license_terms/ - tutaj masz wszystko opisane. Z darmowych silników do użytku komercyjnego masz dość spory wybór silników, np.: Panda 3D, Ogre 3D, CrystalSpace 3D, Irrlicht. Na Twoim miejscu bym się od razu nie napalał na stworzenie gry przeznaczonej do sprzedaży... Skoro dopiero zaczynasz to przed Tobą jeszcze fura nieskończonych amatorskich projektów zanim się zabierzesz za coś, co można będzie sprzedać ;)

2) Zanim program skompilujesz musisz utworzyć projekt w środowisku programistycznym, którego używasz ;)

3) Środowisko programistyczne, IDE (Integrated Development Environment).

4) Python to uniwersalny język, można w nim zarówno tworzyć całe gry, jak i części gier (użyć go jako język skryptowy). Można też w nim tworzyć strony internetowe (po stronie serwera) oraz okienkowe programy użytkowe.

5) lib'y to pliki potrzebne w języku C++ aby używać funkcji z bibliotek (pod Windowsem *.dll, pod Linuksem *.so). Najczęstszy błąd początkujących (undefined reference, występuje właśnie przez niedołączenie libów).

#5 Rastaman

    Nowy na forum

  • Użytkownicy
  • 6 Postów:

Napisano śro, 19 wrz 2012 - 17:58

To zobaczę sobie jeszcze silniki,które ty zaproponowaleś.Jednak coś mnie kusi by zacząć od razu od CryEngine UDK,ale jeszcze się zobaczy.Chcialbym zapytać jeszcze,czy naprawdę jest ciężko ze stworzeniem wlasnej gry?Czy dam radę stworzyć ją sam?Przypuszczam,że nie będzie to trwalo miesiacami,lecz latami...ale chcialbym wiedzieć czy warto jest poświęcić temu swój czas.A może zacząć od czegoś prostszego jak projektowanie w programie Zbrusch np.postaci itp.?

#6 Jason

    Avatar

  • Super użytkownicy
  • 1118 Postów:

Napisano śro, 19 wrz 2012 - 18:31

Jestem ciekaw, dlaczego zawsze piszesz "CryEngine UDK", https://www.google.c...q=CryEngine+UDK - to są dwa osobne silniki, chyba, że Google o czymś nie wie ;) Jeśli się chce w miarę szybko bardzo ograniczonym liczebnie zespołem stworzyć grę, która zawojuje świat (będzie się nadawała do sprzedaży itp.), to zazwyczaj robi się to w 2D. W 3D ciężko o grywalny pomysł, który można zrealizować małym nakładem pracy. A popatrz sobie na gry 2D, np. Angry Birds, czy World of Goo... te gry podbiły świat. Są wersje na komórki, PC, Mac. Nie wiem konkretnie jak jest z Angry Birds, ale World of Goo zostało stworzone przez zespół dwuosobowy: http://2dboy.com/about.php

Jeśli chcesz robić wszystko sam (modele 3D, zaprogramowanie tego, ścieżka dźwiękowa), to naprawdę wiele od siebie wymagasz, może nawet zbyt wiele ;) Lepiej sobie wybierz jedną dziedzinę, czy wolisz być programistą, czy może masz większy talent graficzny i będziesz robił samą grafikę do gry. Jeśli chcesz koniecznie pracować przy "zarabiających" grach 3D to pewnie lepiej będzie Ci się wdrożyć do jakiejś firmy produkującej gry. I tak pewnie na początku za bardzo Cię nie dopuszczą do kodu, np. moi koledzy ze studiów chcieli programować, ale na początku bodajże w CD Project ustawiali żołnierzy w wozie :D Dobrze by było na początek znać jakiś silnik wykorzystywany komercyjnie, żeby się w ogóle rekrutować. Musisz posprawdzać oferty pracy. Np.

http://forum.warszta...p?topic=25968.0

http://forum.warszta...p?topic=26015.0


W sumie sporo na popularności ostatnio zyskuje Unity 3D.

Jeśli masz determinację, by w przyszłości tworzyć gry 3D, to na wszystko co związane z tworzeniem gier warto poświęcić czas :) Jak nie podejdzie Ci programowanie i wybierzesz tworzenie grafiki, to przynajmniej będziesz miał jakieś programistyczne doświadczenia przydatne do współpracy z programistami/zrozumienia ich poleceń/wymogów.

#7 Rastaman

    Nowy na forum

  • Użytkownicy
  • 6 Postów:

Napisano czw, 20 wrz 2012 - 17:07

Myślę,że masz rację co do tego,że mogę od siebie na początek za dużo wymagać :) .Więc może zacząlbym od tworzenia gier 2D.Jednak od czego mialbym zacząć?

#8 Jason

    Avatar

  • Super użytkownicy
  • 1118 Postów:

Napisano czw, 20 wrz 2012 - 19:02

Jeśli chcesz robić w C++, to można zacząć od SDL ( http://www.libsdl.org/ ), albo Allegro ( http://alleg.sourceforge.net/ ). Osobiście Allegro nie tykałem. Wyświetlanie w SDL łatwo podpiąć do OpenGL (w którym też można pisać renderowanie 2D).

Jeśli rozważasz inne języki, to polecam Pythona z pygame (który w dużej mierze bazuje na SDL) i pyopengl. Zacząć możesz od kombinowania z prostym frameworkiem, a raczej "kodem początkowym", który prezentuję na stronie http://www.jason.gd/...ame_pyopengl_2d
Żeby uruchomić skrypt należy zainstalować Python 2.7 i do niego moduły PyOpenGL i PyGame. Dla wygody można sobie do niego skonfigurować jakieś IDE, np. Geany.

#9 Rastaman

    Nowy na forum

  • Użytkownicy
  • 6 Postów:

Napisano czw, 20 wrz 2012 - 19:09

A jak np.chcialbym jakieś tlo stworzyć do danego levelu,lub glówną postać to też wpisuję takie rózne komendy w danym języku?Który można z czasem silnik wykorzystać do sprzedaży?Chyba znajdą się jakieś pomoce np.tutoriale na you tube?

#10 Jason

    Avatar

  • Super użytkownicy
  • 1118 Postów:

Napisano czw, 20 wrz 2012 - 20:04

Tak, do realizacji renderingu też wpisujesz takie różne komendy w danym języku. W grach 2D wyświetlasz głównie prostokąty. Najważniejsze rzeczy, które trzeba oprogramować to ich ruch, reakcja na kolizje, czy też sterowanie jeśli prostokąt to główny bohater. Video tutoriale istnieją, natknąłem się jakiś czas chociażby na to: http://forum.warszta...23554.msg275064

#11 Rastaman

    Nowy na forum

  • Użytkownicy
  • 6 Postów:

Napisano pią, 21 wrz 2012 - 15:23

Dziękuję serdecznie za pomoc i poswięcony mi czas.Jeden z kolegów coś wspominal,że chcialby się dolączyć do wspólpracy nad grą.Jest po informatyce i mam nadzieję,że będzie się bardziej orientowal w tym wszystkim niż ja :) .No zobaczymy może coś nam wyjdzie.Oczywiście bedę powracal do tego tematu jak coś,więc prosilbym o jego nie usuwanie.Jeszcze raz za wszystko dziękuję i pozdrawiam.

...a jeszcze jedno.Czy tworząc takie filmiki,albo takie rzeczy jak ten samochód też trzeba wpisywać rózne komendy,czy może to dziala na innej zasadzie?
W you tube jak coś możesz wpisać Unreal Engine Official Samaritan Demo i druga nazwa filmiku to CryEngine 3 GDC 11: Exclusive Tech Showcase