Игорь Огнелис

Игорь Огнелис 

This is AAEmu project.

79subscribers

224posts

goals1
9 of 1 000 paid subscribers
Поддержите мое хобби и помогите мне творить дольше!

Основные изменения на 28 июня 2025 года:

Main changes as of June 28, 2025:
28.06.2025
[Game] Добавлен класс NavigationMeshCollector для оптимизации навигационной сетки.
- Собирает и объединяет треугольники навигационной сетки в более крупные полигоны для ускорения поиска пути.
- Автоматически заполняет пробелы между поверхностями с помощью выпуклой оболочки и триангуляции.
- Группирует треугольники по зонам и сетке, объединяет плоские области, уменьшает количество треугольников.
- Поддерживает потокобезопасную работу и периодическую синхронизацию с базой данных.
- Позволяет быстро получать треугольники в радиусе, учитывая попадание точки внутрь треугольника.
- Существенно снижает нагрузку на навигацию за счёт уменьшения числа треугольников и оптимизации структуры данных.
[SQL] Обновлен `aaemu_game.sql` и удален файл `2025-04-10_aaemu_game_add_height_maps.sql` и `2025-04-09_aaemu_game_add_height_maps.sql`;
- удалены не нужные более таблицы height_map_cells и height_maps, вместо них сейчас актуальна таблица navigation_mesh;
[UnitTests] Добавлены модульные тесты для NavigationMeshCollector
Реализованы тесты для проверки:
- Поиска треугольников по точке внутри треугольника
- Поиска треугольников по точке около вершины
- Работы с треугольниками на разных высотах (Z-координата)
- Обработки смежных треугольников после компактификации
- Обработки точек вне треугольников
- Проверки некорректных параметров (нулевой/отрицательный радиус)
- Работы с разными игровыми зонами
Тесты подтверждают корректность:
- Фильтрации по ZoneId
- XY-проекции при поиске
- Объединения смежных треугольников
- Обработки Z-координаты
- Валидации входных параметров
[Scripts] Исправление скрипта SaveGeodata:
- CommandNames = ["save_geodata", "sg"];
- args "[true || false || change]";
- команда "/save_geodata true" разрешает сбор информации для NavMesh;
- команда "/save_geodata false" запрещает сбор информации для NavMesh;
- команда "/sg change" запись высоты персонажа как высоту Npc с записью в файл npc_spawn.json, нужно быть не далее 4м от Npc;
В файле "World.json" теперь доступна для этого настройка:
{
"World": {
"MOTD": "Welcome to AAEmu!",
"LogoutMessage": "Hope to see you soon.",
"AutoSaveInterval": 1.0,
"ExpRate": 1.0,
"HonorRate": 1.0,
"VocationRate": 1.0,
"LootRate": 1.0,
"GoldLootMultiplier": 1.0,
"GrowthRate": 200.0,
"DaysForTaxPayment": 7,
"IgnoreFallDamageAccessLevel": 100,
"GodMode": true, // включает режим бога
"GeoDataMode": true, // разрешает геоданные для подземелий
"FirstJourneyEnable": false, // включает показ мультфильма при первом входе персонажа
"SaveGeoDataMode": true // разрешает запись геоданных по высоте персонажа
}
}
---
[Game] Added NavigationMeshCollector class for navigation mesh optimization.
- Collects and merges navigation mesh triangles into larger polygons for faster pathfinding.
- Automatically fills gaps between surfaces using convex hull and triangulation.
- Groups triangles by zone and grid, merges coplanar areas, reduces triangle count.
- Supports thread-safe operation and periodic database synchronization.
- Allows fast triangle lookup in a radius, including point-in-triangle checks.
- Significantly reduces navigation load by decreasing triangle count and optimizing data structure.
[SQL] Updated `aaemu_game.sql` and deleted `2025-04-10_aaemu_game_add_height_maps.sql` and `2025-04-09_aaemu_game_add_height_maps.sql`;
- the height_map_cells and height_maps tables, which are no longer needed, have been removed, instead of them the navigation_mesh table is now relevant;
[UnitTests] Added unit tests for NavigationMeshCollector
Implemented tests to verify:
- Triangle lookup by point inside triangle
- Triangle lookup by point near vertex
- Handling triangles at different heights (Z-coordinate)
- Processing adjacent triangles after compaction
- Handling points outside triangles
- Validation of incorrect parameters (zero/negative radius)
- Working with different game zones
Tests confirm correct:
- ZoneId filtering
- XY-projection during lookup
- Adjacent triangle merging
- Z-coordinate handling
- Input parameter validation
[Scripts] Fixing the SaveGeodata script:
- `CommandNames = ["save_geodata", "sg"];`
- `args "[true || false || change]";`
- The command `/save_geodata true` enables data collection for NavMesh.
- The command `/save_geodata false` disables data collection for NavMesh.
- The command `/sg change` saves the player's height as the NPC's height and writes it to the `npc_spawn.json` file (the player must be within 4m of the NPC).
The following setting is now available in the `World.json` file:
{
"World": {
"MOTD": "Welcome to AAEmu!",
"LogoutMessage": "Hope to see you soon.",
"AutoSaveInterval": 1.0,
"ExpRate": 1.0,
"HonorRate": 1.0,
"VocationRate": 1.0,
"LootRate": 1.0,
"GoldLootMultiplier": 1.0,
"GrowthRate": 200.0,
"DaysForTaxPayment": 7,
"IgnoreFallDamageAccessLevel": 100,
"GodMode": true, // enables god mode
"GeoDataMode": true, // allows geodata for dungeons
"FirstJourneyEnable": false, // enables the intro cutscene on first character login
"SaveGeoDataMode": true // allows saving geodata based on player height
}
}
26.06.2025
[Game] Добавлен класс NavigationMeshCollector, который собирает и управляет треугольниками навигационной сетки (navmesh);
[SQL] Обновлен `aaemu_game.sql` и добавлен `2025-06-26_aaemu_game_add_navigation_mesh.sql`;
- navigation_mesh_raw - содержит все исходные (неагрегированные) треугольники от клиентов.
- navigation_mesh - содержит только агрегированные (сжатые) треугольники. Таблица всегда перезаписывается.
---
[Game] Added the NavigationMeshCollector class, which collects and manages navigation mesh (navmesh) triangles;
[SQL] Updated `aaemu_game.sql` and added `2025-06-26_aaemu_game_add_navigation_mesh.sql`;
- navigation_mesh_raw - contains all raw (non-aggregated) triangles received from clients.
- navigation_mesh - contains only aggregated (compressed) triangles. This table is always overwritten.
[Game] Отключил некоторые отладочные сообщения.
---
[Game] Disabled some debug messages.
25.06.2025
[Game] Используем другой алгоритм нахождения высоты для Npc
Теперь система будет работать следующим образом:
1. Когда NPC нужно определить свою высоту, он сначала ищет ближайших игроков в радиусе 15 метров
2. Если найден игрок в этом радиусе:
• Если игрок очень близко (менее 1 метра), используется его высота напрямую
• Если игрок в пределах радиуса поиска, высота интерполируется между высотой игрока и базовой высотой карты
• Чем ближе игрок, тем больший вес имеет его высота
3. Если подходящих игроков нет, используется стандартный механизм получения высоты
---
[Game] Using a different algorithm for determining NPC height
Now the system will work as follows:
1. When an NPC needs to determine its height, it first searches for nearby players within a 15-meter radius.
2. If a player is found within this radius:
- If the player is very close (less than 1 meter), their height is used directly.
- If the player is within the search radius, the height is interpolated between the player's height and the map's base height.
- The closer the player is, the greater the weight their height has.
3. If no suitable players are found, the standard height retrieval mechanism is used.
24.06.2025
[Game] Внесены небольшие изменения в методы MoveTowards, LookTowards, StopMovement класса Npc.
[Game] Отключены отладочные сообщения Ai;
---
[Game] Made small changes to MoveTowards, LookTowards, StopMovement methods of Npc class.
[Game] Disabled Ai debug messages;
24.06.2025
[Game] Улучшения в классах ИИ сделанные с помощью AI Claude Sonnet 3.5
---
[Game] Improvements to AI classes made using AI Claude Sonnet 3.5
23.06.2025
[Game] Восстановлена правильная работа лифта:
- Теперь лифт снова останавливается на всех этажах.
---
[Game] The elevator's correct operation has been restored:
- The elevator now stops at all floors again.
21.06.2025
[Game] Спавн Npc запускаем в отдельной нити, асинхронно.
---
[Game] Spawn NPC runs in a separate thread, asynchronously.
[Game] SphereQuestManager, FishSchoolManager, GimmickManager, RadarManager, Dungeon запускаем синхронно.
---
[Game] SphereQuestManager, FishSchoolManager, GimmickManager, RadarManager, and Dungeon run synchronously.
Creator has disabled comments for this post.
Subscription levels7

Покровитель

$2.97 per month
Подписка дает право на чтение объявлений в блоге. Посты будут публиковаться здесь раньше, чем в других местах.
А также вы можете попробовать готовый север 5.0.7.0 с изменениям кода от 22.12.2025.

STARTER

$7.5 per month
● Все преимущества Покровителя.
● Доступ к готовому обновленному билду сервера 5.0.7.0

БАЗА

$22.3 per month
● Все преимущества STARTER.
● Обновление БД из клиента игры каждый месяц.
● Только английский язык.

МУЛЬТИ

$29.7 per month
● Все преимущества БАЗА.
● Обновление БД из клиента игры каждый месяц.
● Кроме английского языка добавлены: русский, немецкий, французский, китайский языки.
Subscription Spots Are Limited

Меценат

$52 per month
● Все преимущества МУЛЬТИ.
● Доступ к созданным мной материалам (файлы исходного кода патчей).
Subscription Spots Are Limited

Патриций

$223 per month
● Все преимущества Мецената.
● Доступ к созданным мной материалам (rar-файл всего исходного кода сервера).
Subscription Spots Are Limited

VIP

$446 per month
VIP
Go up