Wormhole

Tervetuloa Wormhole-projektin kotisivulle!

(Finnish edition)
(Let us see what's out there.... - Jean Luc Picard, Captain of the U.S.S. Enterprise)
[Tiiraillaanpas mitä sieltä löytyy.... - Jean Luc Picard, U.S.S. Enterprise:n vt. kapteeni]

Muunkielisiä versioita samaisesta sivusta:

In English

Zur deutschen Version dieser Seite

Spanish version of this page

Täh, Wormhole? Ja mikä se on?

Wormhole on (sori, kaukaisessa ja niin valoisassa tulevaisuudessa tulee olemaan) tieteis-strategiapeli kuuluen Master of Orionin ja The Ascendancyn kanssa samaan luokkaan. Kuten mainituissa peleissä, Wormhole:ssa pelataan kaukaisessa tulevaisuudessa, jossa useat tähtienväliset imperiumit taistelevat galaksin hallinnasta.Sinun tehtävänä on rakentaa uusia siirtokuntia, tutkia kehittyneitä teknologioita, taistella muita imperiumeja vastaan ja - tietenkin - voittaa!!!

Mikä on kuumaa ja mikä ei (ja mikä uutta)...

Haluat saada uudet infot? Vieraile Wormhole:n keskusteluryhmässä parsimony.net/forum/forum1216/ [Saksankielinen serveri, keskusteluryhmä englanniksi]

Millä me ohjelmoimme Wormhole:a

Pinguin-Logo Käyttöjärjestelmänä: Linux

Käytämme Linuxia koska haluamme luoda monimutkaisen pelin jossa on mukana myös ajatusta, ei vain hyvää 3DFX grafiikkaa. Tällä hetkellä kenelläkään tiimissä mukana olevasta henkilöstä ei ole poikkeuksellista (tai edes perus-) lahjakkuutta tietokonegrafiikan luomisessa. Linux tarjoaa meille täyden mahdollisuuden luoda vakaan ja verkkoperustaisen pelin.

Ohjelmointikieli: C++

On ilmeistä että monimutkaista peliä (jollainen Wormhole:sta tulee) ei voida toteuttaa turvautumatta olioperustaiseen ohjelmointikieleen. Tästä johtuen päätin käyttää C++:aa. Ja koska C on hyvin samankaltainen, voimmekin käyttää Linuxin kaikkia systeemikutsuja ja kirjastofunktioita.

Visualisaatio

Koska emme pääse yksimielisyyteen siitä mitä GUI Toolkit:tiä olisi parasta käyttää (Mutta Wormhole tulee taatusti saamaan X-Windows -käyttöliittymän), ehdotankin seuraavanlaisen kompromissin:

Peli itse tulee omaamaan useita määriteltyjä käyttöliittymiä GUI-Toteutukseen, joten nämä kaksi osaa tulevat olemaan toisistaan riippumattomia.
Helpoin ratkaisu olisi luoda kaksi erilaista GUI:ta, yksi Qt:n avulla (KDE:ta varten) ja toinen GTK:m (GNOME:a varten).

GUI Toolkitti (KDE/QT look): Qt

Qt on XForms:n ja Motif:n kaltainen toolkitti. Se on hyvin tehokas, helpo käyttää ja näyttää hyvältä (Jos haluat saada ensivaikutelmia Qt-tyylisistä widgeteistä, katso KDE-Desktop Environment:n (www.kde.org) kotisivut. KDE on Qt-perustainen)
TÄRKEÄÄ: Qt 1.4 on saatavilla nyt. On ilmeisen pakko testata se... ;-)
TÄRKEÄÄ: QtEZ on tehokas kehitystyökalu Qt:ta ja KDE:ta varten. Luullakseni meidän pitää mulkaista niitäkin... (Löydät sen qtez.commkey.net:sta)

GUI toolkitti (GNOME:lle): GTK

Tässä infoa Gtk+:sta, suoraan heidän kotisivultaan:
---8<---
GTK+, which stands for the GIMP Toolkit, is a library for creating graphical user interfaces for the X Window System. It is designed to be small, efficient, and flexible. GTK+ is written in C with a very object-oriented approach. Language bindings exist for C++, Perl, Python, Objective C, Guile, and TOM.
---8<---
--=[fin]=--
GTK+, joka tulee GIMP Toolkit:sta, on kirjasto graafisten käyttäjäliittymien luomiseksi X Window Systemille. Se on suunniteltu olemaan pieni, suorituskykyinen ja joustava. GTK+ on kirjoitettu C:llä  käyttäen hyvin objekti-orientoitunutta lähestymistapaa. Ohjelmointirajapintoja löytyy C++:lle, Perl:lle, Python:lle, Objective C:lle, Guile:lle ja TOM:lle
--=[nif]=--

Peli

Perusajatukset

Erot muihin Sci-fi strategioihin

Ohjelmointi

Koska C++ on toteutuskielenä, koko koodikanta on tiukasti olio-orientoitunut.

Wormhole luokkahierarkia (peliosuus)

Koska olemme erottaneet asiakas- ja palvelinmoduulit toisistaan, meillä on kaksi erillista luokkahierarkiaa. Palvelimelle se on:
Ja asiakkaille:
Wormholen Asiakas tulee omaamaan myös pääluokan nimeltä CClientMain, sekä myös CNetInit:n ja CNetConnection:n (tosin se tulee tarvitsemaan vain yhden ilmentymän CNetConnection:sta). Vaikka asiakkaan verkkoluokat toteuttavat hyvinkin erilaisen toiminnan kuin palvelimen, tulevat ne kuitenkin luultavasti jakamaan saman abstraktin perusluokan.
Kuten palvelimessakin, asiakkaalla on CStartUp -luokka, joka näyttää pelin esi-asetukset. Täällä pelaaja voi "loggautua" palvelimeen lähettämällä palaajanimensä ja IP-osoitteensa.
Sen jälkeen, pelaajaa viedään asiakasohjelman CRunGame -luokkaan.
Asiakasohjelma on "tyhmä" (dummy), mikä tarkoittaa että se on vastuussa vain tiedon vaihdosta pelaajan kanssa. Kaikki tiedon tarkastus tehdään palvelinohjelmassa.

Tietoluokkahierarkia

Wormhole:ssa meillä on paljon tietoa käsiteltävänä, ja paljon siitä jakaa samoja perusajatuksia. Tästä johtuu että on helppo rakentaa luokkahierarkia kaikille datatyypeille:

DGalaxy: Tämä luokka ilmentää pelialueen. Kaikkien muiden peliobjektien ilmentymät varastoidaan tähän.
DSystem: Tähtijärjestelmä.
DPlanet: Abstrakti perusluokka. Aliluokat voisivat olla: DEarthLikePlanet ja DGasGiant.
DBuilding: Abstrakti perusluokka siirtokuntarakennuksesta. Aliluokat voisivat esim. olla: DResearchLab, DSpacePort tai DMissileBase.
DShipClass: Tämä luokka pitää sisällään tietoa tietyntyyppisistä aluksista.

On tietenkin satoja ilmentymiä Qt-luokista, mutta niitä käytetään lähinnä visualisoimiseen, joten en listaa niitä tässä.

Wormholen Asiakas/Palvelin ajatusrakennelma (uusi) [ok, ok, someone say it better =P]

Wormhole:a pelataan yhden palvelimen ja useitten asiakkaitten avulla. Nämä moduulit keskustelevat TCP/IP -sockettien avulla, joten ne voivat sijaita yhdellä ja samalla koneella (loopbackin avulla [btw. X Windows toimii siten PC:llä, joten menetelmä toimii] ) tai eri työkoneilla kytkettyinä LAN:iin.
Pelatakseen Wormhole:a internetin kautta minimaalisin kustannuksin, Wormhole:a pelataan e-mailin kautta. Palvelimella on jokaista etäpelaajaa kohden VPD (Virtual player device), joka käyttäytyy kuten paikallinen pelaaja, muttei omaa suoraa käyttjäliittymää. Se hankkii tietonsa e-mailista.

Asiakas on liitäntä tettyyn pelaajaan, sillä välin kun palvelin kerää pelaajatiedot ja suorittaa kaiken muun. Lopullinen päämäärä on kehittää palvelinohjelma joka voi käsitellä niin monta asiakasta kuin mahdollista (= rajoittuu vain järjestelmän resursseihin ja verkon nopeuteen).

GPL

Koko peli julkaistaan GPL:n suojaamana, joten kaikki voivat saada näppinsä kiinni sorsiin ja jättää jälkensä projektiin. Jos käytät Linuxia, sinulla on varmasti kopio GPL:stä, joten jätän sen kirjoittamatta tähän.

Lähdekoodi

Valitettavasti lähdekoodia ei ole saatavilla (vielä, sellaisen poissaollessa... ;)

Haluatko osallistua projektiimme?

Lähetä e-mail The Wormhole Project:lle, jossa kerrot haluavasi osallistua projektiimme lähemminkin. (englanniksi =)

TÄRKEÄÄ: Voisitko jättää kaikki muut Wormholea koskevat viestit keskusteluryhmään, niin kaikki wormholesta kiinnostuneet voisivat lukea ajatuksesi.

Ketkä ovat jo mukana (Wormhole-proktin kehitysryhmä)

Nimi Tehtävä
Hendrik Belitz Saksankielinen kotisivu, pelin mekaniikka, käyttöliittymä
Daniel von Dincklage
David Raynes AI, Asiakas/Palvelin suunnittelu
Jose Ignacio (Nacho) Espanjankielinen kotisivu(?) 
Robert Welham
Antonello Foa Italiankielinen kotisivu(?), * 
Gustav Petersson FTP tila, ohjelmointi (GTK?) 
Rich Morgan
Machieu Faucher  Ranskankielinen kotisivu
Chad A. Chance  Pelin grafiikat
Steve Kordik 
Shixin YU 
 
*: koska olemme vieläkin vasta esikehitys-vaiheessa, niin ei ole muita tehtäviä kuin pelisuunnittelu ja esiohjelmointisuunnittelu.

Mitä tarvitaan


The Wormhole Project

 
Finnish translation by Olorin, please address any typoes/language errata back to him.