Пилю понемногу игру мечты. Планы такие - графика на уровне "чуть лучше, чем в Quake 3", DeathMatch карты небольшого размера. Я сам увлекаюсь такими играми (особенно UT99), и знаю, что суперграфика там не то, что не нужна, а даже вредит - очень важно быстродействие, "отзывчивость" управления, но даже вне зависимости от этого обилие наворотов мешает быстро ориентироваться. Даже UT2003-2004 на мой взгляд уже перегружены деталями и эффектами, а UT3 - чрезмерно перегружен. Эффект "вау!" от наблюдения этой красоты проходит быстро, а раздражение от того, что трудно ориентироваться - остаётся.
Только что сделал физику перемещения персонажа, можно потестить по ссылке в конце сообщения. Вроде получилось то, что хотел, единственное, что не доделано - на присяде нельзя будет соскользнуть с края, как в UT.
Системные требования: CPU от 2 ГГц, DX9.0c, аппаратные шейдеры PS_2_0 или новее, но ещё более важно быстродействие видеокарты (шейдеры довольно тяжёлые), поэтому на GF FX5200 игра пойдёт, но FPS, скорее всего, будет неприемлемо низким. Желательно что-то не слабее GF 6600.
Для обучения программирования под Linux, Mac OS X, конечно требуется!
Нет обучения программирования под Linux, Mac OS X, есть просто обучение программированию.
Цитата
Ага, кривой велосипед с квадратными колесами! Должны быть библиотеки с функциями, а не отдельная утилита для ручного декларирования!
Поиск по введённым первым буквам, копирование, вставка - лучше, чем держать их постоянно подключенными, перегружая ключевые слова.
Цитата
Ага, дремучий, бородатый бейсяра, синтаксис которого давно устарел и наследует много чего из QB, а тот в свою очередь с еще более древних бейсиков!
Не правда, микрософт всегда развивал свои бейсики, оставляя только примерную совместимость для более лёгкого перехода со старой версии на новую. Бейсик наиболее развился, по сравнению с другими яхыками.
Цитата
Да согласен, в VB среда разработки оставляет желать лучшего.
visual basic 6.0 выпущен в далеком 1998 году и уже начинает устаревать! С его помощью можно создавать только x86 программы для Windows. Для Linux или MacOS X прогу не создать, x64 приложения тоже. Стандартную DLL тоже не создать. Все что связанно с WinAPI приходится самому декларировать. Об это М$ не побеспокоилась и переложила на программистов.
PureBasic не имеет этих недостатков, поэтому он лучше.
Ощущение, что тебе платят за рекламу PB Давай по порядку:
Цитата
visual basic 6.0 выпущен в далеком 1998 году и уже начинает устаревать!
Тем не менее его код быстрее "современного" PB.
Цитата
С его помощью можно создавать только x86 программы для Windows. Для Linux или MacOS X прогу не создать, x64 приложения тоже.
Сам подумай, разве это требуется для обучения?
Цитата
Все что связанно с WinAPI приходится самому декларировать.
Это не правда! И я уже писал об этом, но тебе выгоднее не замечать. Вместе со средой VB6 идёт специальная утилита, называется "API Text Viewer", для декларации API, а так же системных типов и Enum-ов.
Цитата
PureBasic не имеет этих недостатков, поэтому он лучше.
Его основные недостатки - отсутствие ООП, убогая среда разработки (не спорь, а сначала попробуй как в VB6 остановить выполняющуюся программу, часть кода дописать, часть удалить, часть изменить - и продолжить выполнение, прямо из Immediate Window не просто просмотреть или поменять значения переменных, а вызвать любую функцию своей программы, не нарушив её выполнение). Синтаксис в VB6 - нормальный бейсик, его можно встретить в активно применяемых VBA и VB Script, а в PB - монстр, ни на что не похожий, который не понятно по какому праву вообще называется бейсиком.
Теперь топикстартеру - тут больше половины называют просто тот язык, которым пользуются, и подозреваю, что кое-кто из тех (не все), кто "однозначно за C++" - просто пытаются создать себе имидж крутого программера, чтобы никто не заподозрил, что они пишут на бейсике. НЕ ВЕРЬ. Я сам большой поклонник VB6, но за него не агитирую - он действительно устарел (но не мертворожденный, как Pure), пока на нём можно писать отличные программы, но слишком долго это продолжаться не может. Для обучения это не важно, но есть специально созданные для обучения языки, к примеру Small Basic. Но просто помни, что Small Basic - фактически детский, чтобы просто понять, что такое программирование. Если это понятие уже есть - можно взять vb.net или C#, можно и Дельфи, тем более, что его основа - Паскаль, был создан именно для обучения. Не нужно думать "выучу то, что пригодится в будущем", нужно учить то, что поможет понять, что такое "программировать", после первого языка выучить второй уже значительно проще, когда придёт понимание и станет ясно самому, что же действительно выбрать. А если очень не хочется учиться программировать, а хочется сразу делать игру - тогда уж возьми соответсятующий инструмент, какой-нибудь DarkBasic, BlizBasic, GameMaker. Или какой-нибудь движок с поддержкой нормального скриптового языка - Луа, Питон. Pure Basic - по своему не плохой инструмент, но начинать с него нельзя ни в коем случае. C++ - штука очень мощная и познакомиться с ним ПОТОМ будет очень полезно. Скажем так - если ты будешь три месяца заниматься Small Basic-ом, три месяца vb.net, три месяца C# и три месяца C++, то в результате C++ будешь знать лучше, чем если бы учил только его с нуля весь этот год.
Rean, бейсик сейчас гораздо более распространён, чем ты думаешь. Кроме .NET, всё ещё жив VB6. Почему? Потому, что очень удачен. Даже в Windows8 включили msvbvm60.dll. Плюс ещё, только из майкрософтовских, живут и здравствуют VBA, VB Script, Small Basic. Есть ещё куча сторонних компиляторов и интерпретаторов. А вспомните различные игровые движки-конструкторы - в них чаще всего применяется бейсикоподобный синтаксис, иногда сиподобный, но никогда паскалеподобный. Сами языки сравнивать, наверное, не очень корректно, есть конкретные диалекты и реализации, к примеру, борландовский Turbo Pascal был значительно удачнее их же Turbo Basic-а, но при этом был гораздо более удачный майкрософтовский Quick Basic. Оба языка создавались, как учебные, но дальнейшая их судьба сильно отличается - производители реализаций Паскалей гораздо сильнее держатся за свои стандарты, Бейсик наоборот - постоянно дорабатывается, часто меняется коренным образом. С одной стороны это плохо - приходится переучиваться, но, с другой стороны, не так это сложно, и с каждым разом заметны улучшения - сейчас Бейсик содержит уже всё, чего в нём не было изначально, а было в Паскале, и даже больше, при этом он давно избавился от устаревшей "шелухи", типа READ, DATA, GoSub и т. п. В Паскале-Дельфи, на мой взгляд, излишне строгая типизация в математических выражениях для языка высокого уровня, это сильно ухудшает читаемость кода, даже в низко-среднеуровневых C-C++ типизация не такая строгая. В Бейсике наоборот, типизация иногда излишне мягкая, но это довольно редкие случаи - например, строке можно присвоить численное значение, число 44.235 автоматически станет строкой "44,235" или "44.235" в зависимости от языковых настроек системы. Бейсик обладает, пожалуй, самым читаемым и неперегруженным излишествами синтаксисом - никаких ";" в конце строк, никаких "Begin", дублирующих начало языковых конструкций, которые и так уже есть. Бейсиковские "End If", "Exit For" гораздо информативнее паскалевских "end" и "break", видно, блок какого типа завершается, плюс позволяет выходить из вложенных циклов без помощи "GoTo". Например, цикл "For" внутри цикла "Do". Мы можем применить "Exit Do" либо "Exit For". А сравните сами циклы "For" - в Паскале зачем-то добавляем два слова - "do" и "begin", которые НИЧЕГО НЕ ДЕЛАЮТ и не добавляют наглядности. А для нисходящего цикла применяют "downto", сравните его с "Step" из Бейсика, чтобы понять, какой это костыль.
Сообщение отредактировал -Mikle- - Четверг, 13 Декабря 2012, 16:26
А программа на VB пойдет на стороннюю ОС (к примеру Linux), если в папку с программой кинуть файл msvbvm60.dll
На линуксе под вайном работает, по крайней мере без ActiveX компонентов. По идее и с ними дожно, не пробовал.
Quote (Froster)
а Вы регистрируете ActiveX в своих проектах программа в реестр?
Я не люблю ActiveX, стараюсь не использовать. Например, мне не нравится, что без админских прав пользователь их не сможет зарегистрировать, то есть не сможет запустить мою программу. Да и не нужны особо ActiveX компоненты в играх. Файловые диалоги и т. п. не сложно и самому написать.
А что она исправляет в проекте, что проект будет идти нормально?
Она автоматом собирает в архив все нужные компоненты, но это не трудно сделать самому. Она автоматом регистрирует ActiveX компоненты, это тоже, при желании, можно сделать вручную. Всё, что подключается через меню "ссылки" или "компоненты" - это ActiveX, их надо регистрировать в системе с помощью команды regsvr32, так:
Code
regsvr32 MyDll.dll
Это нужно выполнить в командной строке или с помощью Shell, вместо MyDll.dll подставь своё. Достаточно это выполнить один раз, потом будет работать даже после перезагрузки компьютера. Это и делают инсталлеры. Если, как советует PBPROG, воспользуешься его любимым Pure Basic - ActiveX компоненты придётся регистрировать ВСЁ РАВНО. С другой стороны на VB6, как и на Pure Basic, тоже можно писать, не используя сторонних DLL, кроме msvbvm60.dll, но это не проблема, так как она есть в любой Windows, по последним данным даже в восьмёрке. А если даже там её не будет - достаточно в папку с проектом положить эту DLL, больше никаких действий. Правка: С Pure Basic и ActiveX скорее всего ещё сложнее, ведь в Pure Basic нет ООП.
Сообщение отредактировал -Mikle- - Четверг, 15 Ноября 2012, 11:38
Froster, если использованы какие-то дополнительные DLL или OCX, то делай инсталлер с помощью "Package & Deployment Wizard" - это программа, специально для этого сделанная, идёт в комплекте с Visual Basic 6, ссылка должна быть в меню "Пуск/Программы/Microsoft Visual Basic 6.0/Microsoft Visual Basic 6.0 Tools".
Если они не нашли, а ты когда-то нашел и прочитал, почему нельзя хотя бы вкратце рассказать? Посылать в поисковик если не неприлично, то невыгодно для этого форума, потому что вместо наполнения его информацией ты перенаправляешь всех куда-то туда.
А я дал ссылку на пример, а не поисковик, и пример ПРЕДЕЛЬНО ПРОСТ. Только, как видишь, даже так переспрашивают, пример, похоже, даже не смотрели.
Quote (TimKruz)
Стекло тоже прозрачное, но его видно
Если нечто является действительно прозрачным, то его не видно. С виду совершенно чистое стекло может быть видно из-за того, что оно преломляет изображение того, что за ним. Но неумолимый закон Френеля говорит, что если есть отклонение угла преломления, то прозрачность не 100%-я, вместо недостающих процентов появляется отражение, которое в сумме с преломлением даёт 100%. Но это уже оффтоп, ты придрался - я ответил. Если что, сорри за "ты", я к себе ожидаю такое же обращение ото всех, хотя почти наверняка старше всех присутствующих.
Чтобы вам отвечали, научитесь правильно спрашивать, хотя бы просто сами представьте, что вы спрашиваете.
Quote
что бы при запуске программы форма этой программы была прозрачной
Если форма будет "прозрачной", значит её не видно. У формы есть свойство Visible, установите его в True - и форму не будет видно. Вам это нужно? Подозреваю, что нет. Может вам нужна ПОЛУпрозрачная форма? А может прозрачная, но чтобы кнопки и другие контролы были непрозрачными? И гугл не помогает? Странно, мне помог: Пример
хХ_Сибирь_Хх, вакансий на бейсик действительно мало, но это не значит, что он меньше подходит для конкретных задач. Например, vb.net ничем не уступает шарпу (кроме костыльного unsafe режима), имея при этом меньший порог вхождения, но на шарп вакансий больше - так сложилось исторически. В внутрипрограммном скриптинге от VBA никуда не деться, и бывают вакансии, кстати. В игровых конструкторах синтаксис бейсика наиболее популярен, потому что он прост и лаконичен. Но вакансий в солидных фирмах на них нет потому, что это инструменты фрилансеров. Но большое количество шароварок, сделанных на них успешно продаётся. VB6, которому 15 лет, до сих пор годится для создания Win32 приложений, и при этом практически не уступает по быстродействию другим ЯВУ (C++ таковым не считаю). По удобству среды разработки и отладки ему вообще нет равных. Постоянно замечаю на разных форумах, как программисты на других ЯП, изображая псевдокод, автоматически пишут практически на бейсике, сами того не подозревая. Почему? Потому, что это наиболее человеческий по синтаксису ЯП.
Криво работает тег "code". При сохранении ко всем строкам внутри тега, кроме первой и последней, добавляется лишний пробел в начале и в конце. При редактировании сообщения это повторяется, даже если не лезть в тот участок сообщения, где код. В результате форматирование съезжает, строки начинают переноситься.
Вот я как-то написал функцию, возвращающую True, если точка лежит внутри полигона, на Visual Basic 6:
Code
Function PointInPolygon(ByVal X As Single, ByVal Y As Single) As Boolean Dim n1 As Long, n2 As Long, f As Boolean
For n1 = 0 To vCnt - 1 n2 = (n1 + 1) Mod vCnt If (Y > V(n1).Y) Xor (Y > V(n2).Y) Then If X > V(n1).X + (V(n2).X - V(n1).X) * (Y - V(n1).Y) / (V(n2).Y - V(n1).Y) Then f = Not f End If End If Next n1 PointInPolygon = f End Function
В полигоне может быть сколько угодно углов, допустима даже невыпуклая фигура. V() - массив вертексов с координатами вершин полигона, vCnt - количество вершин. Mod - вычисление остатка от целочисленного деления. Неинициализированные локальные переменные автоматически инициализируются нулями (False). Long можно смело заменить на Int. Остальное, вроде бы, стандартно для любого ЯП.
Сообщение отредактировал -Mikle- - Вторник, 23 Октября 2012, 10:13
В чем разница между высокоуровневыми и низкоуровневыми языками:
Не в этом. Имеется ввиду уровень абстракции, на низком уровне мы имеем дело с памятью, сами выделяем, сами проверяем границы. На высоком просто объявляем переменные (или массивы, структуры, классы), памяти выделяется столько, сколько нужно. Одна из высокоуровневых фич - автосборка мусора, когда память под объектами, на которые не осталось ни одной ссылки, освобождается автоматически. В результате на ВУ программы работают несколько медленнее, но гораздо меньше возможностей случайно сделать ошибку.
игрок с большим монитором будет перебегать локацию дольше по времени чем с маленьким монитором
Так скорость игрока должна быть не в пикселях/сек., а в УЕ/сек. УЕ - та самая условная единица, на твоём мониторе она равна пикселю, на другом будет не равна.