Автор | Сообщение |
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 12.07.10 19:01. Заголовок: Прога
Тут есть пргограммизды или кодеры? Если идея принципиально новой игры :3
|
|
|
Ответов - 179
, стр:
1
2
3
4
5
6
7
8
9
All
[только новые]
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 12.07.10 19:03. Заголовок: Bloodiness Вас ждут ..
Bloodiness Вас ждут тонны кирпичей. Ждите.
|
|
|
|
| |
Настроение: отличное
Зарегистрирован: 05.06.10
|
|
Отправлено: 12.07.10 19:04. Заголовок: 2 тонны :sm35: ..
2 тонны
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 12.07.10 19:04. Заголовок: Ога, ждут, однозначн..
Ога, ждут, однозначно
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 12.07.10 19:08. Заголовок: >> 2 тонны ..
>> 2 тонны >> Ога, ждут, однозначно Жду с нетерпением. А по теме будут только смайлофажить? -___-
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 12.07.10 19:09. Заголовок: Ну в частности я явл..
Ну в частности я являюсь программистом SD, и тут ещё кое-кто присутствует кроме меня из кодеров
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 12.07.10 19:12. Заголовок: >> Ну в част..
>> Ну в частности я являюсь программистом SD, и тут ещё кое-кто присутствует кроме меня из кодеров Прошу просвятите заодно, что есть SD.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 12.07.10 19:14. Заголовок: Total Conversion для..
Total Conversion для дум3. Запиливаем всякие нововведения типа хабов, воды и прочего.
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 12.07.10 19:16. Заголовок: >> Total Con..
>> Total Conversion для дум3. Запиливаем всякие нововведения типа хабов, воды и прочего. Сильно! Где исходники нашли? Или их открыли уже О_о?
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 12.07.10 19:17. Заголовок: Bloodiness пишет: С..
Bloodiness пишет: цитата: | Сильно! Где исходники нашли? Или их открыли уже О_о? |
|
так ведь СДК же.
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 12.07.10 19:18. Заголовок: Ладно. Ну я зато зна..
Ладно. Ну я зато знаю уже к чьей помощи нельзя прибегать.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 12.07.10 19:21. Заголовок: Ну тогда ждём осталь..
Ну тогда ждём остальных кодеров, которые тут точно есть
|
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 12.07.10 19:23. Заголовок: Bloodiness пишет: Е..
Bloodiness пишет: цитата: | Если идея принципиально новой игры :3 |
|
объясните как понимать.
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 12.07.10 19:25. Заголовок: >> объясните..
>> объясните как понимать. Понимайте пока буквально :3 А помощь c4tnt не нужна, ибо совсем другой уровень.
|
|
|
|
| |
Настроение: ага
Зарегистрирован: 03.06.10
|
|
Отправлено: 12.07.10 20:06. Заголовок: а на каком языке то ..
а на каком языке то хоть? а то за месяцок могу си выучить)
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 12.07.10 20:25. Заголовок: marat пишет: а на к..
|
|
|
|
| |
Настроение: ага
Зарегистрирован: 03.06.10
|
|
Отправлено: 12.07.10 20:29. Заголовок: да хоть за день, вот..
да хоть за день, вот только лнь одолевает, же!
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 12.07.10 20:30. Заголовок: >> количеств..
>> количество смайликов на сантиметр зашкаливает Да ну не смешно же. Си простой язык. Языковые конструкции за три дня изучаются. Только есть одна проблема - если хотите написать что-то большое - не хватайтесь за Си. Си неудобен. Ручной контроль памяти смешная штука.
|
|
|
|
| |
Настроение: ага
Зарегистрирован: 03.06.10
|
|
Отправлено: 12.07.10 20:32. Заголовок: Bloodiness пишет: Т..
Bloodiness пишет: цитата: | Только есть одна проблема - если хотите написать что-то большое - не хватайтесь за Си. |
| за что же схватиться?
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 12.07.10 20:34. Заголовок: >> за что же..
>> за что же схватиться? А вот это уже от ваших целей зависит.
|
|
|
|
| |
Настроение: ага
Зарегистрирован: 03.06.10
|
|
Отправлено: 12.07.10 20:35. Заголовок: Bloodiness пишет: А..
Bloodiness пишет: цитата: | А вот это уже от ваших целей зависит. |
| допустим я решил сделать "самую крутую игру на свете с супер графикой и прочей фигатой"
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 12.07.10 20:36. Заголовок: >> допустим ..
>> допустим я решил сделать "самую крутую игру на свете с супер графикой и прочей фигатой" В таком случае лучше сразу убиваться головой об стенку :3 Это не возможно.
|
|
|
|
|
| |
Настроение: ага
Зарегистрирован: 03.06.10
|
|
Отправлено: 12.07.10 20:38. Заголовок: Bloodiness пишет: у..
Bloodiness пишет: цитата: | убиваться головой об стенку |
| это новый язык. сокращенно угос.
|
|
|
|
| |
Настроение: отличное
Зарегистрирован: 05.06.10
|
|
Отправлено: 12.07.10 20:39. Заголовок: marat а ты знаешь ег..
marat а ты знаешь его?
|
|
|
|
| |
Настроение: ага
Зарегистрирован: 03.06.10
|
|
Отправлено: 12.07.10 20:40. Заголовок: рыцарь пишет: marat..
рыцарь пишет: обижаааешь...*стук-стук-стук*
|
|
|
|
| |
Настроение: отличное
Зарегистрирован: 05.06.10
|
|
Отправлено: 12.07.10 20:46. Заголовок: marat я не кого не о..
marat я не кого не обижаю ,а ты действительно знаешь язык, который дает возможность игры делать?
|
|
|
|
| |
Настроение: ага
Зарегистрирован: 03.06.10
|
|
Отправлено: 12.07.10 21:16. Заголовок: рыцарь пишет: marat..
рыцарь пишет: цитата: | marat я не кого не обижаю ,а ты действительно знаешь язык, который дает возможность игры делать? |
| *facepalm*
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 13.07.10 08:47. Заголовок: Это пиздос, товарисч..
Это пиздос, товарисчи. Даже с моими хуевыми знаниями программирования я точно могу сказать что Си на данный момент самый оптимальный вариант, а то что кто то там собирается его выучить за 3 дня, ну дерзайте, я потом посмотрю что вы сделаете. И сделаете ли вообще. marat давай! Сделай движок для игры.
|
|
|
|
| |
Настроение: ябвдул
Зарегистрирован: 02.06.10
|
|
Отправлено: 13.07.10 09:14. Заголовок: пишите на хтмл текст..
пишите на хтмл текстовые как-то так -_^
|
|
|
|
| |
Настроение: отличное
Зарегистрирован: 05.06.10
|
|
Отправлено: 13.07.10 09:16. Заголовок: Archi 4 звезды круто..
Archi 4 звезды круто
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 09:28. Заголовок: >> Это пиздо..
>> Это пиздос, товарисчи. Даже с моими хуевыми знаниями программирования я точно могу сказать что Си на данный момент самый оптимальный вариант Си - оптимальный вариант? Да, знания программирования у вас ни к черту. >> то что кто то там собирается его выучить за 3 дня, ну дерзайте, я потом посмотрю что вы сделаете. И сделаете ли вообще. Много ума для этого не нужно. Я осилил Си ровно за столько. Можно писать всякую хрень с оглядкой на документацию. >> давай! Сделай движок для игры. RevenentX, к слову, пишет кроссплатформенный движок на Сях. Даже меня хотел в это втянуть. Но я не люблю си, ибо стандартная библиотека там бедная как тамбовские бомжи.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 13.07.10 09:36. Заголовок: Интересно, таки заче..
Интересно, таки зачем вам стандартная библиотека для изготовления ядра игры?
|
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 09:40. Заголовок: >> Интересно..
>> Интересно, таки зачем вам стандартная библиотека для изготовления ядра игры? >> таки зачем вам >> вам Лол, при чем тут я?
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 13.07.10 09:49. Заголовок: сабж: RevenentX, к с..
сабж: цитата: | RevenentX, к слову, пишет кроссплатформенный движок на Сях. Даже меня хотел в это втянуть. Но я не люблю си, ибо стандартная библиотека там бедная как тамбовские бомжи. |
|
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 09:52. Заголовок: >> сабж: Я ..
>> сабж: Я таки писал, что разрабатываю ядро игры на Си? Я таки писал, что в Си библиотека убога, потому что в ней не хватает функций для разработки ядра игры? Нет же. В Си стандартная библиотека убога сама собой, не важно для каких целей. Если хотите дальше поспрашивать, то свяжитесь с автором, ибо я там никаким боком не затесался. Вот проект на гуглокоде: http://code.google.com/p/rxengine/<\/u><\/a> там же и контактная информация.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 13.07.10 09:58. Заголовок: Ну да впрочем дело н..
Ну да впрочем дело не в этом. Было бы уважительно к будущим кодерам всё же указать, на каком языке планируется разработка
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 10:05. Заголовок: >> Ну да впр..
>> Ну да впрочем дело не в этом. Было бы уважительно к будущим кодерам всё же указать, на каком языке планируется разработка Я хотел сперва найти хотя бы людей, которые этим занимаются, а с ними решить все в личной переписке. Нялсо на язык стоит только одно ограничение: лишь бы не убожественное цепепе! На Си просто, даже проект небольшой поднять стоит кучу усилий и часов отладки. Мои проги на Си часто сегфолтятся -___-. Я пишу всякую хрень на Python и Java. До сих пор есть идея писать все на Java с нативными методами на Си, чтобы максимально эффективно использовать готовые структуры данных на Java (хотя придется свои писать) и сэкономить процессорное время благодаря относительной быстроте Си.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 13.07.10 10:27. Заголовок: Ну может тут кто-то ..
Ну может тут кто-то умеет писать без ошибок доступа к памяти и на си?
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 10:39. Заголовок: >> Ну может ..
>> Ну может тут кто-то умеет писать без ошибок доступа к памяти и на си? Ох. Чего уж там уметь? Это очень просто. Ошибки к обращению вызываются чаще невменяемыми конструкциями на Си, которые приходится писать, ибо как ни крути, некоторые вещи в Си можно сделать только через задницу. А простые вещи может написать любая кодящая обезьянка.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 13.07.10 10:40. Заголовок: Мои проги на Си част..
цитата: | Мои проги на Си часто сегфолтятся |
| цитата: | Ох. Чего уж там уметь? Это очень просто |
| и этот человек называет меня непоследовательным и нелогичным???
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 11:02. Заголовок: >> и этот че..
>> и этот человек называет меня непоследовательным и нелогичным??? Если это не получается у меня с первого раза, это вовсе не значит, что это архисложно. Это лишь говорит о том, что я невнимателен к деталям. Последний сегфолт был вызван выражением: printf("%s\n", (char**)(list_gd(st, j)->container)); // Вкусняшки, правда?
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 13.07.10 11:35. Заголовок: Интересно, что же в ..
Интересно, что же в этом list_gd(st, j)->container такого, что к нему такой каст приделали...
|
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 11:52. Заголовок: >> Интересно..
>> Интересно, что же в этом list_gd(st, j)->container такого, что к нему такой каст приделали... Не мне вам говорить, что сделать динамически расширяемый односвязный список на Си для любых типов данных та ещё головная боль.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 13.07.10 12:15. Заголовок: тут, конечно, ещё бо..
тут, конечно, ещё большой вопрос, надо ли оно... А если произвольный, но только на однотипные данные, то тут шаблоны в дело вступают и нет проблем. А если всё же произвольный для многих типов, то тут в любом языке крэшеопасно если не тот тип попался и придётся делать RTTI самостоятельно.
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 12:35. Заголовок: >> А если пр..
>> А если произвольный, но только на однотипные данные, то тут шаблоны в дело вступают и нет проблем. В си есть шаблоны, О_о desu? >> А если всё же произвольный для многих типов, то тут в любом языке крэшеопасно если не тот тип попался Не в любом. Во вменяемых языках всегда есть instanceof и try\catch блоки.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 13.07.10 12:39. Заголовок: Ну так и в сях исклю..
Ну так и в сях исключения тоже есть же А инстанс можно и ручками прикрутить за счёт шаблонов и макросов хотя бы. Если интересно, можешь скачать д3-сдк и взять мастеркласс у Кармака И да, в плюсовом си есть шаблоны и классы и объекты и дофига всякого. Только лямбды ещё нету.
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 12:44. Заголовок: >> Ну так и ..
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 13.07.10 12:47. Заголовок: Bloodiness пишет: Н..
Bloodiness пишет: цитата: | Но не забывайте, что Си++ убогое перегруженное говно, на котором с удовольствием могут кодить только окончательные. |
|
А теперь объясните чем он хуже Си. Желательно с подробностями.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 13.07.10 12:50. Заголовок: ну мы про 0x и D не ..
ну мы про 0x и D не говорили вроде. Но вообще C++ как бы расширение си и относиться к нему логичнее всего именно как к расширению стандарта. А на счёт перегруженности - может си++ и перегружено в компил-тайме, но зато ява, питон, и прочее VM семейство перегружено в рантайме, что хуже для нас, как программистов высокопроизводительных приложений, т.е. игр.
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 12:53. Заголовок: >> А теперь ..
>> А теперь объясните чем он хуже Си. Желательно с подробностями. 1. Излишней перегруженностью и запутанностью. Нахрена множественное наследование? Нахрена лямбды? Нахрена ущербный синтаксис? Нахрена тратить уйму времени на реализацию элементарных вещей? 2. Си++ уже не нужен. Сейчас на них пишутся в основном игрушки. Крупные компании уделяют больше внимания языкам высокого уровня, такими как C# и Java. Не скажу за всех, но консалтинговые точно. Такой компании как правило лучше нанять программиста с высокой продуктивностью, чем упоротого плюситса, генерирующего 10000 строк быдлокода в месяц. Ушла эра дельфи, уйдет и эра плюсов, смиритесь.
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 12:57. Заголовок: >> ну мы про..
>> ну мы про 0x и D не говорили вроде. Вы поставили в один ряд совершенно другой язык (D) и новый стандарт плюсов (0x). >> Но вообще C++ как бы расширение си и относиться к нему логичнее всего именно как к расширению стандарта. Страуструп все испортил!11 Т__т >> А на счёт перегруженности - может си++ и перегружено в компил-тайме, но зато ява, питон, и прочее VM семейство перегружено в рантайме, что хуже для нас, как программистов высокопроизводительных приложений, т.е. игр. Тут можно спорить до посинения. Код на высокоуровневых языках пишется быстрее и проще. А Java обгоняет С++ по производительности в битовых операциях и еще в некоторых дисциплинах. Не забывайте, есть JIT для явы, есть и для питона.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 13.07.10 12:59. Заголовок: да, народ не понимае..
да, народ не понимает принципиально группы языков программирования по их назначению... Бывают языки высокоабстрактные - ява, шарп, ещё много чего. Бывают языки с низким уровнем абстракции - ассемблер, си, плюсы те же. У каждой группы разное назначение. цитата: | А Java обгоняет С++ по производительности в битовых операциях и еще в некоторых дисциплинах. |
| пруф, или вы таки сравнивали сишный код без SSE\MMX и явовский с этими возможностями? Так не честно
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 13.07.10 13:01. Заголовок: Bloodiness пишет: Н..
Bloodiness пишет: c4tnt пишет: ВП... Bloodiness пишет: цитата: | Нахрена ущербный синтаксис? Нахрена тратить уйму времени на реализацию элементарных вещей? |
|
Епт, опять ВП!? Bloodiness пишет: цитата: | Сейчас на них пишутся в основном игрушки |
|
Интересно, а мы тут что собрались делать?! О_о В общем кроме странных и непонятных фактов ничего годного тут нету. Жаль, я был о вас лучшего мнения. А смотреть на то, что в компаниях используют си шарп и яву, ну это уже слишком брутально, это не показатель того что си++ не нужен. Странно, но ядро линукса написано на Си... И это наталкивает на странные мысли. Bloodiness пишет: цитата: | Ушла эра дельфи, уйдет и эра плюсов, смиритесь. |
|
Дельфи появилась в 1995 году, а с++ в 1985. А си вообще в начале 70...
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 13.07.10 13:03. Заголовок: Дэльфи - это вообще ..
Дэльфи - это вообще тяжёлый случай, не поддающийся лечению... цитата: | Вы поставили в один ряд совершенно другой язык (D) и новый стандарт плюсов (0x). |
| Да, мы про них не говорим и в этом плане они на равных
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 13:04. Заголовок: >> Бывают яз..
>> Бывают языки с низким уровнем абстракции - ассемблер, си, плюсы те же. >> У каждой группы разное назначение. Чудно что хоть в чем-то у нас совпадают мнения ^___^. Да группы языков существуют, но четкого разделения между ними нет. Асм и си нужны, ибо кто тогда будет микроконтроллеры клепать? Я просто смотрю с точки зрения возможного будущего прикладного программиста. Я вижу что языки высокого уровня отвоевывают свое. И в геймдеве тоже. У "Ил штурмовик" логика игры на Java написанна. Вот с этой точки мне чрезвычайно видно что пора упаковывать прах С++ в сфере прикладного программирования. P.S> годный языкосрач спор о ЯП!
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 13.07.10 13:05. Заголовок: Bloodiness пишет: P..
Bloodiness пишет: цитата: | P.S> годный языкосрач спор о ЯП! |
|
двачую
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 13.07.10 13:07. Заголовок: У "Ил штурмовик&..
цитата: | У "Ил штурмовик" логика игры на Java написанна. |
| У д3 половина логики выполняется на виртуальной машине, в анрил встроен забыл какой, но тоже скриптовый язык... В ку3 вообще был вариант выполнения всей логики на VM. В Zdoom наконец... И что теперь? PS. Годный, утраиваю
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 13:09. Заголовок: >> ВП... Вы..
>> ВП... Вы выигрываете мехового слоупока! Не читать ссылки и посты и писать бред - это так весело! ^__^ >> Интересно, а мы тут что собрались делать?! О_о В общем кроме странных и непонятных фактов ничего годного тут нету. Жаль, я был о вас лучшего мнения. А смотреть на то, что в компаниях используют си шарп и яву, ну это уже слишком брутально, это не показатель того что си++ не нужен. Ладно. Погодите. Я исключу этот факт, не смотря что эти компании перешли на языки высокого уровня с тех же плюсов по доброй воле. Так. Исключил. С++ не нужен! >> Странно, но ядро линукса написано на Си... И это наталкивает на странные мысли. Ох майн щет. Я люблю Си. Я ненавижу плюсы. Причем тут линукс я не понял. Линус Торвальдс ведь студент и мудак. >> Дельфи появилась в 1995 году, а с++ в 1985. А си вообще в начале 70... Logical error!
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 13:10. Заголовок: >> пруф, или..
>> пруф, или вы таки сравнивали сишный код без SSE\MMX и явовский с этими возможностями? Так не честно Кей Хорстманн гарантируе!
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 13.07.10 13:10. Заголовок: Ох майн щет. Я люблю..
цитата: | Ох майн щет. Я люблю Си. Я ненавижу плюсы. |
| Определиться пора бы, любишь или нет...
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 13.07.10 13:12. Заголовок: Bloodiness пишет: L..
Bloodiness пишет: дададад, с++ не умрет. Дельфи умер через промежуток времени, который с++ уже пережил. Bloodiness пишет: Ненене, только недавно говорилось что то совсем обратное! c4tnt пишет: это вы о чем, собсно?
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 13.07.10 13:12. Заголовок: Bloodiness пишет: К..
Bloodiness пишет: цитата: | Кей Хорстманн гарантируе! |
|
Этого как бы недостаточно ^_^'
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 13:12. Заголовок: >> Да, мы пр..
>> Да, мы про них не говорим и в этом плане они на равных Вы точно не путаете такие слова как "стандарт" и "язык"? Стандарт, значит что он утвержден и является официальной частью языка.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 13.07.10 13:13. Заголовок: Ну какая разница, не..
Ну какая разница, не говорим о новом стандарте или не говорим о расширении старого... Не говорим же. А что у вас там в вадниках лежит как не код для виртуальной машины, встроенной в игру?
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 13:16. Заголовок: >> Определит..
>> Определиться пора бы, любишь или нет... >> Ненене, только недавно говорилось что то совсем обратное! Я вам не хочу объяснять очевидные вещи, которые в принципе уже оглашались. Не выдерайте фразу из контекста, а то софистов тут развелось. >> дададад, с++ не умрет. Дельфи умер через промежуток времени, который с++ уже пережил. Дельфи можно. Он еще более редкостное говно. К слову С++ жив еще благодаря куче уже написанного кода, от которого трудно отказаться. Но ничего, откажутся.
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 13:19. Заголовок: >> Этого как..
>> Этого как бы недостаточно ^_^' Пожалуйста найди ссылку на книгу сам. Я тебе подскажу: Восьмое издание, глава 13 "Коллекции", страница 713, подзаголовок "Реализация решета Эратосфена". ADDED: Простите, забыл название >____< "Java2. Том первый. Основы."
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 13.07.10 13:22. Заголовок: Просто суть в том, ч..
Просто суть в том, что правильно написаные на си битовые операции получаются оптимальными и в ассемблерной развёртке (по крайней мере где-то в недрах хабра был пример memcpy на битовых операциях, ничуть не уступающий ассемблерному). Как ява может физически обрабатывать данные быстрее си в этом случае - непонятно. Даже если JIT дал идеальный код, то эффект должен был быть равным.
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 13:28. Заголовок: >> Просто су..
>> Просто суть в том, что правильно написаные на си битовые операции получаются оптимальными и в ассемблерной развёртке (по крайней мере где-то в недрах хабра был пример memcpy на битовых операциях, ничуть не уступающий ассемблерному). Как ява может физически обрабатывать данные быстрее си в этом случае - непонятно. Даже если JIT дал идеальный код, то эффект должен был быть равным. Спору нет. Но во-первых: Си, а не Си++. А во-вторых я не стремлюсь доказать, что ява быстрее Сей. Я пытаюсь доказать что язык высокого уровня окупается в первую очередь скоростью разработки, а уже во вторую очередь, возможно, и скоростью работы, если алгоритм писался не в полном бреду и нормальным программистом, который знаком с понятием оптимизация.
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 13:31. Заголовок: >> Ну какая ..
>> Ну какая разница, не говорим о новом стандарте или не говорим о расширении старого... >> Не говорим же. Не надо приводить в действие ваши грязные софистские приёмчики! Мы говорим об языке С++ явно подразумевая его стандарт, который принят официально.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 13.07.10 13:31. Заголовок: Ну и если VM\JIT..
Ну и если VM\JIT тоже писался таким же вменяемым программистом. Пример с книгой доказывает, что возможно обратное. PS Ну мы ещё о апельсинах не говорим, их тоже в этот строй никак?
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 13.07.10 13:31. Заголовок: Bloodiness пишет: С..
Bloodiness пишет: цитата: | Спору нет. Но во-первых: Си, а не Си++. А во-вторых я не стремлюсь доказать, что ява быстрее Сей. Я пытаюсь доказать что язык высокого уровня окупается в первую очередь скоростью разработки, а уже во вторую очередь, возможно, и скоростью работы, если алгоритм писался не в полном бреду и нормальным программистом, который знаком с понятием оптимизация. |
|
В чем собсно и проблема современной хуиты движков. Берем почти любой двиг, он оказывается недопиленным, не оптимизированным, но выдает вполне качественную картинку вместе с низким фпс на мощных компах. Весь мир катится в жопу из-за таких мудил, которые просто напросто стараются сделать побыстрее, пренебрегая ошибками, пренебрегая оптимизацией. Можно опять же сказать про кризис. Первая версия тормозила очень и очень, с патчами они вроде слегка заштопали...
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 13:42. Заголовок: >> Ну мы ещё..
>> Ну мы ещё о апельсинах не говорим, их тоже в этот строй никак? Пr'остите. Это слишком не в тему. Пусть вы и пытаетесь вывернуться, указав якобы на неверное утверждение в моём псто, но делаете это крайне неумело, неуместно. Это в общем-то не к месту. Если принят 0x, значит лямбды, ненужные в плюсах, в них все же есть. А говорить что их нету - первый симптом ФГМ. >> В чем собсно и проблема современной хуиты движков. Берем почти любой двиг, он оказывается недопиленным, не оптимизированным, но выдает вполне качественную картинку вместе с низким фпс на мощных компах. Весь мир катится в жопу из-за таких мудил, которые просто напросто стараются сделать побыстрее, пренебрегая ошибками, пренебрегая оптимизацией. Можно опять же сказать про кризис. Первая версия тормозила очень и очень, с патчами они вроде слегка заштопали... Не надо! Вы пытаетесь представить все не в том свете, пользуясь фактами, которые не имеют отношения к теме! Недопиленные двиги - проблема программистов, а не ЯП. Если у программиста руки из нестандартного места, то что уж тут. Движки пишутся на языках, не относящихся к высокоуровневым. Потом, стараются побыстрее сделать и делают на спех, а я веду речь о том, что грамотновыверенного, отлаженного и оптимизированного кода на языках высокого уровня можно добится быстрее, чем на тех, на которых писались эти быдлодвижки.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 13.07.10 13:45. Заголовок: Если принят 0x, знач..
цитата: | Если принят 0x, значит лямбды, ненужные в плюсах |
| А они там так уж и не нужны? Ну а не нужны - не юзай, нагрузки на VM\JIT это не создаёт за неимением оных цитата: | я веду речь о том, что добится грамотновыверенного, отлаженного и оптимизированного кода на языках высокого уровня можно добится быстрее |
| Откуда такая уверенность, вы ведь даже не знаете, что фактически делают те команды, которые вы исользуете. А знает только автор VM
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 13:45. Заголовок: >> Ну и если..
>> Ну и если VM\JIT тоже писался таким же вменяемым программистом. Пример с книгой доказывает, что возможно обратное. О Б-же! Я не скажу за свой VM\JIT, так как это openjdk, но вы сомневаетесь в Sun? Стандартная библиотека языка просто великолепна, реализация обработчиков событий в Swing тоже неплоха. Я сомневаюсь, что люди написавшие эти эффективные части библиотеки криво написали VM и JIT.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 13.07.10 13:48. Заголовок: Я сомневаюсь, что лю..
цитата: | Я сомневаюсь, что люди написавшие эти эффективные части библиотеки криво написали VM и JIT. |
| А если это были просто разные отделы? В VM однозначно случаются ошибки, это факт. Но свои исправить можно, а VM-ные только после долгих бесед с автором той VM, в которой косяк... Да и найти его сложнее. И ещё, раз уж тема заходила про бизнес и программы для него. Если вы серьёзно считаете, что кому-то кроме банков важно быстродействие и стабильность программы, то это однозначное заблуждение. Примеры вокруг, тысячи их. Да и банкам важна в основном стабильность. А остальным - лишь бы работало и правильно считало деньги, всё
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 13.07.10 13:48. Заголовок: Bloodiness пишет: Н..
Bloodiness пишет: цитата: | Не надо! Вы пытаетесь представить все не в том свете, пользуясь фактами, которые не имеют отношения к теме! Недопиленные двиги - проблема программистов, а не ЯП. Если у программиста руки из нестандартного места, то что уж тут. Движки пишутся на языках, не относящихся к высокоуровневым. Потом, стараются побыстрее сделать и делают на спех, а я веду речь о том, что добится грамотновыверенного, отлаженного и оптимизированного кода на языках высокого уровня можно добится быстрее, чем на тех, на которых писались эти быдлодвижки. |
|
Значит крайтек написали хуйню, а не движок! И у этой хуйни не может быть наград... Жаль, что их не отберут, в смысле награды не отберут. И да, Какими данными вы пользуетесь, говоря что что то будет сделано быстрее, а что то медленнее, причем качество будет одинаковым? Надеюсь это не собственные выводы.
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 13:53. Заголовок: >> А они там..
>> А они там так уж и не нужны? Ну а не нужны - не юзай, нагрузки на VM\JIT это не создаёт за неимением оных Да не нужны. Хотите лямбы - бегом учить хаскел. Не надо замусоривать и так уже забитый ненужными конструкциями Си++. >> Откуда такая уверенность, вы ведь даже не знаете, что фактически делают те команды, которые вы исользуете. А знает только автор VM Лол! Я весь в аплодисментах вам. Вся фишка языков в том, что вы не заморачиваетесь во внутренней реализации и контроле памяти, а пишите именно реализацию алгоритма! Что как-раз и делает VM более крашеустойкой и безопасной. Сишник может ненароком опечатку поставить, например в тех же if(x == 0) и вся программа скатится в говно, а искать такую ошибку в тонне кода - извольте. В ява уже предусмотрели эту фичу: использовать в качестве условия можно только boolean-тип. Тоже относится к неявным ссылкам. А VM делает то, что вы ей скажете. Как она это делает вас не должно интересовать. А если интересует то пишите сразу на асме! А то кто знает, какую фишку выкинет компилятор в ассемблерном коде!
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 13.07.10 13:55. Заголовок: Bloodiness пишет: и..
Bloodiness пишет: цитата: | использовать в качестве условия можно только boolean-тип |
|
Это правда?! Bloodiness пишет: цитата: | Как она это делает вас не должно интересовать |
|
Быдлокодеров - не должна...
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 13.07.10 13:56. Заголовок: А на яве иногда случ..
А на яве иногда случаются вполне адекватные наборы инструкций, которые внезапно рушат всё. Это да, веселее. Или внезапно производительность независимых команд, поставленых в одном порядке одна, а в другом - совсем другая. И от чего это зависит - никто не знает. цитата: | Сишник может ненароком опечатку поставить, например в тех же if(x == 0) и вся программа скатится в говно |
| От этого есть одно хорррррошее средство
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 14:00. Заголовок: >> И ещё, ра..
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 14:01. Заголовок: >> Это правд..
>> Это правда?! Правда, конечно же ) >> Быдлокодеров - не должна... Не вырывайте из контекста! Быдлокодеры есть для любого языка программирования.
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 14:03. Заголовок: >> А на яве ..
>> А на яве иногда случаются вполне адекватные наборы инструкций, которые внезапно рушат всё. Это да, веселее. Или внезапно производительность независимых команд, поставленых в одном порядке одна, а в другом - совсем другая. И от чего это зависит - никто не знает. Дак не пишите эти наборы инструкций. Такие же есть и на Си и на плюсах. Мне нравится в яве человеческая реализация потоков, а не чудобред как в С++. Кстати, обидно, но в питоне потоки недопилены, и то, что в яве есть обыденность в питоне приходится реализовывать самостоятельно.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 13.07.10 14:04. Заголовок: интересно, на каком ..
интересно, на каком языке были созданы все эти стандартные библиотеки? Кстати, странное замечание про потоки. Это не является частью языка C++, там нет встроенных потоков
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 14:11. Заголовок: >> интересно..
>> интересно, на каком языке были созданы все эти стандартные библиотеки? Все библиотеки для питона написаны на питоне. Только некоторые классы и каркасы на Си. У Си, кстати, неплохая интеграция с питоном. >> Кстати, странное замечание про потоки. Это не является частью языка C++, там нет встроенных потоков Прикладные программисты и разработчики клиент-серверных приложений разочарованы вашим ответом. В Си++ нет потоков по стандартом, а это плохо. Я вообще думал, что хотя бы такую полезную штуку они прикрутят. Ан нет! Они пошли прикручивать никому не нужные плюсовые лямбды! ADDED: Прошу прощения. Библиотеки GUI написаны на Си, так как это стандартные системные. В питоне просто сишные биндинги к ним.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 13.07.10 14:14. Заголовок: Пока нету чётких и с..
Пока нету чётких и стандартизированных именно аппаратных потоков, скорее всего в C не будет такого, как появится в железе, так и в си появится. В С-компиляторах для CUDA есть встроенное, конечно.
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 14:15. Заголовок: >> В С-компи..
>> В С-компиляторах для CUDA есть встроенное, конечно. А вот с ними знаком. Видел презентацию на местной конференции. Неплохо. Мне понравилось.
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 13.07.10 14:17. Заголовок: Может таки вернемся ..
Может таки вернемся к САБЖУ? именно тому, который в самом начале. Итак, вопросец. Что же вы собираетесь сделать?
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 13.07.10 14:19. Заголовок: Вот в этом и дело - ..
Вот в этом и дело - каждому высокоуровневому языку нужна опора на библиотеки. А движок игры по сути тоже набор библиотек, сверху как раз все адекватные разработчики уже давно (с 1998 вроде) ставят именно язык скриптового типа, какой именно - это уже их выбор. Тот самый DarkBasic - это как раз сферовакуумная реализация такого подхода. Внутре неонка C++, а снаружи скрипты логики. Поэтому выводы о том, что геймдев куда-то там переползает с си на основе того, что в ИЛ2 логика вынесена в скрипты, достаточно преждевременны. PS. В общем C\C++ предназначен для работы с железом и требует брутальных челябинских программёров
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 14:21. Заголовок: >> Итак, воп..
>> Итак, вопросец. Что же вы собираетесь сделать? Простую 2D игру для гиков. Мне нужна только помощь с графикой && выводом на экран && обработкой игровых событий. Масштабы не грандиозные, но игра планируется оригинальная.
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 14:22. Заголовок: >> Вот в это..
>> Вот в этом и дело - каждому высокоуровневому языку нужна опора на библиотеки. А движок игры по сути тоже набор библиотек, сверху как раз все адекватные разработчики уже давно (с 1998 вроде) ставят именно язык скриптового типа, какой именно - это уже их выбор. Тот самый DarkBasic - это как раз сферовакуумная реализация такого подхода. Внутре неонка C++, а снаружи скрипты логики. Поэтому выводы о том, что геймдев куда-то там переползает с си на основе того, что в ИЛ2 логика вынесена в скрипты, достаточно преждевременны. Соглашусь, что в этом направлении я нагородил хуйню был неправ.
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 13.07.10 14:24. Заголовок: Интересно. Мне бы то..
Интересно. Мне бы тоже в последнее время не помешал подобный движок, правда я сам постараюсь сделать это все на Си + ОпенГЛ. А вообще 2д игру можно было бы сделать и на Win32API, но это какбэ не рекомендуется. И да - все совету лучше у с4тнт, он не тролль, если надо - всегда поможет.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 13.07.10 14:27. Заголовок: Простую 2D игру для ..
цитата: | Простую 2D игру для гиков. Мне нужна только помощь с графикой && выводом на экран && обработкой игровых событий. Масштабы не грандиозные, но игра планируется оригинальная. |
| Ну тогда тебе нет никаких причин отказываться от си, а прибинженный к игре питон, в котором будет логика, пойдёт игре только на пользу. Логику как раз тогда сможешь делать в своё удовольствие, если все массовые операции упихать в ядро, то о производительности логики можно сильно не заботиться
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 14:29. Заголовок: >> Интересно..
>> Интересно. Мне бы тоже в последнее время не помешал подобный движок, правда я сам постараюсь сделать это все на Си + ОпенГЛ. В данном направлении выбор правильный. Я не смотрю в сторону низкоуровневых языков, ибо мне там по сути крутой физдвижок не нужен, достаточно того, что я перечислил. Остальное берется банальным расчетом. >> А вообще 2д игру можно было бы сделать и на Win32API Не надо, не надо, не напоминайте Т___т Win32API ужас, повергающий в уныние. К тому же зря вы предлагаете это человеку сидящему на никсах. Языки Python и Java в свое время выбрал, ибо они кросс-платформенные. >> И да - все совету лучше у с4тнт, он не тролль, если надо - всегда поможет. Кому, как не мне знать, что он не тролль :3
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 13.07.10 14:33. Заголовок: Bloodiness пишет: Н..
Bloodiness пишет: цитата: | Не надо, не надо, не напоминайте Т___т Win32API ужас, повергающий в уныние. К тому же зря вы предлагаете это человеку сидящему на никсах. Языки Python и Java в свое время выбрал, ибо они кросс-платформенные. |
|
Так ведь эта, мучатся меньше больше! Bloodiness пишет: цитата: | Кому, как не мне знать, что он не тролль :3 |
|
ви забираете свои слова обратно?
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 14:35. Заголовок: >> Ну тогда ..
>> Ну тогда тебе нет никаких причин отказываться от си, а прибинженный к игре питон, в котором будет логика, пойдёт игре только на пользу. Логику как раз тогда сможешь делать в своё удовольствие, если все массовые операции упихать в ядро, то о производительности логики можно сильно не заботиться Боюсь, что 1. Нужно чтение документации по либам для графики и прочего для Си, чтобы написать свое ядро. Не оптимально. Я смотрю в сторону явы: на яве уже есть готовые библиотеки для игровой графики (как 2D, так и 3D). 2. Логика игры проста как три копейки, но есть проблема с расчетами в плане игровой физики. Тут как ни крути, Python и Java могут отставать в производительности от Си. Опять же есть мысль прикрутить натив методы к яве. 3. Питон вообще хорошая мысль, но я сомневаюсь. Я бы с удовольствием написал всю игру на PyGame, скорее всего даже не заботясь о производительности, ибо местами может выручить медленная сглаженная анимация, которая может значительно упростить расчеты. Но тут идет такая проблема, как установка игры на компьютере конечного пользователя. Хочется сделать игру доступной на всех операционных системах.
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 14:38. Заголовок: >> ви забира..
>> ви забираете свои слова обратно? Невозможно забрать свои слова обратно, но я сожалею о сказанном. Но местами он не пренебрегает грязными софисткими приемчиками!
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 13.07.10 14:39. Заголовок: Bloodiness пишет: Х..
Bloodiness пишет: цитата: | Хочется сделать игру доступной на всех операционных системах. |
|
и даже макос? :3 Кого то мне это напоминает. Bloodiness пишет: цитата: | Нужно чтение документации по либам для графики и прочего для Си, чтобы написать свое ядро. |
|
кстати, ГЛ вполне рисует и 2д графику. Bloodiness пишет: цитата: | Но местами он не пренебрегает грязными софистскими приемчиками! |
|
Таки все мы такие!
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 14:46. Заголовок: >> и даже ма..
>> и даже макос? :3 Кого то мне это напоминает. Пофиг на макозасранцев. Мысль в том, чтобы игра была доступна подвендой без проблем. Радостный убунтоид, скачав игру, сделает sudo apt-get install python-pygame, а вот виндузятник впадет в непролазный ступор. >> кстати, ГЛ вполне рисует и 2д графику. Да-да-да. Мою нехоть можно характеризовать так: мне лень лезть в GL. >> Таки все мы такие! Ну ведь мы не где-нибудь, а на ABP!
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 13.07.10 14:50. Заголовок: Bloodiness пишет: Д..
Bloodiness пишет: цитата: | Да-да-да. Мою нехоть можно характеризовать так: мне лень лезть в GL. |
|
линуксоиды тоже юзают же! А вот как написать программу на си и сделать ее фапабельной на линуксе, я , к сожалению, не знаю. Как то можно, но как... Bloodiness пишет: цитата: | Ну ведь мы не где-нибудь, а на ABP! |
|
НЪТ! Это свободный форум же!
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 13.07.10 14:50. Заголовок: 1. Да, это вообще сл..
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 13.07.10 14:55. Заголовок: А по поводу GL и гра..
А по поводу GL и графики - не знаю, как с остальными графическими длл, но на уровне движка GL выглядит очень даже удобно. Фигуры рисуются по вершинам, экран и сами фигуры можно быстро вращать и трансформировать средствами видеокарты. Наложение текстур и освещение есть и в 2д и в 3д режимах, можно использовать свои варианты освещения, но это расширение гл. Легко потом расширить до 3д или сделать небольшое 3д в самой игре, но это уже от игры зависит. С физикой есть варианты - можно взять готовую или реализовать самостоятельно. Не так уж и страшен там чёрт...
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 15:03. Заголовок: >> А по пово..
>> А по поводу GL и графики - не знаю, как с остальными графическими длл, но на уровне движка GL выглядит очень даже удобно. Фигуры рисуются по вершинам, экран и сами фигуры можно быстро вращать и трансформировать средствами видеокарты. Наложение текстур и освещение есть и в 2д и в 3д режимах, можно использовать свои варианты освещения, но это расширение гл. Легко потом расширить до 3д или сделать небольшое 3д в самой игре, но это уже от игры зависит. С физикой есть варианты - можно взять готовую или реализовать самостоятельно. Не так уж и страшен там чёрт... Физику скорее всего придется самому писать. Физику описать я в состоянии, а вот вести работу с графикой для меня трудно, так как требует постигать библиотеки к языкам, к которым у меня не лежит душа. >> 3. http://docs.python.org/extending/embedding.html<\/u><\/a> Ссылка полезная, но я вел речь о доступности самой библиотеки PyGame, которую придется конечному пользователю ставить вручную.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 13.07.10 15:13. Заголовок: нет, я в том плане, ..
нет, я в том плане, что питон можно в качестве интерпретатора скрипта встроить как для linux, так и для win Виндовый блендер, к примеру, за собой таскает встроенного питона и некоторое количество вкомпилированных библиотек. Вроде хватает для жизни. Кстати, GL есть и под питона вроде, можно сначала там освоиться
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 13.07.10 15:22. Заголовок: >> Кстати, G..
>> Кстати, GL есть и под питона вроде, можно сначала там освоиться У себя нашел Beginning Game Development with Python and Pygame - From Novice to Professional [Will McGugan] (2007): CHAPTER 12 Setting the Scene with OpenGL Подтверждаю. Спасибо. Надеюсь не забью и почитаю :3
|
|
|
|
| |
Настроение: Ох, как это всё похоже на всё, что на что-то, однако, похоже, однако!
Зарегистрирован: 28.06.10
|
|
Отправлено: 14.07.10 11:24. Заголовок: Archi пишет: Blood..
Archi пишет: цитата: | Bloodiness Вас ждут тонны кирпичей. Ждите. |
| Ждём пока кирпичи ждут пока мы ждём пока кирпичи ждут пока...
|
|
|
|
| |
Зарегистрирован: 01.01.70
|
|
Отправлено: 14.07.10 15:10. Заголовок: scratch.mit.edu :sm..
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 14.07.10 15:38. Заголовок: >> scratch.m..
>> scratch.mit.edu Ваш псто так же глуп и бессмыслен, как и три смайлика в нем.
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 27.07.10 17:22. Заголовок: Bloodiness Как прогр..
Bloodiness Как прогресс? Не желаете поделиться с нами?
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 27.07.10 18:31. Заголовок: Ох. О каком прогресс..
Ох. О каком прогрессе может идти речь? Я опять таки скажу: я не владею ни одним из языков, которые бы подошли для подобной разработки, на необходимом уровне. По сути есть вот сколько проблем: - Написать автомат для обработки текстовых формул (игра имеет отношение к матану). По сути половину я уже написал на Си, но там есть один нюанс, а именно...
- Написать структуры данных для хранения этих самых формул и их вычисления (при рандомном количестве переменных). Ох. Я не придумал как это можно реализовать на Си. Задумка была написать бинарное дерево, а вот хрен с два.
- Написать простейший физдвиг. Колижон детекшон, три закона Ньютона плюс феньки. Это пишется проще простого.
- Написать вывод графики. It's impossible for me.
Что я написал, написал давно еще до того, как я стал тут топикстартером. Иначе говоря - написал я только загрузчик tga на яве, но он к игре отношения не имеет. Пока я отложил идею. Возможно в будущем напишу на Pygame, если поборю лень.
|
|
|
|
| |
Настроение: ага
Зарегистрирован: 03.06.10
|
|
Отправлено: 27.07.10 18:32. Заголовок: Bloodiness обратись ..
Bloodiness обратись к dierg'у! может он поможет. он в чате в цкайпе есть.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 27.07.10 18:43. Заголовок: Написать автомат для..
цитата: | Написать автомат для обработки текстовых формул (игра имеет отношение к матану). По сути половину я уже написал на Си, но там есть один нюанс, а именно... |
| могу дать если надо, только позже чутка, в августе. цитата: | Написать структуры данных для хранения этих самых формул и их вычисления (при рандомном количестве переменных). Ох. Я не придумал как это можно реализовать на Си. Задумка была написать бинарное дерево, а вот хрен с два. |
| В общем тоже не вижу проблемы - дин-аллок и p-коды по типу скриптовых цитата: | Написать простейший физдвиг. Колижон детекшон, три закона Ньютона плюс феньки. Это пишется проще простого. |
| Вот уж где матан попрёт то. Это действительно не так просто, как выглядит. цитата: | Написать вывод графики. It's impossible for me. |
| Ну а тут GL, GL и ещё раз GL...
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 27.07.10 18:47. Заголовок: Bloodiness пишет: Н..
Bloodiness пишет: No problems же. Bloodiness пишет: цитата: | Написать простейший физдвиг. Колижон детекшон, три закона Ньютона плюс феньки. Это пишется проще простого. |
|
Омг. А вот это уже сложно для меня... Bloodiness пишет: цитата: | Написать структуры данных для хранения этих самых формул и их вычисления (при рандомном количестве переменных). Ох. Я не придумал как это можно реализовать на Си. Задумка была написать бинарное дерево, а вот хрен с два. |
|
Да вроде тоже ничего особо сложного. Хотя сам не сделаю, да. Bloodiness пишет: цитата: | Написать автомат для обработки текстовых формул (игра имеет отношение к матану). По сути половину я уже написал на Си, но там есть один нюанс, а именно... |
|
А именно?!!!??
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 27.07.10 18:48. Заголовок: c4tnt пишет: Ну а т..
c4tnt пишет: цитата: | Ну а тут GL, GL и ещё раз GL... |
|
Именно же!
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 27.07.10 19:28. Заголовок: >> могу дать..
>> могу дать если надо, только позже чутка, в августе. Да у меня уже есть алгоритм. Могу на python нарисовать, потом просто нужно будет портировать на Си. А можно и не портировать :3 >> В общем тоже не вижу проблемы - дин-аллок и p-коды по типу скриптовых Ой, да беда писать это на Си. Вот на жабке проще простого. На питонах мне хватит класса в 30 строк. >> Вот уж где матан попрёт то. Это действительно не так просто, как выглядит. >> Омг. А вот это уже сложно для меня... Вы никак сговорились. У меня геймдевелопер знакомый, не знающий даже элементарного курса физики, пишет двиги на Си с плюсами. Мне хватит лишь почитать что предлагают опытные кодеры игрушек да написать систему обработки событий. Три закона Ньютона + колижон детекшон для двумерных объектов я думаю не сложен. Тем более объекты в большинстве случаев лишь прямоугольники. Матана там нет, как ни ищи. Нужно просто грамотно оптимизировать. >> Да вроде тоже ничего особо сложного. Хотя сам не сделаю, да. На Си это будет 2-3 структуры + 5-6 функций для работы с ними. Я представляю какую кашу из кода будут они представлять. >> А именно?!!!?? А именно следующий пункт же.
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 27.07.10 19:41. Заголовок: Bloodiness пишет: А..
Bloodiness пишет: цитата: | А именно следующий пункт же. |
|
facepalm мне... Bloodiness пишет: цитата: | На Си это будет 2-3 структуры + 5-6 функций для работы с ними. Я представляю какую кашу из кода будут они представлять. |
|
главное понимать что написано и чтобы работало, разве нет? Bloodiness пишет: Почти))) Но я высказал свое личное мнение, так как интегралов еще толком не знаю и высчитывать физику мне будет не так то просто.
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 27.07.10 20:01. Заголовок: >> главное п..
>> главное понимать что написано и чтобы работало, разве нет? Нужно чтобы было, во-первых, читабельно и презентабельно, во-вторых, тщательно прокомментированно. Если в яве я бы не потерялся в тоннах кода, благодаря встроенному javadoc в нетбинсе, то в Сях ой-вей. Любой тяжелый проект потребует перечитывать структуры и комментарии к ним, дабы вспомнить какими я к ним там функции определил. Сталкивался уже с подобным, очень неприятно. А работать должно определенно. LSD мне поможет! http://habrahabr.ru/blogs/arbeit/99345/<\/u><\/a> >> Почти))) Но я высказал свое личное мнение, так как интегралов еще толком не знаю и высчитывать физику мне будет не так то просто. Интегралы не нужны в проектах типа игрушек. Это вам не моделировать гравитационное взаимодействие 1.4 * 1013 тел, где без знаний в динамике сплошных сред не обойтись(я не осилил). А тут так. Ерундень.
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 27.07.10 20:22. Заголовок: Bloodiness пишет: L..
Bloodiness пишет: ок. Bloodiness пишет: цитата: | Интегралы не нужны в проектах типа игрушек. Это вам не моделировать гравитационное взаимодействие 1.4 * 1013 тел, где без знаний в динамике сплошных сред не обойтись(я не осилил). А тут так. Ерундень. |
|
ну если так, то вполне возможно.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 27.07.10 20:24. Заголовок: Интегралы не нужны в..
цитата: | Интегралы не нужны в проектах типа игрушек. Это вам не моделировать гравитационное взаимодействие 1.4 * 1013 тел, где без знаний в динамике сплошных сред не обойтись(я не осилил). А тут так. Ерундень. |
| Хо ))) ну вот получает у нас произвольная выпуклая 2д фигурка импульс. после этого она очевидно начинает вращаться вокруг центра масс и получает некоторое ускорение. Для того, чтобы найти вращательный момент, нужно знать центр масс фигуры и её тензор инерции. Оба считаются интегрированием по этой фигуре, в данном случае - по плоскости будет. цитата: | Я представляю какую кашу из кода будут они представлять. |
| зачем сразу кашу??? а не нравится API-стиль - используй плюсовые классы.
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 27.07.10 20:53. Заголовок: >> Для того,..
>> Для того, чтобы найти вращательный момент, нужно знать центр масс фигуры и её тензор инерции. Оба считаются интегрированием по этой фигуре, в данном случае - по плоскости будет. Да, про вращение я не подумал, но обстановки это не меняет. Центр масс считать у любой плоской фигуры просто, даже исключая тот факт, что практически все игровые объекты я представлял квадратами. Потом; относительно тензора инерции(мы привыкли называть его осевым моментом инерции), это достаточно просто. Этим я не занимался(да и честно я подзабыл уже основные принципы вращательного движения), но я не считаю что это ой-вей как сложно. Мне достаточно найти технической литературы или дождаться механики на первых курсах. Для всех объектов момент инерции можно рассчитать заранее на бумаге или в Wolfram Mathematica. Остальное не сложно. >> зачем сразу кашу??? а не нравится API-стиль - используй плюсовые классы. Так называемый API-стиль никак, кроме кашей, назвать нельзя. Один неймспейс подразумевает присобачивание к именам функций префиксов. Мне это не нравится, я привык работать с пакетами. Мне так же не нравится невозможность импортить из заголовков те функции, переменные и структуры, которые нужны мне. Вот например мне нужна расширяемая структура, которую я могу создать на ходу. Для malloc мне нужно знать размер. Я обычно выношу его в константу, но нигде кроме как того заголовка, где все функции для работы с ней, она не нужна. В конце концов подобного хлама накапливается много, а я сторонник чистого кода. Плюсовые классы это та еще потеха. Под плюсы я не буду писать даже под дулом пистолета.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 27.07.10 20:59. Заголовок: Один неймспейс подра..
цитата: | Один неймспейс подразумевает |
| Сделай много неймспейсов цитата: | Для malloc мне нужно знать размер |
| Use ++, Luke. Там есть sizeof и new цитата: | Плюсовые классы это та еще потеха. Под плюсы я не буду писать даже под дулом пистолета. |
| ну и чем же они радикально отличаются от остальных, если не использовать наследование (а зачем оно здесь?) и динамическую типизацию (а она то здесь зачем?) P.S. Вполне согласен - для статичных форм можно и предварительно посчитать тензор и центр масс. Но неужели там действительно будут только простые и одинаковые формы? Вопрос коллижн-детекта тоже не особо однозначен - во первых continious или нет. Во вторых это нужно сделать быстро, а в третьих нужно находить точки соприкосновения тел и делать это весьма быстро - тут уже придётся придумывать наиболее подходящую структуру для хранения объектов. P.P.S. Это будет случаем не игра про сражение двух запрограммированных роботов?
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 27.07.10 21:29. Заголовок: >> Use ++, L..
>> Use ++, Luke. Там есть sizeof и new Свое отношение к плюсам я уже высказал. В Си тоже есть sizeof. >> ну и чем же они радикально отличаются от остальных, если не использовать наследование и динамическую типизацию Тем, что на других языках писать приятно и удобно, а на Си++ это убожество! Блоки private, public и protected не доставляют, по мне лучше объявить все поля перед объявлением методов дабы повысить читабельность. Нет интерфейсов, а они бы пригодились. Наследование не уверен, что совсем не нужно. Объекты по сути все одинаковы, поэтому можно написать базовый абстрактный класс(даже скорее всего надо). Упаси Б-г писать это на Си++ через их виртуальные функции и прочую ненужную лабуду. Там синтаксис страшен. В конце будет та же каша, только с классами! >> P.S. Вполне согласен - для статичных форм можно и предварительно посчитать тензор и центр масс. Но неужели там действительно будут только простые и одинаковые формы? Вопрос коллижн-детекта тоже не особо однозначен - во первых continious или нет. Во вторых это нужно сделать быстро, а в третьих нужно находить точки соприкосновения тел и делать это весьма быстро - тут уже придётся придумывать наиболее подходящую структуру для хранения объектов. Да, объекты весьма однообразны. С колижон детекшон не разбирался, но да это будет самая неприятная часть. Но по сути аналитгеометрия та же. >> P.P.S. Это будет случаем не игра про сражение двух запрограммированных роботов? Не. То боян, а вот та идея - небоян. Она коллективная. Вообщем раз уж далее нет смысла не рассказывать про суть, то вот она: - У нас есть игровое поле, на котором расположены блоки. Пусть будут передвигаемые(вес фиксирован) и статичные. Ну для экспрессии можно добавить еще и те, которые взрываются если мгновенное изменение импульса будет более какой-то величины.
- У нас есть корабль(или нечто другое с двигателями), ради казуальности(если это слово вообще тут применимо) можно сделать бесконечный запас топлива. Корабль умеет перемещаться по горизонтали и вертикали(очевидно же!).
- А наша цель - доставить корабль в точку назначения.
А вот самая фишка заключается в том, как нужно довести корабль. Нужно написать две функции, описывающие зависимость силы тяги от времени по X и Y. Сила тяги может уйти в минус - тело будет двигаться в противоположную сторону. Вот в этом весь фан!
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 27.07.10 21:43. Заголовок: игра для любителей и..
игра для любителей интегрировать и дифференцировать? цитата: | Блоки private, public и protected не доставляют, по мне лучше объявить все поля перед объявлением методов дабы повысить читабельность. |
| А в чём суть проблемы? Можно же несколько блоков в одном классе делать если надо. цитата: | Наследование не уверен, что совсем не нужно. |
| В самом ядре наследование врядли нужно, не верю, что физика настолько похожа на рендер и контроллер питона и скриптов... А логику игры я уже предлагал сделать на питоне, к чему нет никаких препятствий. цитата: | через их виртуальные функции и прочую ненужную лабуду |
| Виртуальные функции нужны только во вполне определённых случаях. Хотя в языках с RTTI ещё круче - там просто все функции виртуальные. PS цитата: | У меня геймдевелопер знакомый, не знающий даже элементарного курса физики |
| KNOW HOW: Заходишь на геймдев и читаешь статью про солверы. Можно даже не читать и просто скоммуниздить код
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 27.07.10 21:54. Заголовок: >> игра для ..
>> игра для любителей интегрировать и дифференцировать? Просто для гиков. Интегрированием там мало чего можно добыть. Нужно взять интеграл от ускорения, скорости и только потом получить координату. А теперь вспомним, что на поле стоят преграды влияющие на траекторию в значительной степени. >> А в чём суть проблемы? Можно же несколько блоков в одном классе делать если надо. Я никогда не писал самостоятельные классы под плюсы и не хочу этим заниматься. Как ни крути, читабельность будет на нуле. >> В самом ядре наследование врядли нужно, не верю, что физика настолько похожа на рендер и контроллер питона и скриптов... А логику игры я уже предлагал сделать на питоне, к чему нет никаких препятствий. Тогда уж стоит всю игру писать на питоне. А насчет наследования не знаю, не думал об архитектуре. Просто намек был на абстрактный GameObject какой-нибудь. ADDED: >> KNOW HOW: Заходишь на геймдев и читаешь статью про солверы. Можно даже не читать и просто скоммуниздить код Нет, это не его метод. Фрилансер, пишущий статьи на wincode, думаю не будет так делать.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 27.07.10 22:06. Заголовок: Кусочек дума... Врод..
Кусочек дума... Вроде всё вполне читабельно Скрытый текст class idPhysics_Base : public idPhysics { public: CLASS_PROTOTYPE( idPhysics_Base ); idPhysics_Base( void ); ~idPhysics_Base( void ); void Save( idSaveGame *savefile ) const; void Restore( idRestoreGame *savefile ); public: // common physics interface void SetSelf( idEntity *e ); void SetClipModel( idClipModel *model, float density, int id = 0, bool freeOld = true ); idClipModel * GetClipModel( int id = 0 ) const; int GetNumClipModels( void ) const; void SetMass( float mass, int id = -1 ); float GetMass( int id = -1 ) const; void SetContents( int contents, int id = -1 ); int GetContents( int id = -1 ) const; .... ....
| И даже статью не посмотрит ??? PS. Прошу прощения, но отступы в коде навернумшись, но они там были PPS. Мысль игры любопытная, но надо сделать это вкусным. А то я игрушку Gravity с клавиатуры то еле прохожу, а тут всё ещё брутальнее будет.
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 27.07.10 22:25. Заголовок: >> И даже ст..
>> И даже статью не посмотрит ??? Может и посмотрит :3 Я не интересовался такими подробностями. >> Кусочек дума... Вроде всё вполне читабельно Это остров в море. Но кусок подобран неплохо. Я не нашел к чему придраться. :3 Синтаксис плюсов мне в целом не понятен. Куча интуитивно непонятных вещей: двоеточие как указатель наследования, вот эти float GetMass( int id = -1 ) const; мне тоже не ясны. Я не буду утверждать что в питоне все понятнее, особенно многострочные рекурсивные лямбды. Но местами код выглядит презентабельнее. >> Мысль игры любопытная, но надо сделать это вкусным. А то я игрушку Gravity с клавиатуры то еле прохожу, а тут всё ещё брутальнее будет. Это родилось из идеи предсказать функцию по графику.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 27.07.10 22:30. Заголовок: Но кусок подобран не..
цитата: | Но кусок подобран неплохо. |
| Долго выбирать не пришлось - там все интерфейсные классы такие, да и неинтерфейсные тоже. float GetMass( int id = -1 ) const; float - тип GetMass - название функции (метода) int id - параметр = -1 - значение по умолчанию, метод можно будет вызывать без этого параметра const - константный метод, он не изменяет данные класса. Это можно не указывать если не планируется потом использовать константные рид-онли указатели. Фактически просто отмечает, что этот метод можно использовать даже если класс доступен только на чтение.
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 27.07.10 22:45. Заголовок: Си++ подвергнут крит..
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 27.07.10 22:51. Заголовок: явовские объекты не ..
явовские объекты не выносят мозг? любая AJAX библиотека по моему делает это на ура питон тоже иногда выглядит озадачивающе... Вот так, например: def average_vertexcolors(mesh): vertexcolors = {} vcolor_add = lambda u, v: [u[0]+v[0], u[1]+v[1], u[2]+v[2], u[3]+v[3]] vcolor_div = lambda u, s: [u[0]/s, u[1]/s, u[2]/s, u[3]/s] for i, f in enumerate(mesh.faces): # get all vcolors that share this vertex if not i%100: Blender.Window.DrawProgressBar(float(i)/len(mesh.verts), "Finding Shared VColors") col = f.col for j in xrange(len(f)): index = f[j].index color = col[j] r,g,b = color.r, color.g, color.b vertexcolors.setdefault(index, []).append([r,g,b,255]) i = 0 for index, value in vertexcolors.iteritems(): # average them if not i%100: Blender.Window.DrawProgressBar(float(i)/len(mesh.verts), "Averaging Vertex Colors") vcolor = [0,0,0,0] # rgba for v in value: vcolor = vcolor_add(vcolor, v) shared = len(value) value[:] = vcolor_div(vcolor, shared) i+=1 return vertexcolors
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 27.07.10 23:01. Заголовок: Ви берете специально..
Ви берете специально такие исходники :3 Я, честно говоря, готов некоторым кодерам отрезать пальцы по локоть за то, что порой код выкладывают нечитаемый как в вашем примере. Я привык писать с расчетом на то, что через какое-то время в код не заглянет страждующий и не спросит: "Какой мудак это писал?" Могу выложить свои исходники, у меня где-то валялась Conway's Game of Life на питоне. В яве вынесли мозг только wildcard types. Ох я не курю их до сих пор.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 27.07.10 23:20. Заголовок: это - кусочек бленде..
это - кусочек блендера. И эти скрипты там процентов на 40 выглядят так. Остальное чуть лучше
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 27.07.10 23:25. Заголовок: v = из соседнего ..
v = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,\ 28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,46,47,58,59,60,61,62,63,64,91,92,93,94,96,\ 123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,\ 151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,\ 171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,\ 191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,\ 211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,\ 231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254] из соседнего скрипта. Не знаю, для чего такой список, но уже страшно...
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 27.07.10 23:31. Заголовок: Могу представить. В ..
Могу представить. В модуле scipy есть штука для решения линейных систем. Нужно только матрицу сдать. Один мой знакомый физик ( :3 ) забивал в списки странные матрицы, которые выверял по законам Кирхгофа, дабы рассчитать цепь. И не такое может понадобится. У себя нашел: # The most fucking awesome codestyle: (lambda stack: [ token.isdigit() and (stack.append(float(token)) or True) or (stack.append( { '+': float.__radd__, '-': float.__rsub__, '*': float.__rmul__, '/': float.__rdiv__ } [token] (stack.pop(), stack.pop()))) for token in raw_input('>>> ').split() ] and stack) ([]) [0] О, это моя гордость. Калькулятор ОПЗ в одну лямбду.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 27.07.10 23:46. Заголовок: В общем губит людей ..
В общем губит людей не пиво... нельзя же из за отдельных интересных личностей считать синтаксис языка программирования ужасным. Это я к тому, что и на яве и на питоне и на си можно вполне писать красиво при некотором желании.
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 28.07.10 10:49. Заголовок: >> Это я к т..
>> Это я к тому, что и на яве и на питоне и на си можно вполне писать красиво при некотором желании. К Си++ я все равно не склоняюсь. Вон те же книги. У меня есть Липпмана книга "Весь C++ от азов до совершенства" в 1к страниц в конце которой написано: "Ололо, теперь вы знаете Си++ trollface.jpg". И CoreJava Кея Хорстманна в 800 страниц, в которой после 300 страниц написано: "А теперь вы знаете Java, дак давайте же писать программы!" Си++ требует опять же полного погружения в свои дебри, ибо любая неосторожность в виде неправильно перегруженного оператора (перегрузка, к слову, почти не нужна) или ошибочка при работе с указателем утопит программиста в море отладки. Мне просто лень тратить время на изучение этого языка. Уж лучше Lisp, уж лучше Lisp. По поводу читабельности программ - да, криворукие близорукие кодеры всегда вставят ложку дегтя. У любого языка есть такие почитатели. Вот только у Си++ их больше, в связи с любовью писать в своем "неповторимом" стиле.
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 28.07.10 11:41. Заголовок: Bloodiness пишет: С..
Bloodiness пишет: цитата: | Си++ требует опять же полного погружения в свои дебри, ибо любая неосторожность в виде неправильно перегруженного оператора (перегрузка, к слову, почти не нужна) или ошибочка при работе с указателем утопит программиста в море отладки. |
|
То есть... вы хотите сверхвысокоуровневый язык программирования? Зато, если подумать, там можно найти все что надо. Ведь не начал же ты писать программу на питоне или яве? А почему? Только не говорите мне что просто лнь. Было очень серьезное препятствие, по всей видимости.
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 28.07.10 11:56. Заголовок: >> То есть....
>> То есть... вы хотите сверхвысокоуровневый язык программирования? Я хочу удобный язык программирования. В Си я увидел удобство, но он немного ограничен, хотя для такого языка это не критично. Си++ я считаю неудобным и уже тысячу раз об этом заикался. >> Ведь не начал же ты писать программу на питоне или яве? А почему? Только не говорите мне что просто лнь. Во-первых, действительно лнь; во-вторых, на питоне или яве я не стал писать ибо боялся, что скорость игры будет убита мат-расчетами. Представьте, что нужно для каждого момента считать кастомную функцию - а значит разворачивать бинарное дерево операторов. Снова и снова. Если за питон я еще не так сильно боюсь, ибо он проверен временем + можно поставить psycho, то за яву я так сказать не могу. Выходит: ява кроссплатформенная, но проблемы со скоростью; питон кроссплатформенный, но проблемы с последующим распространением (тащить библиотеку pygame, и, если делать exe, размер программы перевалит за 40Мб). Т___т!
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 28.07.10 12:51. Заголовок: Вот вам и польза чай..
Вот вам и польза чайного листа! Си++ не убивает скорость, не требует сторонних библиотек, а то что там есть новые функции, которые можно(а не нужно) использовать, так это скорее плюс, чем минус. Да, его надо знать глубже чем хочется. Лнь надо перебороть.
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 28.07.10 13:01. Заголовок: >> Си++ не у..
>> Си++ не убивает скорость, не требует сторонних библиотек Си++ убивает скорость разработки. >> Да, его надо знать глубже чем хочется. Лнь надо перебороть. Ради чего? Ради того, чтобы забить себе голову ненужным мне языком? Вся глубина Си++ - это плата за ошибки, которые иногда допускает программист. А она порой слишком велика. Учить Си++ ради того, чтобы написать игрушку я не хочу, а написать прикладное на Си++ - головная боль, и на этом месте я обойдусь питоном и явой.
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 28.07.10 13:52. Заголовок: Ну в таком случае ду..
Ну в таком случае думаю лучше написать на питоне... Идея мне нравится, хотелось бы увидеть это наяву) И да, я конечно ламер, но нельзя ли обрезать библиотеку?
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 28.07.10 13:59. Заголовок: >> И да, я к..
>> И да, я конечно ламер, но нельзя ли обрезать библиотеку? Это называется скоммуниздить исходники. :3 Не к каждой такое прокатит. Да и местами библиотека содержит кучу связанных элементов. У pygame должны быть share objects на Си.
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 28.07.10 14:52. Заголовок: Bloodiness пишет: е..
Bloodiness пишет: цитата: | если делать exe, размер программы перевалит за 40Мб |
|
вот к этому
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 28.07.10 14:56. Заголовок: С pygame не прокатит..
С pygame не прокатит, предвижу.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 28.07.10 15:06. Заголовок: Вся глубина Си++ - э..
цитата: | Вся глубина Си++ - это плата за ошибки, которые иногда допускает программист. |
| Вся тормознутость явы имеет те же корни, так что тут простой выбор. Или глубина или тормоза. И таки да. Как так неудачно можно перегрузить оператор в сях, чтобы это вызвало тонны отладки???
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 28.07.10 15:44. Заголовок: Bloodiness пишет: С..
Bloodiness пишет: цитата: | С pygame не прокатит, предвижу. |
|
ну... кто знает, кто знает c4tnt пишет: цитата: | И таки да. Как так неудачно можно перегрузить оператор в сях, чтобы это вызвало тонны отладки??? |
|
довольно закономерный вопрос))
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 28.07.10 15:49. Заголовок: >> И таки да..
>> И таки да. Как так неудачно можно перегрузить оператор в сях, чтобы это вызвало тонны отладки??? В Москве нам давали небольшой тест по проге. Последним заданием давались шесть программ на разных ЯП, в каждой была ошибка, характерная для определенного ЯП. В яве было использование == вместо .equals() для сравнения двух Integer. В сях была штука с перегрузкой операторов. Оригинала теста у меня конечно же нет, но собака там зарылась в том, что перегруженный оператор обладал не тем приоритетом, которым бы хотелось или что-то в этом роде. >> Вся тормознутость явы имеет те же корни, так что тут простой выбор. С тормозами бороться проще. Оптимизация, JIT и мнемоизация(недавно прочитал об этом методе, понравилось) спасут. Да тут еще на помощь приходит профилировщик. Иными словами, у явы уже сотни готовых решений для прикладного программирования. В Си++ конечно есть Qt, но команда Qt, как я слышал, написала слишком много велосипедов. Си++ не предоставляет удобную работу. Я пытался по WorldCpp написать простую прогу с сокетами - хрен там валялся. Проблемы с кодировкой + сама по себе немного дебильная реализация сокетов, которую я не осилил, ибо про себя сказал: "Да пошло оно к чертям!" - И перелез на питон. Как вы например реализуете парсер того же няша на Си++?
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 28.07.10 17:25. Заголовок: парсер, прошу прощен..
парсер, прошу прощения, кого???? цитата: | С тормозами бороться проще. |
| Чтобы бороться с тормозами, нужна адекватная поддержка со стороны языка. Ни разу не слышал об выровнянном выделении памяти в яве, например. Да и возможности специализировать контейнер тоже нету там, в си она есть, поскольку контейнер пишешь сам. JIT - это всё же злое колдунство, как и любой другой процесс компиляции. Да ещё и сама компиляция занимает некоторое время, а большие программы могут компилироваться довольно долго. Мнемонизация - это, я так понимаю, p-коды. Тут скорее если в скриптовом языке этого нет, то его можно сразу считать нехорошим и негодным в плане быстродействия.
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 28.07.10 17:54. Заголовок: >> парсер, п..
>> парсер, прошу прощения, кого???? Teh Задание: написать прогу, которая в качестве аргумента принимает число, а возвращает псто с няша соответствующего указанному числу. http://nya.sh/<\/u><\/a> >> Чтобы бороться с тормозами, нужна адекватная поддержка со стороны языка. Ни разу не слышал об выровнянном выделении памяти в яве, например. Да и возможности специализировать контейнер тоже нету там, в си она есть, поскольку контейнер пишешь сам Вот отсюда и вылетают ошибки. Оно не нужно. Лучше уж предоставить распределение памяти виртуальной машине. >> Да ещё и сама компиляция занимает некоторое время, а большие программы могут компилироваться довольно долго. Это же JIT. От размера программы ничего не зависит. >> Мнемонизация - это, я так понимаю, p-коды. Не знаю, что есть р-коды, но вероятнее всего нет.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 28.07.10 18:22. Заголовок: Нда... ТЗ, бессмысле..
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 28.07.10 18:59. Заголовок: >> Нда... ТЗ..
>> Нда... ТЗ, бессмысленное и беспощадное... Мне пригодилось некогда. >> Вот быстренько налуркал мини-терминал на сях: Вот один из примеров, когда я смотрю на код и говорю: "Так пишут только мудаки!" Невменяемые конструкции в примере детектед. Типичный стиль любого плюсиста. >> Да, с тормозами бороться не нужно, пусть они нейтрализуют закон Мура и всё будет хорошо Вы же написали очевидный бред. Я все вел к тому, что бороться с тормозами нужно путем оптимизации, а не рассчитывать на то, что пара сотен лишних миллисекунд ничего не решают. Нужно писать эффективные алгоритмы, а не отмазываться тем, что "мне не дают управление памятью, поэтому все это тормозит!" У явы есть куча рекомендаций по использованию тех или иных структур данных в зависимости от ситуации, а так же несколько правил при разработке десктопных приложений. Конечно находятся те, кто не придерживается их, но им нужно отрывать руки с корнем. >> Реальность с вами не согласна Еще один бред же. JIT не компилирует всю программу, он лишь переводит некоторые циклы и прочие повторяющиеся блоки кода в машинный код, дабы увеличить производительность. Долгая компиляция - это удел больших программ на Си++. >> А что есть мнемонизация? Способ, позволяющий уменьшить время на сложные расчеты, путем заимствования куска оперативной памяти. Например нам нужно написать очень точный синус. Для этого будем считать рядами(пока забьем на то, что готовое решение уже есть в стандартной библиотеке). Расчет рядов - дело трудоемкое. Синус периодичен. Сперва снимем период с аргумента, а потом сделаем так: заводим хештаблицу вида (число;результат), проверяем есть ли там уже этот аргумент в качестве ключа - если нет, считаем и заносим в таблицу, иначе извлекаем из таблицы готовый результат, экономя время.
|
|
|
|
| |
Настроение: нейтральное
Зарегистрирован: 12.06.10
|
|
Отправлено: 28.07.10 19:09. Заголовок: Зачем объяснять кита..
Зачем объяснять китайцу, что палочками есть неудобно?
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 28.07.10 19:16. Заголовок: >> Зачем объ..
>> Зачем объяснять китайцу, что палочками есть неудобно? Кстати солидарен. Ваши попытки убедить меня, что ява неудобна и тормознута, а Си++ венец творения бессмысленны. Я же сказал, что писать на ней не собираюсь.
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 28.07.10 19:23. Заголовок: Bloodiness пишет: В..
Bloodiness пишет: цитата: | Ваши попытки убедить меня, что ява неудобна и тормознута, а Си++ венец творения бессмысленны. Я же сказал, что писать на ней не собираюсь. |
|
фейспалм же! Какая жаль... Причем явно вот такой. Скрытый текст
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 28.07.10 20:33. Заголовок: >> фейспалм ..
>> фейспалм же! Какая жаль... "Какая жаль", но вместо чего-то аргументированного я опять получаю в ответ какую-то ерундень.
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 28.07.10 20:46. Заголовок: Bloodiness пишет: &..
Bloodiness пишет: цитата: | "Какая жаль", но вместо чего-то аргументированного я опять получаю в ответ какую-то ерундень. |
|
Ну ессно, я же ламер. Просто вижу поверхность, а глубже забираться лнь. PS ламер пока. Может быть скоро буду кем то другим... может быть любителем)
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 28.07.10 20:57. Заголовок: Ну я так сказал, ибо..
Ну я так сказал, ибо речь о плюсах завел первым не я. Мне тут упорно доказывают, что надо писать на плюсах. А я упорно отказываюсь. ADDED: Ламерство - не преступление. Все начинали дилетантами.
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 28.07.10 21:03. Заголовок: Bloodiness пишет: Н..
Bloodiness пишет: цитата: | Ну я так сказал, ибо речь о плюсах завел первым не я. Мне тут упорно доказывают, что надо писать на плюсах. А я упорно отказываюсь. |
|
Не надо, а лучше было бы. Думаю для такого приложения не будет проблем и не будет допущено ошибок. Пусть и время разработки повышенное... Зато, не надо думать как подключать библиотеку или управлять тормознутостью. Ну оптимально же, это очевидно. Bloodiness пишет: цитата: | Ламерство - не преступление. Все начинали дилетантами. |
|
Дада... а я так сказать пытаюсь рассуждать.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 28.07.10 21:10. Заголовок: Ваши попытки убедить..
цитата: | Ваши попытки убедить меня, что ява неудобна и тормознута, а Си++ венец творения бессмысленны. |
| Где я утверждал то, что выделено красным??? цитата: | JIT не компилирует всю программу, он лишь переводит некоторые циклы и прочие повторяющиеся блоки кода в машинный код, дабы увеличить производительность. |
| Но милый кай, ведь у тебя будет в игре фреймцикл, который должен прокручиваться с частотой не менее 60 Hz чтобы злобные геймеры не закидали помидорами... А внутри него будет находиться вся физика, которую нельзя задать изначально и вся графика и даже вся логика - наверняка это весьма большой кусок кода? Или JIT скомпилирует только некоторые места в нём?
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 28.07.10 21:12. Заголовок: >> Не надо, ..
>> Не надо, а лучше было бы. Думаю для такого приложения не будет проблем и не будет допущено ошибок. Пусть и время разработки повышенное... Зато, не надо думать как подключать библиотеку или управлять тормознутостью. Ну оптимально же, это очевидно. В Си++ библиотеки подгружаются просто автоматом. Тормознутостью управлять надо и там и там. Просто в Си++ все сопряженно с головной болью, которую я испытывать не хочу. И это отнюдь не оптимально. ADDED: >> Где я утверждал то, что выделено красным??? Это гипербола. По сути весь диалог ведет к этому. Уж кому как не вам должно быть понятно, что инструмент мной уже выбран, и сколонять меня в сторону другого - бесполезное занятие. К слову, вы знакомы с другими ЯП, отличными от Си/Си++? >> Но милый кай, ведь у тебя будет в игре фреймцикл, который должен прокручиваться с частотой не менее 60 Hz чтобы злобные геймеры не закидали помидорами... А внутри него будет находиться вся физика, которую нельзя задать изначально и вся графика и даже вся логика - наверняка это весьма большой кусок кода? Или JIT скомпилирует только некоторые места в нём? Вы думаете я так хорошо знаком с технической частью? Ошибаетесь. Я не в курсе как поведет себя JIT в этой ситуации, я лишь знаю для чего он нужен. Очевидно, что некоторые участки будут скомпилированны по ходу. А какие именно я не знаю.
|
|
|
|
| |
Зарегистрирован: 02.06.10
|
|
Отправлено: 28.07.10 21:17. Заголовок: Bloodiness пишет: В..
Bloodiness пишет: цитата: | В Си++ библиотеки подгружаются просто автоматом. Тормознутостью управлять надо и там и там. Просто в Си++ все сопряженно с головной болью, которую я испытывать не хочу. И это отнюдь не оптимально. |
|
ну что же тогда делать? Давайте изобретем оптимальный ЯП чтоле
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 28.07.10 21:17. Заголовок: В Си++ библиотеки по..
цитата: | В Си++ библиотеки подгружаются просто автоматом. |
| Без STD в си с плюсами и без оных вполне возможно писать и требовательные игры так и пишут частенько PS. Посмотрел импорт думовской гейм-длл. Там есть только KERNEL32 и всё PPS. Знакомы и видели там те же самые прелести, что и в си. Следовательно читабельность кода зависит не от языка а от программиста, а значит нет смысла вешать всех собак на язык программирования. Я просто говорю о том, что адекватное и быстрое ядро для игры проще сделать на си, нежели на яве или питоне
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 28.07.10 21:21. Заголовок: >> ну что же..
>> ну что же тогда делать? Давайте изобретем оптимальный ЯП чтоле Зачем писать велосипед? Python уже есть.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 28.07.10 21:25. Заголовок: Зачем писать велосип..
цитата: | Зачем писать велосипед? Python уже есть. |
| а с какой скоростью на нём будет осуществляться скиннинг модели джоинтов так на сто?
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 28.07.10 21:34. Заголовок: >> а с какой..
>> а с какой скоростью на нём будет осуществляться скиннинг модели джоинтов так на сто? Профилируйте. Я не знаю. Вы сперва ответьте на все мои вопросы, прежде чем задавать ваши провокационные. ADDED: >> что адекватное и быстрое ядро для игры проще сделать на си Я сказал что-то против? Я за Си. Этот ЯП у меня не вызывает неприязни.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 28.07.10 21:44. Заголовок: Ладно, вопросы так в..
Ладно, вопросы так вопросы. 1. Зачем объяснять китайцу, что палочками не удобно? Затем, что в этот раз китайцу попался борщ вместо риса. 2. Вы думаете я так хорошо знаком с технической частью? Откуда мне это знать??? 3. Я сказал что-то против? Я за Си. Плюсы - это просто расширение возможностей си. Если виртуальные функции не используются, то они не попадут в результат. Если не используются классы, то они тоже не попадут в результат. Если код подходит для си компилятора, то разница нулевая, был ли использован компилятор C или C++. Но в C++ есть то, что поможет убрать сишную избыточность кода, почему бы это не использовать? 4. а с какой скоростью на нём будет осуществляться скиннинг модели джоинтов так на сто? Скрипт из блендера тратит на это около четверти секунды. Для игры это миллиарды световых лет. Отворматировал тот примерчик красиво - за что там отрывать руки то? #include <stdio.h> #include <string.h> #include <winsock2.h> #include <windows.h> #define PORT 31337 // Порт, через который идет подключение к серверу....21,80,25,110 и т.п. #define SERVERADDR "127.0.0.1" // Адрес сервера int main ( int argc, char* argv [ ] ) { char buff [ 1024 ] ; printf ( "TCP Client \n" ); if ( WSAStartup ( 0x202, ( WSADATA * ) &buff [ 0 ] ) ) { printf ( " WSAStart error %d \n ", WSAGetLastError ( ) ); return -1; } SOCKET my_sock ; my_sock=socket ( AF_INET, SOCK_STREAM, 0 ); if ( my_sock < 0 ) // { printf (" Socket ( ) error %d \n ", WSAGetLastError ( ) ); return -1; } sockaddr_in dest_addr ; dest_addr.sin_family=AF_INET; //инет коннектинг dest_addr.sin_port=htons ( PORT ); //порт HOSTENT *hst; // хост if ( inet_addr ( SERVERADDR ) !=INADDR_NONE ) dest_addr.sin_addr=inet_addr ( SERVERADDR) ; else if ( hst=gethostbyname ( SERVERADDR ) ) ( ( unsigned long * ) &dest_addr.sin_addr ) [ 0 ] = ( ( unsigned long ** ) hst->h_addr_list ) [ 0 ] [ 0 ] ; else { printf ( " invalid address %s \n ", SERVERADDR ) ; closesocket ( my_sock ) ; WSACleanup ( ) ; return -1; } if (connect ( my_sock, ( sockaddr * ) &dest_addr, sizeof ( dest_addr ) ) ) { printf (" Connect error %d \n ", WSAGetLastError ( ) ); return -1; } printf (" Соединение с %s успешно установлено \n\ Type quit for quit \n\n" , SERVERADDR ); int nsize; while ( ( nsize = recv ( my_sock, &buff[0], sizeof ( buff ) -1,0 ) ) !=SOCKET_ERROR ) { buff[ nsize ] =0; printf ( " S=>C: %s ", buff ) ; printf ( "S<=C: " ) ; fgets ( &buff [ 0 ] , sizeof ( buff ) -1, stdin ); if ( !strcmp ( &buff [ 0 ], "quit \n " ) ) { printf ( " Exit " ); closesocket ( my_sock ); WSACleanup ( ) ; return 0; } send ( my_sock, &buff [ 0 ], nsize, 0 ) ; } printf ( " Recv error %d \n", WSAGetLastError ( ) ); closesocket ( my_sock ) ; WSACleanup ( ) ; return -1; }
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 28.07.10 21:47. Заголовок: Опять таки вы преуве..
Опять таки вы преувеличиваете. 1. Игрушку эту можно написать и на питоне. 2. А таки не так хорошо с ней знаком. 3. Си++ никому не нужное, кроме геймдева, расширение. А вы все же проигнорировали один из моих вопросов. Ну что ж. Я повторюсь. Вы знакомы с каким либо ЯП, кроме Си/Си++? ADDED: >> char* >> if ( WSAStartup ( 0x202, ( WSADATA * ) &buff [ 0 ] ) ) Плюсисты опять не знают ставить ли звездочку с пробелом или без. Я же говорю для них не писаны стандарты. Вторая строка выглядит как говно. Я бы расстрелял. >> ( ( unsigned long * ) &dest_addr.sin_addr ) [ 0 ] = ( ( unsigned long ** ) hst->h_addr_list ) [ 0 ] [ 0 ] ; Кеп комментирует только определенные участки кода. Хлоп-хлоп. Это тоже по читабельности чуть выше брейнфака. >> if (connect ( my_sock, ( sockaddr * ) &dest_addr, sizeof ( dest_addr ) ) ) Codestyle такой codestyle. Питонщики негодуют. Даже PEP рекомендует не выделять скобки пробелами ибо это опять же чушь. Как обычно пихать в if выражения дабы снизить читабельности в разы. Fi-i-i-ine! >> while ( ( nsize = recv ( my_sock, &buff[0], sizeof ( buff ) -1,0 ) ) !=SOCKET_ERROR ) Это к примечанию выше. Такое выражение внутри цикла вызывает желание оторвать руки.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 28.07.10 21:50. Заголовок: тут: http://freed00m..
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 28.07.10 21:57. Заголовок: Вы игнорируете мой в..
Вы игнорируете мой вопрос.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 28.07.10 22:00. Заголовок: PPS. Знакомы и видел..
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 28.07.10 22:05. Заголовок: >> Нид моар?..
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 28.07.10 22:11. Заголовок: Слыхали, и даже дела..
Слыхали, и даже делали обратную операцию вручную. По поводу статьи - лично я придерживаюсь варианта C++ - это си с плюшками, а всяческие идеологии мне не особо интересны. Ну может я тоже получу сегодня ответы?
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 28.07.10 22:12. Заголовок: >> Ну может ..
>> Ну может я тоже получу сегодня ответы? А на все ваши вопросы я ответил, вот только вы на мои отвечали изворачиваясь. Ксо жалению сейчас довольно поздно, если будут еще вопросы, я продолжу дискуссию завтра. ADDED: Вопросы идеологии в статье не рассматривались. Вы видимо просто невнимательно читали.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 28.07.10 22:22. Заголовок: Конечно же, проблемы..
цитата: | Конечно же, проблемы, связанные с ошибками в компиляторах, проявляются очень редко. Собственно поэтому можно уже сейчас оценить круг задач, которые лучше решать при помощи C++, чем C (при наличии, конечно же, хороших навыков программирования в обоих языках): это практически все программы, от которых не требуется беспрерывная работа 24 часа в сутки. |
| Оттуда. Или игра будет крутиться сутками? цитата: | Кроме компилятора, большую сложность при программировании на C++ вызывает использование STL. Несомненно, библиотека шаблонов очень удобна и полезна, но это в идеале. К примеру, очень часты случаи, когда смена поставляемой с компилятором STL на STLport, приводит к тому, что программа начинает работать стабильнее. |
| Про использование STL в играх я уже говорил - оно криво, не надо этого делать. А на ошибки компилятора я не натыкался уже так давно... Вот пример потенциальной ошибки - исключение, возникшее в конструкторе класса. Класс после такого нельзя ни использовать ни корректно удалить. Но ведь исключения на самом деле - это именно исключительная ситуация. Я не знаю, зачем некоторые погромисты используют исключения как стандартный способ исполнения программы. Ошибка два - синглтон мейерса в многопоточных системах. Но существует мнение, что синглтон на самом деле сам по себе - одна большая ошибка... цитата: | while ( ( nsize = recv ( my_sock, &buff[0], sizeof ( buff ) -1,0 ) ) !=SOCKET_ERROR ) |
| Внимание - вопрос! Как было бы красивше?
|
|
|
|
| |
Настроение: fgsfds
Зарегистрирован: 09.07.10
|
|
Отправлено: 29.07.10 12:54. Заголовок: >> Оттуда. И..
>> Оттуда. Или игра будет крутиться сутками? Вырывать абзац из контекста привычный софистский прием. В той статье написано не многозначно, что Страуструп вместо того, чтобы сделать свой язык с блекджеком, начал усложнять уже готовый, да и с процедурным подходом. И сейчас продолжают усложнять. Идея фейловая изначально. >> Но ведь исключения на самом деле - это именно исключительная ситуация. Забивать на обработку исключительных ситуаций? Очень смешно. Раз. >> Я не знаю, зачем некоторые погромисты используют исключения как стандартный способ исполнения программы. Вам не доводилось встречаться с такими ситуациями, когда ввод неправильный? Или еще что-нибудь испорченно? try/catch в девяти случаях из десяти используется для того, чтобы записать что-то полезное в лог, что может потом пригодится при отлове багов выполнения. Вообще я не понял шутка это сейчас была или нет. Наверное да. >> Внимание - вопрос! Как было бы красивше? Никак. Конструкции в Си++ настолько убоги от рождения, что все время будут выглядеть так. Но - Цикл сделать в do/while.
- nsize присваивать какую-то шнягу внутри.
- -1 и 0 вынести в константы с именами, которые хоть что-то прояснят в этом убогом выражении.
- SOCKET_ERROR это вообще убийство. Опять же нет, чтобы взять нормальный человеческий try/catch плюсисты сделали какое-то говно. Хорстманн писал, чем нехороши функции, признак ошибки которых есть некое значение возврата.
Нет, я бы еще понял, если бы программист писал это чисто для себя, но это, блджад, пример работы с сотеками! Если бы там были выполнены хотя бы те четыре пункта, что я назвал, было бы хоть капельку читабельнее. И не надо мне сейчас писать, что мол это все криворукие программисты, ибо вы сами подкинули мне этот пример и сами спросили как было бы читабельнее - значит для вас это типичный codestyle. Значит я не ошибался и плюсисты плюют на соглашения и читабельность. Два. Я искренне боюсь, что у вас Си++ головного мозга. Городская поликлиника имени тов. Керригана и Ричи принимает всех желающих с 8:30 до 16:00.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 29.07.10 16:44. Заголовок: Внимание - вопрос! ..
цитата: | Внимание - вопрос! Как было бы красивше? |
| Не обязательно в си, в чём угодно, но именно с указанной функцией цитата: | Вообще я не понял шутка это сейчас была или нет. Наверное да |
| Увы.. это была не шутка. У некоторых отдельных товарищей исключение используется вполне штатно... Вот и сейчас... try-catch - это как бы блок отлова исключений. Функция доступа к сокету может вообще в норме крутиться в вечном цикле, пока наконец не подключится. То есть получаем использование исключений в штатном режиме? цитата: | SOCKET_ERROR это вообще убийство. Опять же нет, чтобы взять нормальный человеческий try/catch плюсисты сделали какое-то говно. Хорстманн писал, чем нехороши функции, признак ошибки которых есть некое значение возврата. |
| Пиши гневное письмо в микрософт - это их творчество.
|
|
|
|
| |
Настроение: НЕНАВИСТЬ
Зарегистрирован: 09.07.10
|
|
Отправлено: 29.07.10 17:27. Заголовок: Я раскрыл ваш секрет..
Я раскрыл ваш секрет. Знаете, люди видят не глазами, но мозгом. Причем наш здравый смысл уберегает наш мозг от того, чего нам видеть не следует. Вот и вас ваш здравый смысл уберегает от прочтения самых колких в вашу сторону абзацев. >> Увы.. это была не шутка. У некоторых отдельных товарищей исключение используется вполне штатно... А разве вы не должны, программируя класс, предоставить другим возможность обработать исключение так, как им это хочется? Использовать исключения по назначению как раз то, что нужно. >> Не обязательно в си, в чём угодно, но именно с указанной функцией Как я понял в проге реализуется следующее: #!/usr/bin/env python #-*- coding:utf-8 -*- from socket import socket from socket import error as SocketError from socket import timeout as SocketTimeout connection = socket() # а это сокет. connection_props = ('localhost', 10999) # параметры соединения. buffersize = 1024 # совершенно ненужная константа. # Не будем забывать, что сервер может забить на нас. connection.settimeout(10) # 10 секунд должно хватить, да? # Пытаемся подключиться: try: # Следующая строчка собственно и осуществяет подключение. connection.connect(connection_props) except SocketError, error: # Может случиться так, что "Connection Refused". print error.strerror exit(1) # Пытаемся провернуть передачу/прием данных: try: while True: nsize = connection.recv(buffersize) print 'Мы получили', nsize nsize = raw_input('Отправляем: ') if nsize == 'quit': break connection.send(nsize) except SocketTimeout, timeout: # Такое тоже случается. Вышло время ожидания. print str(timeout) except SocketError, error: # Если соединение было разорванно во время работы. print error.strerror finally: connection.close()
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 29.07.10 17:33. Заголовок: а теперь той же пито..
а теперь той же питоновской функцией делаем проверку возможности подсоединения к порту от 0 до 65536 (сканер портов) и получаем прекрасный пример программы, которая 95% своей жизни проводит внутри исключения, ведь так? Или это хорошо? цитата: | nsize = connection.recv(buffersize) print 'Мы получили', nsize nsize = raw_input('Отправляем: ') |
| Как бы nsize в оригинале был размером полученного пакета, но пофиг... nsize = connection.recv(buffersize) << здесь наверняка происходит выделение памяти под эту самую nsize, хотя в питоне строки константные и там выделение памяти вообще внезапная операция. Будем считать, что connection.recv(buffersize) выделяет каждый раз фиксированную строку по размеру входящего пакета. В сишном коде буфер один на всё и он выделяется только один раз, здесь - в каждом цикле один alloc? Выделение памяти - операция достаточно долгая, поэтому питон и тормозит.
|
|
|
|
| |
Настроение: НЕНАВИСТЬ
Зарегистрирован: 09.07.10
|
|
Отправлено: 29.07.10 18:03. Заголовок: >> а теперь ..
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 29.07.10 18:05. Заголовок: not tmp.connect_ex((..
цитата: | not tmp.connect_ex(('localhost', x)) |
| Но это же другая функция???
|
|
|
|
| |
Настроение: НЕНАВИСТЬ
Зарегистрирован: 09.07.10
|
|
Отправлено: 29.07.10 18:06. Заголовок: >> Но это же..
>> Но это же другая функция??? Я поражен вашей внимательностью, сэр.
|
|
|
|
| |
Зарегистрирован: 03.06.10
|
|
Отправлено: 29.07.10 18:10. Заголовок: и кстати да, аналога..
и кстати да, аналога того кода тоже с использованием recv из WSA, но более красивого по причине смены ЯП до сих пор нету.
|
|
|
Ответов - 179
, стр:
1
2
3
4
5
6
7
8
9
All
[только новые]
|
|