Среда, 24 Апреля 2024, 11:45

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Записи участника » afq [893]
Результаты поиска
afqДата: Воскресенье, 11 Августа 2019, 13:20 | Сообщение # 461 | Тема: дизайн вроде бы нормальный, но чего-то не хватает
Разработчик
Сейчас нет на сайте
Лучше чтобы роботы не кричали так от смерти, а звук лучше чтобы был как будто механизм перестал работать.
afqДата: Среда, 07 Августа 2019, 16:04 | Сообщение # 462 | Тема: Заявки на переход в группу "Проверенные"
Разработчик
Сейчас нет на сайте
TLT, русский проверяю с помощью сайта. Может и не на столько знаю хорошо русский язык, но сайт грамматику знает хорошо.
Иногда создаю темы либо с просьбой о помощи, либо с темой о новом софте, который я сделал. В основном темы создаю в ветке c/c++.
Правила вроде соблюдаю. Замечаний почти не было. В темах могу писать часто, если тема заинтересует. Но пишу часто в основном, чтобы с кем нибудь поспорить о том так ли это или нет. В основном много в темах не пишу, хватает одного двух сообщений. На роль модератора не хочу претендовать, я не читаю все темы подряд, а читаю только то что заинтересует. А вот в проверенные уже интересней.
Буду рад такому статусу.
afqДата: Четверг, 01 Августа 2019, 02:59 | Сообщение # 463 | Тема: Небольшая защита от патча
Разработчик
Сейчас нет на сайте
Блин, искал в инете, но не нашел ничего о битхаке, лучше наверное называть это патчем. Такое впечатление, будто я сам придумал это название, хотя я его раньше вроде слышал. Я начал изучать заного реверс инжиниринг и ассемблер. Может быть в этот раз изучу так, чтобы ничего не забылось. Раньше изучал, но мало изучил. Я на одном форуме написал крэкми и его взломали с помощью патча. Я в общем начал думать как же можно определить, есть ли патч или нет. Подумал можно ли содержимое метки присвоить регистру и оказалось что можно.
Код

bithack:
  mov ax, [bithack]

Я написал небольшую программу, которая выводит сообщения в зависимости от случая. Что говорить почти не планировал, как получилось, так получилось. Удалил видео, чтобы не позориться.
Код

section .text

; jmp 1b eb
; je  1b 74

global _start

_start:
    mov eax, 10
    cmp eax, 4
bithack:
    jmp done
    jmp error
bit:
    mov eax, 0x4
    mov ebx, 0x1
    lea ecx, [bith]
    mov edx, 9
    int 0x80
    jmp end
done:
    mov eax, 0x4
    mov ebx, 0x1
    lea ecx, [matches]
    mov edx, 9
    int 0x80
    mov ax, [bithack] // загрузить данные метки. Если там jz done, то будет 1b 74
    cmp ax, 0x1b74
    jne bit
    mov eax, 0x4
    mov ebx, 0x1
    lea ecx, [text]
    mov edx, 12
    int 0x80
end:
    mov eax, 1
    mov ebx, 0
    int 0x80    
error:
    mov eax, 0x4
    mov ebx, 0x1
    lea ecx, [errors]
    mov edx, 12
    int 0x80
    jmp end

section .data
matches db 'matches', 0xa, 0x0
text db 'no bithack', 0xa, 0x0
bith db 'bithack', 0xa, 0x0
errors db 'no matches', 0xa, 0x0


Добавлено (01 Августа 2019, 04:53)
---------------------------------------------
В итоге, если в
Код

bithack:
    jmp done
    jmp error

будет jz done, то выведется сообщение "no matches", потому что сравнивается eax с 4, а сам eax равен 10. В коде написано jmp done, это значит что в
Код

    mov ax, [bithack] // загрузить данные метки. Если там jz done, то будет 1b 74

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


Сообщение отредактировал afq - Четверг, 01 Августа 2019, 08:41
afqДата: Суббота, 27 Июля 2019, 18:43 | Сообщение # 464 | Тема: Любимые сериалы
Разработчик
Сейчас нет на сайте
Кремниевая долина
afqДата: Пятница, 19 Июля 2019, 19:00 | Сообщение # 465 | Тема: IT Курсы Avenue
Разработчик
Сейчас нет на сайте
класс.
afqДата: Среда, 17 Июля 2019, 17:25 | Сообщение # 466 | Тема: Russian Gamedev Failures
Разработчик
Сейчас нет на сайте
AlexRabbit, я щас тоже подумал что он троллит, да при чём смешно троллит то. Мне нравиться.

Добавлено (17 Июля 2019, 17:29)
---------------------------------------------
NikitaSadkov, ну вот, а ты писал что блог ведёшь.

afqДата: Понедельник, 08 Июля 2019, 21:34 | Сообщение # 467 | Тема: Разработка игр для sega и nintendo snes
Разработчик
Сейчас нет на сайте
k0fe, спасибо.
afqДата: Понедельник, 08 Июля 2019, 18:44 | Сообщение # 468 | Тема: Разработка игр для sega и nintendo snes
Разработчик
Сейчас нет на сайте
Можете накидать сюда ссылок на сайты, где можно понять как разрабатывать под эти консоли? А то я найти не могу, хотя раньше как то находил по ссылкам. Хочу посмотреть всю сложность разработки для этих архитектур. Для nes я нашёл, там применяется компилятор cc65. Но nes это деньди и программирование чисто на ассемблере, но я бы мог на ассемблере сделать, но я не знаю ассемблера 65000.
afqДата: Понедельник, 08 Июля 2019, 03:09 | Сообщение # 469 | Тема: Рашен Фермер
Разработчик
Сейчас нет на сайте
В этой игре чтоли можно тратить настоящие деньги?
afqДата: Суббота, 06 Июля 2019, 17:59 | Сообщение # 470 | Тема: замена php
Разработчик
Сейчас нет на сайте
Цитата
Как известно php умер...

Откуда об этом стало известно?
afqДата: Вторник, 02 Июля 2019, 16:45 | Сообщение # 471 | Тема: Как вам такая архитектура?
Разработчик
Сейчас нет на сайте
Xakep, такое наверное подходит только для подключения плагинов к программе.
afqДата: Вторник, 02 Июля 2019, 13:23 | Сообщение # 472 | Тема: Как вам такая архитектура?
Разработчик
Сейчас нет на сайте
Xakep, допустим у меня есть такая структура
Код

struct cycle {
    lib_init *linit;
    lib_run  *lrender;
    lib *lso;
    int size;
} *cycle;

В коде она инициализируется. И потом выглядит вот так. Заметь, в цикле рендер уже идёт отрисовка.
Код

// init
for ( int i = 0; i < cycle->size; i++ ) {
  cycle->linit[i]();
}
// render
while ( 1 ) {
  for ( int i = 0; i < cycle->size; i++ ) {
    cycle->lrender[i]();
  }
}

в цикле while выполняются все подключенные либы в простом цикле, то есть мне в код ничего вносить не надо, ничего генерировать не надо. Только этот код и сколько угодно либ.
afqДата: Понедельник, 01 Июля 2019, 23:49 | Сообщение # 473 | Тема: Как вам такая архитектура?
Разработчик
Сейчас нет на сайте
drcrack, сам код я написал для martuk, чтобы он посмотрел как на си пишется код. Я хотел написать нечто подобное. Я иногда обдумываю как создать код например для движка на c++ и си. И вот пример такой, например есть несколько уровней, пишешь свои файлы ( которые станут либами ), и в коде добавляешь вот такой код, он будет отвечать за то, на каком уровне будут какие либы загружены.
Код

add_level ( 0, "main_menu" );

В коде, пример который я привёл, ну который на github, там библиотеки загружаются все, которые есть в папке. В движке же надо будет загружать те, которые принадлежат уровню.
afqДата: Понедельник, 01 Июля 2019, 23:26 | Сообщение # 474 | Тема: Как вам такая архитектура?
Разработчик
Сейчас нет на сайте
Я недавно создал такую программульку, которая подключает библиотеки, столько, сколько есть. github, здесь создаются программа и две библиотеки.
Например есть сишный движок. Код программиста выполнен в формате библиотеки, то есть есть функция init и функция рендер, в которые нужно вписать логику. При компиляции это будет компилироваться в библиотеки. Если проект будет очень большим, то библиотек будет ну очень много. Вроде бы упрощает кодирование, но когда много библиотек это нормально?
afqДата: Понедельник, 01 Июля 2019, 21:06 | Сообщение # 475 | Тема: 2D-художник
Разработчик
Сейчас нет на сайте
вот это графон!
afqДата: Понедельник, 01 Июля 2019, 21:03 | Сообщение # 476 | Тема: Как начать
Разработчик
Сейчас нет на сайте
drcrack, это в 2018 голосование было. Такой уж сайт.
afqДата: Понедельник, 01 Июля 2019, 19:13 | Сообщение # 477 | Тема: Как начать
Разработчик
Сейчас нет на сайте
Ооп удобно например для программирования игр. А так утилиты писать и си хватит.

Добавлено (01 Июля 2019, 19:16)
---------------------------------------------
На c++ я например написал утилитку, которая увеличивает размер изображения в n-ое количество раз. Да и писал я из-за того, что мне лень было сишные функции все писать, а в c++ написать так.

Код
out.write
, и всё, картинка сохранилась, а в си мне пришлось бы написать около десяти функций.
afqДата: Понедельник, 01 Июля 2019, 19:11 | Сообщение # 478 | Тема: Как начать
Разработчик
Сейчас нет на сайте
drcrack, да весь gnu написан на си, потом некоторое на c++ переписали. По этим примерах конечно сложно учиться, нужно на более простых учиться. Но кода на си завались. Например ( я вроде уже писал об этом ), я как то учавствовал в голосовании, участников было несколько, около 10. Я написал программу, которая отдаёт голос за меня и в цикле запускал через тор мою программку, она от разных ip ставила голос. Правда я дал знать, что можно таким способом голосовать и я не стал единоличным победителем, а в ходил в тройку победителей. ) :D Даже здесь ооп не потребовался. Пользовался libcurl, да конечно сишные функции можно использовать, например библиотеку libcurl, но для c++ есть libcurlpp. Но всё же я видел в исходном коде, с криптовалютой, в той программке на c++ использовался сишный libcurl. У си интерфейс простой. Но чтобы полноценно насладиться си, надо переходит на линукс. Тут всё просто в отличии от windows. На windows ты должен зайти на сайт, скачать программу и установить, а в линуксе ты из консоли можешь установить. После этого пользоваться консолью и использовать vim. Кстати рекомендую использовать vim на начальных этапах, без каких либо дополнений в коде. Так хорошо освоишься. Я например пишу на нетбуке иногда и там ide будет проблематично, экран для кода будет маленьким, а vim консольный предоставляет весь экран для кода. Да и vim командно ориентированный редактор. В редакторе ты должен кликнуть мышью несколько опций, прежде чем дойдешь до нужной функции, а в vim ты можешь нажать esc и всё ты в командном режиме. Я редко иногда напишу не так что-то, можно с помощью регулярного выражения поменять слово на другое слово. Вот так. :s/foo/bar/g, и это поменяет во всём документе все слова foo на слова bar. Видишь как удобно. Это я несколько предложений для DrVoodoo написал.
afqДата: Понедельник, 01 Июля 2019, 18:39 | Сообщение # 479 | Тема: Как начать
Разработчик
Сейчас нет на сайте
Цитата
какой классный совет, учить алгоритмы и паттерны на низкоуровневом языке без ООП, который последний раз улучшался лет 20 назад

drcrack, зато на этом языке много чего написано и пишут. В виду того что нет новшеств в языке, его можно выучить и пользоваться им, а не заниматься этим ( появилась новая версия языка и всё надо переписать под новые стандарты ), так например делали 1c, которые переписывали код на c++-17. Очень много времени надо потратить чтобы новый стандарт выучить. Си надо учить, нафиг это ооп и прочее, если хочется сначала научиться программировать? Большинство утилит, которые я писал в них ооп не требовалось, а только увеличивало бы время разработки. Вот к примеру заголовки, которые у меня установлены щас в системе для си.

Позже когда освоишь структурное программирование, потом сам поймёшь, нужно ли тебе объектно-ориентированность. В си много плюсов. Научишься работать с указателями. Этого обычно не хватает в других языках, когда привыкаешь к ним. Сможешь использовать все возможности твоей системы. Да, бывает на си программировать сложнее чем на c++, но если ты поймешь си, то другие языки уже будет легче понять. Автор одной из книги по с++ советует не начинать обучение с си, а сразу переходить на c++, но он не прав, но выставляет всё так, что c++ главнее, хотя на си написано много софта, в том числе и операционные системы.
Цитата
Про системные вызовы вообще не понял, как это коррелируется с тем что на линуксе будет проще.

Ну то что система линукс простая, не перегружена методами.
Цитата
Я вот встроенным в линукс маном не часто пользуюсь, в основном онлайн доки.

Ну фиг знает. Я например установил документацию по openjdk-8, и читаю на localhost. И всё устраивает. Но это по java. Если надо быстро посмотреть в каком порядке функция принимает параметры, то man самое лучшее, открывать браузер и читать в онлайне отнимает много времени, тем более если тоже самое написано в man.
afqДата: Понедельник, 01 Июля 2019, 13:37 | Сообщение # 480 | Тема: Как начать
Разработчик
Сейчас нет на сайте
DrVooDoo, попробуй язык си. Он считается не таким уж и сложным. Его много где преподают. Может быть тебе объектно-ориентированные языки ещё рано изучать, потому что там много сложностей по началу. Но вот если ты осилишь язык си, то на c++ уже не так сложно будет перейти. Си как основа. Попробуй его. Есть хорошая книга head first язык си. Ещё я могу тебе дать какие нибудь программы для изучения не большие, чтобы ты мог на маленьких примерах понять как всё работает. Но у меня линукс стоит и программы написаны для него. В основном у меня консольные программы. В линукс есть документация встроенная, а в windows тебе надо читать онлайн документацию. В windows больше 1000 системных вызовов, а в линукс около 400. Тебе проще будет на линуксе заниматься.
Форум игроделов » Записи участника » afq [893]
Поиск:

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