pseudo 3d ASCII

3

Javid zrobił coś podobnego z podstawowym ray castingiem. Na filmie masz pokazane od zera krok po kroku


Repo https://github.com/OneLoneCoder/CommandLineFPS

screenshot-20200409204657.png

0

Wygląda to fajnie i jest na pewno dużo mądrzejsze od tej mojej metody „na chłopski rozum”. :)

Nie jestem tylko pewien czy przy moim śladowym doświadczeniu (ok. 1,5 roku samokształcenia ) rozwijanie technik wyświetlania jest mi potrzebne w pierwszej kolejności i chociaż pewnie nie zaszkodzi, to podejrzliwie podejrzewam że w porównaniu do innych elementów programu może to być najmniejszy problem.

Chcę się nauczyć solidnych podstaw języka i umiejętności projektowania większej aplikacji.

Załóżmy na chwilę, że powieszę poprzeczkę zbyt wysoko i pomyślę tak:

  1. Na mapach miałyby „żyć” w miarę inteligentne obiekty.
    Mogłyby zachowywać się w zależności od swoich potrzeb( tu np. przypomina mi się genialny Dungeon Keeper ( ten pierwszy pod DOS’a ) )
    Pewnie trzeba by było pomyśleć o :
    • systemie potrzeb
    • systemie poruszania się po mapie
    • systemie interakcji z innymi obiektami
    • systemie podstawowej komunikacji hero z w/w.
    • systemie „uczenia się” obiektów
      etc.
  2. Musiałaby być możliwość zapisywania stanu gry/programu. Już teraz widzę że trzeba o tym myśleć teraz i w taki sposób projektować, żeby dało się prosto zapisywać i odtwarzać obiekty do/z pliku.
  3. Gdyby miały pojawić się elementy przygodówki/RPG musiałby istnieć jakiś system który kontroluje przebieg rozmów/zadań
  4. Być może jakiś system konstruowania przedmiotów z innych przedmiotów.

I tak dalej i tak dalej.

Nie wiem czy używam dobrego słowa ‚system’ ale myślę że takie właśnie „systemy” musiałyby być autonomiczne, wymienne i łatwo kontrolowane.

Czy dobrze myślę że pomogą wzorce projektowe.

P.S.
Zdaje sobie sprawę że poprzeczka jest za wysoko, ale traktuje tę zabawę jako długoterminową, więc oprócz doraźnych potrzebuję takiego dalszego celu.

1

Ambitnie. Jesli moglbym doradzic to proponowalbym zrobienie dwoch mniejszych projektow wczesniej. Zrobienie Snake'a potem klon Pacmana.

Dlaczego te?
Snake jest dobrym projektem na start, mozna zapoznac sie z programowaniem gier, jezyka, obslugi IDE, prosta logike - zbieranie owocow, smierc przy zjedzenie wlasnego siebie itp.

Pacman jest rozszerzeniem poprzedniego projektu - nie od razu Rzym zbudowano. Tutaj masz np tropienie gracza przez duszki, moglbys tez dodac inne funkcjonalnosci np strzelanie, rzucanie zaklec, inne bonusy.

1

Dzięki.

Zdecydowanie bardzo chętnie porobię takie mniejsze symultanicznie.
Nawet na pewno porobię.
W żadnym wypadku nie będę się uchylał ani migał.

Snake i jakieś takie inne układanki robiłem zeszłej zimy ( w Borlandzie 3.1 I chyba z BGI )
Teraz chcę pójść mały krok do przodu.

1
goostaw napisał(a):

Teraz chcę pójść mały krok do przodu.

Z BGI do ASCII to mały krok do tyłu. Może jakaś biblioteka graficzna i graficzne symulowanie konsoli? ;)

4

Też się bawiłem kiedyś raycastingiem i choć efekt był lichy, bo programista ze mnie żaden (też jestem samoukiem, a z wykształcenia humanistą ;d), to udało mi się coś tam sklecić. Całość była bardzo prymitywnie napisana w Delphi (framerate to była tragedia, mimo rozdzielczości 320x200), a wyświetlanie grafiki oparte było na wbudowanych bibliotekach VCL. Wyglądało to tak:

title

Teksturki ścian są z Wolfensteina 3D :].

W rzeczywistości jest to dużo prostsze, niż się wydaje (gdyby było inaczej, to bym tego nie napisał ;p). Polecam skorzystanie z tego:

https://permadi.com/1996/05/r[...]g-tutorial-table-of-contents/
https://lodev.org/cgtutor/raycasting.html#Introduction

Doskonale opisane i wyłożone krok po kroku, ze wskazaniem co, jak i dlaczego działa, nie tylko suchy kod.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0