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

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

Search | Conference rules | Album | Register | Pilots list | Profile | Log in to check your private messages | Log in

   Page 14 of 15
Go to page: Previous  1, 2, 3 ... , 13, 14, 15  Next    Перейти:   All pages
Поиск в этой теме:
Канал Игры Мечты: «Техническая помощь в реализации самописных игр»
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
: 14
Posts: 1426

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

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

Last edited by Sh.Tac. on 01:58 13-03-2018; edited 1 time in total
    Posted: 01:57 13-03-2018   
БулерМэн
 436 EGP


Рейтинг канала: 2(21)
: 68
Posts: 1580
Location: Гороховец
Joined: 07 Feb 2006
 Cкрытый текст   (кликните здесь для просмотра)
Code:


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крытый текст   (кликните здесь для просмотра)

Code:

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 минут:
По сути это уже какая-то оптимизация на уровне вылавливания индусов в кодеУлыбка
_________________
Сосиска в хлебе

Last edited by БулерМэн on 03:58 13-03-2018; edited 4 times in total
    Posted: 03:58 13-03-2018   
Grebomet
 1469 EGP


Модератор
Рейтинг канала: 2(20)
: 261
Posts: 4790
Location: Питербурх
Joined: 06 Jan 2003
Разница в пределах статистической погрешности. Улыбка
_________________
Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов.
    Posted: 09:11 13-03-2018   
БулерМэн
 436 EGP


Рейтинг канала: 2(21)
: 68
Posts: 1580
Location: Гороховец
Joined: 07 Feb 2006
Grebomet wrote:
Разница в пределах статистической погрешности.

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

Last edited by БулерМэн on 14:03 13-03-2018; edited 3 times in total
    Posted: 14:01 13-03-2018   
Jurec
 348 EGP


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

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


Рейтинг канала: 2(21)
: 68
Posts: 1580
Location: Гороховец
Joined: 07 Feb 2006
Jurec wrote:
Первый цикл формирует массив данных. Второй - на основании этих данных формирует второй массив данных

дельное предложение, возможно разница будет более очевидной.
_________________
Сосиска в хлебе
    Posted: 00:47 21-03-2018   
БулерМэн
 436 EGP


Рейтинг канала: 2(21)
: 68
Posts: 1580
Location: Гороховец
Joined: 07 Feb 2006
Надо игры делать для Arduino, апчхи.
Дэнди, тетрис, восемь бит Гы-гы

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

Last edited by БулерМэн on 18:14 11-07-2018; edited 2 times in total
    Posted: 18:14 11-07-2018   
Olorin
 70 EGP


Рейтинг канала: 1(6)
: 12
Posts: 97
Location: Хьёрвард
Joined: 27 Feb 2006
БулерМэн wrote:
Надо игры делать для Arduino, апчхи.
Дэнди, тетрис, восемь бит Гы-гы

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

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


Рейтинг канала: 2(21)
: 68
Posts: 1580
Location: Гороховец
Joined: 07 Feb 2006
Olorin wrote:
обмен сырыми загрузочными образами для х86 организовать вполне реалистично

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

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

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

Last edited by БулерМэн on 22:01 12-07-2018; edited 1 time in total
    Posted: 22:00 12-07-2018   
Jerry Rezet
 581 EGP


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


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

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

Last edited by Jerry Rezet on 05:55 24-07-2018; edited 4 times in total
    Posted: 05:54 24-07-2018   
БулерМэн
 436 EGP


Рейтинг канала: 2(21)
: 68
Posts: 1580
Location: Гороховец
Joined: 07 Feb 2006
Jerry Rezet wrote:
современному поколению очень бы не помешало пройти начальный курс гуглежа. Не умеют. Категорически

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

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

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

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


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




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


Рейтинг канала: 2(21)
: 68
Posts: 1580
Location: Гороховец
Joined: 07 Feb 2006
Shirson wrote:
Вот так выглядят разноцветные буковки на странице

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


Модератор
Рейтинг канала: 7(626)
: 219
Posts: 16511
Location: 79°W 44°N
Joined: 29 Jan 2002
БулерМэн wrote:
Shirson wrote:
Вот так выглядят разноцветные буковки на странице, от локального сервера, по версии тех, кто таки разбирается в Питоне

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

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

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


Рейтинг канала: 2(21)
: 68
Posts: 1580
Location: Гороховец
Joined: 07 Feb 2006
Shirson wrote:
более углублённо объяснить?

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

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

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

Last edited by БулерМэн on 18:17 26-07-2018; edited 3 times in total
    Posted: 18:16 26-07-2018   
CatSam
 323 EGP


Рейтинг канала: 2(21)
: 35
Posts: 1804
Location: Краснодар - Москва
Joined: 20 Feb 2009
БулерМэн wrote:
за что именно отвечает сам питон в данной игре, и сколько вставок кода на другом языке используется.

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

Last edited by CatSam on 19:02 26-07-2018; edited 1 time in total
    Posted: 19:00 26-07-2018   
Shirson
 1605 EGP


Модератор
Рейтинг канала: 7(626)
: 219
Posts: 16511
Location: 79°W 44°N
Joined: 29 Jan 2002
БулерМэн wrote:
Shirson wrote:
более углублённо объяснить?

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

добавлено спустя 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а.

Last edited by Shirson on 19:03 26-07-2018; edited 2 times in total
    Posted: 19:02 26-07-2018   
Minx
 1025 EGP


Модератор
Рейтинг канала: 6(332)
: 139
Posts: 10551
Location: Gomel, Belarus
Joined: 19 Nov 2005
БулерМэн там выше написал "я считаю". По мне так, пусть считает, у каждого своя карта пройденных граблей.

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


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

Last edited by Shirson on 20:03 26-07-2018; edited 1 time in total
    Posted: 20:03 26-07-2018   
Minx
 1025 EGP


Модератор
Рейтинг канала: 6(332)
: 139
Posts: 10551
Location: Gomel, Belarus
Joined: 19 Nov 2005
Все верно (;

Хотя меня больше бы впечатлила не картинка, которую в фотошопе нарисовать можно, а масштаб графа агентов игромеха, с учётом его динамики развития, баланса и инфраструктуры по поддержке и изменению.
_________________
μηδείς αγεωμέτρητος εισίτω
    Posted: 12:52 27-07-2018   
Канал Игры Мечты: «Техническая помощь в реализации самописных игр»
Go to page: Previous  1, 2, 3 ... , 13, 14, 15  Next    Перейти:   All pages
  
Display posts from previous: 
View previous topic | View next topic |
К списку каналов | Наверх страницы
Цитата не в тему: ...поставлен на вооружение противоракетный комплекс "Сачок".

  » Техническая помощь в реализации самописных игр |
Каналы: Новости | 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