Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Wiadomości - Lerhes

Strony: 1 [2] 3 4 5 6 ... 25
16
Cykliczne Warsztatowe Compo / Odp: "Zrozumieć programowanie" - compo!
« dnia: Listopad 09, 2015, 16:48:46 »
Walczyłem jak lew z tym plikiem, ale niestety nie udało mi się odszukać zakodowanej wiadomości :(
O ile to możliwe, proszę o sprawdzenie czy karol57 dobrze rozwiązał zagadkę (czego oczywiście mu życzę), bo jeżeli nie to wracam do dłubania :D.
Bardzo mnie ciekawi gdzie ta ukryta wiadomość się znalazła :) - jeżeli rozwiązanie Karola jest dobre, to proszę o informacje jak została ona zakodowana.
Lerhes

17
Projektowanie kodu / Odp: Brak pamięci statycznie alokowanej
« dnia: Listopad 04, 2015, 13:45:23 »
Dziękuję za wszystkie uwagi i pomysły.

Na razie udało mi się zrobić jeden eksperyment: Zmieniłem domyślny padding z 4 bajtów na 1 bajt, i "zyskałem" 26 mb pamięci. Nie jest źle, aczkolwiek szału nie ma.
Jeżeli chodzi o inne opcje kompilacji, czy możliwości samego systemu czasu rzeczywistego - w te aspekty jeszcze się nie zagłębiłem.

Oczywiście, zawsze pozostaje pytanie, czy te wszystkie globalne struktury są mi potrzebne i czy nie dało by się przeprojektować kodu tak, żeby ograniczyć ich liczbę - tutaj mam już pewne sukcesy, ale nadal czeka mnie sporo pracy.

Dziękuję jeszcze raz za pomoc.
Lerhes

18
Projektowanie kodu / Brak pamięci statycznie alokowanej
« dnia: Listopad 02, 2015, 00:48:58 »
Cześć,

Pytanie nie jest związane z programowaniem gier - za co przepraszam - ale odpowiedź może być przydatna dla ludzi tworzących gry na urządzenia mobilne.

Wyobraźmy sobie sprzęt dedykowany pod kontrolą systemu operacyjnego czasu rzeczywistego. Mamy na nim dostępne około 200 mb wolnej pamięci (jak sądzę RAM). W systemie tym zastosowane są dwa typowe podejścia (typowe o ile mi wiadomo):
1. Większość potrzebnej pamięci (struktury danych, tablice itp) są statycznie zaalokowane jako zmienne globalne (lub są po prostu zmiennymi globalnymi).
2. Jest możliwa dynamiczna alokacja - ale żeby ją przyspieszyć, zaimplementowany został moduł który alokuje większe fragmenty pamięci i "rozdziela" ją według potrzeb (alokacja z puli).

Wyobraźmy sobie teraz, że dostajemy do zaimplementowania pewną nową funkcjonalność. Akurat tak się składa, że wymaga ona głównie dublowania potrzebnej pamięci statycznej (jeżeli mamy tablicę stu elementową pewnych struktur danych, zmieniamy ją na tablicę dwustu elementową). Wszystko idzie spoko, do czasu, gdy okazuje się, że ta pamięć się nam skończyła (za dużo pamięci statycznej nam jest potrzebne).

Czy macie może jakieś podpowiedzi / uwagi jak sobie z tym problemem poradzić?

Oczywiście - dokupienie większej ilości pamięci nie wchodzi w grę - to system dedykowany o ustalonej architekturze i parametrach - nie można ich zmienić.
O co chodzi mi konkretnie:
1. Czy jest coś ważnego jeżeli chodzi o pamięć statycznie alokowaną (lub po po prostu pamięć gdzie umieszczane są globalne zmienne) o czym powinienem wiedzieć? Np: Czy może ulegać fragmentacji, przez co tracę dużo pamięci? (np: zmieniając ułożenie globalnych obiektów albo kolejność kompilacji coś mogę zyskać?)
2. Jeżeli odpowiedź na powyższe pytanie brzmi "to zależy" to proszę o przykład typowych rozwiązań.
3. Zdaję sobie sprawę, że ułożenie parametrów w strukturach ma znaczenie ponieważ występuje wyrównywanie parametrów (tak zwany padding) - co zresztą można kontrolować poleceniami do kompilatora - ale generalnie to chyba za mała "strata" żeby tutaj jakoś bardzo walczyć.

Wiem, że na pytanie dość trudno odpowiedzieć nie znając szczegółów, ale może ktoś mnie naprowadzi na jakiś ciekawy trop (skuteczne rozwiązanie) - bardzo chętnie przyjmę też linki z informacjami które mogą mi pomóc.

Pozdrawiam,
Lerhes

19
Projektowanie kodu / Odp: Mock funkcji w tym samym pliku
« dnia: Czerwiec 28, 2015, 02:46:17 »
Paweł - dokładnie o takie coś mi chodziło!

Pod Eclipse działa jak złoto :) Sprawdzę czy będzie mi działało też w VS (w poniedziałek) ale wygląda bardzo obiecująco. Też kombinowałem coś w tym guście:
void void funkcjaLokalnaDlaTegoPliku( int zmiennaLokalna, int dodatkowyParametr ) {}
#define funkcjaLokalnaDlaTegoPliku(a) funkcjaLokalnaDlaTegoPliku(a, 15)
ale niestety takie makro zmieniało też definicję funkcji:
static void funkcjaLokalnaDlaTegoPliku(int zmiennaLokalna )
{
<tutaj znowu 1000 linii kodu>
}
i całość się nie kombinowała.

Brawo, brawo, brawo :)

Tak czułem, że czasami warto poprosić o pomoc, ludzie są jednak mili i pomogą.
Lerhes



20
Projektowanie kodu / Odp: Mock funkcji w tym samym pliku
« dnia: Czerwiec 27, 2015, 22:53:18 »
Bies - dziękuję bardzo za to rozwiązanie. Mogę to zrobić w "Custom Build Steps" visual studio. Ten twój przykład z "s/cos/cos innego" to chyba z vim jeszcze - ale znajdę coś odpowiedniego w VS. Co prawda będzie to ostry hack, ale generalnie afektuje tylko moje testy. Sprawdzę co z tego wyjdzie.

Gdyby ktoś miał jeszcze jakiś inny pomysł jak rozwiązać opisany w pierwszym poście problem - proszę pisać.

Xion - dzięki za radę, ale powalczę jeszcze. Uciekać zawsze mogę ale najpierw chcę nauczyć się jak radzić sobie z takim kodem. Problemy polityczne to już trochę gorsza spawa - pożyjemy zobaczymy, może i z tym da się coś zrobić.

Lerhes

21
Projektowanie kodu / Odp: Mock funkcji w tym samym pliku
« dnia: Czerwiec 27, 2015, 19:54:20 »
Bies, dziękuję za odpowiedź.

Rozumiem, że taki define miałby być w kodzie produkcyjnym, coś na kształt:

void funkcjaKtoraRobiCosWaznego(int a, strukturaJakas b)
{
int zmiennaLokalna = 14;
<1000 linii kodu>
global_1 = 12;
if ( funkcjaLokalnaDlaTegoPliku(zmiennaLokalna ) )
{
//Tutaj dużo kodu
}
<2000 linii kodu>
funkcjaWInnymPliku(zmiennaLokalna);
}

#ifndef INSIDE_TESTS
static void funkcjaLokalnaDlaTegoPliku(zmiennaLokalna )
{
<tutaj znowu 1000 linii kodu>
}
#endif

To powyżej było by nawet lepsze od tego co podałeś, bo w twoim przykładzie kod testu (mockup) znalazłby się w kodzie produkcyjnym. Z tym przykładem co ja podałem, miałbym po prostu do napisania stub w teście. Ok wydaje się, że jest to rozwiązanie problemu który opisałem.
Nie ma szans, żebym mógł to zastosować :(. Po pierwsze - bardzo musiałbym pozmieniać kod produkcyjny - obstawić każdą funkcję w tym pliku takimi ifdefami (funkcji takich jak funkcjaLokalnaDlaTegoPliku (związanych z funkcjaKtoraRobiCosWaznego) jest wiele). Do tego musiałbym dawać im różną nazwę, bo czasami jakąś funkcję chcę testować, innym razem chcę podstawić własną implementację - definey są niewygodne i mało elastyczne (wiele projektów do testowania jednego pliku). Już nie wspominając, że na review od razu było by pytanie - a po co Ci: #ifndef INSIDE_TESTS ? Tylko na potrzeby testów? No way!

To jest rozwiązanie, ale nadal szukam jakiegoś bardziej elastycznego. I nie chciałbym wprowadzać takich #ifdef TEST w kodzie produkcyjnym.

Lerhes

22
Projektowanie kodu / Mock funkcji w tym samym pliku
« dnia: Czerwiec 27, 2015, 19:01:06 »
Uwaga: Pytanie ma niewiele wspólnego z samymi grami, aczkolwiek odpowiedź na nie może się przydać i w tej branży.

Krótki wstęp: Życie programisty C/C++ jest trudne :). Nie mam na myśli problemów ze znalezieniem pracy ale jej rodzaj. Bardzo często wiąże się ona z pracą z tak zwanym Legacy Code - miliony linii kodu bez jednego testu. Korzysta z tego kodu tysiące klientów - więc wiadomo nie można go "zepsuć". Kod ten tworzyło setki programistów, każdy miał inne doświadczenie i nawyki. Brak struktury projektu, jednolitego formatowania - jeden problem jest rozwiązywany na wiele sposobów, każdy z nich inny.
Trudno mi powiedzieć, czy to tylko moje doświadczenia, czy prawie każdy mógłby się pod tym podpisać.

Skupmy się jednak na problemie: Niejaki Michael Feathers napisał książkę (Working Effectively with Legacy Code) która próbuje jakoś odpowiedzieć na pytanie: Co z tym Legacy Code? Zaznajomiłem się z nią i staram się stosować przedstawione w niej metody pracy z kodem. Wszystko trzeba jednak osadzić w realiach zarządzania firmą - mój przełożony zgodził się, żebym sobie pracował z kodem tak jak lubię - ale żeby zmiany w plikach źródłowych kodu produkcyjnego były możliwie najmniejsze (najlepiej nic nie zmieniać jeśli nie trzeba). To jest ważne ograniczenie z mojej perspektywy.

Testowanie idzie nawet sprawnie. Dodawanie nowych funkcjonalności wspierane przez testy jest naprawdę produktywne i skutecznie. Większość moich zmian robi to co powinno praktycznie za pierwszym razem i bardzo rzadko przy tych modyfikacjach uszkodzeniu ulegają inne części systemu. Fajnie. Natomiast mam problem z wprowadzaniem testów do kodu który jest bardzo mocno napisany w C (są i takie fragmenty systemu).

Konkretnie z czym mam problem: Jak testować/refaktoryzować kod w C. Jest nawet książka która adresuje ten problem: "Test Driven Development for Embedded C" - przeglądnąłem ją tylko, ale jakoś nie znalazłem w niej rozwiązania mojego problemu. Oto jak wygląda przykładowy kod który zmieniam:

Plik: funkcjonalnoc.h
void funkcjaKtoraRobiCosWaznego(int a, strukturaJakas b);
Plik: funkcjonalnosc.cpp

static int global_1;
static int blobal_2;

<tutaj 100 innych globali>

void funkcjaKtoraRobiCosWaznego(int a, strukturaJakas b)
{
int zmiennaLokalna = 14;
<1000 linii kodu>
global_1 = 12;

if ( funkcjaLokalnaDlaTegoPliku(zmiennaLokalna ) )
{
//Tutaj dużo kodu
}

<2000 linii kodu>

funkcjaWInnymPliku(zmiennaLokalna);

}


static void funkcjaLokalnaDlaTegoPliku(zmiennaLokalna )
{
<tutaj znowu 1000 linii kodu>
}


Ok, tak wygląda mniej więcej kod. Teraz muszę zmienić implementację w funkcjaKtoraRobiCosWaznego. Zanim się tym zajmę, muszę trochę zrefaktoryzować tę funkcję - najpierw ją przetestować, żeby być pewnym że nic nie psuję, a potem zrefaktoryzować.

Nic prostszego:

Plik: Test.cpp
#include "potrzebnyNaglowek.h"

//Miejsce X

#include "funkcjonalnosc.cpp"

void funkcjaWInnymPliku(int zmiennaLokalna)
{
Expect(zmiennaLokalna, 150);
}

Test1()
{
strukturaJakas tmp;
tmp.pole = 15;
funkcjaKtoraRobiCosWaznego(100, tmp);
Expect(blobal_2, 12);
}

To tylko zarys - tak naprawdę to korzystam z google mock, ale to nie ma dużego znaczenia. Zwracam uwagę, że robię include na pliku cpp, dzięki temu mam dostęp do zmienny statycznych globalnych, a dodatkowo mogę robić sprytne definy jeżeli ich potrzebuję. Testowanie funkcjaKtoraRobiCosWaznego idzie jak złoto, powoli jestem gotowy do refaktoryzacji a tutaj nagle klops. Nie wiem jak "podmienić" zachowanie funkcjaLokalnaDlaTegoPliku. Jest zdefiniowana w tym samym pliku...

Jeśli w: "//Mijesce X" wstawię:
#define funkcjaLokalnaDlaTegoPliku funkcjaLokalnaDlaTegoPliku_STUB
nic mi to nie pomoże, bo zmieni się nazwa w miejscu wywołania i definicji.

Sporo czasu grzebałem w google, szukałem w książkach, ale żadne rozwiązanie mi się nie spodobało, np:
http://stackoverflow.com/questions/4882029/unit-test-stub-c-helper-method
http://stackoverflow.com/questions/8959132/function-mocking-for-testing-in-c
Working Effectively with Legacy Code - rozdział 19.

Generalnie wyszło mi, że tego problemu nie da się rozwiązać przez sprytne makro albo na poziomie linkera (dodam że korzystam z google test a projekt jest w Visual Studio). Jedyne wyjście to zmodyfikować plik: funkcjonalnosc.cpp (kod produkcyjny). Pierwsze pytanie: Czy to faktycznie prawda? Ktoś miał podobny problem i jakoś sprytnie sobie z tym poradził?

Ok załóżmy, że chcemy przerobić funkcjonalnosc.cpp, - jak to zrobić żeby móc "podmienić" implementację w funkcjaLokalnaDlaTegoPliku w teście. Można na przykład przekazać ją jako wskaźnik do funkcji, ale to nie jest dobre rozwiązanie. Takich funkcji do przekazania było by bardzo dużo, a do tego chcę żeby było ich jeszcze więcej (chcę powydzielać implementację do nowych funkcji).

Można dopisać do wywołania: funkcjaLokalnaDlaTegoPliku_ORG i w kodzie produkcyjnym:
#define _ORG
a w kodzie testowym:
#define _ORG _STUB
ale takie _ORG dziwnie będzie wyglądało w kodzie produkcyjnym. Mogę też wrzucić wszystkie te funkcje do klasy - już to sprawdziłem - działa niby fajnie, ale to dość duża modyfikacja w funkcjonalnosc.cpp. Taka zmiana jest dopuszczalna, bo cały kod jest kompilowany jako kod C++ (i testowy i produkcyjny) - ale czy to dobry pomysł ? Funkcje w tej klasie nadal korzystają z globalnych zmiennych. Można by te globalne zmienne wrzucić do klasy - ale to temat na innego posta.
Jeszcze inną opcją jest wyrzucenie funkcjaLokalnaDlaTegoPliku do innego pliku. Wtedy automatycznie stanie się zewnętrzną zależnością i będę mógł ją podmienić. Ale to nie jest dobre rozwiązanie, bo funkcjaLokalnaDlaTegoPliku jest mocno związana z funkcjaKtoraRobiCosWaznego (funkcja lokalna wykonuje pracę dla funkcji która robi coś ważnego - powinny być w jednym pliku bo realizują jedno zadanie i łatwiej zrozumieć co się dzieje gdy są blisko siebie )

Tutaj drugie pytanie: Jak wy to robicie? Jak przerobić funkcjonalnosc.cpp żeby móc wygodnie "podmienić" zachowanie funkcjaLokalnaDlaTegoPliku w teście. Przypominam, że chciałbym możliwie jak najmniej zmieniać plik funkcjonalnosc.cpp.

Jeżeli jest taka potrzeba, mogę dostarczyć bardziej "realne" fragmenty kodu - w sensie budujący się projekt który można sprawdzić. Zależy mi na konkretnych propozycjach rozwiązania - fragmenty kodu mile widziane.
Jeżeli ktoś ma ciekawy materiał na ten temat (ale nie generalnie o testowaniu tylko z rozwiązaniem tego konkretnego problemu) w internecie - proszę o linka.

Przepraszam za objętość tego wpisu.

Pozdrawiam,
Lerhes

23
SDL / Odp: Redukcja zużycia pamięci w grze - jakieś porady?
« dnia: Kwiecień 15, 2014, 00:48:09 »
Skoro projekt jest open source... to daj do tego kodu linka :)
Nawet z czystej ciekawości rzucę na niego okiem ^^

Lerhes

24
Gry / Odp: Gry typu survival - prośba o tytuły
« dnia: Luty 02, 2014, 18:11:05 »
Dziękuję za wszystkie wymienione tytuły.

Don't Starve - ten tytuł naprawdę pasował idealnie.

Lerhes

25
Gry / Gry typu survival - prośba o tytuły
« dnia: Styczeń 20, 2014, 16:59:21 »
Cześć,

Krótkie przedstawienie się / przypomnienie o sobie:
Kiedyś (w sumie już dość dawno temu) byłem w miarę aktywnym użytkownikiem forum. Potem ciężko było z czasem, ale zawsze tutaj przychodziłem i czytałem różne co ciekawsze wątki. Dla tych którzy już mnie nie pamiętają / są nowi : jestem programistą pracującym w branży telekomunikacyjnej, po godzinach zajmuję się programowaniem gier.

Do rzeczy:
Chciałbym poprosić was o tytuły gier (komputerowych/mobilnych itp) które pasują wam do poniższego opisu:
1. Gatunek: Survival simulator lub po prostu survival.
2. W grze chodzi o to, żeby przetrwać w trudnych warunkach: takich jak brak pożywienia, niska temperatura, ewentualnie jakieś zagrożenie w stylu dzikie bestie.
3. W grze żeby przetrwać musimy zbierać jakieś materiały. W stylu drewno (ogień nas ogrzeje), skóry zwierząt (ciepłe ubrania), owoce roślin (jedzenie) lub mięso .. To jest najważniejszy warunek.
4. Startujemy praktycznie z niczym i musimy od zera zbierać materiały i najpierw przetrwać a potem coś zbudować.
5. Czas płynie nieprzerwanie, nie ma podziału na tury.
6. Postać (główny bohater) może rozwijać umiejętności, dzięki czemu może coraz lepiej radzić sobie w trudnych warunkach.
7. Może być 3D ale raczej w rzucie izometrycznym (coś w stylu Warcraft 3), głównie chodzi mi o gry 2D.

O jakie gry mi nie chodzi:
Wszelkie FPS-y w których zabijamy zombie (to jest survival ale nie o taki klimat mi chodzi).
Wszelkiego rodzaju gry RTS: budowanie bazy i produkowanie jednostek.

Kilka przykładów żeby trochę rozjaśnić jakie gry mnie interesują:
1. Island Troll tribes -> chyba tak to się nazywało. Mapa-mod do Warcrafta 3. To gra na której oparłem powyższy opis. Każdy gracz ma trolla którego kontroluje i stara się zebrać odpowiednie materiały żeby najpierw przetrwać a potem zawalczyć z bestiami na mapie (lub drugą grupą graczy-troli na mapie).
2. Dwarf Fortress -> Nom nie do końca dobry przykład, ale jest zbieranie zasobów (albo raczej ich wykopywanie). Gra nie pasuje pod tym względem, że nie ma bezpośredniej kontroli nad krasnalami (można im wydawać rozkazy ale czy coś zostanie wykonane zależy na przykład od ich nastroju).
3. Rebuild -> fajna gra na iphona jest w jakiś sposób zbieranie zasobów i budowanie miasta. Natomiast nie pasuje mi do punktu 4 i 5.
4. PixelVillage -> To nawet ciekawa gra -> jest budowanie wioski od zera. Ale trochę za bardzo przypomina klimatem RTS. Poza tym, jeżeli nic nie będziemy robić to nic złego się nie stanie -> nie ma tej presji że jeżeli nie przygotujemy mięsa -> to postać umrze z głodu. Jeżeli nie ubierzemy się, to nocą zamarzniemy z zimna.
4. Minecraft / Terrania / Junk Jack i inne klony -> Jest zbieranie materiałów i jest walczenie o przetrwanie. Nie do końca klimat jest taki o jaki mi chodzi ale te produkcje nawet pasują do opisu.
5. Kiedyś ktoś w innym temacie dał linka do tej strony: http://thelectricafe.blogspot.com/ . Całkiem nieźle do opisu pasuje pomysł 4. CASTAWAY.

Jeżeli jest gra która mogła by być tym o co mi chodzi ale nie do końca pasuje do opisu, to i tak proszę ją wymienić -> na pewno sprawdzę. Byłbym szczególnie wdzięczny za tytuły z platformy mobilnej (ale proszę też o tytuły z PC/flashowe itp).

Pozdrawiam,
Lerhes

26
Projekty rozpoczęte / Odp: Colony Defender - Handcrafted
« dnia: Czerwiec 29, 2012, 18:10:44 »
Przepraszam że otwieram stary wątek, ale obiecałem napisać wrażenia po ukończeniu demka, więc chciałem dotrzymać słowa, zacznę od detali:

Najbardziej w grze podobało mi się menu. Czytelne, kolorowe, stonowane. Sama ramka okienka przy wyborze misji lub kupnie technologii - też ładna. Natomiast zawartość już gorzej - na jednej planecie jest 16 misji podzielonych na brzydkie kwadraty. Dużo, dużo lepiej było by, gdyby tutaj znajdowała się jakaś mapka (z podziałem na sektory / prowincje) i każda misja była w innym sektorze, coś na kształt tego:
http://ve3dmedia.ign.com/images/05/50/55069_map_orig.jpg. Podobnie technologie: Te kwadraty z kolejnymi ulepszeniami są nieładne. Fajnie natomiast że gdy stawiamy na mapie daną strukturę obronną w tle pojawia się przykład jak to wygląda (albo gdzie ją umieścić).

Muzyka była ok: Nie powalała ani nie przeszkadzała.
"gadki szmatki" tego hmmm... mutanta (?) przed każdą misją też były ok. Sprawiały, że misje robiły się ciut ciekawsze i nabierały jakiejś tam głębi.

Cóż, "jedyne" do czego się przyczepię to gameplay. Było po prostu nudno. Rozgrywka polega praktycznie na ładowaniu paluchem po ekranie. -> nawet specjalnie nie trzeba celować, wystarczy uderzać i jest ok. Przy okazji palcem zasłania się cały ekran, więc właściwie nie wiadomo co się dzieje na polu bitwy. Dodatkowo przeciwnicy są monotonni (cały czas Ci sami) i mało kolorowi (dlaczego wszystko jest czarno białe? kolory w paincie się skończyły? :( ).

Dodatkowo przydało by się lepsze wprowadzenie do gry (tutorial). Nie od razu wiadomo jak korzystać z technologii.

Ogólne wrażenie: było przeciętnie. Poklikać można, ale gra mnie nie wciągnęła. Zdecydowanie najbardziej kulała sama rozgrywka. Jeżeli miałbym grę ocenić, to dałbym jej 3+ w szkolnej skali ocen.

Jeżeli to jest pomocne, to grałem na: Sony Ericsson Neo V.
Lerhes

27
Projekty rozpoczęte / Odp: Colony Defender - Handcrafted
« dnia: Kwiecień 27, 2012, 17:32:44 »
OK, poradziłem sobie. Zmyliły mnie nazwy.
Google play miałem pod nazwą "Android Market" (jeszcze).
Próbowałem znaleźć grę z aplikacji: "Play Now" -> bo i ikonka była podobna i nazwa.

Mój błąd. Aplikacja jest już na moim telefonie. Opisze wrażenia jak ukończę demko.
Lerhes

28
Projekty rozpoczęte / Odp: Colony Defender - Handcrafted
« dnia: Kwiecień 27, 2012, 17:02:55 »
Bardzo chciałem zobaczyć wersję darmową Colony Defener'a i jest to po prostu niemożliwe.

Na Amazon.com żeby pobrać wersję darmową trzeba i tak podać numer karty kredytowej. Gdy to zrobię jest ona odrzucana, bo nie jest z "USA"...

Na google play -> szukając z telefonu przez przeglądarkę, gdy się kliknie pobierz -> wywala, że pobieranie możliwe tylko z telefonu.. (przecież z telefonu to robię!)....
Gdy się użyje specjalnej aplikacji napisanej przez googla do obsługi ich sklepu -> wyszukiwarka nie znajduje Colony Defender'a. (Może jeszcze nie została zindeksowana?).

Tak czy siak, mimo moich starań, nie udało mi się pobrać demka. Jeżeli macie jakieś rady jak pokonać któryś ze sklepów (eh... jak im daleko jeszcze do appstore) to proszę o rady.

Zostaje poczekać na port dla iphona..
Lerhes

29
Projekty zaawansowane / Odp: Jaskinia [FPS]
« dnia: Lipiec 11, 2011, 00:09:22 »
Cytuj
Właśnie nie miałem pomysłu gdzie światło umieścić. Pokombinuję z tym żeby było realniej :)
Olaboga a po co? Przed chwilą rozmawialiśmy o fanie starych gier, gdzie przedmioty leżały ot tak sobie po prostu.. bo nie miało to znaczenia! Znaczenie ma, żeby grało się fajnie.. a nie realizm sam w sobie (jeżeli buduje gameplay to jak najbardziej... ale ... buduje? Nope). Tak samo można by się przyczepić do leżących przedmiotów -> kto? po co? Dlaczego? Jak w jaskini same pająki. Ale to naprawdę jest nieważne. Nie trzeba graczowi tłumaczyć wszystkiego logicznie skąd co się wzięło. Przecież on ma to w dupie. Ma być zabawa!

Więc co do światła -> ono jest w miarę ok i naprawę nie trzeba tutaj nic zmieniać.

Cytuj
Lecą projectile. Powinno je być widać bardzo dobrze (?!)
Tak tu jest problem. Lecą... ale jak dla mnie za wolno... Kula leci, ja robię unik, potem wracam na poprzednią pozycję i dostaję z tej samej kuli bo tak długo leciała... :/
Z drugiej strony za duża ich prędkość może doprowadzać do irytacji, że nie sposób tego uniknąć (nie ma akurat gdzie się schować, bo korytarze ciasne). No cóż, tutaj potrzebny jest jakiś balans, sam nie wiem jaki.

Cytuj
Bez jaj, nie widać ich?
Nie. Naprawdę trudno je dostrzec i bardziej wypatruje się ich "pocisków".

Z plusów, to kule wywołują pluśnięcia na wodzie :) i ogólnie pozytywne wrażenie.

A tak jeszcze co do bugów: Raz wszedłem w wąskie przejście (taki był pokoik ze znajdźkami), a potem nie mogłem wyjść! Skakałem 5 minut! Dynamit tak rozwiązał sprawę, że zabił i mnie.

A najbardziej ze sterowania denerwuje mnie brak sterowania klawiszami WSAD! (omg!) i nieintuicyjny ekwipunek z brakiem pauzy.
Lerhes

30
Szkółka / Odp: Dołączanie nagłówka
« dnia: Lipiec 10, 2011, 17:27:16 »
A to tak trudno wywnioskować co zepsuł?

Dodajesz plik t.h w której jest definicja:  unsigned int tt = 1; Jeżeli dodasz go raz (na przykład tylko do main), to będzie jeszcze ok, ale ty ten plik dodajesz w dwóch miejscach. No i masz podczas linkowania dwukrotnie tę samą zmienną zdefiniowaną = gaga.

Możesz to rozwiązać na różne sposoby, najlepiej wybierz sobie gdzie ta zmienna bardziej "pasuje" niech to będzie klasa t. Więc dodaj do pliku t.cpp definicję unsigned int tt; a w pozostałych miejscach dodaj, extern unsigned int tt;
Lerhes

Strony: 1 [2] 3 4 5 6 ... 25