Войти
ПрограммированиеФорумОбщее

От Java к С++

Страницы: 1 2 3 4 5 Следующая »
#0
13:47, 13 мар. 2010

Извиняюсь, если подобные темы уже были - не нашел.

О причинах, побудивших создать тему: в институте программирование нам преподавали постольку-поскольку, больше делался упор на электронику и сетевые технологии, поэтому, получив основы знаний об ООП и С++, кинулся изучать ООП самостоятельно.  На последних курсах работал в конторе, разрабатывавшей сетевые приложения на Java, поэтому углубление познаний пошло в эту сторону. В результате - довольно неплохое знание Java и почти забытые основы C++.

Сейчас меня приглашают принять участие в любительском проекте. Изучал книги по разработке игр на Java: устойчивое имхо - писать надо на С++, все-таки Java для такого не заточена.

Однако, в таких книгах дано четкое описание алгоритмов создания тайловых графических движков, обработки событий клавиатуры и мыши и прочего. Уже к окончанию пятой главы в одной из книг, как результат, приводится типичный скроллер а-ля римейк Марио. То есть, не просто набор каких-то принципов, а с начала книги в течение каждой последующей главы автор приближает читателя к конечной цели.

Скажите, есть ли подобная литература по С++? Не просто описание структур данных, лексем и методов обращения к памяти, а последовательные шаги разработки чего-то. Мол, начали с базовых знаний, а закончили примитивнейшим арканоидом. Пусть примитив, зато кой-какие наработки в голове уже есть.

Извините, ежели сумбурно написано - я не спец в виртуальном общении, что форумы, что аськи - недолюбливаю. Надеюсь, вопрос ясен: есть ли пошаговая книга-мануал по разработке чего-то простого на С++/DirectX? Если не мануал, а серия уроков на сайте - тоже приветствуется.


#1
14:05, 13 мар. 2010

Paberu
> Скажите, есть ли подобная литература по С++?
Чтобы начиналось с основ языка и заканчивалось созданием проекта - не встречал. Вероятнее всего придется изучать отдельно С++, после DirectX/OGL/иная_технология.

P.S. Если в проекте C++ не принципиален, то в качестве основы лучше взять готовый движок. Например Unity. Имеет отличную документацию (+Пошаговые уроки). Языки программирования: C#/JavaScript/BooScript. Базовых знаний Java (или любого другого С-подобного языка) вполне достаточно, чтобы программировать на любом из них [C#/JavaScript/BooScript], т.к. тонкости наследования, знания в области платформы .NET и прочие премудрости просто не понадобятся.

#2
14:22, 13 мар. 2010

Походу, ввел в заблуждение. Книга начинается не с основ языка. Предполагается, что языком человек уже владеет, но вот данных технологий не знает.

С++ я знаю на уровне политеха, в отличие от Java. Поэтому и хочется подтянуть и тянуть дальше.

Кроме того, сейчас я работаю в другой конторе, в отделе телекоммуникаций, там программирование нужно лишь изредка, но часто именно С или С++. Поэтому и хочется перейти на С++, чтобы программирование для работы и программирование как хобби хотя бы на уровне выбора языка не слишком отличались.

Спасибо за рекомендацию движка. Посовещаюсь с товарищами, я им давно говорю, что лучше взять готовый, но не знал, какой выбрать.

#3
5:03, 15 мар. 2010

Paberu
  Напиши, какие книги по разработке игр на Java читал, интересно.
  Моё мнение - если хорошо знаешь Java, то стоит написать игру именно на нём, потому что писать на С++ будет намного сложнее. Я бы быстрее заинтересовался проектом на Java, потому что всё ещё хочется увидеть и убедить остальных, на что способна эта платформа.

#4
9:42, 15 мар. 2010

> Напиши, какие книги по разработке игр на Java читал, интересно.

Мне вот тоже интересно. Видел только по разработки игр на j2me.

#5
11:12, 15 мар. 2010

Игры на Java для PC - извращение.

#6
11:56, 15 мар. 2010

> Игры на Java для PC - извращение.

Не более чем на С# + XNA

#7
13:26, 15 мар. 2010

Paberu
> сетевые приложения на Java
Те кто работали и работают на Джаве получают дай бог. Денежки хорошие поэтому чувствуют себя прекрасно.

#8
14:07, 15 мар. 2010

GreenWood
> Не более чем на С# + XNA
В общем то да :)
C# удобно использовать как скриптовый язык (через .NET оболочку над native ядром движка (реализовано в Unity) ). Неплохая альтернатива pyton и lua.

#9
15:47, 15 мар. 2010

destrator
> Игры на Java для PC - извращение.

Почему?

#10
21:14, 15 мар. 2010

Не буду говорить, что извращение, что нет. Авторы книг приводят отличные доводы, почему Джава для разработки игр не хуже, чем С++. И вроде бы все логично, все понятно, а нутром чую, что что-то тут не так. Может быть виновато общественное мнение.

2 destrator: приведи, пжлста, аргумент хоть какой-нибудь, потому как "потому что я так сказал", за аргумент не катит. )) Изо всех сил хочу с тобой согласиться и броситься вспоминать С++.

2 Zefick, GreenWood: книг скачал много, но пока работаю по Developing Games in Java издательства New Riders Publishing. Качал по торрентам отсюда: http://thepiratebay.org/torrent/4200541/Game_Deveploment_(VasiaZozulia) . Там по всему на свете, от Photoshop и 3dMax до Java и С++, очень полезная подборка по игростроению. Все на аглиццком. И помните, вы качаете книги для ознакомления, понравилась - купи, не понравилась - сотри. ;) А то мало ли. Если правилами форума такие ссылки запрещены, бить не обязательно, я и так запомню. )))

В книге приводится типичный скроллер типа Марио, но меня бросило в арканоиды. Поглядим, чего выйдет. Пока все страшно - с гимпом, как и фотошопом, работать практически не умею. ;))

Касательно Unity: движок - просто мечта, но не для того проекта, куда меня зовут. Они хотят делать чистое 2D, причем движок хотели бы бесплатный, а лучше свой. Ну, на тему своего я им объяснил, сколько это времени и геморроя, так что они нехай ищут сами.

и еще раз 2 destrator: просто глянь на то, как построена та книжка, первые пять глав. Мне вот чтоб похожее, но с С++. Так понятнее будет, чего хотелось бы найти.

Правка: почему-то ссылку неправильно отображает, поэтому пользуйте копи-паст:
[начало]http://thepiratebay.org/torrent/4200541/Game_Deveploment_(VasiaZozulia)[конец]

#11
0:38, 16 мар. 2010

TiLex
> Почему?
Paberu
> 2 destrator: приведи, пжлста, аргумент хоть какой-нибудь, потому как "потому
> что я так сказал", за аргумент не катит.

1) Java на PC выполняется на виртуальной машине, отсюда:
- программы на Java теоретически выполняются медленнее, чем native code, а фактически: намного медленнее, чем managed .NET приложения. По сравнению с native они просто тормозные.
2) Виртуальная машина Java нестабильна. Это написано в каждом руководстве по программированию.
3) Программирование современных игр требует работы с интерфейсами, обеспечивающими функции аппаратного ускорения устройств (Графика, ввод, звук...). Для Java они [интерфейсы] реализуются через враперы, специализированные для конкретной платформы: в результате мы теряем главное (а не единственное ли :) ) преимущество Java: кроссплатформенность.
Вывод: Java прекрасно подходит для мобильных и бытовых устройств (для которых эта технология и разрабатывалась), но противопоказана для платформ, на которых есть любая ее альтернатива: .NET или native.

> Мне вот чтоб похожее, но с С++.
Из книг по программированию игр итал только:  Strategy Game Programming With DirectX 9.0 (Todd Barron). Читал давно, тогда понравилась, а сейчас выглядит наивно. Вообще книги по программированию читать не люблю. Вполне обхожусь официальными руководствами, примерами и проектами с открытым кодом.

#12
2:38, 16 мар. 2010

Очередной детский сад. Прочитал в какой-то книжке от 1995 года, что java тормозит, и понеслось. Дальше даже слушать неинтересно.

#13
3:30, 16 мар. 2010

TiLex
> Очередной детский сад. Прочитал в какой-то книжке от 1995 года, что java
> тормозит, и понеслось.
Я когда-то использовал оконные Java-приложения (~2001-2002гг). GUI жутко тормозил, с тех пор не юзаю. Простая логика подсказывает, что прога на виртуальной машине не может работать быстрее такой-же на CPU.

> Дальше даже слушать неинтересно.
А мне было бы интересно послушать об использовании Java для программирования игровых 3D-движков (с использованием DX/OGL и GPGPU (DCompute/OCL) ). С удовольствием бы посмеялся над перфомансом таких игр :)

#14
4:23, 16 мар. 2010

destrator
> Простая логика подсказывает, что прога на виртуальной машине не может работать
> быстрее такой-же на CPU.
есть JIT компиляторы, преобразующие байт код в нативный машинный
некоторые из них за счёт возможности динамического анализа кода могут делать такие недоступные обычным компиляторам вещи, как встраивание (inline) виртуальных функций

> А мне было бы интересно послушать об использовании Java для программирования игровых 3D-движков
есть и движки, например Espresso3D
но лучше было бы на Java писать игрологику, как сделано, если не ошибаюсь, в ИЛ-2
а критические к ресурсам части, типа, движка, на C++

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

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