IPB

 
 
>

Начнём с модинга в NeoAxis?

, Модостроение - познание, как цель, в конечном результате игра.

 
Каково ваше отношение к NeoAxis, как к среде разработки модов.
Есть желающие творить на голом интузиазме в NeoAxis?
С удовольствием [ 1 ] ** [9,09%]
Затрудняюсь ответить [ 0 ] ** [0,00%]
Я не променяю x-ray [ 2 ] ** [18,18%]
Я работаю в другом движке (не x-ray, не neoaxis) [ 1 ] ** [9,09%]
Я пишу свой движок [ 2 ] ** [18,18%]
Я прохожу мимо [ 5 ] ** [45,45%]
Всего голосов: 11
Гости не могут голосовать 
 Diesel
сообщение 23.12.2017, 17:07
Сообщение #1


Мастер Игры
************

Группа: Участник
Сообщений: 1369
Регистрация: 07.08.2015
Пользователь №: 22230



Движок созданный Казанским программистом Иваном Ефимовым в далёкие 2000e годы. Движок постоянно дорабатывался, вплоть до 2016 года, после чего движок был заморожен (возможно отключён от поддержки, бесплатных версий).
На движок как известно, существует несколько типов лицензий. http://www.neoaxis.com/neoaxis/licensing
На данный момент, более интересна бесплатная лицензия, как таковая.
В бесплатной лицензии, запрещается использовать нелицензионный контент, для коммерческих проектов. Но нам для модинга, не обязательно, спрашивать хозяина движка, о разрешении. Представьте на минутку игру Спин Тирес и его моды ( как то фиолетово всем до легальности контента).

Я предлагаю (раз тут много фанатов сталкера), начать проект с моделей и геометрии GSC (опять мы упираемся в лицензию GSC - опять фиолетово, для приличия мы закинем текст лицензии GSC в движок neoaxis, дабы соблюсти закон).

(IMG:https://pp.userapi.com/c621702/v621702594/443e7/YFkPdjb2Ilo.jpg)

Я уже несколько раз пытался начать в одиночку делать проекты, но не хватало мозгов и времени, и еще команды единомышленников.
Вот тут было кое-что https://vk.com/neoaxis.game
Очень много насобирал хлама: https://yadi.sk/d/pmyFAs4q3QT59X
У меня есть желание, всё сделать заново.

Сообщение отредактировал andreyholkin - 23.12.2017, 17:50
Перейти в начало страницы
 
 
 Diesel
сообщение 23.12.2017, 18:37
Сообщение #2


Мастер Игры
************

Группа: Участник
Сообщений: 1369
Регистрация: 07.08.2015
Пользователь №: 22230



Изначально, я выбрал этот движок именно за возможность реализации танков.

Потом немного разобрался C# и написал универсальный класс авто и танка, для возможности использования такого типа техники:

(IMG:http://orig15.deviantart.net/56ec/f/2015/343/3/5/ba_30___soviet_armored_car_half_track_the_average_by_thedesertfox1991-d9jkpzj.jpg)

Сообщение отредактировал andreyholkin - 23.12.2017, 18:40
Перейти в начало страницы
 
 
 Молния в вакууме
сообщение 23.12.2017, 20:46
Сообщение #3


Почти Игроман
*********

Группа: Участник
Сообщений: 647
Регистрация: 05.05.2007
Пользователь №: 6215



Цитата
Я пишу свой движок

Да, моя поделка иногда ещё откапывается, пинается и закапывается обратно. Прикрутил таки генератор лабиринтов к нему:
(IMG:https://images.gameru.net/thumb/de45ce7a56.jpg)

Сначала написал на C, потом вспомнил, для чего мне джаваскрипт и добавил возможность создавать модели скриптами. Как-то так:
+
Код
(function ()
{
    // generate labyrinth
    var WIDTH = 61, HEIGHT = 61;
    var labyrinth = new Array(HEIGHT);
    var i, j;
    
    for(i = 0; i < HEIGHT; i++)
    {
        labyrinth[i] = new Array(WIDTH);
        for(j = 0; j < WIDTH; j++)
            labyrinth[i][j] = '#';
    }

    function excavate(x, y)
    {
        labyrinth[y][x] = ' ';

        var rnd = Math.floor(Math.random() * 4);
        for(var i = 0; i < 4; i++)
        {
            switch((rnd + i) % 4)
            {
                case 0: // top
                    if(y > 2 && labyrinth[y-2][x] === '#')
                    {
                        labyrinth[y-1][x] = ' ';
                        excavate(x, y-2);
                    }
                break;
    
                case 1: // right
                    if(x < WIDTH-2 && labyrinth[y][x+2] === '#')
                    {
                        labyrinth[y][x+1] = ' ';
                        excavate(x+2, y);
                    }
                break;
    
                case 2: // down
                    if(y < HEIGHT-2 && labyrinth[y+2][x] === '#')
                    {
                        labyrinth[y+1][x] = ' ';
                        excavate(x, y+2);
                    }
                break;
    
                case 3: // left
                    if(x > 2 && labyrinth[y][x-2] === '#')
                    {
                        labyrinth[y][x-1] = ' ';
                        excavate(x-2, y);
                    }
                break;
            }
        }
    }

    excavate(1, 1);

    for(i = 0; i < HEIGHT; i++)
    {
        var str = '';
        for(j = 0; j < WIDTH; j++)
            str = str + labyrinth[i][j];

        print(str);
    }
        
    // make visual
    var CELL_SIZE = 2.0;
    
    var vd = { // visual desc
        ceil: {
            textures        : ["laby\\laby_ceil"],
            blender            : "default",
            primitive_type    : Visual.PT_QUAD_LIST,

            vertex_format    : Visual.VF_POSITION|Visual.VF_NORMAL|Visual.VF_TEXCOORD,
            vertices        : []
        },
        floor: {
            textures        : ["laby\\laby_sand"],
            blender            : "default",
            primitive_type    : Visual.PT_QUAD_LIST,

            vertex_format    : Visual.VF_POSITION|Visual.VF_NORMAL|Visual.VF_TEXCOORD,
            vertices        : []
        },
        walls: {
            textures        : ["laby\\laby_brick"],
            blender            : "default",
            primitive_type    : Visual.PT_QUAD_LIST,

            vertex_format    : Visual.VF_POSITION|Visual.VF_NORMAL|Visual.VF_TEXCOORD,
            vertices        : []
        }
    };

    // refs
    var v_ceil = vd.ceil.vertices, v_floor = vd.floor.vertices, v_walls = vd.walls.vertices;

    for(i = 1; i < HEIGHT-1; i++)
    {
        for(j = 1; j < WIDTH-1; j++)
        {
            if(labyrinth[i][j] === '#')
                continue;

            v_ceil.push({ point: [j*CELL_SIZE, CELL_SIZE, i*CELL_SIZE], normal: [0, -1, 0], tc: [0, 0] });
            v_ceil.push({ point: [(j+1)*CELL_SIZE, CELL_SIZE, i*CELL_SIZE], normal: [0, -1, 0], tc: [1, 0] });
            v_ceil.push({ point: [(j+1)*CELL_SIZE, CELL_SIZE, (i+1)*CELL_SIZE], normal: [0, -1, 0], tc: [1, 1] });
            v_ceil.push({ point: [j*CELL_SIZE, CELL_SIZE, (i+1)*CELL_SIZE], normal: [0, -1, 0], tc: [0, 1] });

            v_floor.push({ point: [j*CELL_SIZE, 0, (i+1)*CELL_SIZE], normal: [0, 1, 0], tc: [0, 1] });
            v_floor.push({ point: [(j+1)*CELL_SIZE, 0, (i+1)*CELL_SIZE], normal: [0, 1, 0], tc: [1, 1] });
            v_floor.push({ point: [(j+1)*CELL_SIZE, 0, i*CELL_SIZE], normal: [0, 1, 0], tc: [1, 0] });
            v_floor.push({ point: [j*CELL_SIZE, 0, i*CELL_SIZE], normal: [0, 1, 0], tc: [0, 0] });

            if(labyrinth[i][j-1] === '#')
            {
                v_walls.push({ point: [j*CELL_SIZE, CELL_SIZE, i*CELL_SIZE], normal: [1, 0, 0], tc: [0, 0] });
                v_walls.push({ point: [j*CELL_SIZE, CELL_SIZE, (i+1)*CELL_SIZE], normal: [1, 0, 0], tc: [1, 0] });
                v_walls.push({ point: [j*CELL_SIZE, 0, (i+1)*CELL_SIZE], normal: [1, 0, 0], tc: [1, 1] });
                v_walls.push({ point: [j*CELL_SIZE, 0, i*CELL_SIZE], normal: [1, 0, 0], tc: [0, 1] });    
            }

            if(labyrinth[i][j+1] === '#')
            {
                v_walls.push({ point: [(j+1)*CELL_SIZE, CELL_SIZE, (i+1)*CELL_SIZE], normal: [-1, 0, 0], tc: [1, 0] });
                v_walls.push({ point: [(j+1)*CELL_SIZE, CELL_SIZE, i*CELL_SIZE], normal: [-1, 0, 0], tc: [0, 0] });
                v_walls.push({ point: [(j+1)*CELL_SIZE, 0, i*CELL_SIZE], normal: [-1, 0, 0], tc: [0, 1] });
                v_walls.push({ point: [(j+1)*CELL_SIZE, 0, (i+1)*CELL_SIZE], normal: [-1, 0, 0], tc: [1, 1] });    
            }

            if(labyrinth[i-1][j] === '#')
            {
                v_walls.push({ point: [(j+1)*CELL_SIZE, CELL_SIZE, i*CELL_SIZE], normal: [0, 0, 1], tc: [1, 0] });
                v_walls.push({ point: [j*CELL_SIZE, CELL_SIZE, i*CELL_SIZE], normal: [0, 0, 1], tc: [0, 0] });
                v_walls.push({ point: [j*CELL_SIZE, 0, i*CELL_SIZE], normal: [0, 0, 1], tc: [0, 1] });
                v_walls.push({ point: [(j+1)*CELL_SIZE, 0, i*CELL_SIZE], normal: [0, 0, 1], tc: [1, 1] });    
            }

            if(labyrinth[i+1][j] === '#')
            {
                v_walls.push({ point: [j*CELL_SIZE, CELL_SIZE, (i+1)*CELL_SIZE], normal: [0, 0, -1], tc: [1, 0] });
                v_walls.push({ point: [(j+1)*CELL_SIZE, CELL_SIZE, (i+1)*CELL_SIZE], normal: [0, 0, -1], tc: [0, 0] });
                v_walls.push({ point: [(j+1)*CELL_SIZE, 0, (i+1)*CELL_SIZE], normal: [0, 0, -1], tc: [0, 1] });
                v_walls.push({ point: [j*CELL_SIZE, 0, (i+1)*CELL_SIZE], normal: [0, 0, -1], tc: [1, 1] });    
            }
        }
    }

    new Visual('?maze', vd);
})();

Потом просто добавляем любой объект с моделью ?maze на сцену и всё.
Перейти в начало страницы
 
 
 Diesel
сообщение 23.12.2017, 22:46
Сообщение #4


Мастер Игры
************

Группа: Участник
Сообщений: 1369
Регистрация: 07.08.2015
Пользователь №: 22230



Цитата(saas @ 23.12.2017, 22:46) *
Потом просто добавляем любой объект с моделью ?maze на сцену и всё.

В neoaxis добавляется модель через эдитор. Это более менее лёгкий, удобный и точный способ.
Но я могу добавить модель блокнотом, через конфиг локации. Этот движок, не удобен только компилятором скриптов и логики, остальное - легкотня. После x-ray, я чувствую себя, что пересевшим на импортный автопром, как после лада-калина.

Сообщение отредактировал andreyholkin - 23.12.2017, 22:48
Перейти в начало страницы
 
 
 Молния в вакууме
сообщение 23.12.2017, 23:26
Сообщение #5


Почти Игроман
*********

Группа: Участник
Сообщений: 647
Регистрация: 05.05.2007
Пользователь №: 6215



andreyholkin, это немного не то. Прикол в том что модель скриптом создаётся(случайная), а не загружается из ресурсов.
Перейти в начало страницы
 
 
 Diesel
сообщение 23.12.2017, 23:34
Сообщение #6


Мастер Игры
************

Группа: Участник
Сообщений: 1369
Регистрация: 07.08.2015
Пользователь №: 22230



Цитата(saas @ 24.12.2017, 01:26) *
andreyholkin, это немного не то. Прикол в том что модель скриптом создаётся(случайная), а не загружается из ресурсов.

Понял, это типа автоматической генерации геометрии.
Перейти в начало страницы
 
 
 StUnDeR
сообщение 24.12.2017, 00:11
Сообщение #7


Ололо, старый аккаунт <3
******************

Группа: Участник
Сообщений: 3187
Регистрация: 25.02.2009
Из: Москва
Пользователь №: 10000



Цитата(andreyholkin @ 23.12.2017, 18:37) *
Изначально, я выбрал этот движок именно за возможность реализации танков.

Потом немного разобрался C# и написал универсальный класс авто и танка, для возможности использования такого типа техники:

(IMG:http://orig15.deviantart.net/56ec/f/2015/343/3/5/ba_30___soviet_armored_car_half_track_the_average_by_thedesertfox1991-d9jkpzj.jpg)

Неоаксис это супер-древний движок, который году в 2010 уже не актуален был. Выбирать двиг только из-за реализации танков - глупое решение. Есть UE4, с довольно хорошим порогом вхождения, бесплатный, с открытым исходным кодом, обширным комьюнити, поддержкой от разработчиков на ансверхабе, реализовать можно все что в голову придет.
Вот тебе пример танка на там же анриале


Цитата(andreyholkin @ 23.12.2017, 22:46) *
Цитата(saas @ 23.12.2017, 22:46) *
Потом просто добавляем любой объект с моделью ?maze на сцену и всё.

В neoaxis добавляется модель через эдитор. Это более менее лёгкий, удобный и точный способ.
Но я могу добавить модель блокнотом, через конфиг локации. Этот движок, не удобен только компилятором скриптов и логики, остальное - легкотня. После x-ray, я чувствую себя, что пересевшим на импортный автопром, как после лада-калина.

А после пересаживания на нормальный движок, ты будешь себя чувствовать как-будто с запорожца на теслу пересел
Перейти в начало страницы
 
 
 Diesel
сообщение 24.12.2017, 00:18
Сообщение #8


Мастер Игры
************

Группа: Участник
Сообщений: 1369
Регистрация: 07.08.2015
Пользователь №: 22230



Цитата(StUnDeR @ 24.12.2017, 02:11) *
А после пересаживания на нормальный движок, ты будешь себя чувствовать как-будто с запорожца на теслу пересел

Я могу конечно и в UE4 ломануться, благо комп его кое - как тянет. Но он доболе прожорлив, даже если применить всю имеющуюся оптимизацию. Я делал замеры производительности без оптимизации у Neo и UE4 - нео немного победил.
Перейти в начало страницы
 
 
 Diesel
сообщение 24.12.2017, 02:27
Сообщение #9


Мастер Игры
************

Группа: Участник
Сообщений: 1369
Регистрация: 07.08.2015
Пользователь №: 22230



Спору нет, UE4 - это круто.


Это перспектива. Первым делом надо Блендер освоить, так как Макс материально не потянуть. Это да.

Перейти в начало страницы
 
 
 RedMagic
сообщение 24.12.2017, 10:31
Сообщение #10


Высший Игровой Бог
************************

Группа: Супермодератор
Сообщений: 12582
Регистрация: 05.11.2009
Пользователь №: 12882



Изучайте Unity и будет вам счастье. Для инди/моддинга - самое то. И блендер тоже.

QuickStart:

(IMG:https://images.gameru.net/thumb/c89c98a6be.png)

Книга "Основы Блендера" (pdf, 53mb). Распространяется по лицензии CC BY-NC-SA 4.0.
Перейти в начало страницы
 
 
 Diesel
сообщение 25.12.2017, 00:58
Сообщение #11


Мастер Игры
************

Группа: Участник
Сообщений: 1369
Регистрация: 07.08.2015
Пользователь №: 22230



Цитата(RedMagic @ 24.12.2017, 12:31) *
Изучайте Unity и будет вам счастье.


Есть такой вариант. Сейчас заснял видос, прям свежачок.
Перейти в начало страницы
 
 
 ElviN_747
сообщение 15.05.2018, 15:57
Сообщение #12





Группа: Участник
Сообщений: 1
Регистрация: 15.05.2018
Пользователь №: 29300



Все ещё занимаетесь сталкером в NA?
Перейти в начало страницы
 
 
 Ghosthalid
сообщение 12.06.2018, 15:56
Сообщение #13





Группа: Участник
Сообщений: 1
Регистрация: 12.06.2018
Пользователь №: 29418



Всем привет! Ребята! Срочно нужна помощь.. При подготовке конечного проекта, и при запуске игры на нажатие "Играть" идёт загрузка, а потом вылет с ошибкой о не скомпилированного скрипта на нужной карте в редакторе логике. Хотя я не нечего не понял... Как скомпилировать скрипт в редакторе логике? Что делать? Пожалуйста!
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Перейти в начало страницы
 
 
 Diesel
сообщение 23.06.2018, 17:07
Сообщение #14


Мастер Игры
************

Группа: Участник
Сообщений: 1369
Регистрация: 07.08.2015
Пользователь №: 22230



Ghosthalid, https://vk.com/neoaxisengine
Можно в ВК спросить - народ уже мало где собирается под этот движок. Смерть Нео - актуально.
Перейти в начало страницы
 
 
 Diesel
сообщение 07.05.2019, 15:58
Сообщение #15


Мастер Игры
************

Группа: Участник
Сообщений: 1369
Регистрация: 07.08.2015
Пользователь №: 22230



Цитата(andreyholkin @ 23.06.2018, 19:07) *
Смерть Нео - актуально.


А что все молчат, что НеоАксис воскрес? В апреле вышла новая версия.

...пока писал - вышла очередная 1.6 версия. Что то часто абгрейдят двиг.

Сообщение отредактировал Дизель - 07.05.2019, 16:10
Перейти в начало страницы
 
 
 
 

 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

Текстовая версия Сейчас: 30.11.2021, 12:24