Inspirisan odličnom puzzle igrom
Rubicon (koja je bazirana na RUBE programskom jeziku), odlučio sam da napravim remake i dodam stvari koje rubicon nema, mislim da bi trebalo da ima
U pitanju je puzzle/sandbox igra koja nema neki poseban cilj : imate game field, gomilu kutija i masina na raspolaganju, pa pravite mašine kakve 'oćete. Možda bi trebalo ubaciti neke nivoe sa ograničenim arsenalom mašina i šta ti ja znam, al o tome kasnije

.
Fizika igre je relativno prosta, game field je 2D grid koji se sastoji od ćelija u kojima se može naći kutija, mašina ili zid (ili i mašina i kutija). U svakom ciklusu, dešava se sledeće :
- Svaka kutija pada pod uticajem gravitacije, ako ima mesta da padne (tj ako nema nečeg ispod nje)
- Svaka kutija koja je gurnuta na neku stranu (npr drugom kutijom ili na pokretnoj traci) se pomera
- Mašine odrađuju svoj posao
Kutije su u stvari podaci, svaka kutija može broj, slov ili znak (jedan char, u sustini), ili biti kompozitna kutija, koja se sastoji od dve kutije. Pošto postoji samo 10 cifara po kutiji, sve računske operacije su po modulu 10.
Mašine manipulišu ovim kutijama, pomeraju ih, stvaraju i uništavaju, i na taj način se prave kompleksnije mašine.
Ono što rubicon ne poseduje, a ja sam ubacio, su I/O portovi na mašinama : svaka mašina ima makar jedan ("Enable"). Uz pomoć connect tool-a inputi i outputi mašina se mogu povezati. Evo primera kako to izgleda :

U ovom primeru, toogle input je povezan na true, pa toogle output menja vrednost u svakom ciklusu. A toogle output je povezan na enabled od up-pipe-a, pa ova mašina razdvaja niz kutija tako što svaku drugu povlači na gornju traku. Btw, grafika je placeholder, pa je dosta toga ružno, kao npr ove pokretne trake
Evo na primer kako izgleda pun sabirac u RubeFactory-u :
Jos uvek ne podrzava load/save i copy/paste, to je sledece radim

takodje, ubacicu description i help za masine i jos par masina.
Do tada, evo liste trenutnih masina, po redu po kom se pojavljuju na toolbaru :
Prvi red :
- Connect Tool - povezuje I/O portove masina. U connect dialogu, sve sto je crveno je izlaz, sve sto je zeleno je ulaz. Mozete povezati samo ulaze sa izlazima (i obrnuto). Jedan ulaz moze da primi samo jedan izlaz, dok se izlazni port moze povezati sa neogranicenim brojem izlaza.
- 0-9 kutije - kutije sa vrednostima. ? kutija je placeholder za nesto sto sam zaboravio da ubacim :P
Drugi red se sastoji od sivog i crvenog zida, pa ga necu ni opisivati...
Treci red su masine :
- Pokretna traka na levo i na desno (2 elementa) - gura kutije direktno iznad levo ili desno
. Moze se promeniti pravac trake na wire inputima.
- Push left/right - gura kutiju direktno ispred sebe.
- Pipe up/down - povlaci kutiju direktno ispod/iznad sebe u jednom ciklusu. Ukoliko nastavite vise cevi u istom pravcu, kutija ce proci kroz sve u samo jednom ciklusu.
- Kopir na gore/dole -kopira kutiju ispod/iznad sebe.
- Dematerijalizator - unistava kutiju i pretvara je u wire signal
- Materijalizator - pretvara wire signal u kutiju koja ima tu vrednost. Dematerijalizator i materijalizator se mogu koristiti kao portali.
- +, -, *, /, mod - racunske operacije po modulu 10. Daju korisne izlazne wire signale (carry za sabiranje, na primer) pa se mogu nadovezivati.
- Destroyer - unistava kutiju koja udje u njega
- Packer - uzima dve kutije, dole-levo i dole, i spaja ih u kutiju koja sadrzi ovaj par. Par se pojavljuje dole-desno od packera, a ulazi se brisu.
- Unpacker - na ulazu uzima kutiju koja sadrzi par, i raspakuje je.
- Comparator - kutija direktno ispod je referentna. ako je kutija iznad <= od referentne, ode levo, ako je veca, ode desno.
- Sensor ima izlaze za svaku stranu, ukoliko kutija dodirne senzor, odgovarajuci izlaz se aktivira.
Sledece masine rade samo sa zicama, i uopste ne uticu na kutije (osim sto se ponasaju kao zidovi).
- Constants - za izlaze ima brojeve 0-9. Korisno za povezivanje sa brojacima, memorijama ili komparatorima.
- Utility box - sadrzi brojac koji moze da se inkrementira, dekrementira i resetuje, i toogle input i output.
- Wire komparator - uzima dva signala, i daje A<B, A<=B, A>B, A>=B, A=B i A!=B izlaze.
- And, Or i Not - logicka kola. Svaki sadrzi po tri gate-a u sebi.
- Signal change detect - detektuje promene u signalu, daje outpute koji se menjaju zavisno od promene signala (raste ili opada).
- Memorija - moze da cuva do 10 vrednosti (koje mogu biti parovi). Adresira se sa jednim inputom, ima read i write mode. Uskoro cu ubaciti demultiplekser, pa ce biti moguce kombinovati memorije radi veceg kapaciteta na prirodan nacin.
Evo i linka za download trenutne verzije :
http://www.mediafire.com/?0hccl6yn3ci7fc3