• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Bomberman [Update 2][C++ / SFML]

+27 głosów
1,428 wizyt
pytanie zadane 20 lipca 2016 w Nasze projekty przez C☺ndzi Stary wyjadacz (10,890 p.)
edycja 22 sierpnia 2016 przez C☺ndzi

[Bobmerman \ PiGames]

klon kultowej gry Bomberman - pierwsza gra studia PiGames

[wpis na blogu Szymona Siarkiewicza]

Rozgrywka

Bardzo prosta i jasna zasada: wybuchnij drugiego gracza na śmierć!

Możesz zniszczyć niektóre elementy otoczenia za pomocą bomby.

Możesz kopnąć bombę.

Zrzut ekranu z rozgrywki:

[GameplayScreen]

[Public 1.0.1]

Sterowanie

Gracz 1: W, S, A, D, LCTRL (podłożenie bomby)

Gracz 2: strzałki, SPACJA (podłożenie bomby)

Aby odepchnąć bombę podejdź do niej, a poleci w przeciwnym kierunku.

Technologia

C++11 / Visual Studio / Simple Fast Multimedia Library 2.3.2 / Gimp 2.8 / Inkscape / Bfxr / Darmowa muzyka

Download

[KOD ŹRÓDŁOWY Z MAKEFILE]

[LINUX]

[WINDOWS x86]

Autorzy

Szymon Siarkiewicz 

Kacper Pietrzak

Kamil Roszak

Konrad Kubacki

Oficjalny adres e-mail: pigames.team@gmail.com

Wszelkie uwagi mile widziane smiley

 

komentarz 21 lipca 2016 przez JAKUBW Stary wyjadacz (14,200 p.)
Ja bym jeszcze do paczki z grą dorzucił wszystkie dll-ki potrzebne do otwarcia gry, bo mi nie działa.

Brakuje msvcp100.dll, msvcp140.dll, vcruntime140.dll, api-ms-win-crt-runtime-l1-1-0.dll a po wrzuceniu ich i tak wyskakuje błąd, więc grać się nie da:(

Pozdrawiam
1
komentarz 21 lipca 2016 przez C☺ndzi Stary wyjadacz (10,890 p.)

Zainstalowanie tego powinno pomóc: [LINK]

9 odpowiedzi

+3 głosów
odpowiedź 20 lipca 2016 przez MetRiko Nałogowiec (36,870 p.)
Po kilku zagranych rundach nie zauważyłem żadnych błędów ani elementów, do których można by się przyczepić.
Grafika przyjemna dla oka, a muzyczka przygrywająca w tle nie męczy. Jedyne co bym zmienił/poprawił to:
1. Dodanie jakichś prostych opcji z możliwością przyciszenia muzyki (przy uruchomieniu była bardzo głośna), oraz ustalenia ilości żyć (dla przedłużenia rozgrywki).
2. Zmniejszenie czasu trwania animacji wybuchu (wygląda jakby gra się zacinała), oraz troszeczkę udoskonalenia jej grafiki.. (moim zdaniem) zbyt wyróżnia się na tle reszty.. dookoła grafika wektorowa, a wybuch to bitmapa.
Poza tym naprawdę dobra gierka dla zabicia czasu (o ile ma się kogoś pod ręką do gry ;D)
3
komentarz 20 lipca 2016 przez MetRiko Nałogowiec (36,870 p.)

Zauważyłem jeszcze jedną "małą" rzecz.. Z serii: "Znajdź element, który nie pasuje" xD

1
komentarz 20 lipca 2016 przez C☺ndzi Stary wyjadacz (10,890 p.)

Dzięki za feedback, poprawimy to w następnej wersji smiley

+2 głosów
odpowiedź 20 lipca 2016 przez Serek16 Nowicjusz (180 p.)
Zauważyłem, że fajnie by było, gdyby na początku wyświetlane byłby by informacje o sterowaniu, bo z początku nie jest to oczywiste.

Poza tym dodałbym możliwość zatrzymania gry lub przejścia do menu podczas trwanie rozgrywki.
1
komentarz 20 lipca 2016 przez C☺ndzi Stary wyjadacz (10,890 p.)

Faktycznie, poprawimy to w wersji 1.0.1 smiley

+2 głosów
odpowiedź 20 lipca 2016 przez Michał Muzyka Stary wyjadacz (12,210 p.)
Ja dodał bym menu opcji w którym można by było zmniejszyć głośność, czy ustalić klawisze, albo liczbę żyć graczy
komentarz 21 lipca 2016 przez C☺ndzi Stary wyjadacz (10,890 p.)

Dodamy to w następnej wersji smiley

+2 głosów
odpowiedź 21 lipca 2016 przez maly Nałogowiec (37,370 p.)

Z całego C++11 użyte tylko emplace, override i nullptr, według mnie niepotrzebnie zawyżone wymagania dla kompilatora.

#include <SFML\Audio.hpp>

To nie jest poprawny zapis.

 

Pustych konstruktorów i destruktorów nie powinno się definować.
Metoda PhysicsEngine::Init powinna być konstruktorem.
Prawie cała zawartość metody Game::Initialize powinna być w konstruktorze.
Ogromne ilości dynamicznych alokacji.
Niepotrzebne przkazywanie zmiennych przez wskaźniki zamiast przez referencje.

komentarz 21 lipca 2016 przez Michał Muzyka Stary wyjadacz (12,210 p.)
czemu to jest nie poprawny zapis?
komentarz 21 lipca 2016 przez Damian11131 Stary wyjadacz (12,810 p.)
Mogę się mylić, ale używanie lewych slashy(ów)  jest nieprzenośne.
komentarz 21 lipca 2016 przez pietrzakacper Mądrala (6,800 p.)
To fakt, na Linuxie lewy Slash nie jest obsługiwany
komentarz 21 lipca 2016 przez pietrzakacper Mądrala (6,800 p.)
A co jet złego w dynamicznej alokacji jeśli jest poprawnie zwalniana pamięć ?
komentarz 21 lipca 2016 przez Damian11131 Stary wyjadacz (12,810 p.)
W standardzie C++11 znajdują się inteligentne wskaźniki, m.in.  shared_ptr.
2
komentarz 22 lipca 2016 przez maly Nałogowiec (37,370 p.)

A co jet złego w dynamicznej alokacji jeśli jest poprawnie zwalniana pamięć ?

Nic.
Ale, skoro poniższy przykład nie jest uważany za coś złego.

class Foo
{
	sf::RenderWindow *mWindow;
	Foo()
	{
		mWindow = new sf::RenderWindow;
	}
};

to trzymajmy się tej konwencji.

class Foo
{
	std::string *mString;
	std::vector<int> *mInts;
	int *mInt;
	Foo()
	{
		mString = new std::string;
		mInts = new std::vector<int>;
		mInt = new int;
	}
};

Hmm, nie wiem jak dla innych ale dla mnie wygląda trochę absurdalnie.

+2 głosów
odpowiedź 21 lipca 2016 przez YaroJava Użytkownik (910 p.)
Jak najszybciej dodajcie możliwość zagrania w jedna osobę, czyli drugi gracz sterowany przez komputer lub ewentualnie zabijanie jakiś potworków ;]
komentarz 21 lipca 2016 przez shead VIP (131,360 p.)
Nie sądzę, żeby gra doczekała się jakichś update'ów nie licząc bugfixów. Naszym targetem jest android oraz Unity, to miał być jedynie projekt na rozgrzewkę
komentarz 21 lipca 2016 przez YaroJava Użytkownik (910 p.)
Chyba że tak ;p Chociaż mimo że to projekt na rozgrzewke to nie wypada tak go zostawiać niedokończonego, bo bez single player to takjakby gra niedokończona :/

Ja osobiście lubie pograć w stare gierki (kultowe) :) a w tą sam ze sobą nie zagram.
komentarz 22 lipca 2016 przez shead VIP (131,360 p.)
Istnieją gry, które nie posiadają trybu dla pojedynczego gracza, a jednak uznaje się je za pełne wersje
komentarz 22 lipca 2016 przez YaroJava Użytkownik (910 p.)
To wasza gra, będzie taka jak Wy chcecie :)

Ale piszecie dla rozgrzewki takie sprawdzenie się, a postać sterowana przez komputer i w miare inteligentnie grająca to takie wyzwanie ;) ta wersja aktualna to prosta do napisania wiem bo sam pisze gry w Java i Androidzie.
komentarz 22 lipca 2016 przez shead VIP (131,360 p.)
Jasne, wyzwaniem miała być nie gra, a ogarnięcie pracy w zespole
+1 głos
odpowiedź 21 lipca 2016 przez filipekczek7 Maniak (54,810 p.)

Tak patrząc po obrazku, od razu zauważyłem coś trochę dziwnego. Nie, że okropnie to wygląda, ale ja bym dał taką małą poprawkę. W miarę swoich możliwości poprawiłem to w GIMP-ie. To jest wasz obrazek:

A to mój, poprawiony:

Jedyne co poprawiłem, to dolna część ekranu, czyli ściany, zamiast górnej części tych cegiełek. U was na obrazku jest kolejny rządek cegiełek, a ja dałem tam ściany. Wygląda mi to jakoś lepiej. A tak to jest fajne, ładna, prosta grafika :)

Już dużo w komentarzach napisali, więc ja już raczej nic nie będę dodawał, tym bardziej, że jeszcze nie grałem ;)

Dobra robota yes Będziecie robić coś jeszcze? I czy będą to większe projekty? Czy tylko takie mini gierki, dla poćwiczenia i udostępnienia źródła?

komentarz 21 lipca 2016 przez pietrzakacper Mądrala (6,800 p.)

Wachaliśmy się pomiędzy tymi dwoma wersjami dolnego rzędu. Padło na pierwszą wersję. Ale jak to mówią user ma zawsze racje więc w Update-cie najprawdopodobniej pojawi się ta druga wersja :).

Bomberman był projektem rozgrzewkowym dla naszego studia. Chcieliśmy sprawdzić jak wyjdzie nam ta współpraca na czymś co już znamy czyli SFML.

Teraz będziemy pracować w Unity więc tak, będziemy brać się za większe projekty :) Planujemy wydać coś na Warsztat Summer of Code 2016

 

komentarz 21 lipca 2016 przez filipekczek7 Maniak (54,810 p.)
No właśnie tak coś myślałem, że pewnie nie byliście pewni, jak by to zrobić ;)

Aha, czyli coś więcej, to dobrze ;) A czy macie zamiar zarabiać na grach (oczywiście, nad tym najporządniejszym projektem, jaki pewnie zrobicie w Unity)? Wiem, że to oczywiście nie jest takie łatwe, ale czy może przyszła wam taka myśl do głowy? :)

Powodzenia przy kolejnych projektach!
komentarz 21 lipca 2016 przez pietrzakacper Mądrala (6,800 p.)
Nie nastawiamy się na zarobki, na tą chwilę to co robimy jest robione z pasji :) .

Oczywiście nie wykluczamy możliwości, że kiedyś będziemy chcieli zarobić na jakiejś grze - ale sądzę, że jeszcze minie trochę czasu zanim to nastąpi.

Dzięki !
komentarz 21 lipca 2016 przez filipekczek7 Maniak (54,810 p.)
Ale z pasji można się ułożyć na całe życie ;) Przyjemne z pożytecznym. No chyba, że macie na głowie co innego.
komentarz 21 lipca 2016 przez pietrzakacper Mądrala (6,800 p.)
PiGames nie jest w tej chwili naszym głównym zajęciem. Ale kto wie, może kiedyś rzucimy to wszystko i będziemy robić gry na pełen etat, a może i dłużej xD .
komentarz 21 lipca 2016 przez filipekczek7 Maniak (54,810 p.)
No! I na taką odpowiedź czekałem! :D

OK, jeszcze raz, miłego kodowania życzę ;)
+1 głos
odpowiedź 21 lipca 2016 przez wobit22 Początkujący (400 p.)

Podczas kompilacji na linuksie linker wymaga dodania sfml-audio, którego brakuje w Makefile. wink

komentarz 21 lipca 2016 przez C☺ndzi Stary wyjadacz (10,890 p.)

Naprawione. Powinno działać. Jutro powinna wyjść oficjalna łatka 1.0.1, ale, jeśli bardzo chcesz już teraz zagrać na Linuxie, możesz skompilować kod z brancha Experimental: [LINK] smiley.

komentarz 21 lipca 2016 przez shead VIP (131,360 p.)
O ile się orientuję to makefile nie jest aktualny więc trzeba by było go napisać tak aby dobrze działał + dojdzie ci zabawa ze zmianą '\' na '/', bo od jakiegoś czasu wszyscy przenieśliśmy się z projektem na Visuala, więc nikt nie aktualizował make'a
komentarz 21 lipca 2016 przez C☺ndzi Stary wyjadacz (10,890 p.)
Właśnie go zaktualizował kamilosxp, teraz na pewno działa na branchu Experimental.
komentarz 21 lipca 2016 przez wobit22 Początkujący (400 p.)

Dzięki :)

Kompilator także wyrzucił błąd na tej linii kodu(Game.cpp ~203):

initGameplay(std::string("data/sample_level.txt"));

nie za bardzo wiem, czym to jest spowodowane, ale po poprawie na to:

std::string x = "data/sample_level.txt";
initGameplay(x);

już działa. :)

komentarz 21 lipca 2016 przez C☺ndzi Stary wyjadacz (10,890 p.)
Błąd powinien już być naprawiony na branchu Experimental.
+1 głos
odpowiedź 22 sierpnia 2016 przez afferu Gaduła (4,760 p.)
Trochę za dużo kodu jak na grę takich rozmiarów, ale i tak dobrze sobie poradziliście ( o ile to jest jeden z pierwszych waszych projektów).

Startujcie z kolejnym projektem :) , praktyka jest najważniejsza.
komentarz 22 sierpnia 2016 przez pietrzakacper Mądrala (6,800 p.)
Dzięki, trwają pracę nad kolejnym projektem w Unity tym razem :)
0 głosów
odpowiedź 22 lipca 2016 przez Michał Muzyka Stary wyjadacz (12,210 p.)
a mam jeszcze pytanie jak ukryliście okno konsoli bez użycia WinMain?
komentarz 22 lipca 2016 przez kamilosxp Obywatel (1,860 p.)
W opcjach projektu w Visual Studio: Linker -> SubSystem-> Windows (/SUBSYSTEM:WINDOWS)
komentarz 22 lipca 2016 przez Michał Muzyka Stary wyjadacz (12,210 p.)
no tak, ale wtedy kompilator wysyła error o braku winMain
komentarz 22 lipca 2016 przez kamilosxp Obywatel (1,860 p.)
edycja 22 lipca 2016 przez kamilosxp
Dodaj do Input: "sfml-main-d.lib" lub "sfml-main.lib" do release

Podobne pytania

+7 głosów
1 odpowiedź 216 wizyt
+17 głosów
3 odpowiedzi 242 wizyt
0 głosów
2 odpowiedzi 101 wizyt
pytanie zadane 5 stycznia w C i C++ przez Danthee Początkujący (260 p.)
Obowiązuje już zaktualizowany regulamin.

Czy wiesz, że nie musisz już odświeżać strony głównej?

Lista pytań i odpowiedzi aktualizuje się automatycznie!

38,563 zapytań

76,428 odpowiedzi

149,242 komentarzy

18,032 pasjonatów

Przeglądających: 206
Pasjonatów: 7 Gości: 199

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...