3. 5. 2011

M-theory

Je to můj hobby projekt. Snažím se o vesmírný simulátor. V podstatě se jen snažím dokázat, že ne každý vesmírný simulátor musí být rozparcelován na "kostky", které obsahují severní, jižní, západní a východní bránu (jump gate) do okolních "kostek". Takhle je totiž řešena spousta "simulátorů" současnosti : X-neco, Freelancer atd. V těchto hrách je sice úžasná grafika, ale jde jen o "skybox" (předmalované pozadí s mlhovinami a hvězdami) a SJZV brány. Pokud se hráč vydá nějakým směrem a vylétne z pomyslné "kostky" může letět do alelůja a nikam se nedostane. Pro mě mega nuda.

Jsou ale i hry, které byly v tomto ohledu zpracovány parádně: stařičké Elite nebo novější, ale už taky dědeček, Frontier. Zmíněný Frontier se tedy nejvíce blíží mému snažení.

Pokud bych měl tedy vyjmenovat základní mechanismy M-theory:
  1. možnost několikanásobného zrychlení času v hře (ala Frontier)
  2. přistávání na planetách
  3. fyzikální model rakety
  4. působení gravitace velkých těles na raketu hráče
  5. možnost zaměřit/označit libovolnou hvězdu ve výhledu hráče a doletět k ní
Teď podrobněji k jednotlivým bodům:

Bod 1
Tady je to asi jasné. Jde o zpříjemnění herních mechanismů ve vesmíru. Nejsem masochista, abych letěl z planety na její měsíc v realtime několik hodin (podle toho jak nastavim výkon fiktivních motorů rakety)

Bod 2
Planety zatím plánuju generické. Tedy jejich povrch popisuje stabilní šumová funkce (Perlin, Ridget apod) a barevá škála pro heightmapu. Tohle je věc se kterou si teď hraju a počítám, že mám ještě na dlouhou dobu vystaráno. Pro lepší představu se snažím o něco takového:  Part1 Part2 . Další naprosto neskutečný projekt je Outerra (neskutečná ukázka). O tom jak se mi to daří nebo spíše nedaří se lze přesvědčit zde.

Bod 3
S fyzikou bych to úplně nepřeháněl. Chci sice setrvačnost, inertii, hmostnost, gravitaci a podobné libůstky, ale celé bych to podřidil vlastnostem fiktivního pohonu rakety. Takže zas žádné šílenosti, kdy roztočenou raketu hráč vyrovnává půl hodiny jednotlivými zášlehy motorů.

Bod 4
Docela rad bych tam měl gravitaci velkých těles, kdy by hráč musel počítat s gravitační pastí nebo používat gravitační prak apod.

Bod 5
V principu chci aby mohl hráč přeletět od hvězdy ke hvězdě bez použití nějaké brány nebo skoku. Třeba jen se zrychlenym časem (bod 1). Samozřejmě nějaký druh hyper motoru a skoky "podprostorem" (nebo co si vymyslím) bych tam chtěl. Jen to nechci mít postavené na SJZV branách.


Takže sečteno podtrženo je to naprosto nereálný projekt :-).

1. 5. 2011

Úvodní slovo

Tak jsem se konečně dokopal k založení blogu. Prokousat se nastavením Googlu nebyl žádný med. Jsem teď v podstatě strašně vzteklej. Měl jsem totiž už jeden blog založenej a nějakym nesmyslem jsem o něj přišel. No nic. Snad se to nebude opakovat. Tak a teď už k věci.

Jsem obyčejný (rozuměj: naprosto špičkový) Java programátor. Možná poslední v republice, protože ostatní jsou již všichni developeři. Bylo to až legrační zjištění při výměně vizitek na jednom JUGu a JOSu. I když možná kecám. Nedávno nás spolkla jiná firma a tak už i já jsem henten senior java developer. No čert to vem.

V práci mě živí tvorba UI, na což používám framework Eclipse RAP . Bastlím v tom jeden bundle/plugin, kterej nám pomáhá zjednodušit psaní UI formulářů na nezbytné minimum a zatím se daří. Eclipse RAP mám rád. Předtím jsem prototypoval v JSF + Richfaces, dělal jsem Struts, znám rámcově GWT a pár dalších technologií, ale RAP mi sedí zdaleka nejvíc a IMHO to je technologie o které ještě bude hodně slyšet. Další udělátka, které na našich projektech používáme jsou : Eclipse RAP, Eclipse RCP, JFace, SWT, Eclipse Equinox (OSGi), Spring (DI, Transakce, Remoting, Integration), AspectJ, JiBX, Hibernate. Celé se to mavenuje a Hudson (dnes Jenkins) nám z toho staví ty blázince co pak putujou k testerům a nakonec i k zákazníkům. Vrchní architekt spravuje domain vrstvu přes Enterprise Architekt a generuje z toho další možné i nemožné výstupy/pomůcky pro nás, obyčejné zedníky kódu. Celé to bušíme v Eclipse IDE (toho času 3.6.2), který začíná být docela dýchavičný. Ono se ale nelze moc divit, když musí ustát několik desítek projektů v jednom workspace. Také jsem si nedávno odzkoušel napsat plugin pro Eclipse IDE, kde jsem teprve poznal sílu Eclipse IDE potažmo RCP. Zprovoznění code completetion, hyperlink, syntax highlight, preferences atd atd bylo elegantní a nechalo mě nahlédnout do dílny mistrů, byť obdiv malinko zkalený mírným bordelem v API Eclipsu, což je asi důsledek zpětné kompatibility. Jsem vážně zvědav, až někdy bude čas a pohraju si s Eclipse 4.x, kde je šance, že dojde k očištění API.

Ještě bych snad začal trochu víc ze široka. Začínal jsem jako 10. letý capart s Commodore 64 (8-bit), ke kterému jsem nedostal kazeťák a tak jsem měl pouze C64 a návod v němčině s popisem Basicu. Kazeťák chyběl asi půl roku (C64 mělo speciální s plochým proprietarním konektorem) a tak jsem vlastně začal programovat. Později jsem přesedlal na Amigu 1200 (jazyky: Amos, Assembler) a nakonec skončil u PC a Windows (Pascal, Delphi, Visual Basic 6.0, Java). Jako mrňous jsem měl sen, že jednou budu programovat hry. No a protože se nezadařilo a i přes to, že jsem pár hříček za svůj život zbastlil, skočil jsem u klasických vnitropodnikových systémů. Tak jsem si teď, na stará kolena, vymyslel hobby projekt. Bude to naprosto úžasný, jedinečný a unikátní vesmírný simulátor. Simulátor jaký svět ještě neviděl (ano, podobnost s jitrnicí není čistě náhodná). Projekt jsem pojmenoval grandiózně: M-theory. Ťukám ho už nějaký ten pátek a ještě chvíli a budu mít tak jednu tisícinu hotovou. Tady je volně přístupné SVN projektu. Nevim jestli to případný zvědavec je schopen rozběhat, ale tomu asi budu věnovat některý z následujících blog canců. M-theory je vlastně ten hlávní důvod proč zakládám blog. Rád bych se podělil o algoritmy, na které narážím na netu, které se snažím pochopit a převzít. Rád bych rady a konzultace od komunity a třeba, když budu pilný i nějakého nadšence, který se přidá. No nejsem naivní ? ;-)

A dál ? Dál už nic.