Войти
ПроектыФорумОцените

Программирование 3D-движка для FPS (4 стр)

Страницы: 1 2 3 4 5 6 7 Следующая »
#45
21:20, 21 авг. 2003

grozny
А где ты такое надыбал.
Цитирую MSDN.
  1. The __int64 type has no ANSI equivalent.

  2. Microsoft C/C++ features support for sized integer types.
  You can declare 8-, 16-, 32-, or 64-bit integer variables by using the __intn type specifier, where n is 8, 16, 32, or 64.
  128 нет.

Вообще частью типы из асма. Частью сокращение. Частью гибрид.
Ты поробуй - удобно черт побери :)


#46
21:20, 21 авг. 2003

Джо
void - грубо говоря, обозначает, что нет возвращаемых из функции значений.
void* - нетиризированная ссылка.

>> Думаю, необоснованно повышать систребования неуместно.
Doom III когда планировался? Какие тогда машины были? :) Такие как у тебя.
Но это к слову.

  ?!? Обожди, а VC7 под win98 не пойдет. Ей как минимум надо XP или 2000.
Гм, затык второй степени.
VC6 пашет. Но утиля по переводу проекта из/в  6/7 я еще не видел.  :(

Этот вопрос надо перемять иначе дело не пойдет.

Венгерку вроде умяли. !Use
По этому поводу вообще можно четко оговорить следующее. Синтаксис ЛЮБОЙ.
Все равно код прежде чем добавиться в библиотеку пройдет через хе-хе мои руки
и будет модифицирован для приведения к общему знаменателю. А то я чую дальше
синтаксиса мы не уйдем.
Если у кого есть другие дельные предложения с помощью которых можно преодолеть
этот затык милости просим. Но надо учесть, что сложно людям пересаживаться на
другого коня, когда им за это никто не платит.

>> неудобная тормозная гадость
не надо так бросать словами, особенно 'про все остальное'. Профи уровня real
Microsoft Certificated Engeneer заткнут за пояс пол гэйм дева, даже если тех
складывать. И вопрос не в том у кого амбиций больше. Просто технологию надо знать
в лицо. А не так, что поробовал - вроде сложно, ну и на ... ее.

>> Тулз - какой кому нравится
Синхронизация библиотек классов и типов данных в таких непохожих языках как C и Pascal?
Задачка требующая знания обоих языков/компиляторов на уровне системы.
Я такими знаниями по Pascal не располагаю, а ты?
Отсюда и требования опираться на базу с++ core. Maximum что я могу это синхронизировать
Builder и MSVS lib.

>> Вопрос, что лучше:
:)) Ты сам то уже где.

Никто не ничего не сказал ни про название, ни про лог проекта, ни про фичи движка.
Ни про Low level function stub.

И куда делся elf-nm

#47
21:47, 21 авг. 2003

Altalert
Ты всё не так понял.
>void - грубо говоря, обозначает, что нет возвращаемых из функции значений.
>void* - нетиризированная ссылка.
Я знаю что такое void, void * и даже void ** :) Мне непонятно зачем это
typedef void VD; // Void

>Doom III когда планировался?
WinXP на моём компе не пойдёт, при чём тут DOOM и чем плохо Win98 (у меня W2K). По-моему, многие разработчики установили нижнюю планку для игр именно 98, т. к. игры в общем особо специфичные технологии ОС не применяют.

>Обожди, а VC7 под win98 не пойдет. Ей как минимум надо XP или 2000.
>Гм, затык второй степени.
>VC6 пашет. Но утиля по переводу проекта из/в 6/7 я еще не видел
Это мне тоже известно... И вообще речь шла о работе движка под Win98, а не IDE...
А переводить проекты-то зачем? Выкладываем cpp h, каждый втыкает их в свой dsw, dsp или vsproj.

>Венгерку вроде умяли. !Use
Т. е. uses? :(

>Синтаксис ЛЮБОЙ.
Нет, так не пойдёт. Общие правила обговорить нужно обязательно, детали - на своё усмотрение. Но без общих правил движок будет как Франкенштейн.

>Но надо учесть, что сложно ! людям пересаживаться на
>другого коня, когда им за это никто не платит.
Точно.

>Просто технологию надо знать в лицо
Это я про удобство среды. NET гораздо круче 6 и 5 версии. Ты не представляешь, как я в Delphi привык  к закладкам. И в .NET они есть, не надо крысой бегать в Solution Explorer.

>Синхронизация библиотек классов и типов данных в таких непохожих языках как C и >Pascal?
Я имел в виду VC 5, 6, .NET. Delphi - для создания редакторов, можно на Pascal код написать, а можно подключать DLL, сваренные в С++.

>И куда делся elf-nm
Свалил в GAMEdat :(

#48
22:55, 21 авг. 2003

!Use - а Паскаль забудь :)) ( шутка. Про Паскаль :) )
! - отрицание в С++

VD SD DB FL - для краткости, единства и простоты структуры.

Хорошо. Оформь синтаксис как ты его понимаешь и брось по мылу. А то мы тут топчемся, людей смешим. Договоримся о чем нибудь - выложим. Нехай критикуют.

GAMEdat - не умер? ок.

#49
0:31, 22 авг. 2003

Можно ткнуться?

GAMEdat не умер пока. Но на грани.

Я вот не пойму... Джо свалил из него, т. к. услышал, что будем Дум4 делать. Это мы то Дум сделаем? Через сеть? Да никогда. Джо, ты прав, я абсолютно согласен с твоими рассуждениями насчёт организации проекта. Надо реализовывать ПОСИЛЬНУЮ задачу. Но без примера, идеала, цели ничего сделать нельзя.

Я предлагаю объединить усилия. Что-то подсказывает мне, что ТОМУ проекту хана. Я, конечно, подожду, может ещё всё будет ОК. Если нет - предлагаю мою помощь и активное участие. Мне важно попробовать, что значит сделать игру, общаясь через сеть.

Я сейчас разбираюсь с collision detection. Знаю Win32 API, OpenGL, DirectSound. Понадоблюсь - буду с вами.

#50
4:29, 22 авг. 2003

Altalert
>grozny
>А где ты такое надыбал.
>Цитирую MSDN.
>1. The __int64 type has no ANSI equivalent.
>
Да, действительно, и в новом МСДНе так написано. Однако есть драфты С89 и С99.

>2. Microsoft C/C++ features support for sized integer types.
>You can declare 8-, 16-, 32-, or 64-bit integer variables by using the __intn
>type specifier, where n is 8, 16, 32, or 64.
>128 нет.
>
ээммм, бес попутал - имеется в виду _m128, _m128d, _m128i. Компиляторы: Есть у МС,у Интела, в ГэЦэЦэ... Это нестыковочка выходит и некрасиво, но по С99, например, long long (который в Гцц счас подставляется вместо _int64) - синтаксическая ошибка.

>Вообще частью типы из асма. Частью сокращение. Частью гибрид.
>Ты поробуй - удобно черт побери :)

Спасибо. Но сие супротив моего стиля - скалярные типы только маленькими и с размером числами. Ну хотя бы I32, U32 использовал - так тоже размер видать

#51
8:23, 22 авг. 2003

grozny
i32, u32 - я не против. Но надо шоб все были не против.
:) Вот они минусы демократии.

ZET
А я думал в будущем устроить сравнительный тест нашего и вашего движков :(
Но ты не вешай нос. Тяни проект изо всех сил. Принцип такой - люди приходят и уходят, но идея жива. Если станет совсем невмоготу - милости просим к нашему огоньку( При+нутых и OpenGL спецов днем с огнем не сыщешь ). :)
  Fortune on you

Джо
Пусть будет Win98 - пока это не принципиально.

#52
9:02, 22 авг. 2003

Насчет типов данных: а чем плохо typedef __int16 int16? Лично мне понравилось.
Венгерку нафиг, а префикс m_ лучше оставить. А вообще Джо говорил о принципе
"черного ящика", с чем я абсолютно согласен, где внутренняя реализация неважно
как описана, главное чтобы правильно работала.

Среда разработки. Использовать managed extensions мы не собираемся, поэтому что
VC 6.0, что VC.NET - без разницы, пусть каждый пишет на чем хочет.

Насчет Win98. Не знаю в чем проблема, но программы что на Visual Basic, что на
Visual C++, откомпилированные на Win98, не работают на NT4/200/XP.

Опять о "черном ящике". Главное - описать необходимые интерфейсы и сделать хоть
что-то для начала. Маленький совместный результат - уже хорошо.

Народ, предлагайте более существенные вещи, чем синтаксис. Если мой вариант
неудобный, предлагайте свои. Создание 3D action - процесс долгий, первый этап
долгий и тяжелый, пока не появится хотя бы технологическая демка, но делать-то
его надо!

P.S. Все же предлагаю делать два рендерера (D3D+GL)

P.P.S. А на GAMEdat я просто в гости сходил :-)

#53
12:22, 22 авг. 2003

>!Use - а Паскаль забудь :)) ( шутка. Про Паскаль :) )
>! - отрицание в С++
Да знаю я, что такое ! :) Просто на мыло приходят немного искажённые мессаги - знаки ! посреди текста. Глючит site engine.

>GAMEdat - не умер? ок.
Он всё равно умрёт с теми подходами, что там были. Если конечно их не пересмотрят. Вообще-то мы все хотим писать шутер (на фоне того, что большиснство обычно хочет писать RPG, и это уже удача) и было бы очень недурно объединить усилия. Вот только не перегрызёмся мы от того, что одни хотят достичь достижимой цели, а другие просто потусоваться и в итоге чао, пацаны!

>Пусть будет Win98 - пока это не принципиально.
Уфф, уговорил!

>Visual C++, откомпилированные на Win98, не работают на NT4/200/XP
Странно. Это только ты проверял или это общепризнанный глюк?

>Опять о "черном ящике". Главное - описать необходимые интерфейсы и сделать хоть
>что-то для начала. Маленький совместный результат - уже хорошо.
Руки чешутся? Всё-таки как-то не по себе. Надо сначала всё же всё тщательно обговорить, а потом делать наброски. А то сейчас каждый бросится кодить - и начнётся каша.

>Хорошо. Оформь синтаксис как ты его понимаешь и брось по мылу.
Вообще-то рано ещё. Но раз ничего пока не обсуждается - давай выложу синтаксис, только не в мыло, а прямо сюда.

#54
12:28, 22 авг. 2003

Итак, вот он предлагаемый мною синтаксис. Это только моё видение стиля, не следует это воспринимать как приказ писать так всем. Просто прочитайте и выскажитесь.

// Описание классов, структур, функций, переменных
class MyClass
// На то, что это класс, указывает написание с прописной буквы,
// каждое следующее слово начинается с прописной буквы,
// приставки С или T отсутствуют (честно слово, "сикать" аж мутит :-[])
// Сразу предупрежу - написание этого типа с прописной буквы - как
// исключение, подчёркивает особенность это типа (т. е. сразу видно,
// что это класс и не что иное)
struct mystruct_t
enum myenum_t
union myunion_t
// Т. е. эти типы описываем строчными буквами (заимствовано из Quake 2),
// в конце прибавляется семафор _t - независимо от того, что это именно -
// структура, перечисление или объединение. tag он и есть tag. _t обязательно,
// оно указывает, что это новый составной тип, а не переопределённый базовый.
struct vec3_t
{
	float x;
	float y;
	float z;
};

typedef float balance;
// Переопределённые типы описываются строчными буквами безо всяких приставок-семафоров.
// Сложные длиныые типы С переопределяются так:
typedef unsigned int uint; // не uint32, опять же задолбаешься эти 32 писать, особенно
// когда стопудов помнишь, что это unsigned int
bool SomeFunction( int a, int b )
// Т. е. имя функции скобка - пробел - список параметров - пробел - скобка
// Пробел возле скобок заимствован мною из DirectX SDK, я считаю, что он улучшает
// читабельность программы. n(i - свалка символов
// В общем, такая каша не нужна:
bool SomeFunction(int a,int b)
//...
GeomOctree g_geomoc;
// Переменные пишутся полностью строчными буквами, опять же причины:
// 1) Мы Ведь Не Пишем Текст В Таком Стиле
// 2) Минимизаци нажатия на shift.
// 3) IMHO (здеьс всё IMHO) - программа выглядит более аккуратно (тот же Quake2)
// К сожалению, такой стиль имеет и недостатки
g_geometricoctree // учимся выдумывать лаконичные имена, см. выше
g_temporalcoherencelist // если неохота писать g_tcl пишем:
g_temporal_coherence_list;
// Кол-во подчёркиваний желательно минимизировать, но всё же там, где слова с трудом
// читаются, они применяются обязательно. Однако что-то вроде
Area g_cliparea; // можно писать и без g_clip_area
// Как видно, глобальные переменные пишутся с семафором g_(global, кто не знает),
// члены классов - m_ (member)

// Арифметические и логические операции
int x = 5;
// не int x=5;
float a = 12.0f / 2.0f;
// не float a=12.0f/2.0f;
if (a > b)
// не if (a>b)
// Т. е. везде ставится пробел и символы в кучу не сваливаются

// Написание скобок в других конструкциях:
for (int i = 0; i < 5; i++) {..}
if (a != b) {...}
while (true) {...}
// Т. е. тут применяется стандартная схема, в отличие от if( xxx ) Microsoft
// Причина - слипаются только два символа, а не три, поэтому всё читабельно

// Общие правила: код пишется во возможности более кратким, просторным, лаконичным,
CMaterial::LoadMaterialFromFile(char* szFileName)
// vs
Material::Load( char *filename )

Да, далеко не полный список, но даёт общее представление о том, что я предлагаю, как должен быть оформлен код. В общем, единственное направление - лаконичность и внутрення красота, делающия кодинг ещё более приятным делом!

#55
12:52, 22 авг. 2003

Джо
Глюк может быть и не общепризнанный, но сталкивался не только я один, это даже на
форуме обсуждалось.

Насчет синтаксиса. Почему bool SomeFunction(_int a, int _ ) и if_(a != b) {...} ?
И, IMHO, g_clipArea читается проще, чем g_cliparea.

#56
22:52, 22 авг. 2003

elf_nm
Я говорил только что, Visual Studio 7.0 не ставится на win98. Он прям так и пишет буде такая попытка предпринята. А проги из под седьмого компилятора в win98 не пашут, потому что прогеры кривые MSDN не листают.


Дальше.
2Both

class MyClass        ok
struct mystruct_t  // struct MyStruct
enum myenum_t  // enum MyEnum,
                  причина: откуда у struct и enum привелегии маленькой буквы :)
union myunion_t  //  вообще то за все время кодинга ни разу не понадобилась
struct vec3_t        // struct Vec3
{
  float x;                // float X;
  float y;                // etc
  float z;                // причина:  Set( float x, float y, float z ) - одинаковое название входа и результата
};

typedef float balance;  // это нам не должно сильно понадобиться, мы определим название базовых типов в начале и будем оперировать только ими. Смысл в этом.

>> задолбаешься эти 32 писать
вопросы будут возникать когда 8 и 16 да еще и signed

>> bool SomeFunction( int a, int b )
дело хозяйское

GeomOctree g_geomoc;        // GGeomOc - G для глобальных переменных,

8)) А ты пересчитай количество нажатий
g_temporal_coherence_list    vs          GTemporalCoherenceList

// члены классов - m_                          я начинаю звереть :)


// Арифметические и логические операции
// Написание скобок в других конструкциях:
Все что внутри реализации имхо непринципиально

// Общие правила: код пишется во возможности более кратким, просторным, лаконичным,
:) ок

ко фсему вышесказанному хочу добавить:
1. Key Tab запрограммировать на два пробела.( built-in editor нормально настраивается )
2. Четко писать в шапке, што за файл, зачем, автора, остальное по вкусу.
3. Файл описывает один класс( возможно добавление support struct ). Название файла = название класса.

но ГЛАВНОЕ. Мы не разобрались с базовыми типами. Их я уже писал.
А сейчас поясню.
1. Базовые типы данных - это база любого проекта, его фундамент. На ее основании пишется все остальное. Переопределение базовых типов под свой проект - краеугольный камень независимости проекта. Если Microsoft вздумается изменить хотя бы название СВОЕГО( например bool )базового типа на который мы опирались - что произойдет? А если заменит размер базового типа?
Можно огрести такие проблемс. Я их уже огребал когда в Microsoft была заморочка с размером bool при версионном переходе. Больше ни хочу.
Поэтому переопределение обязательно. Однозначно.
2.
Теперь во что? Я уже предлагал. Но никакого вразумительного возражения не получил.

Привожу еще раз.
// Unsigned base types
// *************************************************************************
typedef unsigned char    UB;  // 8-bit unsigned byte
typedef unsigned short    UW;  // 16-bit unsigned word
typedef unsigned long    UD;  // 32-bit unsigned dword
typedef unsigned __int64  UQ;  // 64-bit unsigned qword
...
// Signed base types
// *************************************************************************
typedef signed char      SB;  // 8-bit signed
typedef signed short      SW;  // 16-bit signed
typedef signed int        SD;  // 32-bit signed
typedef signed __int64    SQ;  // 64-bit signed

// Other base types
// *************************************************************************
typedef void              VD;  // Void
typedef signed int        BL;  // Boolean 0 (false) else (true)
typedef float            FL;  // 32-bit IEEE floating point
typedef double            DO;  // 64-bit IEEE double

// Ansi( default )
typedef TCHAR            TC;  // Text char
typedef TH*              TS;  // Text string

Ваши замечания. Тока обоснованно.

#57
17:41, 24 авг. 2003

Всё, приехали.

>Тока обоснованно.
typedef void VD; // Void - это же надо было додуматься. Но это к делу уже не относится.

Вижу, ничего тут нам совместно не написать, потому что люди не заинтересованы. Стоило мне для проверки чуточку перестать гнать посты - и всё сдохло.

elf-nm
Зачем ты мне голову морочил, что писать шутер хочешь? Сравнить объём моих постов и твоих - слов не надо, всё и так ясно.
Ладно, спасибо всем за детский сад, проектик можно признать успешно несостоявшимся по причине отсутствия заинтересованых челов. Придётся всё-таки писать движок в одиночку, может к зиме ещё раз кину удочку по сабжу.

Может, хоть у GAMEdat чего выйдет.
Всем спасибо за участие.

Begin close project...
Project status: closed
Log close
Unconnect...ok

#58
18:25, 24 авг. 2003

Джо
расслабься :)) вчера и сегодня - Сб и Вс - традиционно очень низкая активность на форуме.
Так что может, не рубить, тыкскызыть, с плеча??

#59
19:04, 24 авг. 2003

Джо
Зря ты так.

>> это же надо было додуматься.
Кроме голых слов никаких аргументов не услышал.

Gamedev Джо
Status: temporarely disconnected
Project status: IDDQD IDKFA
Gamedev Altalert
Status: Secondary master programmer
Project conditional start

  А если серьезно товарищ Джо, то ты скорее не прав. Если решил делать проект - так делай. А так чтобы взять взбаламутить людей, а самому тихонько свалить - не по людски - это. И похоже не в первый раз. Так что давай вяртайся.

2All
Проект не умер. Просто пока в нем участвует всего один человек.
Еще раз про тематику проекта: создание движка под 3D шутер и соответственно самой игры.
Предположительно - это будет продолжение первого Unreal, т.е. сразу же после такого как главный персонаж завис над планетой в спасательной капсуле.

Участие любых заинтересованных челов только приветствуется. Так что присоединяйтесь!

Страницы: 1 2 3 4 5 6 7 Следующая »
ПроектыФорумОцените

Тема в архиве.