Симулятор создания планеты


Компьютерные игры – это, пожалуй, единственный способ для многих людей посмотреть, что творится на других планетах. Продукт, о котором сейчас пойдет речь, дает возможность стать первым колонизатором ранее неизведанной планеты. Все это – игра Planetbase скачать торрент, русская версия которого находится на нашем сайте и ждет своих героев. Это очень интересный проект. Здесь нет будет сражений с монстрами и подобных игровых элементов. У игроков здесь будут свои противники. Чаще всего ими будут становиться космические тела и природные катаклизмы. Несмотря на то, что продукт являет собой симулятор колонизатора планет, то есть, практически фантастику, здесь ставка сделана на реализм всего происходящего. Теперь каждый геймер может стать тем героем, о которых ранее все видели только в фильмах. Только перед принятием каждого решения надо хорошо подумать, и не один раз.

Игровой процесс

Изначально у игроков будет определенное количество предметов, при помощи которых они будут обустраивать небольшое поселение на одной из планет.


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

Геймплей

Сначала геймплей будет напоминать симулятор строителя, а не колонизатора, но дальше будет становиться только интереснее. Чтобы колонизировать одну из планет, надо первым делом игру Planetbase скачать торрент на русском, что можно сделать при помощи нашего сайта, следуя подсказкам. Геймплей весьма сложный. Поначалу придется с ним разбираться, однако игра стоит потраченного на тренировки времени. Стоит выделить также качественную графику и удобные камеры, которые позволяют осматривать большие территории.


Источник: torrentigruha.ru

Предисловие
Вечная тяга к новому подтолкнула к изучению такого замечательного языка программирования, как Питон. Как это часто бывает, отсутствие идеи, на реализацию которой не жалко потратить свое время, сильно тормозило процесс.

Волею судьбы на глаза попался замечательный цикл статей о создании игры-платформера на Питоне
тут и тут.
Я решил взяться за один старый проект. За симулятор движения тел под действием сил гравитации.

Что из этого вышло читайте дальше.

Часть первая. Теоритическая

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

Введем систему координат.

Пускай наша система состоит из двух тел:
1. массивной звезды массой М и центром (x0, y0)
2. легкой планеты массой m, с центром в точке (x, y), скоростью v = (vx, vy) и ускорением a = (ax, ay).

Когда нам удастся разобрать этот случай, мы легко перейдем к сложным системам со взаимным влиянием звезд и планет друг на друга. Сейчас же речь пойдет о самом простом.


После несложных манипуляций со вторым законом Ньютона, законом всемирного тяготения и подобными треугольниками, я нашел, что:

ax = G * M * (x0-x) / r^3
ay = G * M * (y0-y) / r^3

Это позволяет составить алгоритм перемещения планеты в поле гравитации звезды:

1. Перед началом задаем начальное положение планеты (x, y) и начальную скорость (vx, vy)
2. На каждом шаге вычисляем новое ускорение по формуле выше, после этого пересчитываем скорость и координаты:

vx := vx + T * ax
vy := vy + T * ax

x := x + T * vx
y := y + T * yx

Осталось разобраться с константами G и T. Положим G = 1. Для нашей задачи это не так важно. Параметр T влияет на точность и скорость вычислений. Тоже положим 1 для начала.

Часть вторая. Практическая

Итак, моя первая программа на Питоне. При этом еще раз хочется поблагодарить Velese за практическое руководство.

Так выглядит наша система после некоторого времени симуляции

Симулятор создания планеты

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

Сейчас я занимаюсь поиском интересных сценариев системы и небольшими улучшениями интерфейса.

Вот пример того, что на данный момент в разработке:


Симулятор создания планеты

Если эта заметка встретит положительные отзывы, обещаю продолжить рассказ о более новой версии.

Update:

1. Я благодарен всем комментаторам за критические замечания. Они дают большую пищу для размышлений.

2. Проект вырос. Все тела уже независимы, влияют друг на труга в соответствии с законом всемирного тяготения.Подсчитывается N^2 взаиможействий.
Сейчас есть возможность хранить конфигурации звездной системы во внешних файлах и выбирать на старте
Код тут
Запускать так: python3.3 main.py -f <имя конфигурации>.ini
Различные конфигурации — там же.

3. Благодаря комментариям удалось найти и устранить главную недоработку — метод вычисления координат.
Сейчас используется метод Рунге-Кутты. По мере прочтения «Нежестких задач» буду осваивть новые методы.

Источник: habr.com

Игровой процесс

Изначально у игроков будет определенное количество предметов, при помощи которых они будут обустраивать небольшое поселение на одной из планет.


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

Геймплей

Сначала геймплей будет напоминать симулятор строителя, а не колонизатора, но дальше будет становиться только интереснее. Чтобы колонизировать одну из планет, надо первым делом игру Planetbase скачать торрент на русском, что можно сделать при помощи нашего сайта, следуя подсказкам. Геймплей весьма сложный. Поначалу придется с ним разбираться, однако игра стоит потраченного на тренировки времени. Стоит выделить также качественную графику и удобные камеры, которые позволяют осматривать большие территории.


Источник: torrentigruha.ru

Название: Universe Sandbox ²
Год выпуска: 2015
Жанр: Симулятор бога
Разработчик: Giant Army
Издатель: Giant Army
Платформа: PC
Версия: Alpha 19
Тип издания: RePack
Язык интерфейса: английский
Язык озвучки: отсутствует/не требуется
Таблэтка: Вшита

Описание: Игра в жанре «инди-песочница» предоставляет огромную, почти настоящую вселенную со своими галактиками, звёздными системами, но, в основном, есть возможность рассматривать и изменять нашу солнечную систему с известными планетами, начиная с Меркурия и заканчивая Плутоном.
Можно узнать массу планеты, изменить её, возможна смена орбиты каждой планеты или, вообще, всё перемешать или поменять местами. В игре предусмотрена возможность создания своей систему или даже галактики. Например, вы можете заменить планеты футбольными или баскетбольными мячами. Или столкнуть две галактики и наблюдать за этим красивым и эффектным процессом.
Игра рассчитана больше на подготовленного и любознательного геймера, нежели на простого игрока, она не рассчитана на пару вечеров, а требует глубокого изучения и рассмотрения.

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


В Universe Sandbox можно создать многие глобальные катастрофы: например, всем известный, астероид «Апофис», который предположительно столкнется с нашей планетой. Можно симулировать это столкновение и показать, что будет, если ничего не предпринять. Показать ситуацию, в которой Солнце потухнет, и как будет выглядеть модель солнечной системы без Солнца.

Системные требования:
Графика: DirectX 9.0c
512MB видеопамяти
Шейдеры модели 3.0
Система: 1.6GHz dual core / 1GB оперативной памяти / 1GB свободного пространства на диске

Особенности игры:
• Система материалов — создайте планету из камня, воды, железа, водорода…
• Эволюция звёзд и создание сверхновой.
• Солнечные вспышки.
• Процедурная генерация звёзд и планет.
• Чёрные дыры.
• Имитация тёмной материи.
• Тысячи реальных звезд.

Источник: torrent4.games

Предисловие
Вечная тяга к новому подтолкнула к изучению такого замечательного языка программирования, как Питон. Как это часто бывает, отсутствие идеи, на реализацию которой не жалко потратить свое время, сильно тормозило процесс.


Волею судьбы на глаза попался замечательный цикл статей о создании игры-платформера на Питоне
тут и тут.
Я решил взяться за один старый проект. За симулятор движения тел под действием сил гравитации.

Что из этого вышло читайте дальше.

Часть первая. Теоритическая

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

Введем систему координат.

Пускай наша система состоит из двух тел:
1. массивной звезды массой М и центром (x0, y0)
2. легкой планеты массой m, с центром в точке (x, y), скоростью v = (vx, vy) и ускорением a = (ax, ay).

Когда нам удастся разобрать этот случай, мы легко перейдем к сложным системам со взаимным влиянием звезд и планет друг на друга. Сейчас же речь пойдет о самом простом.

После несложных манипуляций со вторым законом Ньютона, законом всемирного тяготения и подобными треугольниками, я нашел, что:

ax = G * M * (x0-x) / r^3
ay = G * M * (y0-y) / r^3


Это позволяет составить алгоритм перемещения планеты в поле гравитации звезды:

1. Перед началом задаем начальное положение планеты (x, y) и начальную скорость (vx, vy)
2. На каждом шаге вычисляем новое ускорение по формуле выше, после этого пересчитываем скорость и координаты:

vx := vx + T * ax
vy := vy + T * ax

x := x + T * vx
y := y + T * yx

Осталось разобраться с константами G и T. Положим G = 1. Для нашей задачи это не так важно. Параметр T влияет на точность и скорость вычислений. Тоже положим 1 для начала.

Часть вторая. Практическая

Итак, моя первая программа на Питоне. При этом еще раз хочется поблагодарить Velese за практическое руководство.

import pygame, math from pygame import * from math import *  WIN_WIDTH = 800 WIN_HEIGHT = 640 PLANET_WIDTH = 20 PLANET_HEIGHT = 20 DISPLAY = (WIN_WIDTH, WIN_HEIGHT) SPACE_COLOR = "#000022" SUN_COLOR = "yellow" PLANET_COLOR = "blue"  #Sun position X0 = WIN_WIDTH // 2 Y0 = WIN_HEIGHT // 2 #Sun mass M0 = 5000 #Stop conditions CRASH_DIST = 10 OUT_DIST = 1000  def main():  #PyGame init  pygame.init()  screen = pygame.display.set_mode(DISPLAY)  pygame.display.set_caption("Solar Mechanics v0.1")    #Space init  bg = Surface((WIN_WIDTH,WIN_HEIGHT))  bg.fill(Color(SPACE_COLOR))   draw.circle (bg, Color(SUN_COLOR), (X0, Y0), 10)    #Timer init   timer = pygame.time.Clock()    #Planet init  planet = Surface((PLANET_WIDTH, PLANET_HEIGHT))  planet.fill(Color(SPACE_COLOR))  draw.circle (planet,  Color(PLANET_COLOR),  (PLANET_WIDTH // 2, PLANET_HEIGHT // 2),  5)   #Planet to Sun distance  r = 0.0  #Initial planet pos, speed and accel  x = 100.0  y = 290.0  vx = 0.1  vy = 1.5  ax = 0.0  ay = 0.0   done = False  while not done:  timer.tick(50)  for e in pygame.event.get():  if e.type == QUIT:  done = True  break    r = sqrt((x - X0)**2 + (y - Y0)**2)    ax = M0 * (X0 - x) / r**3  ay = M0 * (Y0 - y) / r**3   #New spped based on accel  vx += ax  vy += ay   #New pos based on speed  x += vx  y += vy   screen.blit(bg, (0, 0))   screen.blit(planet, (int(x), int(y)))  pygame.display.update()    if r < CRASH_DIST:  done = True  print("Crashed")  break  if r > OUT_DIST:  done = True  print("Out of system")  break   #Farewell  print (":-)")  if __name__ == "__main__":  main() 

Так выглядит наша система после некоторого времени симуляции

Симулятор создания планеты

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

Сейчас я занимаюсь поиском интересных сценариев системы и небольшими улучшениями интерфейса.

Вот пример того, что на данный момент в разработке:
Симулятор создания планеты

Если эта заметка встретит положительные отзывы, обещаю продолжить рассказ о более новой версии.

Update:

1. Я благодарен всем комментаторам за критические замечания. Они дают большую пищу для размышлений.

2. Проект вырос. Все тела уже независимы, влияют друг на труга в соответствии с законом всемирного тяготения.Подсчитывается N^2 взаиможействий.
Сейчас есть возможность хранить конфигурации звездной системы во внешних файлах и выбирать на старте
Код тут
Запускать так: python3.3 main.py -f <имя конфигурации>.ini
Различные конфигурации — там же.

3. Благодаря комментариям удалось найти и устранить главную недоработку — метод вычисления координат.
Сейчас используется метод Рунге-Кутты. По мере прочтения «Нежестких задач» буду осваивть новые методы.

Источник: habr.com


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.