Крайние новости о моих делах
ЭКВЕСТРИЕ В ОПАСНАСТИ: разработка продолжена. Я пока не понимаю, что там натворил пол года назад, но постараюсь разобраться и доделать.
Псвевдотрёхмерный движок: идёт вялотякущая переделка с нуля: я нашёл нужные статьи, и пока пытаюсь сформулировать чёткое ТЗ для движка, чтобы предусмотреть всё нужное.
Бизоны набигают: выпал из моего поля зрения, но теперь возвращается обратно. В обозримом будущем выполню переделку проекта в играемый вид.
Фанфики: стагнация, но планы есть.
Конкурс: жду.
Псвевдотрёхмерный движок: идёт вялотякущая переделка с нуля: я нашёл нужные статьи, и пока пытаюсь сформулировать чёткое ТЗ для движка, чтобы предусмотреть всё нужное.
Бизоны набигают: выпал из моего поля зрения, но теперь возвращается обратно. В обозримом будущем выполню переделку проекта в играемый вид.
Фанфики: стагнация, но планы есть.
Конкурс: жду.
50 комментариев
А что за тридешная… игра, если не ошибаюсь?
Потому что нихрена не понятно о чём речь.
Типа того
ВОзможно, это как-то связано с тем, что пост опубликован в Хате Баяна Гордыни, а не общеличном блоге или типа того
А зачем?
Эквестрие в опаснасти
Псевдотрёхмерный движок
Бизоны набигают
1. Достаточно будет посмотреть на даты, и всё станет ясно…
2. А у тебя точно будет псевдотрёхмерность на честном raycasting, или богомерзкая имитация псевдотрёхмерности через настоящую трёхмерность?
До лета авось успею сделать альфа версию движка. Хотя, если честно, по учёбе нужно будет делать сложный проект, и я не уверен в этом.
Я всё никак не могу утвердить для себя ТЗ. Вот например скрипты. Мне писать свой интерпретатор, или встраивать каким-то образом какой-то чужой скриптовый язык?
Потом понадобится запускать другой метод другого объекта с переменным числом параметров.
Потом с вычисляемыми параметрами.
Потом в цикле.
Потом по условию.
Потом по событию.
В итоге, придешь к самодельному ECMAScript, что по-своему полезно и нужно, но не приближает тебя к финальной цели.
Если ты УВЕРЕН, что это не потребуется — то всё нормально.
Я тоже был уверен, что у меня в игре достаточно строки условия и действия. А потом пришлось городить такое:
вместо нормального и простого подключения в проект любого движка JS
Есть IObject. От него наследуются все объекты. Сущности, заклинания и т.д.
Есть Icommand. У него есть public bool Execute(Dictionary<string, Object> Data)
Следовательно, игра выглядит так:
Есть список объектов, и список команд.
Команды манипулируют объектами.
Всё.
Проблему в том, как сделать всё остальное.
Я сейчас BattleCity по этому принципу делаю, добился уже того, что созданный танк рисуется в консоли по команде cmdDrawTank(tank). И передвигается по команде Move(tank). Ну и так далее.
Ведь это именно та проблема, за умение решать которую ты будешь получать в 10 раз больше даже очень хорошего программиста. Умение спроектировать программу.
(два танка идут встречными курсами. Выстрел будет заспавнен командой cmdFire(tank, out bullet) или вроде того)
1. Танки
2. ЯП
3. Часть структуры
1. Будут, ибо какой-то из char попадёт в «с», а дальше коду всё равно.
2. И что? Это я сделал для проверки множества танков.
То таки шо тебе ещё надо?
Мне надо, чтобы всё работало.
Через открытый API на основе интерфейсов (а не реализаций) классов. Например.
Ты сделал простой танк, его реализацию Tank и интерфейс ITank, причем движок игры зависит только от ITank.
Потом делаешь Звезду Смерти, указываешь, что она поддерживает ITank и загружаешь новый класс в проект — при этом, поскольку движок ожидает интерфейса, а не реализации, то всё хорошо.
Если бы ты сформулировал, чего вообще ждешь от архитектуры и игры — я бы постарался нарисовать тебе UML, с разделением на интерфейсы и реализацию. Правда, я еще оратору выше должен программу для генерации звуков спикера доделать, но как доделаю — так сразу с тобой займусь :-)
Там-то для меня работы на пару дней, главное эту пару дней найти и не растратить на другие дела.
Ну а с помощью чего я добавлю эту Звезду Смерти в игру?
Например:
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)} //карта уровня, где написано, где стоят сущности
И как? Как я его добавлю в игру?
Что это за магия? Можно пример на c#?
То есть, можно создать класс не как new Tank(), а через строку «Tank», указав сборку, неймспейс и прочее.
Конкретный сход сходу не напишу, но где-то здесь
www.chitai-gorod.ru/catalog/book/331283/
можно узнать почти все трюки, хотя книга и немного устарела.
Видел проекты, как люди собирают CPU на элементах 2И-НЕ.
ты ошибался, чувак