Projekt Doom

Typ_projektu
Arduino
Zdjecie główne
Krótki opis projektu

Projekt Doom jest sprawdzeniem na jak dużo może pozwolić sobie Arduino. Dzięki technice raycastingu, która była używana w tak kultowych grach jak Wolfenstein 3D, czy Doom oraz optymalizacji programu udało stworzyć symulację poruszania się w 3 wymiarowej przestrzeni i reprezentowaniu tego na wyświetlaczu LCD.

Niezbędne elementy

1. Płytka Arduino UNO

2. 4 przyciski monostabilne

3. ekran LCD (użyto SSD1306 128x64)

 

Opis projektu

Projekt o pseudonimie „Doom”, to stworzony pod Arduino silnik graficzny do wyświetlania gier w 3D, za pomocą metody Raycasting’u. Metoda ta pomogła stworzyć wiele kultowych gier jak Doom, czy Wolfenstein 3D. Dzisiaj do projekcji 3D służą bardziej skomplikowane modele matematyczne, lecz wyewoluowały one właśnie z metody Raycastingu, która swa popularność zawdzięczała małym kosztom obliczeniowym.

Krótki wstęp do Raycasting'u:

Tworzymy grę 2D, mapa typu labirynt oraz gracz w środku. Chcemy jednak uzyskać efekt trójwymiarowości. Sprawdzamy zatem za pomocą promieni „wystrzeliwanych” z oczu gracza jak daleko znajduje się najbliższa ściana. Na podstawie odległości wyświetlamy pionową kreskę o odpowiedniej wysokości na ekranie. Obiekty dalekie – krótkie kreski, obiekty bliskie – długie kreski. Po wystrzeleniu odpowiedniej ilości promieni, takie zgromadzenie pionowych kresek daje nam złudzenie perspektywy.

Funkcje programu:

• Możliwość stworzenia, z poziomu kodu, własnej mapy, po której może poruszać się gracz
• Możliwość obracania się kamerą w prawo i w lewo oraz możliwość poruszania się przód, tył
• Wyświetlanie tego co widzi gracz w 3D

Jest to założenia najprostsza wersja tego projektu, którą można rozwinąć pod kątem:
• wyświetlania tekstur, oddzielnych dla sufitu, ścian oraz podłogi
• dodania przeciwników
• dodanie elementów interaktywnych do otoczenia, takich jak drzwi czy broń
Może być to temat większego projektu.

Zdjęcia
kod programu

ZIP poniżej

Pliki_projektu
Youtube
Tagi
doom arduino elektronika polska raycasting
Odnośniki zewnętrzne
Program został napisany z pomocą poradników:
https://www.youtube.com/watch?v=g8p7nAbDz6Y
https://www.youtube.com/watch?v=NbSee-XM7WA
https://www.youtube.com/watch?v=ebzlMOw79Yw
https://www.youtube.com/watch?v=gYRrGTC7GtA