Переосмысленная цива, пока что без названия.

Публикуйте свои проекты и получайте обратную связь и новых игроков! Обсуждение пользовательских проектов.
Ответить
Sansuli
Интересующийся
Сообщения: 42
Зарегистрирован: 09 июн 2020, 02:46
Откуда: Бишкек
Благодарил (а): 10 раз
Поблагодарили: 27 раз

Переосмысленная цива, пока что без названия.

Сообщение Sansuli »

Я всегда любил игры серии Civilization, но ни 1 часть по сути не давала мне то, что я хотел. А последняя цива вовсе стала запутанной, с тупым ИИ, но подтянули графиику и оптимизацию, но в целом не понравилась. С пошаговыми стратегиями я знаком еще с игр серии Age of Heroes на мобильные телефоны нулевых.
Я выбрал не шестирганный мир как в новых цивах, а квадратный, не из за простоты в реализации, а из за того что квадрат более понятен для ориентации где четко будет существовать север/юг/запад/восток. Соседними к квадратному тайлу будут только прилежащие тайлы.
Карта при начале игры будет генерироваться, так же как и в циве. Генератор будет строить карту в зависимости от настроек (процент суши, количество континентов, размеры суши и т.п).
Привычного дерева технологий как в циве существовать не будет, вы можете направлять развитие свой цивилизации и они сами будут делать те или иные открытия. Пока подробней написать не могу.
Более продвинутое ИИ, постараюсь создать хороший ИИ, которые будет интересно играть с игроком, а не просто действовать по шаблону как в циве.
Не буду делать упор на графику, графика будет двумерная, простая и интуитивно понятная.
Игровая карта будет схожа с картами Civilization.
*** Виды тайлов по проходимости: Море/озеро, Океан, Равнина, Холмы, Горы.
*** ...по плодородию: Пустыня снежная/песчаная, Тундра, Степи, Луга.
Некоторые из тайлов будут иметь особенности в виде: Болота, Лес Хвойный/Лиственный/Смешанный/Джунгли, Пойма, Река. Естественно особенности будут в рамках логики, то есть не будет болота в снежной пустыне или поймы на холме.
Множество ресурсов которые очень сильно будут влиять на развитие вашей цивилизации. Ресурсы которые будут влиять на развитие будут стратегическими (медь, камень, железо и т.п). Прочие ресурсы будут просто бонусными или ресурсы престижа, которые будут влиять на счастье вашего народа, а так же будут играть роль в торговле. К примеру обладая бананами/виноградом/шелком/мехами вы выгодно можете ими торговать странам где их нет. С этим будут связаны некоторые особенности политики. К примеру резко остановив поставку своих ресурсов престижа вы можете подорвать уровень счастья других цивилизаций.
Если счастье упадет определенной отметки то на территории вашей цивилизации или на его прилежащих территориях будут появляться повстанцы.
Гражданская война. Если счастье вашей цивилизации упадет слишком низко, то несчастные города могут выйти из вашего управления и создадут новую цивилизацию. Вы можете вернуть влияние силой или делом. Города с более лучшим счастьем останутся под вашим влиянием.
Так же будут существовать такие аспекты игры как Наука, Война, Шпионаж, Политика, Культура, Религия, Счастье.
Позже как появится прототип выложу игру на обозрение.
В планах есть сделать режим фентези при котором к существующему аспекту будут добавлены фантастические расы, ресурсы, юниты.
Пока многое существует только в виде текста.
Сейчас свободное время трачу на создание адекватного генератора карты и над дизайном тайлов.
Последний раз редактировалось Sansuli 18 июн 2020, 17:46, всего редактировалось 1 раз.

Sansuli
Интересующийся
Сообщения: 42
Зарегистрирован: 09 июн 2020, 02:46
Откуда: Бишкек
Благодарил (а): 10 раз
Поблагодарили: 27 раз

Re: Переосмысленная цива, пока что без названия.

Сообщение Sansuli »

Создал скрипт для генерирования карт.
Это пример генерирования одного большого куска земли.

Код: Выделить всё

extends Node2D
var rng = RandomNumberGenerator.new()

enum Tiles{Land, Water}
var neighboor_dir = [Vector2(1,0),Vector2(1,1),Vector2(0,1),Vector2(-1,0),Vector2(-1,-1),Vector2(0,-1),Vector2(1,-1),Vector2(-1,1)]

# общий размер карты
export var map_size = Vector2(150,150)
var land_cent1 = Vector2(75,75)

func _ready():
	for for_x in map_size.x:
		for for_y in map_size.y:
			$Testmap.set_cell(for_x,for_y,Tiles.Land)
	map_gen(land_cent1)
#	yield(get_tree().create_timer(.5), "timeout")
	smooth_map()

func _process(delta):
	if Input.is_action_just_pressed("ui_accept"):
		smooth_map()
#	$Camera.position = get_global_mouse_position()

# функция создания острова, аргументы: диаметр участка земли (по умолчанию 100), 
func map_gen(f_land_pos:Vector2, f_diametr: =100):
	var plus_minus = false
	var gen_cyc = 1
	var cur_cyc = 0
	var land_chance = 90.0
	var just_one = 1
	$Testmap.set_cell(f_land_pos.x,f_land_pos.y,Tiles.Water)
	while cur_cyc < 100:
		if plus_minus == true:
			just_one *= -1
			plus_minus = false
		for cyc in gen_cyc:
			f_land_pos.y += just_one
			rng.randomize()
			if land_chance >= rng.randi_range(0, 100):
				$Testmap.set_cell(f_land_pos.x,f_land_pos.y,Tiles.Water)
			if cyc == 0 && just_one == 1:
				if land_chance <= 0:
					cur_cyc = 100
					break
				land_chance -= 5 - f_diametr * 0.04
		for cyc in gen_cyc:
			f_land_pos.x += just_one
			rng.randomize()
			if land_chance >= rng.randi_range(0, 100):
				$Testmap.set_cell(f_land_pos.x,f_land_pos.y,Tiles.Water)
		plus_minus = true
		gen_cyc += 1
		cur_cyc += 1

# сглаживание сгенерированной карты, аргументы: уровень сглаженности, не рекамендуется более 5.
func smooth_map(f_smooth:=2):
	for cyc in f_smooth:
		for for_x in range(1, map_size.x-1):
			for for_y in range(1, map_size.y-1):
				var number_of_neighbor_walls = 0
				for direction in neighboor_dir:
					var current_tile = Vector2(for_x,for_y) + direction
					if $Testmap.get_cell(current_tile.x, current_tile.y) == Tiles.Land:
						number_of_neighbor_walls += 1
				if number_of_neighbor_walls > 4:
					$Testmap.set_cell(for_x,for_y, Tiles.Land)
				elif number_of_neighbor_walls < 4:
					$Testmap.set_cell(for_x,for_y, Tiles.Water)
Результаты
ИзображениеИзображениеИзображение
Последний раз редактировалось Sansuli 15 июн 2020, 16:50, всего редактировалось 5 раз.

Аватара пользователя
SkanerSoft
Администратор
Сообщения: 101
Зарегистрирован: 23 май 2020, 20:08
Откуда: Питер
Благодарил (а): 19 раз
Поблагодарили: 43 раза
Контактная информация:

Re: Переосмысленная цива, пока что без названия.

Сообщение SkanerSoft »

Выглядит круто! Молодец!
Автор и ведущий канала Godot 3D Russia

Sansuli
Интересующийся
Сообщения: 42
Зарегистрирован: 09 июн 2020, 02:46
Откуда: Бишкек
Благодарил (а): 10 раз
Поблагодарили: 27 раз

Re: Переосмысленная цива, пока что без названия.

Сообщение Sansuli »

Создал генератор климатических зон. Специально атрофировал генератор, ибо реальные земные зоны имеют зависимость от течений, ветров, гор. От этих зон будут зависеть где какие ресурсы и особенности ландшафта будут, а так же некоторые игровые особенности, к примеру ваш юнит без определенных условий не сможет мгновенно без последствий покинуть свою климатическую зону.
Не обращайте внимание на цвета и ландшафт, это тестовая карта.
Изображение

Аватара пользователя
SkanerSoft
Администратор
Сообщения: 101
Зарегистрирован: 23 май 2020, 20:08
Откуда: Питер
Благодарил (а): 19 раз
Поблагодарили: 43 раза
Контактная информация:

Re: Переосмысленная цива, пока что без названия.

Сообщение SkanerSoft »

Круто! Очень интересно следить за развитием!
Автор и ведущий канала Godot 3D Russia

Sansuli
Интересующийся
Сообщения: 42
Зарегистрирован: 09 июн 2020, 02:46
Откуда: Бишкек
Благодарил (а): 10 раз
Поблагодарили: 27 раз

Re: Переосмысленная цива, пока что без названия.

Сообщение Sansuli »

Поработал над дизайном тайлов, что думаете на счет стилистики? Не плохо бы советов, личного мнения.
Кратко о тайлах, каждого вида тайла будет 2 вида: темный и светлый. И располагаться они будут в шахматном порядке (заспавним но четным светлые, по нечетным темные), чтобы каждый тайл карты был виден без рисования границ тайла.
Изображение

Аватара пользователя
SkanerSoft
Администратор
Сообщения: 101
Зарегистрирован: 23 май 2020, 20:08
Откуда: Питер
Благодарил (а): 19 раз
Поблагодарили: 43 раза
Контактная информация:

Re: Переосмысленная цива, пока что без названия.

Сообщение SkanerSoft »

Смотрится опрятно, поглядеть бы общую картину) В отрыве от контекста, выглядит нормально. Для первого варианта уж точно.
Автор и ведущий канала Godot 3D Russia

Sansuli
Интересующийся
Сообщения: 42
Зарегистрирован: 09 июн 2020, 02:46
Откуда: Бишкек
Благодарил (а): 10 раз
Поблагодарили: 27 раз

Re: Переосмысленная цива, пока что без названия.

Сообщение Sansuli »

SkanerSoft писал(а):
19 июн 2020, 10:11
Смотрится опрятно, поглядеть бы общую картину) В отрыве от контекста, выглядит нормально. Для первого варианта уж точно.
Выложил так для предварительного просмотра, это всегда полезно для любого вида работы. Позже допилю генератор и покажу уже первый прототип карты.

Sansuli
Интересующийся
Сообщения: 42
Зарегистрирован: 09 июн 2020, 02:46
Откуда: Бишкек
Благодарил (а): 10 раз
Поблагодарили: 27 раз

Re: Переосмысленная цива, пока что без названия.

Сообщение Sansuli »

Добавил отзеркаливание земли с полюсов, чтобы была логично пересекать северный и южные полюса, хотя это не будет так просто, а на начальных этапах просто не возможно.
На скрине 2 куска земли, одна на западе другая на востоке, но свои продолжения они имею на противоположной стороне. Белая линия это середина карты.

Изображение

Kamilayza
Интересующийся
Сообщения: 41
Зарегистрирован: 27 май 2020, 21:08
Благодарил (а): 97 раз
Поблагодарили: 19 раз

Re: Переосмысленная цива, пока что без названия.

Сообщение Kamilayza »

Ого! :shock:
Это очень круто! :o
Я хоть и не играла в циву, но имею представление о чем вы тут говорили.
Удачи и силы воли вам в этом проекте. Они вам понадобится. ;)

Sansuli
Интересующийся
Сообщения: 42
Зарегистрирован: 09 июн 2020, 02:46
Откуда: Бишкек
Благодарил (а): 10 раз
Поблагодарили: 27 раз

Re: Переосмысленная цива, пока что без названия.

Сообщение Sansuli »

Псевдо генератор уже почти готов. Осталось добавить генерацию особенностей ландшафта и ресурсы, а потом можно приступить к визуализации и добалению первых юнитов и поселений.
Смог отделить озера от морей и океанов, чтобы с озерами можно было работать иначе чем с морями (К примеру озера в пустыне будут соленые и большим шансом могут пересохнуть и оставить на свем месте солончак. В некоторых соленых озерах можно добывать соль и тп.)
Размер карты можно настраивать самому, я тестил от 200х100, до 500х250. Есть возможность настраивать количество гор и холмов, количество суши, размеры участков суши.
Генератор работает почти так как хотелось, почти всегда уникальная получается земля.
Ниже скрин сгенерированной суши 400х200 и его климатическая маска, от которой и будут зависеть особенности ландшафта и ресурсы. Бирюзовая зона на климатической маске это зона континентального климата.
ИзображениеИзображение

Kamilayza
Интересующийся
Сообщения: 41
Зарегистрирован: 27 май 2020, 21:08
Благодарил (а): 97 раз
Поблагодарили: 19 раз

Re: Переосмысленная цива, пока что без названия.

Сообщение Kamilayza »

неплохое продвижение
так держать!
будет интересно посмотеть, как ты сделаешь юниты и людей разных культур
Неужели здесь тоже будешь использовать рандом для создания уникальных народов?

Sansuli
Интересующийся
Сообщения: 42
Зарегистрирован: 09 июн 2020, 02:46
Откуда: Бишкек
Благодарил (а): 10 раз
Поблагодарили: 27 раз

Re: Переосмысленная цива, пока что без названия.

Сообщение Sansuli »

Kamilayza писал(а):
23 июн 2020, 08:48
неплохое продвижение
так держать!
будет интересно посмотеть, как ты сделаешь юниты и людей разных культур
Неужели здесь тоже будешь использовать рандом для создания уникальных народов?
Поначалу все будут похожи, по крайней мере в своей климатической зоне. Позже будет все развиваться в зависимости от доступности ресурсов (к примеру приручил лошадей и открыл верховую езду, привет штанам, активно осваиваешь земледелие в тропиках и на экваторе рандомно получишь одну из шляп (Азиатскую шляпу, Шляпу с широким полем, со средним или другие). Если соседняя культура уже к примеру носит одну из шляп, то с большим шансом ты получишь такую же.) Примерно так я буду развивать уникальность культуры.

Enclon
Новичок
Сообщения: 22
Зарегистрирован: 28 май 2020, 13:14
Откуда: Московская Область. Долгопрудный
Поблагодарили: 2 раза

Re: Переосмысленная цива, пока что без названия.

Сообщение Enclon »

Блин чувак, ну ты делаешь просто нереальные вещи!

Sansuli
Интересующийся
Сообщения: 42
Зарегистрирован: 09 июн 2020, 02:46
Откуда: Бишкек
Благодарил (а): 10 раз
Поблагодарили: 27 раз

Re: Переосмысленная цива, пока что без названия.

Сообщение Sansuli »

Взял немного перерыв, съездил в горы на альпийские луга. Вернулся доделал реки
Изображение

Kamilayza
Интересующийся
Сообщения: 41
Зарегистрирован: 27 май 2020, 21:08
Благодарил (а): 97 раз
Поблагодарили: 19 раз

Re: Переосмысленная цива, пока что без названия.

Сообщение Kamilayza »

очень неплохо! Ваш проект очень интересный.
у меня кстати несколько вопросов к этому проекту образовалась:
1) Как будет происходит прокачка собственного народа : через линейное или ветвистое древо прокачки ? ( линейная - только один способ и путь развития, ветвистый- комбинированный способ развития)
2) Будет ли время, такое как день и ночь, и времена года?
3) А история и развитие культуры игрока будут ли где-то отмечены ?(изобретения и улучшения, битвы и войны, важные события в государстве и всё подобное)( по типу Spore записи эволюций своего существа)
4) Будет ли у игрока возможность выбрать себе место зарождения своих людей?
5) Что если по рандому создалось очень похожая раса людей, как и у игрока? Система игры зачтёт как присоединение автоматом или что-то сделает с похожей культурой?
6) Будут ли народы прокачиваться от каменного века до технологического будущего? И будут ли исторические этапы?
7) Будет ли разнообразие животных и ресурсов или всё ограничится стандартными наборами для климатических зон и территорий для оптимизации игры?
8) Финалом игры будет захват всей территории, начало захвата космоса или другое событие?

Надеюсь вас не напугала такими вопросами.
У вас и в правду очень интересный проект. Удачи и успехов в созидании этой игры.
Спасибо за внимание.

Sansuli
Интересующийся
Сообщения: 42
Зарегистрирован: 09 июн 2020, 02:46
Откуда: Бишкек
Благодарил (а): 10 раз
Поблагодарили: 27 раз

Re: Переосмысленная цива, пока что без названия.

Сообщение Sansuli »

1.Будет дерево развития культуры, технологий, науки. Все будет ветвистым чтобы не создать супер имбо идеал государство. Где то преуспевать где то нет.
2.На счет дня и ночи точно нет. Пока для начала 1 ход будет равен году, но почему то это мне не нравиться, возможно сделаю ход как 1 сезон, то есть 4 хода 1 год. Но об этом думать пока рано.
3.Да хронология обязательно. Снесенные города, места битв будут храниться и в будущем могут выступать источниками культуры с открытием архиологии, так же как в Цивилизации.
4.Именно место зарождения нет. Вся карта будет усеяна равнозначенными поселениями, для начала игроку будет возможность выбрать только климат, к примеру можно будет создать империю эскимосов. Каждая климатическая зона кроме арктики и пустынь будут вполне игробельны.
5.Схожесть будет определяться по этносу, языку, религии, одежде в общем культуре. Схожая по культуре государство будет просто существовать как обычно. Присоединяться могут только отдельные города в определенных случаях.
Культура очень большая тема, для него я отдельный раздел сделал с тучей текста. К примеру вы можете с легкостью воевать, угонять в рабство или устраивать геноцид над народами, чья культура имеет сильную разницу с вашей. Чем больше разница культур при агрессии, тем меньше штрафа к счастью ваших городов.
6.Исторические этапы будут, но для каждого народа свой, он будет связан с исторической хронологией. Да есть к примеру такие технологии, как клонирование, робототехника, ИИ, космические и прочие футуристические технологии. Но этот этап будет опционален и можно будет просто играть до нашего времени.
7.Будут животные которые важны как ресурсы: лошади, олени, яки/коровы/буйволы(рогатый скот для разных климатов), верблюды, слоны, киты и тп. Кстати любых животных можно будет истребить.
Думал над такой механикой, каждый тайл будет иметь свой набор животных не ресурсного масштаба, при сохранении тайла, животные будут там жить и процветать. Тут тоже большая тема, так сразу и не напишешь.
8.Финал можно выбирать самому. Культурная победа это когда большая часть населения мира будут иметь вашу культуру или религию.
Военная - иметь самое сильное по совокупности войско и военный опыт, то есть не просто иметь к концу самое большое войско, а иметь еще самое большое количество военных побед в общем.
Над научной победой я еще думаю как это будет, возможно будут и другие более экзотические варианты побед, типа иметь больше всего видов животных на своей территории, кстати с этим связан 7 пункт.
Но в целом будут очки по которым будет вычисляться победитель если ни одна из побед не прошла.

Спасибо, я давно хотел создать нечто подобное. Главное не сдуться раньше времени, а то дядюшка раскритиковал что проект слишком большой для первого.

Sansuli
Интересующийся
Сообщения: 42
Зарегистрирован: 09 июн 2020, 02:46
Откуда: Бишкек
Благодарил (а): 10 раз
Поблагодарили: 27 раз

Re: Переосмысленная цива, пока что без названия.

Сообщение Sansuli »

Доделал генератор, наконец приступлю к геймплейной части. Генерировал я очень маленькими текстурками так что вот как получается, не оч красиво. Буквально 1 тайл это 4 пикселя.
Изображение
Ниже увеличенная часть карты, черные это горы и холмы, красные это вулканы, так же на скрине леса (тайга вверху темно зеленая, джунгли внизу, обычные широколиственные леса где то между ними), луга, степи, пустыни, полупустыни, тундра, мерзлота и реки.
Изображение
Таким образом получается на игровой карте есть:
ландшафты: равнины, холмы, горы и вулканы.
тип земли: пустыня каменистая, пустыня обычная, полупустыня, тундра, суходол или степь, луга.
особенности: реки, леса хвойные (тайга), леса лиственные (сезонные листопадные), леса тропические (джунгли), болота, дюны, оледенения, геотермальные поля.
Старался все расположить логично.
p.s
Когда писал, вспомнил что забыл расположить дюны и геотермальные поля)

Аватара пользователя
SkanerSoft
Администратор
Сообщения: 101
Зарегистрирован: 23 май 2020, 20:08
Откуда: Питер
Благодарил (а): 19 раз
Поблагодарили: 43 раза
Контактная информация:

Re: Переосмысленная цива, пока что без названия.

Сообщение SkanerSoft »

Выглядит круто! Молодец! По-идее такой алгоритм можешь причесать и продавать) Ну или в гит выложить)
Автор и ведущий канала Godot 3D Russia

Sansuli
Интересующийся
Сообщения: 42
Зарегистрирован: 09 июн 2020, 02:46
Откуда: Бишкек
Благодарил (а): 10 раз
Поблагодарили: 27 раз

Re: Переосмысленная цива, пока что без названия.

Сообщение Sansuli »

Чекпоинт. Сначала сделал тайлмэп прогружающийся вокруг камеры и при движении двигалась не камера, а тайлмэп. Таким образом я смог сделать мир циклично бесшовным (нет края мира), но возникла проблема с позиционированием объектов. А именно, надо было держать все игровые объекты типа поселений и юнитов в игре, чтобы ими в будущем могла манипулировать ИИ. Но при движении мира пришлось бы двигать все поселения и юниты, менять координаты, а в будущем это может вылиться в проблему с ИИ.
Потом переделал всё так, чтобы двигалась камера и прогружались тайлмэпы только вокруг камеры в определенном радиусе. Проблема с позиционированием всего была решена, прям гора с плечь. Но появилась задача на будущее, как делать мир бесшовным?
Первый скрин это поселение которое мне досталось, условно.
Изображение
Мир сейчас прогружается на 5 и 6 тайлов сверху и снизу соответственно, 10 и 11 тайлов слева и справа.
Изображение
Графика не финальная и не передает финальный дух игры, только для визуализации.
Последний раз редактировалось Sansuli 05 июл 2020, 12:55, всего редактировалось 1 раз.

Kamilayza
Интересующийся
Сообщения: 41
Зарегистрирован: 27 май 2020, 21:08
Благодарил (а): 97 раз
Поблагодарили: 19 раз

Re: Переосмысленная цива, пока что без названия.

Сообщение Kamilayza »

Рожицы очень прикольные :lol:
Желаю в будущем решит эту будущую проблему :)
А как в основном будут различаться народы на карте - такими рожицами, каким-то силуэтом в разноцветном наряде или как-то иначе? Или это пока в планировании ?

Sansuli
Интересующийся
Сообщения: 42
Зарегистрирован: 09 июн 2020, 02:46
Откуда: Бишкек
Благодарил (а): 10 раз
Поблагодарили: 27 раз

Re: Переосмысленная цива, пока что без названия.

Сообщение Sansuli »

Kamilayza писал(а):
Вчера, 12:51
Рожицы очень прикольные :lol:
Желаю в будущем решит эту будущую проблему :)
А как в основном будут различаться народы на карте - такими рожицами, каким-то силуэтом в разноцветном наряде или как-то иначе? Или это пока в планировании ?
Да конечно будут, но сначала надо разобраться с основными механиками. После займусь графикой основательно.
Графика будет примерно такая, но это не точно
Изображение
Это графика некого Shpadaruk Aleksei

Ответить