Development milestones
NoAI Framework

NoAI Strona główna

Rozwój

Kamienie Milowe rozwoju
Sugerowane zmiany API

Programowanie SI

Dokumentacja API
Wprowadzenie
plik info.nut
plik main.nut
Podstawy
Poszukiwacz drogi
Użycie pathfinder`a kolei
Zapis / Odczyt danych
Dobrze wiedzieć
Squirrel
Home page
Typowe błędy
Listy
Poradnik na błędy OTTD
Trams
Biblioteki SI
Forum
Forum FAQ
Zachowanie SI
Użycie krótkich nazw

SIy

TestAI
WrightAI
Convoy
SimpleAI
Porównanie AI
Zobacz forum
Zobacz BaNaNaS
Wszystko kategorii NoAI

W miarę rozwoju program wprowadza kilka ważnych zmian w systemie NoAI. Ta strona je dokumentuje. Najnowsze produkty są na górze.

Contents

12 stycznia 2009 r

NoAI jest scalony w trunk. Tak!

20 lipca 2008 r. - Nowy sposób przypisywania SI firmie (funkcjonalnej)

Stan na 2008-08-20 (r13771), nowa metoda określania, która sztuczna inteligencja powinna kontrolować, która firma i przy jakich ustawieniach. Z tego powodu opcja wiersza polecenia '-a' została usunięta. Wkrótce zostanie dodany interfejs GUI, aby ułatwić edycję, ale na razie musisz otworzyć plik 'openttd.cfg' i dodać / zmienić następną sekcję:

[ai_players]
none = 
YourAI =

Możesz zdefiniować do 8 miejsc. Dla każdej AI rozpoczynającej się w tym gnieździe (firmie), ta przypisana AI zostanie uruchomiona. Jeśli gracz ludzki zakłada firmę na tym polu, informacje AI są ignorowane. 'none' (brak) oznacza firmę ludzką.

20 May 2008 - main.nut jest podzielony na dwie części

W dniu 2008-05-20 (r13194) wprowadzono nową metodę rejestracji AI. Ta metoda rozwiązuje wiele starych problemów. Na przykład, jeśli masz teraz problem z kompilacją w main.nut , przy uruchomieniu nie powoduje to już błędu. Błąd pojawia się, gdy AI chce się uruchomić, i w ten sposób możemy przekierować go do okna debugowania AI. Rozwiązuje to problem polegający na tym, że użytkownik nie miał pojęcia, dlaczego sztuczna inteligencja się nie pojawiła (wielu użytkowników (Windows) nigdy nie patrzy na konsolę). Teraz jedyną ważną rzeczą jest to, że podczas uruchamiania twój info.nut jest poprawny. Co nie powinno być zbyt trudne dla większości ludzi.

Aktualizacja ze starego systemu

Zasadniczo powinieneś przenieść niewielką część swojego main.nut do info.nut. Przykład:

class FWrightAI extends AIFactory {
	function GetAuthor()      { return "OpenTTD Dev Team"; }
	function GetName()        { return "WrightAI"; }
	function GetDescription() { return "A simple AI that tries to beat you with only aircrafts"; }
	function GetVersion()     { return 1.1; }
	function GetDate()        { return "2008-02-24"; }
	function CreateInstance() { return "WrightAI"; }
}

/* Tell the core we are an AI */
iFWrightAI <- FWrightAI();

Powinien zostać usunięty i powinien otrzymać info.nut :

class WrightAI extends AIInfo {
	function GetAuthor()      { return "OpenTTD Dev Team"; }
	function GetName()        { return "WrightAI"; }
	function GetDescription() { return "A simple AI that tries to beat you with only aircrafts"; }
	function GetVersion()     { return 1.1; }
	function GetDate()        { return "2008-02-24"; }
	function CreateInstance() { return "WrightAI"; }
}

RegisterAI(WrightAI());

Rzeczy do zapamiętania:

17 marca 2008 r. - Porzucono obsługę C++

Od 17 marca 2008 r. Nie można już pisać AI w C++. Jedynym językiem do pisania AI jest Squirrel . Jest tak z kilku powodów, niektóre wymienione poniżej:

Oczywiście są też pewne wady, które również dla rekordów są wymienione:

Podsumowując: usuwając C++ jako język, w którym można pisać AI, zyskujemy prostotę frameworka, bezpieczeństwo i przede wszystkim: przenośność. Z tych powodów jednogłośnie zdecydowano o usunięciu C++ jako możliwego języka dla frameworku NoAI.