Открываю исходники стратежки

Oct 13, 2016 11:42

https://yadi.sk/d/5hjYMu-kwkWvY

Тема была заброшена на месяц. Мотивационно-дисциплинарным (пинок себе под зад) поступком является решение открыть сорцы "как есть".

Компилирую в PureBasic 4.51 x32

Владельцам ГП Nvidia - если игра превращается в слайдшоу, виновата вертикальная синхронизация. Либо отключайте ее (превед Нвидиа), либо принудительно запускайте с интегрированной видяхой, если она есть в системе.

To do:

- минимальный обход препятствий
- выбор юнитов рамкой и группировка
- сбор руды
- здания, очередь строительства (написано одной строкой, но в реальности это считай еще 1 игру написать)
- система частиц снаряды
- нормальный "туман войны" на радаре
- self-desctruct юнитов
- ..

Много чего хочется. Проблема в уровне абстракций. Цитата

Пример - Java. Для тех, кто на ней что-то программирует, даже понятия размеров массивов нет. Они условно считаются бесконечными. (из серии "ой, тормозит, нужно новый комп покупать"). Я же на PureBasic вынужден думать над тем, сколько байт займет та или иная переменная. И это ПРОБЛЕМА. Я ненавижу быдлокодеров и "типа программистов", которые толком не знают как устроен компьютер, но, в реальном случае (кейсе, case, как сейчас модно выражаться), именно они что-то реально могут, а не те, кто понимает как это все работает. Потому что решает не понимание того, как все работает, а тупо некий результирующий код, который неважно какой ценой выполняет поставленную задачу. И это проблема. Проблема сделать такой движок (алгоритм, под задачу), чтобы потом, не думая как оно устроено, уже на основе этого алго строить следующий уровень абстракции - решать задачу с помощью созданного инструмента.

+ существует проблема с явным (excplicit) объявлением переменных. С самого начала не врубился как это делать, и теперь головняка добавляют мысли о контроле названий переменных и их типов. Потому что менять фундамент в построенном доме сложно. громкие рыдания

Иное дело в Си, от обязательного объявления переменных отойти нельзя.

хотя можно расслабиться и просто быдлокодить, как это делают многие.

Теперь приятная часть. Имеющиеся features:

- радар таки показывает что-то. навигации по мини-карте пока нет.
- скорость вращения юнитов зависит, как и собственно скорость их перемещения, от состояния ячеек скорости. направление вращения и цветность ячеек зависит от фракции. автоатаки пока нет, юниты в скомпиленном примере никак друг на друга не реагируют (они вообще реагируют только на команду "двигайся" по ПКМ)
- насыщенность цвета ячеек, из которых состоят юниты, суть состояние их здоровья. чем меньше значение ячеек, тем они ближе к серому цвету. осталось добавить эффектный взрыв при уменьшении здоровья юнита до ноля и превращение его в кучу обломков (руды).
( руда - эти серые пятна на экране. чем больше руды в пятне, тем оно жирнее не экране )
- если скроллить карту, меняется фон. это перемещение от затемненной стороны планеты к солнечной (а как же еще?). кроме позеленения экрана, планируется наделить темную сторону бонусом на атаку, но снизить юнитам скорость, а на светлой стороне сделать наоборот.

Минимальная платформа, где тестил поделку, была p4-1.6 с интегрированной ExtremeGraphics2. Мне показалось, или она тормозила? Впрочем на этой машине особенная сборка XP, потому что на WinME, установленной там же, все было гладко. И на этой фразе хочется передать "превед" разработчикам PureBasic, сделавшим его обязательно использующим DirectX версии не ниже 7, если правильно понял.

Вообще говоря, на любое мало-мальское действие наподобие "выдели 2 юнитов рамкой", требуется заведение новых переменных/массивов переменных. Поэтому временами играть в тех же Generals было сложно, потому что задумывался над тем, что на каждый самостоятельный осколок или пылевое облачко, в коде сделан целый цыганский табор с медведями и плясками.

checkpoint, rw_rts

Previous post Next post
Up