Skocz do zawartości

nowy_user

Użytkownicy
  • Zawartość

    196
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    3

Ostatnia wygrana nowy_user w Rankingu w dniu 5 Lipiec

nowy_user posiada najczęściej lubianą zawartość!

Reputacja

17 Dobry człowiek

O nowy_user

  • Tytuł
    Minor User

Previous Fields

  • Użytkownik GameMaker Studio 2
    Nie
  • Użytkownik GameMaker Studio
    Nie
  • Użytkownik GameMaker 8
    Nie
  • Użytkownik GameMaker 7 i wcześniejszych wersji
    Nie
  • Użytkownik Unity
    Nie
  • Uytkownik Godot
    Nie

Ostatnie wizyty

3057 wyświetleń profilu
  1. Wersja trial mojego programu / gry

    Właściwie to bardziej się obawiam sytuacji, w której coś się pochrzani przy aktualizacjach MySQL albo MariaDB. Podejrzewam, że jeśli wtedy by się coś poprzestawiało, to miałbym problem aby ustawić wszystko tak, aby działało. Swoją drogą wysłałem też zapytanie na GMCommunity, i doradzono mi, abym po prostu się nie przejmował tym, że ktoś może w nieuczciwy sposób korzystać z mojej aplikacji ( w sensie instalować na więcej urządzeń) i po prostu abym nie robił żadnego systemu zabezpieczeń. Zamiast tego poradzono mi, abym sprzedawał produkt na minimum 10 urządzeń i wtedy, nawet jak ktoś będzie chciał mnie oszukać to i tak sprzedaż na 10 kompów / tabletów będzie już jakimś konkretem. No przyznam, że ma to sens.
  2. Wersja trial mojego programu / gry

    Dziękuję za odpowiedź @gnysek . 1. Tak się składa, że pracowałem przez 2 lata dla firmy, która tworzyła aplikację na tablety dla szkół, dla specyficznej grupy uczniów i wiesz co, masz sporo racji, że w szkołach z budżetem jest ciężko, natomiast na tego typu produkty są bardzo duże dofinansowania, i zwłaszcza pod koniec roku kalendarzowego szkoły kupowały to zaskakująco dobrze. Skupiając się jedynie na rynku Polskim można wygenerować zyski wystarczające na utrzymanie 1-2 osób, ale jeśliby rozwinąć biznes na inne kraje... tu widzę duży potencjał Sam produkt pod kątem programistycznym jest niezbyt złożony, bardziej chodzi o jego wartości terapeutyczne, myślę, że w GM to ok 2 miesięcy ( podczas pracy nad projektem full time). Co do pozostałych punktów, to spróbuję... szkoda, że w GMie nie ma jakichś domyślnych rozwiązań, widać, że pracownicy Yoyo zakładają, że główny kanał dystrybucji gier to albo Steam albo App Store/ Google Play, i nie widzą potencjału w innych bardziej niszowych — a przez to mniej nasyconych — gałęziach przemysłu gamingowego. Potrzebuję rozwiązania jak najmniej skomplikowanego, aby jak najmniej czasu poświęcać na ewentualny customer support, problemy z serwerami itd. Chciałbym po prostu poświęcić 2-3 miesiące na zrobienie produktu, a potem zacząć agresywne działania sprzedażowe.
  3. Wersja trial mojego programu / gry

    Ok , to ma sens, natomiast, chciałbym sprzedawać moją grę/aplikację do szkół na ilość stanowisk. Jeśli zrobię to tak jak piszesz, to szkoła może kupić aplikację na 1 stanowisko , a następnie skopiować na pozostałe komputery. Wolałbym generować klucze aktywacyjne i w zależności na ile stanowisk dana szkoła kupi program, to tyle dostaną kluczy aktywacyjnych. Tylko tutaj klucz musi się deaktywować po wpisaniu go… No nie jest to łatwy temat, ciekaw jestem czy da się w ogóle coś takiego zrobić w GM. Czy ma ktoś pomysł?
  4. Cześć, mam pytanie, jak zrobić wersję trial programu, który zrobiłem w GM? Tak aby po 14 dniach blokowało dostęp, jeśli nie wpisze się specjalnego kodu aktywacyjnego? Jak zrobić aby przeinstalowanie programu nie resetowało licznika dni zużytych? Przez prawie 2 miesiące tworzyłem system rejestracji i loginu ( gdzie po 14 dniach, jeśli ktoś nie zapłaci to nie ma dostępu do aplikacji ), i pomimo że mam cały system gotowy i zaimplementowany, to chcę z niego zrezygnować. Decyzja jest podyktowana tym, że martwię się takimi sytuacjami jak potencjalne problemy z serwerem, zhackowanie serwera i wyciek danych itd. Wolałbym to zrobić w prostszej wersji — przynajmniej na początek. Jaki system proponujecie?
  5. Bonfire

    Gratulacje TeeGee ! Jesteś świetnym przykładem na to, że z robienia gier ( i to w GMie ) można żyć ! Swoją drogą, dalej pracujesz z całym swoim zespołem ( z którym pracowałeś nad Cinders) czy raczej teraz głównie tworzysz sam?
  6. Temat zbiorczy na drobnostki

    Właściwie to chyba nawet na zamówienie, bo zadałem podobne pytanie na GMC i ten użytkownik też mi tam odpisał... asset działa tylko na Windowsa, a mi zależało też na MAC'u, ale możliwe, że skorzystam z tego programu. Pozdrawiam, nowy_user
  7. Temat zbiorczy na drobnostki

    Hej, mam drobnostkę dotyczącą display_get_width / display_get_height. W przypadku podłączonego monitora do laptopa, program odbiera za pomocą tych funkcji szerokość i wysokość tylko monitora z laptopa, nawet jeśli przeniosę okno z grą na drugi moniotr - znacznie większy. Czy ktoś wie, jakiej funkcji mam użyć, aby window_get_width / window_get_height dotyczyło monitora, na którym okno z grą jest aktualnie wyświetlane? Z góry dzięki za pomoc i pozdawiwam, Dawid Maj
  8. Temat zbiorczy na drobnostki

    Oki, dzięki za informacje, czyli po prostu przed stworzeniem zipa albo instalatora muszę pousuwać zbędne 'Included files' (zwłaszcza te dotyczące assetu GMLive ) oraz niektóre z 'Extensions' . Oby tylko nie zcrashowało mi to apki w najmniej oczekiwanym momencie.
  9. Temat zbiorczy na drobnostki

    Hej mam naprawdę dziwny problem... Ukończyłem projekt w GMS 1.4999, i eksportuję go do .exe (wybieram opcję Single runtime executable.) -eksport na platformę Windows. Do tego momentu wszystko jest w porządku, program eksportuje się do .exe i mam jeden plik - zgodnie z przewidywaniami. Pakuje go do zipa, i wrzucam na serwer. Z ciekawości pobrałem tego zipa na mój inny komuter - Macbook. Oczywiście wiem, że taki plik .exe przygotowany pod Windowsa nie odpali mi się na Macu, ale nie to jest tu sednem problemu. Wyobraźcie sobie, że z ciekawości rozpakowałem tego zipa za pomocą jakiegoś MAC'owskiego odpowiednika Winrara ( jakiś dekompresor) , i.... w co nie mogę do tej pory uwierzyć, rozpakowało mi paczkę w taki sposób, że w folderze pojawił się nie tylko plik .exe , ale także wszystkie included files — dokładnie tak jakbym przy tworzeniu apki wybrał opcję : 'Compressed Applications Zip', a ja przecież wybrałem 'Single runtime executable'. To oznacza, że przy pomocy jakiegoś dekompresora, uzytkownicy mogą mieć dostęp do included files. Czy ja mam jakieś zwidy, czy rzeczywiście można sobie tak łatwo zdekompresować pojedyńczy .exe stworzony w GMS 1.4999 ?
  10. Witajcie, mam do czynienia z dziwną sytuacją. Co jakiś czas w moim projekcie dochodzi do spadków FPS z 60 do ok 35. Na ogół kilka minut po wejściu do rooma. Dzieje się tak czasami, nawet gdy nic nie robię w aplikacji. Spadek FPS trwa różnie - czasami 30 sekund czasami minutę lub dwie. Potem, na ogół, wraca do normy. Zdarza się, że restart roomu pomaga. Nie jestem w stanie zdiagnozować co jest przyczyną problemu ( nie tworzą się żadne nowe obiekty, bo mam ciągle wyświetlaną ilość aktywnych obiektów.), raczej to też nie problem ze strukturami danych — używam raptem dwóch list, które zawsze po użyciu są usuwane. Nie mam pojęcia, w jaki sposób mogę zdiagnozować przyczynę problemu, czy ktoś ma jakiś pomysł , jak dokonać diagnostyki tego nieoczekiwanego spadku FPS? Pozdrawiam, nowy EDIT Zmieniłem w ustawieniach sleep marigin z 1ms na 10 ms - nic to nie dało.
  11. Dzięki, teraz jest to jasne EDIT.... Przy okazji, wiesz może @gnysek czy mogę dostać jakoś informację zwrotną od GMa, gdy zapis do pliku tekstowego zostanie już wykonany? Wiem , że istnieje funkcja file_exists ale jeśli nadpisuję plik, który już istnieje, to formuła if file_exists tu nie zadziała... Pytam, ponieważ chciałem ustawić zapis gry przy wyłączeniu, i dotychczas ustawiałem alarm na chybił trafił np.2 sekundy po odpaleniu kodu do zapisu gry , gra się wyłączałą. Tylko co, jeśli plik będzie na tyle duży albo komputer będzie zajęty jakimiś innymi procesami w tle, i zapis zabierze mu więcej niż te 2 sekundy? Wówczas gra się zamknie, a plik nie zdąży zostać zapisany. Niestety w GMie nie ma żadnej funkcji typu if file_save_is_done albo coś w tym stylu... może da się to jakoś sprytnie obejść? Pozdrawiam
  12. Panowie, ostatnio GM daje mi się we znaki ( jak to zwykle bywa, tuż przed publikacją produktu, i gdy już skupiałem się na marketingu, nagle zaczęły wyskakiwać mi dziwne bugi ). Niestety, na wskutek tych bugów prawdopodobnie muszę zrezygnować z systemu zapisu danych w chmurze i próbuję robić zapis off-line. Dziś napotkałem na bardzo dziwny bug i nie wiem już, czy to przez nerwy czy raczej GM zachowuje się dziwnie w prostej sytuacji. Proszę o pomoc. Wszystko jest ok gdy próbuję zapisać sobie plik za pomocą kodu: { var _path, _file; _path = get_save_filename("project|*.txt", ""); if (_path != "") { _file = file_text_open_write(_path); file_text_write_string(_file, string(_savedane)); file_text_close(_file); } } Pojawia się okno dialogowe, ja mogę sobie wybrać lokalizację pliku i zapisać go gdzie chcę. Problem pojawia się, gdy chcę zrobić sobie autosave projektu wybranego wcześniej też za pomocą okna dialogowego. Przy wgrywaniu pliku mam kod: var _path, _file, _savedane; _savedane=''; _path = get_open_filename("project|*.txt", ""); if (_path != "") { _file = file_text_open_read(_path); _savedane=file_text_read_string(_file); file_text_close(_file); global.cloudoff_load_result = _savedane global.cloudoff_file_path=_path; room_goto_next(); } Jak widzimy, ten kod zapisuje sobie w zmiennej globalnej global.cloudoff_file_path ścieżkę wybranego przez nas pliku. Jest ona prechowywana, po to, aby właśnie potem, przy autosavie nie otwierać okna dialogowego, tylko aby plik zapisywał się właśnie automatycznie. Używam do tego kodu: { var _path, _file; _path = global.cloudoff_file_path if (_path != "") { _file = file_text_open_write(_path); file_text_write_string(_file, string(_savedane)); file_text_close(_file); } } Jak widać ten kod jest łudząco podobny do tego, który przedstawiłem na początku, różnica jest taka że zamiast _path = get_save_filename("project|*.txt", ""); mamy _path = global.cloudoff_file_path . Pomimo, że w obu przypadkach _path zwraca nam tę samą ścieżkę ( sprawdzałem za pomocą show_debug_message), to w pierwszym przypadku - z oknem dialogowym - plik zapisuje się bezproblemowo, a w drugim wysakuje błąd w oknie compile form : Error! not allowing save with filename Error! not allowing save with filename 'C:\Users\Dawid\Desktop\pulpit\Base_Project_New.txt'.Error! not allowing save with filename ''. ( tu na końcu jest kropka i strzałka w górę narysowana). Czy ktoś ma pomysł , dlaczego tak się dzieje? Z góry dzięki za pomoc nowy_zdesperowany_user
  13. Temat zbiorczy na drobnostki

    Ok postaram się to ogarnąć, najdziwniejsze jest to, że jak próbuję forsować wczytanie danych ( gdy się nie uda to ustawiam alarm[0] na 1 step który ponawia próbę i tak w kółko ) to zaledwnie po kilku próbach wczytuje tego Jsona, nawet jeśli jest on kilkukrotnie dłuższy. Jeśli alarm[0] ustawię na 30 lub 60 stepów, to wtedy nawet po 20 próbach ma problem z wczytaniem tego Jsona , to jest bardzi dziwne ...
  14. Temat zbiorczy na drobnostki

    Ale mi nie ucina znaków, po prostu gdy JSON jest za długi to nie wczytuje go wcale a w debug message mam:http:// *adres strony www */load.php?: Load Failed! RESULT: undefined JSON zapisuje się poprawnie, problem jest z wczytaniem.
  15. Temat zbiorczy na drobnostki

    Ten skrypt wygląda następująco: <?php header("Access-Control-Allow-Origin: *"); // Get config variables require_once 'include/Config.php'; // Get Database functions require_once 'include/DB_Functions.php'; $db = new DB_Functions(); // json response array $response = array("error" => FALSE); if (isset($_POST['unique_id']) && isset($_POST['save_code']) && isset($_POST['slot'])) { // receiving the post params $unique_id = $_POST['unique_id']; $save_code = $_POST['save_code']; $slot = $_POST['slot']; // Get user $info=$db->getUserByUserIdAndSaveCode($unique_id,$save_code); $user=$info[0]; switch ($slot) { case 1: // Check if all went ok if ($info[1]==""){ // All ok $error_info=""; $response["load_data"] = $user["save001"]; }else{ // Error $error_info=$info[1]; } break; case 2: // Check if all went ok if ($info[1]==""){ // All ok $error_info=""; $response["load_data"] = $user["save002"]; }else{ // Error $error_info=$info[1]; } break; case 3: // Check if all went ok if ($info[1]==""){ // All ok $error_info=""; $response["load_data"] = $user["save003"]; }else{ // Error $error_info=$info[1]; } break; case 4: // Check if all went ok if ($info[1]==""){ // All ok $error_info=""; $response["load_data"] = $user["save004"]; }else{ // Error $error_info=$info[1]; } break; case 5: // Check if all went ok if ($info[1]==""){ // All ok $error_info=""; $response["load_data"] = $user["save005"]; }else{ // Error $error_info=$info[1]; } break; default: $error_info = $slot . " saves slot don't exists!"; } if ($error_info=="") { $response["error"] = FALSE; } else { $response["error"] = TRUE; $response["error_msg"] = $error_info; } echo json_encode($response); } else { if (isset($_POST['share_code']) && isset($_POST['slot'])) { // receiving the post params $share_code = $_POST['share_code']; $slot = $_POST['slot']; // Get user $info=$db->getUserByShareCode($share_code); $user=$info[0]; switch ($slot) { case 1: // Check if all went ok if ($info[1]==""){ // All ok $error_info=""; $response["load_data"] = $user["share001"]; }else{ // Error $error_info=$info[1]; } break; case 2: // Check if all went ok if ($info[1]==""){ // All ok $error_info=""; $response["load_data"] = $user["share002"]; }else{ // Error $error_info=$info[1]; } break; default: $error_info = $slot . " save slot don't exists!"; } if ($error_info=="") { $response["error"] = FALSE; } else { $response["error"] = TRUE; $response["error_msg"] = $error_info; } echo json_encode($response); } else { if (isset($_POST['unique_id']) && isset($_POST['save_code']) && isset($_POST['row'])) { // receiving the post params $unique_id = $_POST['unique_id']; $save_code = $_POST['save_code']; $row = $_POST['row']; // Check if allow public if (GLOBAL_PUBLIC_1==FALSE) { // Get user $info=$db->getUserByUserIdAndSaveCode($unique_id,$save_code); $user=$info[0]; // Check if all went ok if ($info[1]=="") { $all_ok=TRUE; } else { $all_ok=FALSE; } } else { // Don't need user $all_ok=TRUE; } // Check if all went ok if ($all_ok){ // All ok $error_info=$db->loadVar($row); $new_value=$error_info["value"]; $error_info=$error_info["error"]; $response["value"] = $new_value; }else{ // Error $error_info=$info[1]; } if ($error_info=="") { $response["error"] = FALSE; } else { $response["error"] = TRUE; $response["error_msg"] = $error_info; } echo json_encode($response); } else { if (isset($_POST['row'])) { // receiving the post params $row = $_POST['row']; $error_info=$db->loadPublic($row); $new_value=$error_info["value"]; $error_info=$error_info["error"]; $response["value"] = $new_value; if ($error_info=="") { $response["error"] = FALSE; } else { $response["error"] = TRUE; $response["error_msg"] = $error_info; } echo json_encode($response); } else { // required post params is missing $response["error"] = TRUE; $response["error_msg"] = "Required parameters are missing!"; echo json_encode($response); } } } } ?>
×