Jump to content

W sprawie silnika do tworzenia przyszlej gry.


Rastaman

Recommended Posts

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.

Link to comment
Share on other sites

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:

#!/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ę

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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).

Link to comment
Share on other sites

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.?

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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/str/pokaz/pygame_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.

Link to comment
Share on other sites

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.warsztat.gd/index.php?topic=23554.msg275064

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...