Крайние новости о моих делах

ЭКВЕСТРИЕ В ОПАСНАСТИ: разработка продолжена. Я пока не понимаю, что там натворил пол года назад, но постараюсь разобраться и доделать.


Псвевдотрёхмерный движок: идёт вялотякущая переделка с нуля: я нашёл нужные статьи, и пока пытаюсь сформулировать чёткое ТЗ для движка, чтобы предусмотреть всё нужное.


Бизоны набигают: выпал из моего поля зрения, но теперь возвращается обратно. В обозримом будущем выполню переделку проекта в играемый вид.


Фанфики: стагнация, но планы есть.

Конкурс: жду.

Теги: ,

  • В избранное
    1

50 комментариев

Что-то и не комментирует нихто
А что за тридешная… игра, если не ошибаюсь?
sudzuhara
0
Что-то и не комментирует нихто

Потому что нихрена не понятно о чём речь.
Vibrissa
+4
Особенно про бизонов <D
sudzuhara
0
А чего тут комментировать? Нико решил запилить собственную игру про пони с ТуриДэ и носочками. Показал — типа «от чего я делаю». Ну и типа всё.
vorodor
0
А чего тут комментировать? Нико решил запилить собственную игру про пони с ТуриДэ и носочками. Показал — типа «от чего я делаю». Ну и типа всё.

Типа того

Потому что нихрена не понятно о чём речь.

ВОзможно, это как-то связано с тем, что пост опубликован в Хате Баяна Гордыни, а не общеличном блоге или типа того

Что-то и не комментирует нихто

А зачем?
А что за тридешная… игра, если не ошибаюсь?

Эквестрие в опаснасти
Псевдотрёхмерный движок
Бизоны набигают
Niko_de_Andjelo
0
Кстати я бы на твоём месте сильно поторопился со своим псевдотридэ, поскольку вородор изрядно вдохновился этой идеей и вполне может этим летом сам выкатить схожий проект, и станет тогда тебе очень грустно по причине собственной вторичности.
vorodor
+1
Ну, здесь у меня есть парочка контраргументов
1. Достаточно будет посмотреть на даты, и всё станет ясно…
2. А у тебя точно будет псевдотрёхмерность на честном raycasting, или богомерзкая имитация псевдотрёхмерности через настоящую трёхмерность?

До лета авось успею сделать альфа версию движка. Хотя, если честно, по учёбе нужно будет делать сложный проект, и я не уверен в этом.
Я всё никак не могу утвердить для себя ТЗ. Вот например скрипты. Мне писать свой интерпретатор, или встраивать каким-то образом какой-то чужой скриптовый язык?
Niko_de_Andjelo
0
Только свой. Также советую изучить основы радиотехники и сделать простенькую копию компьютера, на нем можно будет отлаживать игру
V747
+3
Ну давай для начала определимся, какие задачи нужны от скриптов. Если мне нужно запустить один из методов объекта с парой параметров — то не легче ли сделать свой интерпретатор, чем сидеть и как-то экранировать чужой скриптач? Особенно учитывая то, что какой-то интерпретатор я уже делал, а вот встраивать скрипты не умею.
Niko_de_Andjelo
0
На чем пишешь?
V747
0
Строго говоря, сейчас — на естественном языке. Потому что пытаюсь придумать структуру движка. Когда придумаю — думаю, что на C# с SFML
Niko_de_Andjelo
0
Если мне нужно запустить один из методов объекта с парой параметров — то не легче ли сделать свой интерпретатор, чем сидеть и как-то экранировать чужой скриптач?

Потом понадобится запускать другой метод другого объекта с переменным числом параметров.
Потом с вычисляемыми параметрами.
Потом в цикле.
Потом по условию.
Потом по событию.
В итоге, придешь к самодельному ECMAScript, что по-своему полезно и нужно, но не приближает тебя к финальной цели.
NTFS
0
хм. Текстом это сообщение почему-то не отправляется, ошибка отправки данных.

Niko_de_Andjelo Изменён автором
0
Основное веселье начнется, если захочешь вызывать функцию при какому-то условии. Или несколько раз.
Если ты УВЕРЕН, что это не потребуется — то всё нормально.
Я тоже был уверен, что у меня в игре достаточно строки условия и действия. А потом пришлось городить такое:
SCRIPT
Event:Flag=run3
Event2:TagCount=0,TagName=corovan1
Event3:TagCount=0,TagName=corovan2
Event4:TagCount=0,TagName=corovan3
Event5:TagCount=0,TagName=corovan4
Action:Type=SetFlag,FlagName=grabok3
Action:Type=ClearFlag,FlagName=run3


вместо нормального и простого подключения в проект любого движка JS
NTFS Изменён автором
0
Я сейчас думаю над такой структурой:
Есть IObject. От него наследуются все объекты. Сущности, заклинания и т.д.
Есть Icommand. У него есть public bool Execute(Dictionary<string, Object> Data)
Следовательно, игра выглядит так:
Есть список объектов, и список команд.
Команды манипулируют объектами.

Всё.

Проблему в том, как сделать всё остальное.

Я сейчас BattleCity по этому принципу делаю, добился уже того, что созданный танк рисуется в консоли по команде cmdDrawTank(tank). И передвигается по команде Move(tank). Ну и так далее.
Niko_de_Andjelo
0
Делай, схема на начальном этапе выглядит рабочей, так что беды в том не вижу.
NTFS
0
Собственно, ну например, вот тебе проблема: как сделать моддинг? Сложна. Чёрт, мне бы опытного человека, который помогал всё это делать
Niko_de_Andjelo
0
Или… ты можешь просто использовать нормальный язык программирования.
vorodor
0
И как язык программирования поможет мне решить структурные компоненты?
Ведь это именно та проблема, за умение решать которую ты будешь получать в 10 раз больше даже очень хорошего программиста. Умение спроектировать программу.

(два танка идут встречными курсами. Выстрел будет заспавнен командой cmdFire(tank, out bullet) или вроде того)
Niko_de_Andjelo
0
Понятия не имею что я должен увидеть в этой простыне кода, но могу с ходу предположить, что твои танки не будут зеркалиться если будут одновременно нажиматься кнопки противоположных направлений.
vorodor
0
Понятия не имею что я должен увидеть в этой простыне кода

1. Танки
2. ЯП
3. Часть структуры
но могу с ходу предположить, что твои танки не будут зеркалиться если будут одновременно нажиматься кнопки противоположных направлений.

1. Будут, ибо какой-то из char попадёт в «с», а дальше коду всё равно.
2. И что? Это я сделал для проверки множества танков.
Niko_de_Andjelo
0
Таки я не понимаю в чём проблема. Из твоей писанины радикально непонятно что конкретно тебе непонятно. Если у тебя:
игра выглядит так:
Есть список объектов, и список команд.
Команды манипулируют объектами.

Всё.

То таки шо тебе ещё надо?
vorodor
0
Она никак не выглядит, это теория.

Мне надо, чтобы всё работало.
Niko_de_Andjelo
0
Так напиши, в чём проблема-то? Поднимаешь свою ленивую жопу, прикидываешь общую структуру и пишешь код.
vorodor Изменён автором
0
как сделать моддинг?

Через открытый API на основе интерфейсов (а не реализаций) классов. Например.
NTFS
0
Например?
Niko_de_Andjelo
0
Возможность использовать интерфейс в качестве зависимости.
Ты сделал простой танк, его реализацию Tank и интерфейс ITank, причем движок игры зависит только от ITank.
Потом делаешь Звезду Смерти, указываешь, что она поддерживает ITank и загружаешь новый класс в проект — при этом, поскольку движок ожидает интерфейса, а не реализации, то всё хорошо.

Если бы ты сформулировал, чего вообще ждешь от архитектуры и игры — я бы постарался нарисовать тебе UML, с разделением на интерфейсы и реализацию. Правда, я еще оратору выше должен программу для генерации звуков спикера доделать, но как доделаю — так сразу с тобой займусь :-)
NTFS Изменён автором
0
Етить, я думал ты тупо забил на неё!
vorodor
0
Я не забиватель, я слоупонь. Твоя программа, переводы слопоней, акция по разработке — это всё живое, только в стадии улиточек.
NTFS
0
Надеюсь ты её таки закончишь до того как она мне понадобится, а то обидно получится.
vorodor Изменён автором
0
А когда она тебе понадобится?
Там-то для меня работы на пару дней, главное эту пару дней найти и не растратить на другие дела.
NTFS Изменён автором
0
Ну, было бы неплохо к февралю уже выкатить.
vorodor
0
Думаю, это возможно.
NTFS
0
Тогда буду на тебя рассчитывать.
vorodor
0
ОК, ускорюсь. Дело-то нужное, математические программы неплохо идут.
NTFS
0
Потом делаешь Звезду Смерти, указываешь, что она поддерживает ITank и загружаешь новый класс в проект — при этом, поскольку движок ожидает интерфейса, а не реализации, то всё хорошо.

Ну а с помощью чего я добавлю эту Звезду Смерти в игру?
Например:
interface ICharacter //интерфейс персонажа с диалогом
{
string CharacterSay();
bool CharacterListen(string Text);
bool SetDialogData(Dictionary<string,string> Data);
}
class TavernKeeper: ICharacter //дефолтный челик который есть в игре
{
//реализация интерфейса + где-то прописано поведение челика, мол в таверне стоит и торгует
}

//А этого челика я хочу добавить в игру модом.
class Solo322: ICharacter{
//реализация интерфейса + где-то прописано поведение челика
}

jsonMap{TavernKeeper1(3,5), TavernKeeper2(35,55), Solo322(13,43)} //карта уровня, где написано, где стоят сущности

И как? Как я его добавлю в игру?
Niko_de_Andjelo
0
Собрать в отдельный dll и подключать через Reflection?
NTFS
0
Reflection

Что это за магия? Можно пример на c#?
Niko_de_Andjelo
0
Грубо, это возможность вызывать классы и методы по их именам, которые живут в строках.
То есть, можно создать класс не как new Tank(), а через строку «Tank», указав сборку, неймспейс и прочее.
Конкретный сход сходу не напишу, но где-то здесь

www.chitai-gorod.ru/catalog/book/331283/

можно узнать почти все трюки, хотя книга и немного устарела.
NTFS
+1
Вообще, куда можно написать для более удобной и оперативной связи? Чтобы можно было пообсуждать эту тему вдоволь
Niko_de_Andjelo
0
Можешь в личку, если хочешь.
NTFS
0
сделать простенькую копию компьютера

Видел проекты, как люди собирают CPU на элементах 2И-НЕ.
NTFS
0
Когда 3070 не завезли:
badunius
0
И такое тоже делают.
NTFS
0
Ну, честно говоря я сам ещё не определился, идей много, но выбрать надо что-то одно и желательно попроще. Воошпе, основная идея запилить олдскульный шутан вроде дума, а будет он реально 3D или имитацией это уже дело десятое, но сама идея лично прописать движок отрисовывающий 3D или его имитацию звучит довольно интригующе.
vorodor Изменён автором
0
Что-то и не комментирует нихто


ты ошибался, чувак
BecauseTheNight
0
Всегда лучше пилить игру, чем не пилить её.
NTFS
+1
Всегда лучше паять, чем не паять.
partizan150
0
(смотрит на беспаечные макетные платы)
NTFS
0
Спойлер
partizan150
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
Скрыто Показать