Skocz do zawartości

Konrad-GM

Użytkownicy
  • Postów

    2742
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    42

Ostatnia wygrana Konrad-GM w dniu 12 Marca

Użytkownicy przyznają Konrad-GM punkty reputacji!

O Konrad-GM

  • Urodziny 31.07.1992

Informacje

  • 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
  • Użytkownik Godot
    Tak

O mnie

Edytowalne przez adminów

  • Legendary Hobo

Ostatnie wizyty

26669 wyświetleń profilu

Osiągnięcia Konrad-GM

Emperor

Emperor (11/13)

85

Reputacja

7

Odpowiedzi społeczności

  1. Chcesz zasymulować fizykę bez znajomości chociaż podstaw newtonowskiej fizyki? To myślę może już lepiej byłoby to zlecić komuś do zrobienia i nie zaglądać w kod. Jak tak bardzo chcesz uprościć fizykę, to chociaż zawsze aplikuj przyśpieszenie grawitacyjne, przynajmniej do momentu, aż ludzik nie zastygnie na platformie. IMO napisałeś za mało szczegółów, jak Twój kod aktualnie wygląda i chociaż dołącz krótki filmik, żeby było widać w czym problem.
  2. Tak szczerze powiedziawszy, bez sensownego dostępu do wielowątkowości, to byłoby to zapewne trudne do osiągnięcia - ale jakby mocno skupić się na optymalizowaniu, to może nawet w miarę sensowny klatkarz można uzyskać. Kilka propozycji jak można zoptymalizować rysowanie fog of war: Nie aktualizuj wszystkich jednostek, ale tylko komórki, które są zajęte przez jednostki. Do tego możesz wykorzystać "słownik", np. tworzysz loopa po liście monitor_list tak jak do tej pory, ale przy okazji zapisujesz w której to komórce jednostka rysowała swój fog of war i np. przed shroud_clear_position może sprawdzić, czy tej komórki już nie liczyłeś, taki pseudo kod: var dict = new Dictionary for unit of unit_list: if dict.has(key: unit.x + '_' + unit.y)): continue shroud_clear_position(unit.x, unit.y) dict.set(key: unit.x + '_' + unit.y, value: unit.shroud_radius) jeżeli każda jednostka ma własny shroud_radius, to możesz przed shroud_clear_position zapełnić nową listę ale tylko z jednostkami o największym shroud_radius na daną komórkę. Dodatkowo możesz zoptymalizować samą funkcję shroud_clear_position - https://www.redblobgames.com/grids/circle-drawing/ polecam Nie modyfikuj tablicy shroud_grid jednostkami poza ekranem, monitor_list powinien posiadać tylko jednostki, której pierścień fog of war może być widoczny. Możesz spróbować też brać tylko wycinek z listy monitor_list i co kolejna klatka aktualizować tylko część jednostek - jeżeli aktualizacja tablicy będzie się działa np. 15x na sekundę to raczej nikt nawet nie zauważy zastosowanego triku. Jeżeli jeszcze na coś wpadnę to chętnie się podzielę pomysłami.
  3. Jeżeli chodzi o mikro-optymalizacje, to przełączanie stanu karty graficznej np. `gpu_set_blendmode` wyrzuciłbym poza loopa, ale to pewnie niewiele zmieni i tak. Tego typu fog of war można też zrobić na tablicach, większe komórki i aktualizowałbyś je jedynie gdy jednostka przekroczy jej granicę. A rysować mógłbyś też tylko wycinek takiej tablicy na surface bez znaczenia ile jednostek jest na ekranie. Minus taki, że byłoby to bardziej "rozpikselowane", ale możesz spróbować wygłądzić krawędziie jakimś shaderem.
  4. A ile średnio takich świateł masz na scenie? Możliwe, że bottleneck występuje gdzieś w okolicy "with(objUnit)". A dałbyś radę profilować co się dzieje? Np. wrzucić jakiś czasomierz w tej okolicy.
  5. Jeżeli rysujesz duszki na surface to X i Y będą zawsze 0,0 i nie "podąża" za kamerą tak jak by można było się spodziewać, ale możesz spróbować odjąć pozycję kamery żeby przesunąć rysowanie duszków na właściwą pozycję, oraz duszka "black rectangle" możesz rysować na pozycji 0,0
  6. Pozycjonowanie - DodajOszusta.pl (archive.org) wiem, że stare, ale odnoszę wrażenie, że dalej aktualne PS. ale te obrazy to mistrzostwo muszę przyznać
  7. Konrad-GM

    Opera GX Game Jam

    Nawet się cieszę, że trafiłem z bratem do top 100, jak na dłuuugą przerwę od GMa, ale raczej do top 8 się nie dostaniemy 😆
  8. Też tak trochę zgniłem jak to zobaczyłem
  9. "Strona nie istnieje" - możliwe, że masz ją zapisaną jako draft, upublicznij grę i powinna być widoczna
  10. Potestowałem trochę, pobiegałem, porzucałem granatami i o ile nie pojawił mi się ten bug przez większość czasu, tak na niego jednak trafiłem, przynajmniej nie jest tak jak w poprzednim demie gdzie każdy granat zostawiał rozbłysk
  11. W The Ascent jest przycisk podnoszący celownik, może zrobienie podobnego celowania byłoby wystarczające? Normalny tryb to celownik zawieszony na jednej płaszczyźnie, ale np trzymając alt/ppm można by celować po raytracingu z kamery, wtedy celowanie w konkretny punkt też byłoby możliwe. Edit: Może z celownikiem laserowym też inaczej by się grało
  12. Ja testowałem na swoim lapku z gtx 1070 max-q, intel i7 7700hq.
  13. Też mam tego buga z nieznikającą eksplozją po granacie, wali po oczach niemiłosiernie, aż do tego stopnia, że unikałem granatów Moim zdaniem gra ma potencjał, ma ciekawą mechanikę, przyjemnie się likwiduje przeciwników, ładnie i spójnie się komponuje, ale czasami sterowanie jest dość toporne jakby sterowało się czołgiem. Dodatkowo celowanie koniecznie do poprawy, jest nieintuicyjne i czasami nie wiadomo gdzie nasz gostek celuje - może zablokowanie celownika do płaszczyzny byłoby lepsze? Może to kwestia level designu, ale czasami elementy otoczenia znikają i pojawiają się dość chaotycznie i ciężko się orientować. Jak dla mnie gra bomba, trochę szlifów w sterowaniu, level design i mógłbym grać bez przerwy.
  14. Bo ją sam przyśpieszasz, wywal tą linię i z głowy.
  15. Nie rozumiem, a to nie odtwarza się w całości czy jak, a ta animacja trwa aż 5 sekund? Może wystarczy tylko sprawdzanie, czy stoi na ziemi? `if !place_free(x, y+1) g = 1.0;`
×
×
  • Dodaj nową pozycję...