Autor Wątek: Constructor  (Przeczytany 3619 razy)

Offline Vipa

  • Redaktor

# Wrzesień 15, 2014, 18:15:20
Jak zwykle rzeźbię sobie coś na boku. Tym razem padło na elektryczne puzzle. Jeszcze co prawda nie jest to gra, ale muszę kilka rzeczy skonsultować.
Otóż samą ideą jest konstruowanie układów pseudo-elektrycznych z przygotowanych (lub nie) elementów. Zdecydowałem się nie komplikować sobie i graczom życia i wzorem Minecraft, ograniczyłem się po prostu do przesyłu energii. W sumie to nie Minecraft był inspiracją, a podejrzana u kumpla jakaś układanka elektrycznych elementów, która datowana jest na czasy końcówki socjalizmu w Polsce. Wygląda to mniej więcej tak:

Na rysuneczku na szybko skonstruowana brameczka NAND, która zwraca 0 w przypadku gdy... Kamą, to chyba każdy wie.

W "grze" mamy do czynienia z określonym poziomem przesyłanej energii od 1 do 10. Poziom 0 to układ nie podłączony do prądu (wyświetlacz pokazuje jednak zakres 0-9, gdyż poziom 1 to poziom minimalny podłączonego układu).
Króciutki opis brameczki: ikonki z wtyczką to nasze wejścia sygnału. Przełączniki wiadomo, on-off, zatrzymują lub puszczają sygnał. Łatwiej testować z nimi działanie bramki. Dalej następuje w obu sygnałach -8, więc z początkowego sygnału o mocy 10 otrzymujemy 2. Następnie sygnał jest sumowany na łączeniu z wyjściem i wynosi 4. Jak widzimy sygnały są wyłączone, więc suma ich mocy wynosi 2. 2 jest mniejsze od 4, więc dalej puszczany jest sygnał "true" o wartości 10. Jak widać gdy włączyć obydwa sygnały na 1, wartość końcowa wyniesie 4 i warunek <4 nie zostanie spełniony. Oczywiście można tę bramkę zrobić mniejszą, musi jednak być ten sumujący kabelek na środku układu. Inne elementy nie sumują ani nie blurują kilku sygnałów.

Do dyspozycji mamy:
- obcęgi - kasują dany element na płycie.
- linia - stawiamy przewód (sygnał nie ulega zanikowi jak w Minecraft)
- wtyczka - źródło energii
- żaróweczka - świeci światłem o określonej sygnałem mocy, nie przekazuje sygnału dalej
- minusik - obniża moc sygnału o ustaloną wartość
- plusik - podwyższa moc sygnału o ustaloną wartość
- wyświetlacz - pokazuje aktualna moc sygnału, nie przekazuje sygnału dalej
- negacja - odwraca moc sygnału (jak otrzymuje sygnał o mocy 10, to zwraca sygnał o mocy 1)
- wejście zegarowe - zasilany sygnałem >1 zwraca sygnał w zakresie 1-10. Zmiana następuje co 1/10 sekundy, więc zwraca sygnał o tej samej mocy dokładnie co sekundę
- nutka - wydaje dźwięk kliknięcia przy otrzymaniu sygnału o mocy <3. Dźwięki wyższe to kolejne tony gamy.
- znaczek większości - zwraca maksymalny sygnał (10) gdy spełniony zostanie warunek >
- znaczek mniejszości - zwraca maksymalny sygnał (10) gdy spełniony zostanie warunek <
- wyłącznik - możemy sobie włączać i wyłączyć sygnał (po wyłączeniu zwracany jest jednak sygnał 1, nie 0, gdyż obwód jest podłączony)

Potestować można sobie zasysając paczuszkę: pobierz

No i moja prośba na koniec. Czy coś jeszcze może być potrzebne? Jakieś elementy, o których pojęcie miałem kilkanaście lat temu na lekcjach techniki i teraz wypadły mi z głowy? Jakieś pomysły? Czy zachowania w układach są poprawne (oczywiście stosując opisane wyżej uproszczenia)?

// edit, aha: rolką myszki możemy scrollować belkę z elementami i zoomować i oddalać układ. Przesuwać układ można dragując prawym myszy.
« Ostatnia zmiana: Wrzesień 15, 2014, 20:39:52 wysłana przez Vipa »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

  • +1
# Wrzesień 15, 2014, 18:53:06
Cytuj
Czy zachowania w układach są poprawne (oczywiście stosując opisane wyżej uproszczenia)?
Ciężko mi to porównać do jakiejkolwiek znanej mi reprezentacji układów elektrycznych, więc nawet nie ma jak mówić tutaj o poprawności. Generalnie wszystkie prawa fizyki/elektryki/elektroniki w tej grze są wymyślone. :)

Nie prościej by było zdecydować się na przykładowo układy logiczne w czystej postaci? Masz stany 0, 1 i Z, i wszystko wiadomo. Alternatywnie, jeżeli chcesz mieć elektronikę, to zrób rzeczywiście elektronikę (co się równa napisaniu symulacji, albo podpięciu jakiejś gotowej) albo jakiś inny realny układ, np. przepływ cieczy. Tak czy inaczej miło by było, gdyby było to coś realnego, to gracz mógłby się nauczyć czegoś, co ma zastosowanie w świecie rzeczywistym. :)

Offline Vipa

  • Redaktor

# Wrzesień 15, 2014, 19:10:49
Nie no z tą poprawnością to raczej same zachowania układów, choć przepływ wody brzmi kusząco :).

Nie wiem czy realizm akurat w tym przypadku byłby atrakcyjny dla graczy, lepiej już chyba operować na fikcyjnych energiach. To jedne rzeczy upraszcza a drugie komplikuje, choć całość po 5 minutach testowania jest całkiem prosta do ogarnięcia. Po prostu moje zdolności tłumaczenia czegokolwiek pismem są do bani ;).

Jeszcze po najechaniu na dowolne pole, na górnej belce pokazywana jest energia na danym polu (Power). To sporo ułatwia przy bardziej skomplikowanych układach niż jedna bramka. Muszę to wizualizować jakoś inaczej.

Offline Oti

  • Użytkownik

# Wrzesień 15, 2014, 19:32:28
Cytuj
Dalej następuje w obu sygnałach -8, więc z początkowego sygnału o mocy 10 otrzymujemy 2. Następnie sygnał jest sumowany na łączeniu z wyjściem i wynosi 4. Jak widzimy sygnały są wyłączone, więc suma ich mocy wynosi 2.
Co to znaczy, że 'sygnały są wyłączone'? Możesz rozwinąć ten fragment, bo zupełnie nie mogę zrozumieć co tam się dzieje. Mamy 4 i nagle się robi 2? Skąd? Czemu 2?

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Wrzesień 15, 2014, 19:40:30
Cytuj
Nie wiem czy realizm akurat w tym przypadku byłby atrakcyjny dla graczy, lepiej już chyba operować na fikcyjnych energiach.
Odpowiem Ci: w przypadku układów logicznych byłby atrakcyjny. Poza tym byłby on dużo prostszy od tego, co wymyśliłeś. ;) Sam swego czasu grałem w grę opartą na łączeniu bramek by zaprogramować zachowanie robota i było naprawdę fajnie.

Za to jeżeli chodzi o realistyczne analogowe układy elektroniczne, to nie - raczej nie było by to fajne za wyjątkiem graczy o zapaleniu elektronicznym i studentów tego kierunku.

Cytuj
Po prostu moje zdolności tłumaczenia czegokolwiek pismem są do bani ;).
Tym bardziej polecam pójście w kierunku układów logicznych. To co masz w tej chwili z wieloma poziomami raczej utrudnia niż ułatwia, a w dodatku nie wiadomo jak to liczyć: 1..10, 0..9, czy 0..10?


EDIT: Jeżeli nie intryguje Cię logika na układach logicznych, możesz zrobić logikę np. na przekaźnikach.

Offline Vipa

  • Redaktor

# Wrzesień 15, 2014, 19:49:45
Już spieszę z tłumaczeniem:
Sygnał bazowy jest o sile 10. Takich wychodzi z "wtyczki". Po drodze napotyka reduktor -8 i wychodzi z niego 2. To samo w drugim kanale, też reduktor -8 i wychodzi także 2. Sygnały te są sumowane na łączeniu i wynikiem sumy jest 4.


Co do wyłączenia: kanał/obwód nie podpięty do zasilania ma moc sygnału 0. Podpięty, posiada moc sygnału od 1 do 10. Sygnał o mocy 1 jest tak naprawdę zerem (w znaczeniu logicznym). Ta 1 ma znaczenie tylko takie, że podpięliśmy zasilanie. Jeżeli do sygnału o mocy >0 (a więc podpiętego do zasilania) podepniemy wyłącznik, to ten wypuści sygnał o mocy 1 gdy jest wyłączony, albo o mocy źródłowej gdy jest włączony.

Lepszego pomysłu nie miałem. Zero to brak "prądu". Jedynka to sygnał minimalny a dziesiątka to maksymalny. Wyświetlacz pokazuje natomiast moc sygnału tylko podpiętego do zasilania. W przypadku jego braku jest wyłączony. Dlatego pokazuje 0-9, co odpowiada mocy sygnału 1-10.

Trudno może to zrozumieć z mojego tłumaczenia, trzeba coś zbudować ;).

Offline albireo

  • Użytkownik

# Wrzesień 15, 2014, 20:42:00
Tak na szybko, przydałaby się dioda (trzeba czymś złamać symetrię) i jakieś opóźnienia sygnałów (albo na samych przewodach, albo specjalny element, też niesymetryczny), bez tego ciężko coś sensownego zbudować.

Offline Vipa

  • Redaktor

# Wrzesień 15, 2014, 20:46:15
Hmm, fakt. Na chwilę obecną możesz dodać "wejście zegarowe" (literka T), podłączyć zasilanie i po nim dać na sygnał warunek "większe od". Jak ustawisz >9 to będziesz miał sygnał o mocy 10 co sekundę, przez 1/10 sekundy.

Offline albireo

  • Użytkownik

# Wrzesień 15, 2014, 21:00:25
Dużo to nie da, w obecnym stanie np nie widzę możliwości zrobienia licznika przechodzącego od 00-99, jakby przynajmniej timery nie były zsynchronizowane, tylko aktualizowały się kiedy sygnał jest włączony to coś by się dało pokombinować (ale to w sumie też wymagałoby złamania symetrii).

Offline Vipa

  • Redaktor

# Wrzesień 15, 2014, 21:10:20
Hmm, ja je specjalnie synchronizowałem, więc mogę uzależnić np. od momentu stawiania.
Żeby była jasność, bo ja prosty człowiek, chodzi o to by zmiana w timerach następowała nie w tym samym momencie ale różnych? Oczywiście dalej co określony okres?

Offline laggyluk

  • Użytkownik
    • twitter

# Wrzesień 15, 2014, 21:14:53
idea spoko ale działanie w odniesieniu do elektroniki dziwne ;p ugrowić można by robiąc zadania typu 'doprowadź prąd o wartości x tu i tam używając danego zestawu elementów' a'la SpaceChem

Offline Vipa

  • Redaktor

# Wrzesień 15, 2014, 21:16:24
Dokładnie taki mam pomysł na gameplay. Jakkolwiek dziwnie to nie brzmi, będzie to miało sporo wspólnego z lemingami ;).

Offline Vipa

  • Redaktor

# Wrzesień 15, 2014, 21:50:48
Sorki za doubla, ale dodałem ten asynchroniczny timer. AT na końcu listy. Link do downloadu ten sam. Save tylko nie pasuje i z folderu data/save.gam trza by wykasować.

Offline Xirdus

  • Redaktor

# Wrzesień 15, 2014, 22:09:18
Save tylko nie pasuje i z folderu data/save.gam trza by wykasować.
Mamy rok 2014. Takie problemy nie powinny się już nigdy zdarzać.

Offline Karol

  • Użytkownik

# Wrzesień 15, 2014, 23:10:08
Mamy rok 2014. Takie problemy nie powinny się już nigdy zdarzać.
Chyba w finalnym produkcie, a nie prototypie/eksperymencie.

Btw. mimo wszystko się zdarzyło, dla mojej kobity wywaliło dziś całą farmę z Hay Day pomimo iż teoretycznie zapisywała się w chmurze :P.


Coś ten prund niezbyt leniwy i nie szuka najmniejszego oporu :) Ale pomysł ciekawy, tylko nie wiem póki co co w tym można by zrobić :D
« Ostatnia zmiana: Wrzesień 15, 2014, 23:17:02 wysłana przez Karol »