Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Техническая помощь в реализации самописных игр | страница 14
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 14 из 15
На страницу: Пред.  1, 2, 3 ... , 13, 14, 15  След.    Перейти:   Все страницы
Поиск в этой теме:
Канал Игры Мечты: «Техническая помощь в реализации самописных игр»
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
БулерМэн :
В коде на Python 2.7 разница чуть меньше секунды, из-за применения функции range()
xrange же есть Улыбка

а в Си когда-то давно ключевое слово register для счётчика ускоряло цикл заметно, а поскольку регистров очень мало, то один цикл был предпочтительнее
_________________
This is what you get ...
(c) Radiohead

Последний раз редактировалось: Sh.Tac. (01:58 13-03-2018), всего редактировалось 1 раз
    Добавлено: 01:57 13-03-2018   
БулерМэн
 420 EGP


Рейтинг канала: 2(21)
Репутация: 68
Сообщения: 1580
Откуда: Гороховец
Зарегистрирован: 07.02.2006
 Cкрытый текст   (кликните здесь для просмотра)
Код:


import os
import time
import math
import sys

#print sys.version[:3]
#print('print to log')


start_time = time.time()


for i in xrange(2500):
   for j in xrange(2500):
         #print "...";
         x=i;
         y=j;
         z=1;
         D = math.sqrt(x*x+y*y+z*z);
         xn= x/D;
         yn= y/D;
         zn= z/D;
         #move code from second 'for'
         x=i;
         y=j;
         z=1;
         D_2 = math.sqrt(x*x+y*y+z*z)+100*math.sqrt(x);






print("--- %s seconds ---" % (time.time() - start_time))

raw_input();




29.64 секунды, разницы практически никакой Улыбка

добавлено спустя 9 минут:
А вот если вынести "за скобки" список необходимый для итераций:

 Cкрытый текст   (кликните здесь для просмотра)

Код:

import os
import time
import math
import sys

#print sys.version[:3]
#print('print to log')
list1 =  range(2500);

start_time = time.time()


for i in list1:
   for j in list1:
         #print "...";
         x=i;
         y=j;
         z=1;
         D = math.sqrt(x*x+y*y+z*z);
         xn= x/D;
         yn= y/D;
         zn= z/D;
         #move code from second 'for'
         x=i;
         y=j;
         z=1;
         D_2 = math.sqrt(x*x+y*y+z*z)+100*math.sqrt(x);






print("--- %s seconds ---" % (time.time() - start_time))

raw_input();




Список уже в памяти, и его не нужно создавать заново - получаем 28 секунд.

добавлено спустя 8 минут:
По сути это уже какая-то оптимизация на уровне вылавливания индусов в кодеУлыбка
_________________
Дулички и фигушки

Последний раз редактировалось: БулерМэн (03:58 13-03-2018), всего редактировалось 4 раз(а)
    Добавлено: 03:58 13-03-2018   
Grebomet
 1460 EGP


Модератор
Рейтинг канала: 2(20)
Репутация: 261
Сообщения: 4765
Откуда: Питербурх
Зарегистрирован: 06.01.2003
Разница в пределах статистической погрешности. Улыбка
_________________
Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов.
    Добавлено: 09:11 13-03-2018   
БулерМэн
 420 EGP


Рейтинг канала: 2(21)
Репутация: 68
Сообщения: 1580
Откуда: Гороховец
Зарегистрирован: 07.02.2006
Grebomet :
Разница в пределах статистической погрешности.

Есть желание выполнить код в течении 1000 секунд раз эдак десять, чтобы подтвердить свое утверждение? Гы-гы
_________________
Дулички и фигушки

Последний раз редактировалось: БулерМэн (14:03 13-03-2018), всего редактировалось 3 раз(а)
    Добавлено: 14:01 13-03-2018   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
У тебя абсолютно ужасный пример. Еще и sqrt(x*x+y*y+z*z) считаешь 2 раза в попытке сделать объедененный цикл быстрее потому что компилятор в объедененном не будет считать его второй раз очевидно.

Давай если пример - то такой же как изначально. Первый цикл формирует массив данных. Второй - на основании этих данных формирует второй массив данных
_________________
MOV topka, C++
    Добавлено: 17:11 13-03-2018   
БулерМэн
 420 EGP


Рейтинг канала: 2(21)
Репутация: 68
Сообщения: 1580
Откуда: Гороховец
Зарегистрирован: 07.02.2006
Jurec :
Первый цикл формирует массив данных. Второй - на основании этих данных формирует второй массив данных

дельное предложение, возможно разница будет более очевидной.
_________________
Дулички и фигушки
    Добавлено: 00:47 21-03-2018   
БулерМэн
 420 EGP


Рейтинг канала: 2(21)
Репутация: 68
Сообщения: 1580
Откуда: Гороховец
Зарегистрирован: 07.02.2006
Надо игры делать для Arduino, апчхи.
Дэнди, тетрис, восемь бит Гы-гы

добавлено спустя 2 минуты:
и обмениваться прошивками, как кассетами Супер!
_________________
Дулички и фигушки

Последний раз редактировалось: БулерМэн (18:14 11-07-2018), всего редактировалось 2 раз(а)
    Добавлено: 18:14 11-07-2018   
Olorin
 70 EGP


Рейтинг канала: 1(6)
Репутация: 12
Сообщения: 97
Откуда: Хьёрвард
Зарегистрирован: 27.02.2006
БулерМэн :
Надо игры делать для Arduino, апчхи.
Дэнди, тетрис, восемь бит Гы-гы

добавлено спустя 2 минуты:
и обмениваться прошивками, как кассетами Супер!

Ну, допустим, ардуина мало у кого найдётся, да ещё и с экраном, что сильно ограничивает круг потенциальных участников такого коммьюнити... Но, при действительном желании заморочиться, обмен сырыми загрузочными образами для х86 организовать вполне реалистично. Есть даже годный цикл статеек на эту тему. Гы-гы
_________________
Мы на многое не отваживаемся не потому что оно трудно; оно трудно именно потому, что мы на него не отваживаемся.
Сенека Старший
    Добавлено: 11:00 12-07-2018   
БулерМэн
 420 EGP


Рейтинг канала: 2(21)
Репутация: 68
Сообщения: 1580
Откуда: Гороховец
Зарегистрирован: 07.02.2006
Olorin :
обмен сырыми загрузочными образами для х86 организовать вполне реалистично

- О! Месье знает толк в извpащениях! Улыбка

Добавлю абсурдности: в качестве дисплея для ардуино использовать стрелочный прибор. Можно два Гы-гы

В детстве была такая игрушка, размером с кассету. Вставляешь в нее перфокарту с заданием на знание ПДД - жмешь вариант ответа и загорается либо зеленая либо красная лампочка.
Выявить закономерность перфорированных дырочек от правильности ответа - проблематично.
Дисплей нарисован на перфокарте и вообще без ардуино, просто набор кнопок, лампочек и батарейки Гы-гы
_________________
Дулички и фигушки

Последний раз редактировалось: БулерМэн (22:01 12-07-2018), всего редактировалось 1 раз
    Добавлено: 22:00 12-07-2018   
Jerry Rezet
 581 EGP


Рейтинг канала: 5(113)
Репутация: 86
Сообщения: 3365
Откуда: Санкт-Петербург.
Зарегистрирован: 01.04.2005
БулерМэн :
Вложенные циклы? Два подряд? Три? О да, трэш и угар, не удивительно почему тормозит
Кстати, по поводу вложенных циклов - подобного вида хэ в MSVC2013 если и тормозит, - то сильно быстрее - кубик 20х20 из кубиков 1х1 (все 4 грани отрисовываются) вложенных циклов там целых 3, а тормозов как-то ни одного.. Хотя рисовка там всё теми же glVertex3f(), даже без glArray(). Это, наверное, потому, что я ещё не умею орудовать со всякими массивами и прочими шейдерами-шнейдерами-штукеншнайдерами, вызывая за одно обращение всё то, на что сейчас уходит сотня.
БулерМэн :
В случае с Jerry Rezet - могу предложить рисовать графику на ходу, объединив циклы вычисления (xn=x/math.sqrt(x*x+y*y+z*z)) и циклы рисования.
Пробовал - питон меня в этом слабо поддерживает. Там, походу, питон надо чисто на логику взаимодействия класть, а вся математика крупными кусками на аппаратном уровне крутиться должна, чтобы поменьше метаний между CPU и GPU, всё, что можно - сразу в OpenCL пихать огромными блоками. Я так не умею. Видимо мой удел в питоне - простенькие скрипты на полэкрана. Либо учиться долго писать красиво и производительно, что влом.
 Cкрытый текст   (кликните здесь для просмотра)
БулерМэн :
Ширсон, вам заняться больше нечем, кроме как знакомить с википедией? Попробуйте себя в преподавательской деятельности, у вас получится.
Ты не поверишь, но современному поколению очень бы не помешало пройти начальный курс гуглежа. Не умеют. Категорически! Какой только херни не находят - всё, кроме того, что нужно и правильно. Свойства соединительной ткани ищут на сайтах клиник косметологии (хорошо, если не на сайтах салонов маникюра!), а объяснение сути электрокардиограммы - в фейсбуке в пабликах "врачи-убийцы". И на полном серьёзе потом это излагают. И при этом не могут нормально нарисовать схему (СХЕМУ! м... их космическую!) нервно-мышечного синапса. Так что не трогай Шы, у него бы всё очень хорошо получилось - я его методами пользуюсь, и оно работает.


добавлено спустя 2 минуты:
БулерМэн :
А потом восхититься скоростью и убрать к чертям весь питон
Так и сделал. Гы-гы

добавлено спустя 7 минут:
БулерМэн :
В детстве была такая игрушка, размером с кассету. Вставляешь в нее перфокарту с заданием на знание ПДД - жмешь вариант ответа и загорается либо зеленая либо красная лампочка.
Выявить закономерность перфорированных дырочек от правильности ответа - проблематично.
Была у меня такая. Там от кнопки два контакта шло, и дырка только напротив одного. Навострился я уже на следующий день. Поэтому старался на дырки не смотреть изо всех сил.
_________________
- Вы не представляете, как вам повезло, что я здесь. Вы об этом еще пожалеете. [c]

Последний раз редактировалось: Jerry Rezet (05:55 24-07-2018), всего редактировалось 4 раз(а)
    Добавлено: 05:54 24-07-2018   
БулерМэн
 420 EGP


Рейтинг канала: 2(21)
Репутация: 68
Сообщения: 1580
Откуда: Гороховец
Зарегистрирован: 07.02.2006
Jerry Rezet :
современному поколению очень бы не помешало пройти начальный курс гуглежа. Не умеют. Категорически

Отдельную тему создай, приколоченную навсегда к верхним важным - "Как правильно гуглить", будет респект.
Jerry Rezet :
Навострился я уже на следующий день.

Тест Тьюринга пройден Гы-гы
Jerry Rezet :
Там, походу, питон надо чисто на логику взаимодействия класть

Особенно геморройно перекладывать существующий код на питон или обратно.
Вот неделю назад как раз этим и занимался - написанную на питоне мною же программу - переписывал на Си. Программа или даже игра, написанная на питоне - с большой натяжкой может быть оправдана как "прототип" когда не разбираешься в особенностях железа на котором крутится питон и в интернете есть только мануалы по работе с железом на питоне. Это я сейчас говорю про РаспберриПи.
На PC питон я считаю бесполезная вещь совсем, разве что в локали http-сервер запустить и разноцветные буковки на странице им рисовать Гы-гы
Jerry Rezet :
Так и сделал.

И каково техническое решение в данный момент? Улыбка
_________________
Дулички и фигушки
    Добавлено: 13:39 24-07-2018   
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
БулерМэн :
На PC питон я считаю бесполезная вещь совсем, разве что в локали http-сервер запустить и разноцветные буковки на странице им рисовать Гы-гы




Вот так выглядят разноцветные буковки на странице, от локального сервера, по версии тех, кто таки разбирается в Питоне Хы...
_________________
У меня бисера не доxеpа.
    Добавлено: 16:52 24-07-2018   
БулерМэн
 420 EGP


Рейтинг канала: 2(21)
Репутация: 68
Сообщения: 1580
Откуда: Гороховец
Зарегистрирован: 07.02.2006
Shirson :
Вот так выглядят разноцветные буковки на странице

Попрошу объясниться, сарказм не ясен Гы-гы
_________________
Дулички и фигушки
    Добавлено: 04:56 26-07-2018   
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
БулерМэн :
Shirson :
Вот так выглядят разноцветные буковки на странице, от локального сервера, по версии тех, кто таки разбирается в Питоне

Попрошу объясниться, сарказм не ясен Гы-гы

EVE-Online написана на питоне.

Теперь сарказм ясен или более углублённо объяснить?
_________________
У меня бисера не доxеpа.
    Добавлено: 07:46 26-07-2018   
БулерМэн
 420 EGP


Рейтинг канала: 2(21)
Репутация: 68
Сообщения: 1580
Откуда: Гороховец
Зарегистрирован: 07.02.2006
Shirson :
более углублённо объяснить?

Да, пожалуй объясните, какой версии там используется питон, сколько там на самом деле питона, а не прекомпилированных библиотек, раз уж вы таки сарказмируете Хы...

добавлено спустя 13 минут:
Цифры в студию Улыбка
3д-графику рисует клиент на питоне? Гы-гы
Используется нестандартный компилятор питона в байт-код для быстроты работы? И кстати, все таки хотелось бы услышать, за что именно отвечает сам питон в данной игре, и сколько вставок кода на другом языке используется.

добавлено спустя 3 минуты:
Мы же тут технические подробности обсуждаем, не так ли? Улыбка
_________________
Дулички и фигушки

Последний раз редактировалось: БулерМэн (18:17 26-07-2018), всего редактировалось 3 раз(а)
    Добавлено: 18:16 26-07-2018   
CatSam
 316 EGP


Рейтинг канала: 2(21)
Репутация: 35
Сообщения: 1790
Откуда: Краснодар - Москва
Зарегистрирован: 20.02.2009
БулерМэн :
за что именно отвечает сам питон в данной игре, и сколько вставок кода на другом языке используется.

~90 Мб кода на питоне. Сам видел. Подмигиваю Больше ничего не знаю, но это цифра. И цифра впечатляющая. К сожалению, не помню клиентская это была часть или серверная. Давно это было. Хы...
_________________
ψ Корпус - мать, Корпус - отец! ψ

Последний раз редактировалось: CatSam (19:02 26-07-2018), всего редактировалось 1 раз
    Добавлено: 19:00 26-07-2018   
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
БулерМэн :
Shirson :
более углублённо объяснить?

Да, пожалуй объясните, какой версии там используется питон, сколько там на самом деле питона, а не прекомпилированных библиотек, раз уж вы таки сарказмируете Хы...

добавлено спустя 13 минут:
Цифры в студию Улыбка
3д-графику рисует клиент на питоне? Гы-гы
Используется нестандартный компилятор питона в байт-код для быстроты работы? И кстати, все таки хотелось бы услышать, за что именно отвечает сам питон в данной игре, и сколько вставок кода на другом языке используется.

добавлено спустя 3 минуты:
Мы же тут технические подробности обсуждаем, не так ли? Улыбка


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

Вопрос о рисовании 3D графики питоном говорит о полном непонимании сути вещей вопрошающим (что прослеживается уже давно и стабильно). Объясню на примере: У меня, в программе на Delphi, выводится 3D объект через OpenGL. Означает ли это, что 3D графика рисуется на Delphi? Тот же вопрос, если используется DirectX. Тот же вопрос, если используется Canvas. Как только осознаешь всю придурковатость вопроса, попробуй его переосмыслить и спросить ещё раз.
По EVE - и клиент и сервер EVE написаны на Stakless Python.
Для затравки можно почитать вики или тут: https://www.eveonline.com/article/stackless-python-2.7/

_________________
У меня бисера не доxеpа.

Последний раз редактировалось: Shirson (19:03 26-07-2018), всего редактировалось 2 раз(а)
    Добавлено: 19:02 26-07-2018   
Minx
 978 EGP


Модератор
Рейтинг канала: 6(328)
Репутация: 135
Сообщения: 10521
Откуда: Gomel, Belarus
Зарегистрирован: 19.11.2005
БулерМэн там выше написал "я считаю". По мне так, пусть считает, у каждого своя карта пройденных граблей.

В EVE десяток лет назад было порядка 250KLOC на C++ и 600KLOC на Python. Здесь писали, что на питоне игровая логика. Потому что удобно, и я их понимаю. На Stackless они вряд ли от хорошей жизни перепозли, и распилили все по командам. Там они писали, что когда боролись с производительностью, то распиливали код (CCP has a technical vision of sharing game-agnostic code between different projects), и у меня подозрение, что весь игромех как раз выпилился в питона.
_________________
μηδείς αγεωμέτρητος εισίτω
    Добавлено: 19:45 26-07-2018   
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
Репутация: 219
Сообщения: 16511
Откуда: 79°W 44°N
Зарегистрирован: 29.01.2002
Конечно пусть считает. Это же не мешаем мне тоже считать что-то о его высказываниях (обычно безаппеляционно-ультимативных), верно? Улыбка
_________________
У меня бисера не доxеpа.

Последний раз редактировалось: Shirson (20:03 26-07-2018), всего редактировалось 1 раз
    Добавлено: 20:03 26-07-2018   
Minx
 978 EGP


Модератор
Рейтинг канала: 6(328)
Репутация: 135
Сообщения: 10521
Откуда: Gomel, Belarus
Зарегистрирован: 19.11.2005
Все верно (;

Хотя меня больше бы впечатлила не картинка, которую в фотошопе нарисовать можно, а масштаб графа агентов игромеха, с учётом его динамики развития, баланса и инфраструктуры по поддержке и изменению.
_________________
μηδείς αγεωμέτρητος εισίτω
    Добавлено: 12:52 27-07-2018   
Канал Игры Мечты: «Техническая помощь в реализации самописных игр»
На страницу: Пред.  1, 2, 3 ... , 13, 14, 15  След.    Перейти:   Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Как избавиться от привкуса вискаря? Я даже бутер ща слопал - он и тот со вкусом виски. Я походу замариновался. (RenderG)

  » Техническая помощь в реализации самописных игр | страница 14
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18