Skip to content

Commit

Permalink
Merge pull request #17 from spiiin/development
Browse files Browse the repository at this point in the history
Docs update
  • Loading branch information
spiiin authored Dec 9, 2018
2 parents 9ac5c7b + 7c01302 commit 5f7a7ef
Show file tree
Hide file tree
Showing 13 changed files with 337 additions and 110 deletions.
19 changes: 13 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Run CadEditor.exe, select config file for game that you want to open and select

Important: if you download release archive from github, you must unblock it for correct running EXE and DLL files https://blogs.msdn.microsoft.com/delay/p/unblockingdownloadedfile/
More explanations: http://www.romhacking.net/forum/index.php?topic=17150.msg356786#msg356786
This will be fixed in future releases.
You can use installer to avoid this problem.

<b>CadEditor</b> is a universal level editor and some romhacking tools for many different games for NES and SMD platform.<br>
Some of them:
Expand All @@ -24,21 +24,31 @@ Contra Hard Corps
Earth Worm Jim 1-2
Pitfall
etc.</pre>
There are more than 400 configs for 500 levels for more than 80 games.<br>
There are more than 2000 configs for more than 200 games.<br>
Configs are simple C# files, and they have simple structure, so new games can be added with no problems.<br>
Full list of supported games:<br>
https://github.com/spiiin/CadEditor/blob/master/CadEditor/cad_editor_supported_games.txt

CadEditor can be built with Visual Studio or Mono, it can be run on Windows, Linux and MacOS platform.
CadEditor can be built with Visual Studio or Mono, it can be run on Windows, Linux and MacOS platform.<br>
(but only Windows platform tested now)

<b>More info</b><br>
http://spiiin.github.io/CadEditor/<br>
Documentation<br>
Articles about level formats<br>
Romhacking info<br>
(russian version)<br>

<b>Patreon page of editor</b><br>
https://www.patreon.com/CadEditor<br>
<a href="https://www.patreon.com/bePatron?u=3158003" data-patreon-widget-type="become-patron-button">Become a Patron!</a>

<b>Project on itch.io</b><br>
https://spiiin.itch.io/cadeditor

<b>project on Fundition.io<b><br>
https://fundition.io/#!/@pinkwonder/94dye4s9a

<b>Screenshots</b><br>
<img src="http://spiiin.github.io/CadEditor/images/tut1_cad_editor_main.png"/>

Expand All @@ -49,6 +59,3 @@ https://www.patreon.com/CadEditor<br>

<b>Latest release</b><br>
https://github.com/spiiin/CadEditor/releases

<b>Project on itch.io</b><br>
https://spiiin.itch.io/cadeditor
24 changes: 10 additions & 14 deletions docs/cadeditor-architecture.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<link rel="stylesheet" type="text/css" href="stylesheets/stylesheet.css" media="screen">
<link rel="stylesheet" type="text/css" href="stylesheets/github-dark.css" media="screen">

<title>Архитектура редактора CadEditor</title>
<title>Архитектура редактора CadEditor</title>
</head>

<body>
Expand All @@ -22,10 +22,6 @@ <h2>Устройство формата уровня</h2>
<div class="container">
<section id="main_content">

<p>
Привет всем читающим.
</p>

<p>
В этой статье я попробую изложить основные принципы и идеи реализации универсального блочного редактора уровней, который можно будет использовать с разными играми, внутренний формат хранения данных в которых не известен заранее. Данные принципы частично реализованы в редакторе уровней <a href="https://github.com/spiiin/CadEditor">CadEditor</a>, в котором в данный момент можно редактировать уровни из около 100 различных игр на NES и Sega Mega Drive (а также возможно подключение других игр без изменения кода редактора).
</p>
Expand All @@ -48,7 +44,7 @@ <h2><a id="princ" class="anchor" href="#princ" aria-hidden="true"><span aria-hid
Почти все редакторы работают с каким-либо конкретным форматом карты, в лучшем случае позволяют экспортировать/импортировать карты в несколько различных форматов. Например, редактор Tiled позволяет сохранять карту в формат tmx, для которого есть загрузчики для различных игровых движков, а также экспортировать её в формат для других редакторов карт.
</p>
<p>
<img src="images/tut3_tiled_felix.png" alt="tiled">
<img src="images/tut3_tiled_felix.png" alt="tiled felix" class="center-img">
</p>


Expand Down Expand Up @@ -96,7 +92,7 @@ <h2><a id="obshch" class="anchor" href="#obshch" aria-hidden="true"><span aria-h

<h3>Layout</h3>
<p>
<img src="images/tut3_cad_editor_enemies.png" alt="objec lists">
<img src="images/tut3_cad_editor_enemies.png" alt="objec lists" class="center-img">
<i>редактор списка объектов в раскладке</i><br><br>
Самым общим понятием редактора уровня является "раскладка" уровня (<b>Layout</b>). Этот элемент описывает, каким образом соединяются вместе "экраны" (<b>ScreensList</b>), а также описывает свойства уровня (<b>Params</b>) и списки объектов (<b>OjbectsList</b>) на нём.
</p>
Expand All @@ -121,7 +117,7 @@ <h4>ObjectsList</h4>

<h3>Screen</h3>
<p>
<img src="images/tut3_cad_editor_main.png" alt="screend">
<img src="images/tut3_cad_editor_main.png" alt="screend" class="center-img">
<i>редактор слоя тайлов на экране</i><br><br>

Логическая единица, представляющая собой прямоугольную часть уровня, которая соединяет несколько "слоёв" блоков (<b>BlocksLayer</b>). Стоит отметить, что никаких ограничений на размер нет, экраны могут быть огромных размеров в тысячи блоков, так и состоять из 1 блока в ширину и высоту, логический смысл данного строительного элемента лишь в том, что он может объединять несколько слоёв один поверх другого. В тривиальном случае экран содержит один слой.
Expand All @@ -140,7 +136,7 @@ <h4>BlockLayer</h4>

<h3>Block</h3>
<p>
<img src="images/tut3_cad_editor_bigblocks2.png" alt="blocks">
<img src="images/tut3_cad_editor_bigblocks2.png" alt="blocks" class="center-img">
<i>редактор блоков</i><br><br>
Состоит из матрицы <b>Indexes</b>, элементами которой являются индексы блоков (<b>Block</b>) или тайлов (<b>Tile</b>), а также произвольные свойства (<b>Params</b>). Блоки могут состоять из других блоков, таким образом могут быть описаны иерархические структуры. Например, часто встречается структура экрана, при которой он описывается слоем макроблоков размером 2x2, каждый из которых сам состоит из 2x2 блоков, каждый из которых состоит из 2x2 тайлов. Это позволяет описывать экран очень компактно.
</p>
Expand Down Expand Up @@ -180,15 +176,15 @@ <h3>Brush</h3>

<h3>Tiles</h3>
<p>
<img src="images/tut3_cad_editor_chr_editor.png" alt="tiles">
<img src="images/tut3_cad_editor_chr_editor.png" alt="tiles" class="center-img">
<i>просмотрщик построенных тайлов</i><br><br>
Самая мелкая единица построения уровня. Тайлы - это картинки (загруженная или построеннык каким-либо способом), из которых строятся блоки.
</p>

<h3>Взаимоотношение элементов формата уровня</h3>
<p>
В итоге получается примерно такая схема отношений элементов:
<img src="images/tut3_level_format_elements.png" alt="tiled">
<img src="images/tut3_level_format_elements.png" alt="scheme" class="center-img">
</p>


Expand Down Expand Up @@ -237,12 +233,12 @@ <h2>Задание описания формата уровней для под

<p>
<b>SettingsVerifier</b> при запуске автоматически загружает в CadEditor все найденные в текущей папке конфиги и выдаёт на консоль результат - были ли ошибки загрузки или же конфиги валидны.
<img src="images/tut3_settings_verifier.png" alt="settings verifier">
<img src="images/tut3_settings_verifier.png" alt="settings verifier" class="center-img">
</p>

<p>
<b>ConfigViewer</b> позволяет загрузить конфиг и показывает все имена функций, которые ищет в нём редактор CadEditor, а также позволяет запустить каждую из этих функций конфига отдельно, и показывает результат её выполнения, либо сообщает о том, что при выполнении функции произошла ошибка и сообщает детали этой ошибки.
<img src="images/tut3_config_viewer.png" alt="settings verifier">
<img src="images/tut3_config_viewer.png" alt="config viewer" class="center-img">
</p>

<p>
Expand Down Expand Up @@ -279,7 +275,7 @@ <h3>Выходной файл с метаинформацией об игре</h

<h3>Входные и выходные патчи, накладываемый на исходный ROM</h3>
<p>
Не поддерживается редактором в настоящий момент. Такая опция позволила бы добавить в редактор возможность работать с предварительно изменёнными играми (хаками, переводами, расширенными версиями игр и т.п.), без необходимости распространять сами изменённые ROM-файлы, а также накладывать более сложные изменения на выходной файл из редактора (например, выполнять расширение или исправлять ошибки в игре), упростить распространение выходного файла, контролировать контрольную сумму исходного файла (при сохранении изменений в патч он остаётся неизменным).
Не поддерживается редактором в настоящий момент. Такая опция позволила бы добавить в редактор возможность работать с предварительно изменёнными играми (хаками, переводами, расширенными версиями игр и т.п.), без необходимости распространять сами изменённые ROM-файлы, а также накладывать более сложные изменения на выходной файл из редактора (например, выполнять расширение или исправлять ошибки в игре), упростить распространение выходного файла, проверять контрольную сумму исходного файла (при сохранении изменений в патч исходный файл остаётся неизменным).
</p>


Expand Down
8 changes: 4 additions & 4 deletions docs/cadeditor-features.html
Original file line number Diff line number Diff line change
Expand Up @@ -26,19 +26,19 @@ <h2>Возможности редактора и утилит</h2>
<b>CadEditor</b> - редактор уровней для множества игр под разные платформы (NES, Sega Mega Drive, GBA).
</p>
<p>
<img src="images/tut1_cad_editor_main.png" alt="редактор экранов">
<img src="images/tut1_cad_editor_main.png" alt="редактор экранов" class="center-img">
Основное предназначение - редактирование строения уровней (экранов и блоков),а также изменение размещения положения объектов на них.
</p>

<p>
<h2><a id="komu" class="anchor" href="#komu" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Кому может быть интересен редактор</h2>
<ul>
<li><b>Исследователи игр и ромхакеры</b> - для изучения строения уровней и создания хаков. В редакторе есть конфиги для всех уровней для нескольких игр, и с его помощью было создано более 10 хаков (<a href="http://www.emu-land.net/forum/index.php/topic,60286.0.html">Ветка на форуме emu-land</a>, посвящённая созданию хаков с помощью редактора).</li>
<img src="images/tut2_cad_dwd_new_levels.png" alt="хак чп">
<img src="images/tut2_cad_dwd_new_levels.png" alt="хак чп" class="center-img">
<li><b>Разработчики других редакторов уровней</b> для конкретных игр могут использовать редактор в качестве основы для своих проектов. Исходный код CadEditor открыт, также редактор поддерживает добавление модулей для редактирования специфических для игр данных (<a href="cadeditor-modules.html">Описание модулей</a>). На основе CadEditor'а был сделан редактор игры <a href="https://github.com/lab313ru/tf3editor">Thunder Force 3</a>.</li>
<img src="images/tut2_tf3_editor.png" alt="tf3 editor">
<img src="images/tut2_tf3_editor.png" alt="tf3 editor" class="center-img">
<li><b>Разработчики homebrew-проектов</b> для платформ NES могут использовать редактор для создания уровней в своих играх.</li>
<img src="images/tut2_megaman_blocks.png" alt="mm blocks">
<img src="images/tut2_megaman_blocks.png" alt="mm blocks" class="center-img">
</ul>
</p>

Expand Down
Loading

0 comments on commit 5f7a7ef

Please sign in to comment.