Перейти в начало страницы

Здравствуйте, гость ( Авторизация | Регистрация )

Gameru.net останавливает работу в связи с вторжением армии РФ в Украину.
Support Gameru!
> Курилка программистов, Флуд на около программерские темы
Молния в вакууме
сообщение 28.08.2016, 23:32
Сообщение #1


Почти Игроман
*********

Репутация:   187  
Группа: Участник
Сообщений: 647
Награды: 4
Регистрация: 05.05.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(refuse @ 28.08.2016, 22:08) *
суровый код quake на чистом си

Чистый C - это круто.
Однажды я скомпилировал ваш движок на C борландовским компилятором, и он запускался под Windows NT 3.51. Меня это очень впечатлило. Только в этом движке мне не понравились сложные форматы файлов, требование высокой версии OpenGL и ini-конфиги, они конечно подходят для хранения простых настроек, но если в них хранить что-то более сложное всё превращается в нечитабельную кашу. Поэтому я решил сделать свой такой же, только с простыми форматами файлов, OpenGL 1.1, и конфигами с синтаксисом похожим на LUA. Т.к. использовать луа только для конфигов расточительно, я написал свой парсер похожего формата.
В итоге форматом текстур стал TGA, форматом моделей OGF(не то чтобы не очень нравился этот формат, но он вполне простой) а ресурсы хранились в обычном zip-архиве. Минимально необходимая версия OpenGL - 1.0. Так что можно портировать даже под самые древние платформы. Это всё запускалось под Windows, OS/2 и Linux(только через GLUT), и собиралось разными компиляторами.
(BCC, MSVC 5.0, Watcom, GCC)

C С++ такое бы не прокатило. Он плохо портируем между разными компиляторами.
Например новые компиляторы поймут такой код:
Код
for(int i = 0; i < 10; i++) puts("for 1");
for(int i = 0; i < 10; i++) puts("for 2");
for(int i = 0; i < 10; i++) puts("for 3");

Старые будут ругаться на повторное объяление i. Там надо делать так:
Код
for(int i = 0; i < 10; i++) puts("for 1");
for(i = 0; i < 10; i++) puts("for 2");
for(i = 0; i < 10; i++) puts("for 3");

Такой вариант устроит всех:
Код
int i;

for(i = 0; i < 10; i++) puts("for 1");
for(i = 0; i < 10; i++) puts("for 2");
for(i = 0; i < 10; i++) puts("for 3");


Только вот это уже код на С, а не на C++.

Сообщение отредактировал refuse - 29.08.2016, 00:15
Перейти в начало страницы
 

Сообщений в этой теме
- saas   Курилка программистов   28.08.2016, 23:32
- - refuse   Цитата(saas @ 29.08.2016, 01:30) Чистый C...   28.08.2016, 23:51
- - 1001v   Че пацаны, программисты?   29.08.2016, 02:10
- - RayTwitty   Тема кстати с таким же названием уже была.   29.08.2016, 02:29
|- - OlegatoR   Цитата(RayTwitty @ 29.08.2016, 02:27) Тем...   29.08.2016, 03:01
- - Cossack-HD   Хочу запилить 2D движок с API OpenGL. Думал пилить...   29.08.2016, 07:55
- - refuse   Cossack-HD, можно написать низкоуровневые ф-ии отр...   29.08.2016, 08:38
|- - Cossack-HD   Цитата(refuse @ 29.08.2016, 10:36) Cossac...   29.08.2016, 11:11
- - Neo][   Cossack-HD, а почему хочешь пилить сам, спортивный...   29.08.2016, 11:30
|- - Cossack-HD   Цитата(Neo][ @ 29.08.2016, 13:28)...   29.08.2016, 11:43
- - refuse   Цитата(Cossack-HD @ 29.08.2016, 13:0...   29.08.2016, 12:06
- - Neo][   Цитата(Cossack-HD @ 29.08.2016, 13:4...   29.08.2016, 12:07
- - Cossack-HD   refuse, если запилить такую прослойку, то можно по...   29.08.2016, 13:13
- - Neo][   Cossack-HD, что-то ты меня совсем запутал. Зачем o...   29.08.2016, 13:31
|- - Cossack-HD   Цитата(Neo][ @ 29.08.2016, 15:29)...   29.08.2016, 13:43
- - saas   На мой взгляд испоьзовать OpenGL для 2D графики эт...   29.08.2016, 14:06
|- - Cossack-HD   Цитата(saas @ 29.08.2016, 16:04) На мой в...   29.08.2016, 18:07
- - abramcumner   Цитата(saas @ 28.08.2016, 23:30) Старые б...   29.08.2016, 14:11
- - Neo][   Цитата(Cossack-HD @ 29.08.2016, 15:4...   29.08.2016, 14:14
- - saas   Цитата(saas @ 29.08.2016, 00:30) Однажды ...   04.09.2016, 01:05
- - refuse   Цитата(saas @ 04.09.2016, 03:03) архив с ...   04.09.2016, 14:20
|- - saas   Цитата(refuse @ 04.09.2016, 15:18) 2. В р...   04.09.2016, 19:27
|- - saas   Извинияюсь за даблпост. refuse, а каким образо...   10.09.2016, 03:34
- - Ray   saas, 4 апдейт для билдера накатывал?   04.09.2016, 19:32
- - saas   Ray, нет, у меня есть только первый.   04.09.2016, 19:48
- - refuse   saas, чтот я стал забывать как устроен текстурный ...   04.09.2016, 20:13
- - saas   refuse, да ничего сложного там. Действительно нуже...   04.09.2016, 20:26
- - RayTwitty   Не знаете, есть ли специальный синтаксис для notep...   19.09.2016, 21:39
- - abramcumner   А чем не подходит MS-INI?   19.09.2016, 22:03
- - RayTwitty   Цитата(abramcumner @ 19.09.2016, 22:01) А...   19.09.2016, 22:43
- - STALKER2011x   RayTwitty, советую еще Sublime Text попробовать, т...   20.09.2016, 08:42
- - NEXOR   Цитата(STALKER2011x @ 20.09.2016, 08:40) ...   20.09.2016, 08:49
- - NatteFrost   Несколько лет назад я вел свои эксперименты с ренд...   20.09.2016, 09:07
- - RayTwitty   Цитата(STALKER2011x @ 20.09.2016, 08:40) ...   04.10.2016, 19:09
- - RayTwitty   Подход к настройкам радует - слева дефолтные значе...   04.10.2016, 20:20
- - STALKER2011x   Еще один огромный плюс Sublime Text, он выполняет ...   04.10.2016, 20:32
- - RayTwitty   STALKER2011x, сподвигло поставить ещё и то, что в ...   04.10.2016, 21:04
- - RayTwitty   Пока нашел один недостаток - нету возможности пока...   06.10.2016, 00:37
|- - STALKER2011x   Цитата(RayTwitty @ 06.10.2016, 00:35) Пок...   06.10.2016, 08:32
- - 1001v   Попробуйте visual studio code, очень быстро запуск...   06.10.2016, 12:28
- - RayTwitty   Цитата(STALKER2011x @ 06.10.2016, 08:30) ...   06.10.2016, 16:40
- - saas   Оказывается в C++ можно сделать оператор with(как ...   06.10.2016, 16:43
- - 1001v   Цитата(saas @ 06.10.2016, 16:41) как в Ja...   06.10.2016, 16:52
- - saas   1001v, ничего не убрали, просто не рекомендуют исп...   06.10.2016, 17:06
- - RayTwitty   Кодobj = { a = 1, b = "str" } Не совсем ...   06.10.2016, 17:22
- - 1001v   Цитата(saas @ 06.10.2016, 17:04) 1001v, н...   06.10.2016, 18:08
- - refuse   Цитата(saas @ 10.09.2016, 05:32) а каким ...   07.10.2016, 00:34
- - RayTwitty   Как может называться штука, которая динамически ме...   11.10.2016, 00:14
|- - 7.9   Цитата(RayTwitty @ 11.10.2016, 00:12) Нап...   11.10.2016, 01:22
- - 7.9   Volume control.   11.10.2016, 00:18
- - RayTwitty   7.9, там речь шла о внутренних звуковых объектах.   11.10.2016, 01:37
- - 7.9   Понятненько... Про (амбиентные) loop-ы, надеюсь, н...   11.10.2016, 01:48
- - STALKER2011x   Цитата(RayTwitty @ 11.10.2016, 00:12) наз...   11.10.2016, 08:09
- - RayTwitty   Цитата(7.9 @ 11.10.2016, 01:46) там такое...   11.10.2016, 15:36
|- - 7.9   Цитата(RayTwitty @ 11.10.2016, 15:34) Цит...   11.10.2016, 23:16
- - RayTwitty   Цитата(7.9 @ 11.10.2016, 23:14) Я имел в ...   11.10.2016, 23:59
|- - STALKER2011x   Цитата(RayTwitty @ 11.10.2016, 23:57) Цит...   12.10.2016, 08:47
- - 7.9   Возможно, но это самое примитивное применение... В...   12.10.2016, 00:18
- - RayTwitty   Кодfor /f "delims=" %%a in ('dir /...   21.10.2016, 21:11
- - saas   RayTwitty, if /I not %%~xa==.EXE   21.10.2016, 21:35
- - RayTwitty   С ужасом обнаружил, что в JS нету функции формата ...   25.10.2016, 22:23
- - saas   RayTwitty, а зачем она там, когда можно "hell...   25.10.2016, 22:46
- - RayTwitty   Нашел. http://pastie.org/811028 Цитата(saas ...   25.10.2016, 22:52
- - 1001v   Цитата(RayTwitty @ 25.10.2016, 22:21) Сущ...   26.10.2016, 11:50
- - Cossack-HD   Вопрос по C# MVC Есть база данных с тремя таблица...   26.10.2016, 13:47
|- - abramcumner   Цитата(Cossack-HD @ 26.10.2016, 13:4...   26.10.2016, 14:04
- - STALKER2011x   Хм. Объединить три модели в одну? У каждой же моде...   26.10.2016, 14:05
- - jamakasi   Цитата(Cossack-HD @ 26.10.2016, 13:4...   26.10.2016, 16:31
- - RayTwitty   Вопрос следующего характера - имеется самописный п...   29.10.2016, 19:37
|- - saas   Цитата(RayTwitty @ 29.10.2016, 20:35) В и...   29.10.2016, 22:56
- - 1001v   Цитата(RayTwitty @ 29.10.2016, 19:35) кот...   29.10.2016, 20:36
- - RayTwitty   Цитата(1001v @ 29.10.2016, 20:34) Она воз...   29.10.2016, 21:44
- - 1001v   RayTwitty, split оставляет пустую строку последним...   29.10.2016, 22:02
- - RayTwitty   Цитата(1001v @ 29.10.2016, 22:00) Или я н...   29.10.2016, 22:09
- - 1001v   RayTwitty, Кодfs.readFileSync('filename...   29.10.2016, 22:46
- - RayTwitty   Цитата(saas @ 29.10.2016, 22:54) По идее,...   29.10.2016, 23:33
- - Shoкer   Возник небольшой вопрос по поводу работы Visual St...   12.11.2016, 02:29
- - STALKER2011x   Shoкer, а ты проверил тот класс? Может он действит...   12.11.2016, 09:56
- - refuse   Цитата(Shoкer @ 12.11.2016, 04:27) Возник...   12.11.2016, 11:45
- - saas   refuse, нет, inherited это родительский класс. К...   12.11.2016, 11:54
- - refuse   saas, тогда все должно работать http://rextester.c...   12.11.2016, 12:04
|- - abramcumner   Цитата(refuse @ 12.11.2016, 12:02) saas, ...   12.11.2016, 13:50
- - refuse   Цитата(abramcumner @ 12.11.2016, 15:48) С...   12.11.2016, 14:16
|- - abramcumner   Цитата(refuse @ 12.11.2016, 14:14) да, де...   12.11.2016, 15:15
- - Shoкer   У меня только Update 1 стоит. Юзаю релизную сборку...   12.11.2016, 16:27
|- - abramcumner   Цитата(Shoкer @ 12.11.2016, 16:25) Получа...   12.11.2016, 17:03
- - Shoкer   Собрал только xrGame без оптимизации - ошибка оста...   12.11.2016, 17:36
- - RayTwitty   Shoкer, самое лучшее решение - собирать в той студ...   12.11.2016, 18:20
- - refuse   Цитата(Shoкer @ 12.11.2016, 18:25) Вот уд...   12.11.2016, 20:10
- - Shoкer   > s<11>(k); Действительно, как этот к...   12.11.2016, 21:53
- - refuse   Цитата(Shoкer @ 12.11.2016, 23:51) как эт...   12.11.2016, 21:58
- - saas   Цитата(refuse @ 12.11.2016, 21:08) 1. пло...   12.11.2016, 22:52
- - RayTwitty   NodeJS Имеется функция случайной перетасовки знач...   27.11.2016, 22:24
- - 1001v   RayTwitty, запустил твой пример, ошибок нет, нода ...   27.11.2016, 23:04
- - RayTwitty   Цитата(1001v @ 27.11.2016, 23:02) запусти...   27.11.2016, 23:11
- - 1001v   RayTwitty, есть.   27.11.2016, 23:29
- - NanoBot-AMK   Придумал тут, дефайны к черту, с пояса гранаты или...   28.11.2016, 02:21
- - RayTwitty   1001v, пока выяснил, что такая байда при добавлени...   28.11.2016, 17:41
- - 1001v   RayTwitty, сейчас проверил на 6.6.0, все также хор...   28.11.2016, 18:18
- - RayTwitty   https://developer.mozilla.org/ru/docs/Web/J...s/Ob...   17.12.2016, 16:40
5 страниц V   1 2 3 > » 


Ответить в данную темуНачать новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 11.03.2026, 20:23