Пятница, 29 Ноября 2024, 22:31

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
afqДата: Пятница, 17 Января 2020, 15:03 | Сообщение # 321 | Тема: Я видел вроде как 13 конкурс, но не могу его найти
Разработчик
Сейчас нет на сайте
realm786, да, оно. спасибо.
afqДата: Пятница, 17 Января 2020, 13:49 | Сообщение # 322 | Тема: Я видел вроде как 13 конкурс, но не могу его найти
Разработчик
Сейчас нет на сайте
Где этот конкурс и о чём договорились? Если он начался, то дайте ссылку на конкурс, мне интересно.
afqДата: Пятница, 17 Января 2020, 11:53 | Сообщение # 323 | Тема: какой то глюк в opengl чтоли.
Разработчик
Сейчас нет на сайте
Ура товарищи, я догадался в чём проблема была, почему не рисовался куб в 3d. Очередной раз просматривал код. Напомню, у меня рисовался один треугольник вместо куба. Рисовал я куб без текстуры, только цветом. Вот в этом то и была проблема.
Я задавал цвет с помощью такой функции.
Код

void Model::set_color ( glm::vec4 color ) {
        this->color = color;
}

этот вектор, это массив из четырёх компонентов. И моя ошибка была в том, что я писал там где вершины.
Код

        glVertexAttribPointer ( 0, 3, GL_FLOAT, GL_FALSE, 0, m->frames[m->current_frame].v );
        glVertexAttribPointer ( 1, 3, GL_FLOAT, GL_FALSE, 0, m->frames[m->current_frame].vn );
        glVertexAttribPointer ( 2, 4, GL_FLOAT, GL_FALSE, 0, &m->color[0] );

И я совсем не подумал что из этого массива будет постепенно считываться по 4 компонента. то есть сначала вершины считываются 0 - 3, потом 4 - 7, а цвету то я всего 4 компонента задал. И из-за этого дальше считывались нули у m->color, потому что размер массива был всего четыре float. Я поменял этот color на uniform переменную. и теперь в отрисовке это выглядит так.
Код

glUniform4fv ( m->wiot.color_location, 1, &m->color[0] );

И всё, теперь куб рисуется без проблем. Теперь можно и 3d постигать, только я знаю - это сложно.
afqДата: Среда, 15 Января 2020, 08:28 | Сообщение # 324 | Тема: Одновременное выполнение 100 программ в игре.
Разработчик
Сейчас нет на сайте
Как думаете, нормально ли будет играть в такую игру, где в фоне запущено 100 программ. Объясню ситуацию по подробней. Например я создал язык ассемблера для игры и компилятор в типа машинный код. Также создал подобие языка си, чтобы можно было перевести в ассемблер, а потом и в машинный код. В игре например я захватываю компьютеры и вешаю на них свой софт, который в игре написал. Это будет например программы, которые создают цепочки серверов. Также например есть боты, которые свои команды выполняют. Например в каждой программе будет доступно за раз выполнить например 8 ассемблерных команд, и потом переходит к следующей программе в массиве. Если сделать так как я думаю, а это отдельные компьютеры со своими программами, то например чтобы сами программы выполнялись в отдельном потоке. И вот я не знаю как посчитать, будет ли нормально игра работать при объемных данных? Хотя если сделать это в отдельном потоке, то проблем думаю не будет, были бы проблемы с работой в том же потоке, где происходит цикл рисования графики. Но ещё этот объем работы очень сложный как я думаю, но хочу понять, правильно ли так делать? Для меня как бы логично делать так, что каждый компьютер это отдельный объект ( класс ), а не как то по другому. Хотя если делать по другому, то возможно можно сократить нагрузку на процессор или на память. Ещё сложность в реализации программы в игре, надо скорее всего ещё какой то буфер, в который будет сохраняться какие то сетевые данные, ведь в отдельном потоке эта программа пока выполниться со своим кодом. Блин, абсурд. Это не годиться. Чтобы была правильная работа отдельных компьютеров, нужно каждый компьютер запускать в отдельном потоке, и там уже чтобы выполнялись программы, которые работают на этом компьютере. А работу потоков уже возложить на ос своего компьютера ( настоящего ). Но это тоже проблема, много потоков это вроде плохо. Так что наверное надо рассматривать другой вариант какой-то.
afqДата: Среда, 15 Января 2020, 05:29 | Сообщение # 325 | Тема: машинные коды ассемблера
Разработчик
Сейчас нет на сайте
а блин, я вспомнил. Хотел же это сначала написать для поиска уязвимостей в ассемблерном коде. А потом уже придумал про внедрение кода. Но всё равно, блин, надо хорошенько подумать, стоит ли разрабатывать её. Ведь в ассемблере искать уязвимость это наверное вообще жуть.
afqДата: Вторник, 14 Января 2020, 14:21 | Сообщение # 326 | Тема: машинные коды ассемблера
Разработчик
Сейчас нет на сайте
FreddyDit, вот иди сюда https://gcup.ru/forum/12-102238-1 , а то я всё равно для игры сюжет не могу придумать, а так ты хоть заработаешь.
afqДата: Вторник, 14 Января 2020, 12:47 | Сообщение # 327 | Тема: машинные коды ассемблера
Разработчик
Сейчас нет на сайте
SharpSolaris, так то ты прав. На js есть шанс заработать может даже деньги. Если честно я не могу взять так и бросить си. Я так к нему привык, а именно мыслить этим языком. Я пробывал изучать другие языки, и даже js изучал, но в них не хватает той мощи, что есть в си. Это тоже моё мнение. Может зря я конечно начал с си и ассемблера, но на тот момент, когда я это изучал, у меня не было и мысли что я буду работать программистом. Поэтому я и изучал что попалось. Щас очень сложно перестроиться, да и подумать только, что если я буду работать программистом, то сидеть за компом по 8 часов. Не иногда я сижу часов по 6 с перерывами, но это когда я испытываю радость в написании кода и ещё что-то интересное. Но я не думаю что смогу выдержать проводить за компом за написанием кода по 8 часов в сутки, хотя фиг знает, я ещё так не пробывал. Обычно за написание сажусь когда есть желание.

А эту программу я забросил. Я понял как она должна работать, что там должно быть, но делать её нет смысла. Если я ее сделаю, то хакеры смогут внедрять свой код, и этот код будет не заметный, то есть не будет каких то переходов на свободную память, зловредный код будет вставлен где нибудь в середине. И я никак не смогу заработать на ней, а чтобы её сделать, мне придется писать её около месяца каждый день, и то не факт что смогу за месяц написать. Возможно уйдет больше времени. Там этих машинных кодов пруд пруди.
afqДата: Вторник, 14 Января 2020, 07:09 | Сообщение # 328 | Тема: Помогите советом...
Разработчик
Сейчас нет на сайте
akva444, есть ещё книга по lua. Как в интернете, так и в продаже.
afqДата: Вторник, 14 Января 2020, 04:33 | Сообщение # 329 | Тема: машинные коды ассемблера
Разработчик
Сейчас нет на сайте
FreddyDit, у меня нет вк.
afqДата: Вторник, 14 Января 2020, 04:24 | Сообщение # 330 | Тема: машинные коды ассемблера
Разработчик
Сейчас нет на сайте
FreddyDit, а можешь показать свои работы?
afqДата: Вторник, 14 Января 2020, 04:22 | Сообщение # 331 | Тема: машинные коды ассемблера
Разработчик
Сейчас нет на сайте
FreddyDit, может быть векторная графика?
afqДата: Вторник, 14 Января 2020, 03:04 | Сообщение # 332 | Тема: машинные коды ассемблера
Разработчик
Сейчас нет на сайте
FreddyDit, а как, платно, бесплатно? пиксель арт?
afqДата: Понедельник, 13 Января 2020, 12:20 | Сообщение # 333 | Тема: реализация издателя и подписчика на си.
Разработчик
Сейчас нет на сайте
drcrack, ты не прав. Если появляется хорошая идея, то её можно показать. Как в пример, хаха Линукс Торвальдс по твоему мнению не мог учить людей, а написал линукс. Дело в том что ты пытаешься мне запрещать, хотя у тебя прав на это нет. Другое дело, что если бы ты написал что с таким уровнем знаний я никого не научу, тогда может быть понятно, да и то, кому то мои идею могут чем то помочь. Например сегодня ночью я читал книгу по c#, тему делегатов. Это типа указателя на функцию. Я ещё не проверял, но как то тупо сделано, ты не находишь. Ну я о том, что можно сделать сразу несколько указателей с помощью d += function. А если я захочу удалить в середине указатель на функцию, то что мне делать? С помощью d -= function можно удалить только крайний справа указатель. Вот как считаешь, это преимущество языка? Я хочу оценить твою адекватность. )
afqДата: Понедельник, 13 Января 2020, 11:44 | Сообщение # 334 | Тема: реализация издателя и подписчика на си.
Разработчик
Сейчас нет на сайте
drcrack,
Цитата
Только не стоит учить других паттернам

Захочу ещё статью напишу. ) И заброшенные проекты тут не причем.
afqДата: Воскресенье, 12 Января 2020, 22:31 | Сообщение # 335 | Тема: реализация издателя и подписчика на си.
Разработчик
Сейчас нет на сайте
Xakep,
Цитата
Почему мы должны писать за тебя на Си?

За меня на си не надо писать. Я сделал нормальную реализацию. Но если вы считаете что она не правильная, то где правильная, где пруфы, что на си можно сделать правильней?
Цитата
Мы можем предложить свои какие-то идеи, ты можешь попытаться их реализоват,

Ну так я об этом и написал. Пиши как выглядеть должна функция, чтобы использовать нескольких издателей. Да и для библиотеки это не подходит. Если память будет выделяться на стороне библиотеки, то другой кто будет использовать эту библиотеку, то получит доступ к этим данным.
afqДата: Воскресенье, 12 Января 2020, 22:25 | Сообщение # 336 | Тема: реализация издателя и подписчика на си.
Разработчик
Сейчас нет на сайте
Xakep, ну а как бы ты сделал, какие бы функции были бы доступны для использования издателя и подписчика? Какие бы ты функции определил? Я так понимаю вы все можете писать о том, что плохая реализация, а сами то как бы сделали? Разумеется нужна универсальность, чтобы не писать реализацию каждого издателя заново. Надо ведь написать такой способ, чтобы разработчик уже только использовал эти функции.
afqДата: Воскресенье, 12 Января 2020, 21:51 | Сообщение # 337 | Тема: реализация издателя и подписчика на си.
Разработчик
Сейчас нет на сайте
drcrack, ну раз ты программировал на c++, то как бы знаешь и си. И я как понял что ты тоже считаешь что у меня плохая реализация. Тогда видимо у тебя тоже есть опыт. Вот я и написал в начале сообщение о том, что рад услышать советы и т.д. Тогда напиши мне на си, как сделать не реализацию, а функции, которые можно использовать типа готовых. Ну напиши как должна выглядеть функция, ну какие параметры должна получить и всё. То есть например у меня функция выглядит так.
Код

init_publisher ( int type, void (*callback) (void *event, void *data), void *data );

здесь я указываю номер издателя, функцию указатель, и пользовательские данные.
а вот так я отправляю события.
Код

send_event ( int type, void *event );

А как ты считаешь надо сделать, чтобы можно было объявить нескольких издателей и нескольких подписчиков? У меня например мышление такое, что я сделал так. Но разные люди по разному мыслят. И поэтому я рад вашим вариантам. И так я посмотрю какой вариант лучше. Но пока я считаю что мой вариант правильный.
afqДата: Воскресенье, 12 Января 2020, 21:14 | Сообщение # 338 | Тема: реализация издателя и подписчика на си.
Разработчик
Сейчас нет на сайте
drcrack, а, или ты имел ввиду не квадрат, а куб? ну да, куб я не могу нарисовать. не знаю почему. но я хотя бы стараюсь.
afqДата: Воскресенье, 12 Января 2020, 20:37 | Сообщение # 339 | Тема: реализация издателя и подписчика на си.
Разработчик
Сейчас нет на сайте
Цитата
С другой стороны, как можно набираться опыта у Си программиста, который не может на OpenGL нарисовать квадрат?

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

не совсем верно. подход другой у языков. ты например не можешь с помощью шаблонов на си программировать, а в c++ можешь и т.д. на каждом языке задачи решаются по разному. от тех кого я слышу что язык всего лишь инструмент обычно знают несколько языков, да и то не очень хорошо. и задачи решают обычно на том, в котором легче всего решить. то есть у тебя такой уровень знаний языка, что ты например не можешь сделать программу по картографии на си, но зато ты можешь это сделать на python с уже готовой библиотекой. я бы лучше делал это на си, чтобы скилл рос, а не пользоваться языком как инструментом.
Цитата
И что с того, что это веб разработчики, они не программисты чтоле?

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

Вот, вот это правильно. учишь один язык и реализуешь на нем всё и не сворачиваешь с пути.
Цитата
другое дело, когда ты участвуешь в разработке крупного проекта, где цена ошибки может стоить компании миллионов $ (а тебе может это стоить работы).

Да какой там. хочешь сказать что в моей программе могут ошибиться программисты на си, которые живут программированием? как вообще можно ошибиться и подписаться на издателя, который определен в определенном файле. знаешь, я изучаю как новый код, так и старый код разных программ. есть специальная лицензия, которая объясняет что автор не несет ответственности за программу. и кстати, я изучаю еще код, где были найдены уязвимости, хотя не могу все равно понять где эта уязвимость, может ее пофиксили. и знаешь, с моей программой не справился бы только какой нибудь тупой не программист. чтобы сделать такую реализацию, нужно было написать не мало строчек кода, но зато теперь можно пользоваться. ну и конечно же ты можешь показать как это сделать на java. вот например в java каждый класс в отдельном файле да. тебе надо сделать так. чтобы в одном файле ты подписался на издателя. в другом файле подписался на издателя. в другом файле отправил событие и два файла получили это событие. чтобы этот способ был универсальным. чтобы не нужно было переделывать издателя, ну подстраивать под новый проект. вот я такое сделал. в моем случае написал один раз, используешь везде. потому что издателю можно передать любой тип. эти с хабра пишут что тип нельзя проверить. ну и что. ты что не знаешь какие данные будешь передавать? это тупо троллинг. вон например в glib. есть такая функция g_signal_connect, сюда ты можешь подключить либо g_object, либо gtk виджет. также отправить данные свои, вот здесь тип не проверяется, оно и правильно, потому что функция сделана так, чтобы ей можно было пользоваться сколько угодно и в любых проектах.
Цитата
Это же идет в разрез с принципами промышленного кодирования, где чем шаблонее будет код, тем лучше. А любой велосипед заведомо вызывает негатив.

ну в моем случае готовых библиотек для си нет. проще уже самому это сделать чтобы пользоваться. я лишь хотел показать удобство использования подобия паттерна, заметь я написал подобия, а не паттерна. но все всё равно пишут что я паттерн имел ввиду. тупость.
afqДата: Воскресенье, 12 Января 2020, 10:23 | Сообщение # 340 | Тема: реализация издателя и подписчика на си.
Разработчик
Сейчас нет на сайте
drcrack, видишь что я ему написал, посмотрим какой он ответ даст.
Цитата
А почему вы мне показываете как это делается на js? Почему вы сишника учите программировать, если сами показываете код на js. Если хотите показать как надо правильно делать, то пишите на си. То же мне, показывает как это удобно делается на js. Как будто статья про js.
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг