reklama - zainteresowany?

Stwórz grę w Unity, a nauczysz się programowania w C#! Pisanie kodu, które sprawia radość. Wydanie V - Helion

Stwórz grę w Unity, a nauczysz się programowania w C#! Pisanie kodu, które sprawia radość. Wydanie V
ebook
Autor: Harrison Ferrone
Tytuł oryginału: Learning C# by Developing Games with Unity 2020: An enjoyable and intuitive approach to getting started with C# programming and Unity, 5th Edition
Tłumaczenie: Radosław Meryk
ISBN: 978-83-283-8145-2
stron: 338, Format: ebook
Data wydania: 2021-09-01
Księgarnia: Helion

Cena książki: 44,85 zł (poprzednio: 69,00 zł)
Oszczędzasz: 35% (-24,15 zł)

Nakład wyczerpany

Tagi: C# - Programowanie | Unity

Unity jest zaawansowanym Å›rodowiskiem przeznaczonym do tworzenia gier 3D. RównoczeÅ›nie może stanowić poczÄ…tek wspaniaÅ‚ej przygody z C#, który jest nowoczesnym i wszechstronnym jÄ™zykiem programowania. Taka Å›cieżka nauki pozwala na unikniÄ™cie niezrozumiaÅ‚ego dla poczÄ…tkujÄ…cych żargonu czy niejasnej logiki programowania. Poszczególne konstrukcje jÄ™zyka i ich zastosowanie nagle stajÄ… siÄ™ proste — dziÄ™ki niestandardowym skryptom pisanym w C# można rozszerzyć możliwoÅ›ci Unity i tworzyć wciÄ…gajÄ…ce, Å›wietnie wyglÄ…dajÄ…ce gry. Oto sposób na przyjemnÄ… i angażujÄ…cÄ…, a przy tym skutecznÄ… naukÄ™ programowania!

To piÄ…te, uzupeÅ‚nione i zaktualizowane wydanie cenionego podrÄ™cznika, dziÄ™ki któremu poznasz od podstaw koncepcje programowania w jÄ™zyku C#, dowiesz siÄ™, czym sÄ… zmienne i klasy, a także jakie sÄ… zasady programowania zorientowanego obiektowo. Po zapoznaniu siÄ™ z elementarzem C# przejdziesz do tworzenia gier w Unity. Nauczysz siÄ™ tworzyć skrypty obsÅ‚ugi prostej mechaniki gry i zdobÄ™dziesz praktyczne doÅ›wiadczenie w programowaniu zgodnym z najlepszymi praktykami kodowania. A tym samym wejdziesz na wyższy poziom w zakresie posÅ‚ugiwania siÄ™ Unity i jÄ™zykiem C#. Po uważnej lekturze zdobÄ™dziesz umiejÄ™tnoÅ›ci potrzebne do realizacji projektów wÅ‚asnych gier w Unity i C#.

W książce między innymi:

  • precyzyjne przykÅ‚ady przydatne w nauce podstaw programowania w jÄ™zyku C#
  • skrypty i ich implementacja w Unity
  • tworzenie podstawowych mechanizmów gier
  • interfejsy, klasy abstrakcyjne, stosy, kolejki, obsÅ‚uga wyjÄ…tków i bÅ‚Ä™dów w C#
  • podstawy sztucznej inteligencji do zastosowania w grach

Ciekawość to pierwszy krok do programowania!

Harrison Ferrone jest inżynierem. Pisze dokumentacje techniczne dla firmy Microsoft, a także tworzy treÅ›ci instruktażowe dla serwisów LinkedIn i Pluralsight. Publikuje artykuÅ‚y na raywenderlich.com, prowadzi również dziaÅ‚alność dydaktycznÄ…. Kiedy nie pracuje, zajmuje siÄ™ kotami, czyta książki i z nostalgiÄ… wspomina lektury szkolne.

 

Zobacz także:

  • JÄ™zyk C. Kurs video. Praktyczne wprowadzenie do programowania
  • Wzorce projektowe dla programistów C#. Kurs video
  • C# 9.0 w piguÅ‚ce
  • Gray Hat C#. JÄ™zyk C# w kontroli i Å‚amaniu zabezpieczeÅ„
  • ASP.NET Core 6. Kurs video. Rozwijaj aplikacje webowe z Entity Framework Core

Spis treści

Stwórz grę w Unity, a nauczysz się programowania w C#! Pisanie kodu, które sprawia radość. Wydanie V eBook -- spis treści

  • O autorze
  • O recenzentach
  • Przedmowa
    • Dla kogo jest ta książka?
    • Zawartość książki
    • Jak najlepiej wykorzystać tÄ™ książkÄ™?
    • Pobieranie plików z przykÅ‚adowym kodem
    • Stosowane konwencje
  • 1. Poznaj Å›rodowisko
    • Wymagania techniczne
    • Pierwsze kroki z Unity 2020
    • Korzystanie z macOS
    • Tworzenie nowego projektu
    • Poruszanie siÄ™ w edytorze
    • Korzystanie z C# w Unity
      • Korzystanie ze skryptów C#
    • Wprowadzenie do edytora Visual Studio
      • Czas na dziaÅ‚anie otwieranie skryptu C#
      • Uważaj na niedopasowanie nazw
      • Synchronizacja plików C#
    • Poznawanie dokumentacji
      • DostÄ™p do dokumentacji Unity
        • Czas na dziaÅ‚anie otwieranie dokumentacji Reference Manual
        • Czas na dziaÅ‚anie korzystanie z dokumentacji Scripting Reference
      • Wyszukiwanie zasobów dotyczÄ…cych C#
        • Czas na dziaÅ‚anie poszukiwanie informacji na temat klasy C#
    • Podsumowanie
    • Pytania obsÅ‚uga skryptów
  • 2. Bloki budulcowe programowania
    • Definiowanie zmiennych
      • Nazwy sÄ… ważne
      • Zmienne peÅ‚niÄ… rolÄ™ symboli zastÄ™pczych
      • Czas na dziaÅ‚anie tworzenie zmiennej
      • Czas na dziaÅ‚anie modyfikacja wartoÅ›ci zmiennej
    • Metody
      • Metody definiujÄ… dziaÅ‚ania
      • Metody to także symbole zastÄ™pcze
      • Czas na dziaÅ‚anie tworzenie prostej metody
      • Klasy wprowadzenie
      • Popularne klasy w Unity
      • Klasa jest planem obiektów
    • Korzystanie z komentarzy
      • Praktyczne lewe ukoÅ›niki
      • Komentarze wielowierszowe
      • Czas na dziaÅ‚anie wprowadzanie komentarzy
    • Wykorzystanie bloków budulcowych programowania w praktyce
      • Skrypty stajÄ… siÄ™ komponentami
      • Pomocna dÅ‚oÅ„ od klasy MonoBehaviour
      • Próba gry Narodziny bohatera klasa MonoBehaviour w Scripting API
      • Komunikowanie siÄ™ pomiÄ™dzy klasami
    • Podsumowanie
    • Quiz bloki budulcowe jÄ™zyka C#
  • 3. Zmienne, typy i metody
    • Pisanie poprawnego kodu w C#
    • Debugowanie kodu
    • Deklarowanie zmiennych
      • Deklaracje typów i wartoÅ›ci
      • Deklarowanie samego typu
      • Korzystanie z modyfikatorów dostÄ™pu
    • Wybór poziomu bezpieczeÅ„stwa
      • Czas na dziaÅ‚anie tworzenie zmiennej prywatnej
    • Typy danych
      • Popularne wbudowane typy danych
      • Czas na dziaÅ‚anie korzystanie z różnych typów danych
      • Czas na dziaÅ‚anie tworzenie interpolowanych ciÄ…gów znaków
      • Konwersja typów
      • Wywnioskowane deklaracje
      • Typy niestandardowe
      • Typy ogólna charakterystyka
    • Nazwy zmiennych
      • Najlepsze praktyki
      • ZasiÄ™g zmiennej
    • Operatory
      • Operatory arytmetyczne i operatory przypisania
      • Czas na dziaÅ‚anie wykonywanie nieprawidÅ‚owych dziaÅ‚aÅ„ na typach
    • Definiowanie metod
      • Podstawowa skÅ‚adnia
      • Modyfikatory i parametry
        • Czas na dziaÅ‚anie definiowanie prostej metody
      • Konwencje nazewnictwa
      • Metody sÄ… objazdem w przepÅ‚ywie sterowania programu
    • Metody z parametrami
      • Czas na dziaÅ‚anie dodawanie parametrów do metody
    • OkreÅ›lanie zwracanych wartoÅ›ci
      • Czas na dziaÅ‚anie dodawanie zwracanej wartoÅ›ci
      • Wykorzystywanie zwracanych wartoÅ›ci
      • Czas na dziaÅ‚anie przechwytywanie zwracanych wartoÅ›ci
        • Próba gry Narodziny bohatera metody i argumenty
    • Korzystanie z popularnych metod w Unity
      • Metoda Start
      • Metoda Update
    • Podsumowanie
    • Quiz zmienne i metody
  • 4. PrzepÅ‚yw sterowania i kolekcje
    • Instrukcje wyboru
      • Instrukcja if-else
        • Podstawowa skÅ‚adnia
        • Czas na dziaÅ‚anie perspektywa zÅ‚odzieja
      • Korzystanie z operatora NOT
      • Zagnieżdżanie instrukcji
      • Ocena wielu warunków
        • Czas na dziaÅ‚anie dotarcie do skarbu
    • Instrukcja switch
      • Podstawowa skÅ‚adnia
      • Dopasowywanie wzorców
        • Czas na dziaÅ‚anie wybór czynnoÅ›ci do wykonania
      • Przypadki fall-through
        • Czas na dziaÅ‚anie rzucanie kośćmi
      • Quiz nr 1 instrukcje warunkowe
    • Kolekcje wprowadzenie
      • Tablice
        • Podstawowa skÅ‚adnia
      • Indeksy tablic
      • WyjÄ…tki przekroczenia zakresu
      • Listy
        • Podstawowa skÅ‚adnia
        • Czas na dziaÅ‚anie uczestnicy rozgrywki
        • Najważniejsze metody
    • SÅ‚owniki
      • Podstawowa skÅ‚adnia
        • Czas na dziaÅ‚anie konfigurowanie zapasów
      • Korzystanie z par zapisanych w sÅ‚owniku
      • Quiz nr 2 wszystko o kolekcjach
    • Instrukcje iteracyjne
      • PÄ™tle for
      • Czas na dziaÅ‚anie wyszukiwanie elementu
      • PÄ™tle foreach
        • Przetwarzanie w pÄ™tli par kluczwartość
        • Próba gry Narodziny bohatera znajdowanie dostÄ™pnych przedmiotów
      • PÄ™tle while
      • Czas na dziaÅ‚anie Å›ledzenie życia gracza
      • Do nieskoÅ„czonoÅ›ci i dalej
    • Podsumowanie
  • 5. Klasy, struktury i programowanie obiektowe
    • Definiowanie klas
      • Podstawowa skÅ‚adnia
        • Czas na dziaÅ‚anie tworzenie klasy Character
      • Tworzenie egzemplarzy klasy
        • Czas na dziaÅ‚anie tworzenie nowego obiektu postaci
      • Dodawanie pól klasy
        • Czas na dziaÅ‚anie szczegóły postaci
      • Korzystanie z konstruktorów
        • Czas na dziaÅ‚anie okreÅ›lanie poczÄ…tkowych wartoÅ›ci wÅ‚aÅ›ciwoÅ›ci
      • Deklarowanie metod klasy
        • Czas na dziaÅ‚anie wyÅ›wietlanie danych o postaci
    • Deklarowanie struktur
      • Podstawowa skÅ‚adnia
        • Czas na dziaÅ‚anie utworzenie struktury Weapon
    • Typy referencyjne i typy wartoÅ›ci
      • Typy referencyjne
        • Czas na dziaÅ‚anie tworzenie nowej postaci
      • Typy wartoÅ›ci
        • Czas na dziaÅ‚anie kopiowanie broni
    • MyÅ›lenie w kategoriach obiektów
      • Hermetyzacja
        • Czas na dziaÅ‚anie resetowanie
      • Dziedziczenie
        • Konstruktory bazowe
          • Czas na dziaÅ‚anie wywoÅ‚ywanie konstruktora bazowego
      • Kompozycja
      • Polimorfizm
        • Czas na dziaÅ‚anie odmiany funkcjonalne
      • PrzeglÄ…d informacji o paradygmacie OOP
    • Zastosowanie OOP w Unity
      • Obiekty sÄ… realizacjami klas
      • DostÄ™p do komponentów
      • Podstawowa skÅ‚adnia
        • Czas na dziaÅ‚anie dostÄ™p do bieżącego komponentu transformacji
        • Czas na dziaÅ‚anie wyszukiwanie komponentów różnych obiektów
      • PrzeciÄ…gnij i upuść
        • Czas na dziaÅ‚anie przypisywanie zmiennych w Unity
    • Podsumowanie
    • Quiz wszystko o OOP
  • 6. Ubrudź sobie rÄ™ce silnikiem Unity
    • Elementarz projektu gry
      • Dokumentacja projektowa gry
      • Dokumentacja jednostronicowa gry Narodziny bohatera
    • Budowanie poziomu
      • Tworzenie prymitywów
        • Czas na dziaÅ‚anie tworzenie podstawowej pÅ‚aszczyzny
    • MyÅ›lenie w 3D
      • MateriaÅ‚y
        • Czas na dziaÅ‚anie zmiana koloru podÅ‚oża
      • White-boxing
        • NarzÄ™dzia edycyjne
          • Narodziny bohatera ustawianie Å›ciany
        • Utrzymywanie hierarchii w porzÄ…dku
          • Czas na dziaÅ‚anie korzystanie z pustych obiektów
        • Korzystanie z prefabrykatów
          • Czas na dziaÅ‚anie tworzenie wieżyczki
          • Czas na dziaÅ‚anie aktualizacja prefabrykatu
          • Czas na dziaÅ‚anie dokoÅ„czenie poziomu
          • Narodziny bohatera tworzenie elementu kondycji
    • Podstawy oÅ›wietlenia
      • Tworzenie oÅ›wietlenia
      • WÅ‚aÅ›ciwoÅ›ci komponentów oÅ›wietlenia
    • Animacje w Unity
      • Tworzenie klipów
        • Czas na dziaÅ‚anie tworzenie nowego klipu
      • Nagrywanie klatek kluczowych
        • Czas na dziaÅ‚anie animacja obracania
      • Krzywe i styczne
        • Czas na dziaÅ‚anie wygÅ‚adzanie obrotu
    • System czÄ…stek
      • Czas na dziaÅ‚anie dodanie efektów blasku
    • Podsumowanie
    • Quiz podstawowe wÅ‚asnoÅ›ci silnika Unity
  • 7. Ruch, sterowanie kamerÄ… i kolizje
    • Poruszanie postaciÄ…
      • Konfigurowanie gracza
        • Czas na dziaÅ‚anie tworzenie kapsuÅ‚y gracza
      • Wektory
      • Pobieranie danych wejÅ›ciowych od gracza
        • Czas na dziaÅ‚anie ruchy graczem
    • Dodawanie kamery Å›ledzÄ…cej
      • Czas na dziaÅ‚anie skrypt z implementacjÄ… zachowania kamery
    • System fizyki w Unity
      • Komponenty Rigidbody w ruchu
        • Czas na dziaÅ‚anie dostÄ™p do komponentu Rigidbody
        • Czas na dziaÅ‚anie obsÅ‚uga ruchu komponentu Rigidbody
      • Komponenty Collider i kolizje
        • Czas na dziaÅ‚anie podnoszenie przedmiotu
      • Zastosowanie wyzwalaczy komponentów Collider
        • Czas na dziaÅ‚anie tworzenie nieprzyjaciela
        • Czas na dziaÅ‚anie przechwytywanie zdarzeÅ„ wyzwalajÄ…cych
          • Narodziny bohatera wszystkie prefabrykaty!
      • System fizyki przeglÄ…d
    • Podsumowanie
    • Quiz sterowanie graczem i system fizyki
  • 8. Skrypty do obsÅ‚ugi mechaniki gry
    • ObsÅ‚uga skoków
      • Typy wyliczeniowe
      • Typy wartoÅ›ci w enumeracjach
      • Czas na dziaÅ‚anie naciskanie spacji, aby skakać!
    • Zastosowanie masek warstw
      • Czas na dziaÅ‚anie ustawienie warstw obiektów
      • Czas na dziaÅ‚anie jeden skok naraz
    • Mechanizm strzelania
      • Tworzenie egzemplarzy obiektów
      • Czas na dziaÅ‚anie tworzenie prefabrykatu pocisku
      • Czas na dziaÅ‚anie dodanie mechaniki strzelania
    • ZarzÄ…dzanie obiektami GameObject
      • Czas na dziaÅ‚anie niszczenie pocisków
    • Tworzenie menedżera gry
      • Åšledzenie wÅ‚aÅ›ciwoÅ›ci gracza
      • Czas na dziaÅ‚anie tworzenie menedżera gry
      • Pobieranie i ustawianie wÅ‚aÅ›ciwoÅ›ci
      • Czas na dziaÅ‚anie dodawanie zmiennych wspierajÄ…cych
      • Czas na dziaÅ‚anie aktualizacja kolekcji przedmiotów
    • Polerowanie gry
      • Graficzny interfejs użytkownika
      • Czas na dziaÅ‚anie dodawanie elementów interfejsu użytkownika
      • Warunki wygrywania i przegrywania
      • Czas na dziaÅ‚anie wygrana
    • Dyrektywy using i przestrzenie nazw
      • Czas na dziaÅ‚anie zatrzymywanie i ponowne uruchamianie
    • Podsumowanie
      • Quiz mechanika gry
  • 9. Podstawy sztucznej inteligencji. Zachowania nieprzyjaciół
    • Nawigacja w Unity
      • Komponenty nawigacyjne
        • Czas na dziaÅ‚anie konfigurowanie komponentu NavMesh
        • Czas na dziaÅ‚anie konfigurowanie agentów nieprzyjaciela
    • Ruchome agenty nieprzyjaciół
      • Programowanie proceduralne
        • Czas na dziaÅ‚anie odwoÅ‚ywanie siÄ™ do lokalizacji patrolowych
        • Czas na dziaÅ‚anie ruchy nieprzyjaciół
        • Czas na dziaÅ‚anie ciÄ…gÅ‚e patrolowanie pomiÄ™dzy lokalizacjami
    • Mechanika gry nieprzyjaciela
      • Znajdź i zniszcz
        • Czas na dziaÅ‚anie zmiana celu agenta
        • Czas na dziaÅ‚anie wykrywanie kolizji z kulami
        • Czas na dziaÅ‚anie aktualizacja menedżera gry
    • Refaktoryzacja i zastosowanie zasady DRY
      • Czas na dziaÅ‚anie refaktoryzacja metody restart
        • Narodziny bohatera refaktoryzacja logiki wygranej (przegranej)
    • Podsumowanie
    • Quiz mechanizmy AI i nawigacja
  • 10. WiÄ™cej o typach, metodach i klasach
    • WiÄ™cej informacji o modyfikatorach dostÄ™pu
      • WÅ‚aÅ›ciwoÅ›ci staÅ‚e i tylko do odczytu
      • Wykorzystanie sÅ‚owa kluczowego static
      • Czas na dziaÅ‚anie tworzenie klasy statycznej
    • WiÄ™cej informacji o metodach
      • Przeciążanie metod
      • Czas na dziaÅ‚anie przeciążanie metody restartowania poziomu
      • Parametry ref
      • Czas na dziaÅ‚anie Å›ledzenie restartów
      • Parametry out
    • WiÄ™cej informacji o OOP
      • Interfejsy
      • Czas na dziaÅ‚anie tworzenie interfejsu menedżera
      • Czas na dziaÅ‚anie implementacja interfejsu
    • Klasy abstrakcyjne
      • Rozszerzanie klas
      • Czas na dziaÅ‚anie rozszerzanie klasy String
      • Czas na dziaÅ‚anie korzystanie z metod rozszerzeÅ„
    • WiÄ™cej o przestrzeniach nazw
      • Aliasy typów
    • Podsumowanie
    • Quiz wchodzimy o poziom wyżej
  • 11. Stosy, kolejki i kolekcje HashSet
    • Stosy wprowadzenie
      • Podstawowa skÅ‚adnia
        • Czas na dziaÅ‚anie przechowywanie zebranych przedmiotów
      • Zdejmowanie elementów ze stosu i podglÄ…danie ich
        • Czas na dziaÅ‚anie ostatni zebrany przedmiot
      • Popularne metody
      • Kolejki
      • Podstawowa skÅ‚adnia
      • Dodawanie, usuwanie i podglÄ…danie elementów kolejek
      • Najważniejsze metody
    • Korzystanie z kolekcji HashSet
      • Podstawowa skÅ‚adnia
      • Wykonywanie dziaÅ‚aÅ„ na zbiorach
    • Podsumowanie
    • Quiz zaawansowane kolekcje
  • 12. Typy generyczne, delegaty i nie tylko
    • Wprowadzenie do typów generycznych
      • Obiekty generyczne
        • Czas na dziaÅ‚anie tworzenie generycznej kolekcji
      • Metody generyczne
        • Czas na dziaÅ‚anie dodanie elementu generycznego
      • Ograniczenia parametrów typu
        • Czas na dziaÅ‚anie ograniczenia dla generycznych elementów
    • Delegowanie dziaÅ‚aÅ„
      • Podstawowa skÅ‚adnia
        • Czas na dziaÅ‚anie tworzenie delegata do debugowania
      • Delegaty jako typy parametrów
        • Czas na dziaÅ‚anie wykorzystanie delegatów w roli argumentów
    • Zdarzenia
      • Podstawowa skÅ‚adnia
        • Czas na dziaÅ‚anie tworzenie zdarzenia
      • ObsÅ‚uga subskrypcji zdarzeÅ„
        • Czas na dziaÅ‚anie subskrybowanie zdarzenia
    • ObsÅ‚uga wyjÄ…tków
      • ZgÅ‚aszanie wyjÄ…tków
        • Czas na dziaÅ‚anie sprawdzanie, czy indeks sceny nie jest ujemny
      • Korzystanie z bloków try-catch
        • Czas na dziaÅ‚anie przechwytywanie bÅ‚Ä™dów podczas restartowania
    • Elementarz wzorców projektowych
      • Popularne wzorce stosowane w grach
    • Podsumowanie
    • Quiz zaawansowane możliwoÅ›ci jÄ™zyka C#
  • 13. Dalsza podróż
    • To tylko namiastka
    • Przypomnienie zasad programowania obiektowego
    • PodejÅ›cie do projektów Unity
    • WÅ‚asnoÅ›ci silnika Unity, których nie opisaÅ‚em
    • NastÄ™pne kroki
      • Zasoby zwiÄ…zane z jÄ™zykiem C#
      • Zasoby zwiÄ…zane z Unity
      • Certyfikaty z Unity
      • Narodziny bohatera pokaż grÄ™ Å›wiatu
    • Podsumowanie
  • Odpowiedzi do quizów
    • RozdziaÅ‚ 1. Poznaj Å›rodowisko
      • Pytania obsÅ‚uga skryptów
    • RozdziaÅ‚ 2. Bloki budulcowe programowania
      • Quiz bloki budulcowe jÄ™zyka C#
    • RozdziaÅ‚ 3. Zmienne, typy i metody
      • Quiz zmienne i metody
    • RozdziaÅ‚ 4. PrzepÅ‚yw sterowania i kolekcje
      • Quiz 1 instrukcje warunkowe
      • Quiz nr 2 wszystko o kolekcjach
    • RozdziaÅ‚ 5. Klasy, struktury i programowanie obiektowe
      • Quiz wszystko o OOP
    • RozdziaÅ‚ 6. Ubrudź sobie rÄ™ce silnikiem Unity
      • Quiz podstawowe wÅ‚asnoÅ›ci silnika Unity
    • RozdziaÅ‚ 7. Ruch, sterowanie kamerÄ… i kolizje
      • Quiz sterowanie graczem i system fizyki
    • RozdziaÅ‚ 8. Skrypty do obsÅ‚ugi mechaniki gry
      • Quiz mechanika gry
    • RozdziaÅ‚ 9. Podstawy sztucznej inteligencji. Zachowania nieprzyjaciół
      • Quiz mechanizmy AI i nawigacja
    • RozdziaÅ‚ 10. WiÄ™cej o typach, metodach i klasach
      • Quiz wchodzimy o poziom wyżej
    • RozdziaÅ‚ 11. Stosy, kolejki i kolekcje HashSet
      • Quiz zaawansowane kolekcje
    • RozdziaÅ‚ 12. Typy generyczne, delegaty i nie tylko
      • Quiz zaawansowane możliwoÅ›ci jÄ™zyka C#

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.