Многопользовательские «Rogue»-подобные.
Существуют ли многопользовательские "Rogue"-подобные игры?
Существуют ли многопользовательские "Rogue"-подобные игры?
Исполняемый файл простого примера программы, использующей SDL, занимает больше 400 Кбайт.
Мне кажется, это не нормально.
И при экспериментировании на простейших программах выясняется, что gcc, кажется, включает в конечный файл даже неиспользуемые функции. А ведь это не "библиотеки".
Как этого можно избежать?
Как оптимизировать программы?
Пробую "скомпилировать" простейший пример (например, из http://www.libsdl.org/cgi/docwiki.cgi/Initializing_SDL ) командой наподобие "gcc -o test sdl_i.c `sdl-config --cflags --libs`"
("sdl-config --cflags --libs" выдаёт
-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT
-L/usr/lib -Wl,-rpath,/usr/lib -lSDL -lpthread
) и получаю следующее:
/usr/lib/libSDL.a(SDL_alsa_audio.o): In function `UnloadALSALibrary':
(.text+0x9a): undefined reference to `dlclose'
/usr/lib/libSDL.a(SDL_alsa_audio.o): In function `LoadALSALibrary':
(.text+0x10a): undefined reference to `dlopen'
/usr/lib/libSDL.a(SDL_alsa_audio.o): In function `LoadALSALibrary':
(.text+0x15b): undefined reference to `dlvsym'
/usr/lib/libSDL.a(SDL_alsa_audio.o): In function `LoadALSALibrary':
(.text+0x172): undefined reference to `dlsym'
/usr/lib/libSDL.a(SDL_gamma.o): In function `CalculateGammaFromRamp':
(.text+0x2f1): undefined reference to `log'
/usr/lib/libSDL.a(SDL_gamma.o): In function `CalculateGammaFromRamp':
(.text+0x30c): undefined reference to `log'
/usr/lib/libSDL.a(SDL_gamma.o): In function `CalculateGammaRamp':
(.text+0x448): undefined reference to `pow'
/usr/lib/libSDL.a(SDL_x11gl.o): In function `X11_GL_UnloadLibrary':
(.text+0xfe): undefined reference to `dlclose'
/usr/lib/libSDL.a(SDL_x11gl.o): In function `X11_GL_LoadLibrary':
(.text+0x1a6): undefined reference to `dlopen'
/usr/lib/libSDL.a(SDL_x11gl.o): In function `X11_GL_LoadLibrary':
(.text+0x1ce): undefined reference to `dlsym'
/usr/lib/libSDL.a(SDL_x11gl.o): In function `X11_GL_LoadLibrary':
(.text+0x1e7): undefined reference to `dlsym'
/usr/lib/libSDL.a(SDL_x11gl.o): In function `X11_GL_LoadLibrary':
(.text+0x200): undefined reference to `dlsym'
/usr/lib/libSDL.a(SDL_x11gl.o): In function `X11_GL_LoadLibrary':
(.text+0x219): undefined reference to `dlsym'
/usr/lib/libSDL.a(SDL_x11gl.o): In function `X11_GL_LoadLibrary':
(.text+0x232): undefined reference to `dlsym'
/usr/lib/libSDL.a(SDL_x11gl.o):(.text+0x24b): more undefined references to `dlsym' follow
/usr/lib/libSDL.a(SDL_sysloadso.o): In function `SDL_LoadFunction':
(.text+0xb3): undefined reference to `dlerror'
/usr/lib/libSDL.a(SDL_sysloadso.o): In function `SDL_LoadObject':
(.text+0xfb): undefined reference to `dlopen'
/usr/lib/libSDL.a(SDL_sysloadso.o): In function `SDL_LoadObject':
(.text+0x102): undefined reference to `dlerror'
/usr/lib/libSDL.a(SDL_sysloadso.o): In function `SDL_UnloadObject':
(.text+0xc): undefined reference to `dlclose'
collect2: выполнение ld завершилось с кодом возврата 1
В чём может быть причина?
Что-нибудь может быть более подходящим для 2-хмерных игр?
Соображения по поводу GUI (версия 1 (0.1) (1)).
Важно, чтобы пространство на мониторе расходовалось как можно эффективнее.
Для GUI, где операции проводятся "мышиным" курсором, важными являются угловые области - туда легче "попасть", и поэтому разные важные "кнопки" и индикаторы располагают обычно там.
http://mediapix.ru/pics/029e9f5ef1bb7b3c15751d302b6f5487.png
Поэтому "панель задач", располагающуюся по всей ширине, лучше держать внизу.
http://mediapix.ru/pics/77835a4f159e27c7c3d0f2a002b47be7.png
В развёрнутом виде в заголовке окна нет особой надобности, но привычным для многих является расположение "кнопки" "закрытия" окна в правом верхнем углу.
http://mediapix.ru/pics/3adff4aa2844a5c4e8d46d1d521c722c.png
Поэтому целесообразным может быть совмещение "панели задач" и "кнопок" управления развёрнутым окном.
http://mediapix.ru/pics/c7a3f5cfb6faa873114fdf1081087d85.png
P.S. Решил написать коротко.
Сохраняет ли zip при упаковке "владельца" и "группу"?
Как действует "unzip -X"?
Есть готовая версия для GNU/Linux игры "Lost Labyrinth".
Дело в том, что эта программа, судя по реакции, не пропускает "нажатия" через себя.
Особо "дико" это смотрится в "оконном режиме", когда даже "указатель" за пределы окна нельзя вывести.
А для того, чтобы сделать "снимок", приходится запускать KSnapshot заранее.
Эту программу можно запускать без "X-сервера", но и в этом случае она не пропускает комбинации вида "Alt+F7" через себя.
Хорошо ещё, что комбинации вида "Ctrl+Alt+" не блокируются.
И проблема не в том, что программа такая, а в ущербности "архитектуры", которая такое позволяет.
На каком уровне может быть эта ущербность?
Как можно решить данную проблему?
С помощью чего можно сделать (на C) "экранный" текстовый интерфейс (например, как у программы "top")?
И с помощью чего можно обеспечить взаимодействие с "мышечным" указателем?
С помощью каких программ можно заменить (без перестановок) (взяв у другого) "цветовую карту" "индексированного" изображения в формате "bmp"?
GIMP, кажется, этого не умеет (если только вручную все цвета не прописывать).
Есть ли более-менее простой способ редактирования файлов в C, и есть ли распространённые "функции" для этого?
При использовании примерно следующей команды:
wget -w 1 -nc -r -p http://www.site.com/
не "загружаются" изображения из "фреймов".
В чём может быть проблема?
Какой "скачиватель" "сайтов" со следующими свойствами можете посоветовать:
возможность сохранения оригинальных страниц (без сора наподобие "<!-- скачано СуперПуперМегаПрогаммой -->" и изменения "ссылок");
возможность сохранения структуры (каталоги и т.п.);
возможность сохранения связности (если есть сохранение структуры и полных имён, и нет "полных" (не относительных) "ссылок" внутри "сайта", то это происходит само-собой);
возможность ограничения по "адресу" (например, "только с этого сайта");
возможность подробного ограничения по "адресу" (например, "без *spam*");
возможность ограничения по размеру файла
?
Можно даже "sh"-"скрипт".
Пришла такая идея:
сюжет - нападение инопланетян.
Персонаж просыпается от стука в дверь - это пришёл "зомби".
Можно взять свой дробовик и пробить ему голову, или же просто убежать (можно по пожарной лестнице).
Дом заполнен подобными "зомби".
На улицах идут бои.
Присутствует армия.
Над городом висит огромная "летающая тарелка".
Оттуда вылетают и туда возвращаются корабли поменьше.
(Для игры доступен весь город.)
"Тарелки" забирают "лучом" людей (даже на бегу), отвозят их на основной корабль или прямо тут делают из них "зомби".
Есть человекоподобные особи с большими головами и высокотехнологичным оружием.
Есть маскирующиеся под людей, которые при атаке скидывают "кожу" с лица и вытаскивают длинные челюсти (или же просто пытаются застрелить из необычного оружия).
Человекоподобных можно уничтожать с помощью громкого воспроизведения музыки.
(Остальные инопланетные монстры - на каких фантазии хватит ("поле" для творчества).)
Можно ездить на машинах.
Можно сбивать и захватывать корабли.
На них можно подлететь к главному кораблю и проникнуть туда.
Внутри есть законсервированные люди (их можно освободить), ангары, ремонтные станции для кораблей и др.
Игра заканчивается с уничтожением этого корабля, (выжил персонаж или нет - не важно).
Решил "выложить" для обсуждения...
Решил сформулировать "концепцию" и выдвинуть на обсуждение:
"Эхосеть" (формулировка версии 1 (0.0.1)).
"Эхосеть" - сеть без централизации, состоящая из "узлов" (и предназначенная для распространения "эхо"-сообщений).
"Протокол" "эхосети" - "протокол" высокого уровня, суть которого заключается в обмене информационными сообщениями, и для которого не важно, каким способом осуществляется связь.
Также для "протокола" не важно, кем осуществляется связь и кто автор сообщений (поэтому он в некоторой мере и некотором смысле анонимен).
Основной обмен сообщения происходит "сессионно".
Сообщения могут передаваться через множество "узлов".
Главными составляющими являются "заголовки" и "тела".
В "заголовках" содержатся: тип, название, размер "тела", "срез-сумма" "тела", дата написания сообщения, количество совершённых "прыжков" (передач) и т.п.
Есть 3 основных типа сообщений:
(простое) текстовое сообщение (message, m);
файл (file, f);
разговорное сообщение (chat, c) - состоит только из "заголовка", ценность представляет название (часть "заголовка").
Нужна ли такая "сеть"?
Что Вы об этом думаете?
Не заметил "формы" входа на обычном месте.
Пришлось включать использование JavaScript для того, чтобы в итоге получить эту форму и "залогиниться".
Примите мои возмущения.
Предлагаю вернуть обратно, или хотя бы сделать её скрываемой (а не показываемой) при помощи JavaScript.
Чем отличается "Jabber" от "IRC"?
Есть ли принципиальные отличия?
Если нет, то "Jabber" нужен только для разнообразия?
Обработка "событий" из "кода" выполняется в "Opera", но не в "Firefox" и "Konqueror".
Пример "страницы":
<HTML><HEAD></HEAD><BODY bgcolor=white>
<FORM>
<INPUT name="cbut" type="button" value="Change">
<INPUT name="t" type="text" value="jjj">
</FORM>
<SCRIPT type="text/javascript" language="JavaScript">
<!--
function cf()
{
document.forms[0].t.value="ddddd";
}
document.forms[0].elements[0].onclick="cf()";
//-->
</SCRIPT>
</BODY></HTML>
В чём может быть проблема?
Не противоречит ли такая обработка стандартам?
********************************************************************************************************************************************************************************************************************************************************************************************************************************
**************************************************************
**************************************************
****************************************
****************************************
Всего голосов: 598
Вопрос:
для отображения графики "X-сервер" не обязателен?
Как это делает "w3m"?
Какие "библиотеки" и функции для этого можно использовать?
Какой(-ие) "обозреватель(-и)", кроме "Opera", обладает(-ют) следующими "свойствами" (которые нужны мне - так как у разных субъектов бывают разные предпочтения, не стал (может быть, пока), составлять список "общих потребностей"):
"вкладки",
"закладки",
настраиваемые или настроенные, как удобно мне, "горячие клавиши",
возможность быстро и удобно включить и отключить показ изображений, JavaScript, использование proxy-серверов и т.д.,
режим показа "кешированных" изображений и возможность загружать в этом режиме ещё не "кешированные",
возможность быстро и удобно узнавать свойства изображения,
?
следующие → |