XNA код. О вашем форуме не шибко много знаю, но надеюсь угадал с разделом. Изложу проблему кратко.
Изучил уже довольно многие аспекты, стал хорошо понимать код, остановился на основополагающих, но довольно сложных моментах.
1)Суть в том, что мне нужно хранить информацию о разных предметах по сути и механике схожих (разное стрелковое оружие, например, подведенное под класс weapon).
2)Так же надо хранить информацию о игровом мире (на каждом тайле карты лежат различные предметы, с разными характеристиками).
Оба типа файла должны скрывать от пользователя свою информацию (тогда я отмел наиболее простое чтение из .txt и .xml
3)Мультиплеер. Я и не надеюсь, что кто-то подскажет в этом, но чем черт не шутит?
Я после таки додумался, что в первых двух вопросах мне поможет xna pipeline.
Но проблема в том, что всюду, куда меня водил дружище гугл, находилась в основном теория, либо теория и сложный пример (вроде загрузки трехмерных графических файлов), из которого я не мог извлечь всякой системы.
Помогите, будьте столь добры.
somecoder
1) Сформулируй нормально вопрос.
2) Делай карты бинарными (не текстовыми - не xml и txt).
Это сложнее чем использовать xml, но будет экономия с размером твоего контента.
К тому же для чтения твоего контента будет потрачено меньше электричества (важно для мобильных систем, не так быстро сядет батарейка).
3) Мультиплеер делал, не не сетевой, а 2-4 человека за одной консолью.
Как это сделать - не могу тебе сказать, так как чувствую по твоим вопросам, что у тебя нет знаний в game dev.
Тебе многое надо изучить. Начни с того, что сделай змейку, и дальше по уровню сложности.
Скажу следующее - XNA давно устарел и не обновляется, используй MonoGame.
Синтаксис почти такой же, но больше платформ, к тому же меньше надо будет покупать разных лицензий.
XNA действительно устарел и считай умер, лучше использовать MonoGame или не париться и взять готовый движок, к примеру Unity
1. Вопрос ли это?
2. Данные xml или txt можно шифровать, либо же использовать свой - бинарный формат, как выше отметили.
3. До того как делать мультиплеер, сосредоточься на сингле, когда сингл будет готов уже сможешь думать про мультиплеер.
yarovoyevgenii
Окстись. Я уже прошелся по основам и понял многое, окромя поставленных трех деталей. Кроме того я писал на иных языках, писал вполне рабочий код на BYOND (такой же казуальный движок как XNA, имеющий множество встроенных фич, которые компенсируются лишними лагами, привязанностью к клиенту BYOND)
1) Какова ситуация:
В моей игре есть множество предметов, которые можно условно делить на категории, вроде weapon, material, turf, mob и т.д.
Хранить информацию (его характеристики, вроде описания, урона и пр.) о каждом предмете прямо в коде проекта мне кажется несколько нерациональным.
Можно, так же хранить вот так в XML, но тут нет защиты "от дурака", что залезет в файл и изменит его.
Прошу, если возможно, пояснить как же защитить от посторонних глаз мой xml, либо предложить альтернативу.
2) Карты не шибко простые, что бы записывать бинарником, ибо имеют довольно большое количество самых разных предметов. Я так же думал о шифровке .тхт как подметил KleMiX, но предположил, что это слишком костыльный путь. Делается лишь для ПК.
3) Если я научусь, KleMiX, сейчас, то смогу после не пинать добрых людей этим вопросом. Вот я и задал, ведь чем черт не шутит и мне ответят?
somecoder
1) 2) Шифруй или используй бинарники. Другого способа я не знаю.
3) Если мультиплеер для одного компа, то это сделать просто -
вначале сделай для одного игрока, а потом создай массив игроков (List<Player>)
и обработку одного игрока (в начале будет один игрок) до одного из массива игроков с его индексом в массиве.
Я почти уверен, что в этом должен помочь pipeline. Как доказательство - читаемость игрой террария .wld файлов (этот формат для этого вовсе не предназначен, на самом деле).
somecoder
Что за .wld файлы? XNA такие не обрабатывает.
Террария использует эти файлы что бы хранить информацию о мире.
Я точно знаю, что это делается через файло-конвейер. Там даже файл создать можно, content importer и content processor. В дефолтной записи этих файлов есть толсто намекающие данные (например приведенное как пример расширение .abc), что именно через эти надо загружать файлы. А вот синтаксиса этих файлов я и не знаю, потому пришел сюда.
Доказательство.
==================================
==================================
somecoder
Понятно. То есть они написали свой контент процессор
(не помню как точно это называется в XNA, так как давно не юзал XNA).
Написать такую штуку будет сложнее чем простую читалку своего бинарного формата.
Тебе много надо будет знать теории XNA и большие навыки в программировании.
Если тебе сложно написать свой бинарный формат или текстовый шифровчик, то content processor тебе не освоить.
Мне не столько сложно, сколько я вижу в бинарнике ограничения в нагрузке, да в текстовом шифровании костыли (да и вскрыть шифр вполне возможно).
somecoder
> Мне не столько сложно, сколько я вижу в бинарнике ограничения в нагрузке
Какие ограничения? Объясни, пожалуйста.
> да в текстовом шифровании костыли (да и вскрыть шифр вполне возможно)
Сомневаюсь, что какой-то школьник будет сидеть и ломать свою голову, разгадывая твой шифр.
У каждого тайла не мало параметров. Потери производительности при переводе в бинарник и обратно.
Ну, если все же добьюсь хоть какого-то успеха, найдутся рукастые парни, которые просто для челенджа попробуют расшифровать и сделать карторедактор.
somecoder
> Потери производительности при переводе в бинарник и обратно.
Наобарот, это при текстовом формате большая потеря в производительности.
Потому что все числовые параметры надо преобразовывать из строки в число.
К тому же текстовый вариант будет больше в размере.
(float занимает 4 байта, а например "17.28731f" 9 байтов и этот текст надо будет ещё преобразовывать в строку).
> для челенджа попробуют расшифровать и сделать карторедактор
Так поступают только с хорошо и средне известными играми.
Объяснишь, что же, по хардкору, как бинарники использовать? Слишком мало я знаю инструментов ХНА, вот моя проблема.
Тема в архиве.