Забей на всех, на неудачи и на идиотов что смеются вокруг, забей на то что ты школьник, забей на всё, и делай то, что тебе хочется. Только не останавливаться. И в универ ехать учиться в другой город, это позволяет воспитать самостоятельность раньше.
Спасибо. Учусь уже 4 года в другом городе. И планирую уехать еще дальше от дома. Возможно из-за того, что самостоятельность раньше развивал и не бросил начатое.
Бинарников не использую вообще, дело в том, что я jar оборачиваю в .exe, т.к. десура, насколько я понял, не позволяет использовать просто .jar. Хотя я в этом не уверен.
Спасибо. Насчет графики было много восклицаний, но ни одного конкретного предложения(кроме того, чтобы сделать заливку объектов градиентом, что я реализовал) не поступило.
В целом я не знаю, как можно сделать годную графику для игры, в которой форма объектов абсолютно произвольна. Разве-что как-то декорировать линии объектов или заливку им придумать другую.
Единственное, что мне недавно пришло в голову — сделать динамичный ненапрягающий фон. Какие-нибудь звезды или вроде того.
Я бы посоветовал как минимум инвертировать цвета, ну или хотя бы сделать фон более светлее, черный фон — не самый приятный для глаза. Еще можно попробовать поэкспериментировать с эффектами внутри статических объектов, допустим какие-то сгустки энергии исходящие от ребер внутрь объектов, которые изменяют свое поведения в зависимости от прикасания к ним других объектов и т.п. Еще можно поэкспериментировать с небрежностью в линиях.
Кстати, как временный вариант «дешево и сердито» можно просто заливать геометрические фигуры текстурами. Я вот взял случайный уровень с кораблём, нашёл в инете пароход, надёргал из него кусков, залил небо градиентом и получил по графике что-то похожее на четверть игр в АндроидМаркете:
Обратите внимание — я специально не применял никаких художеств. Можно просто взять любую фигуру и сделать ей fillPattern.
Есть простой способ для тех кто не умеет рисовать:
1. Создаём коллаж из фоток в инете.
2. Обводим его вектором (подойдёт и Flash MX).
3. Заливаем градиентом используя пипетку для определения ключевых цветов.
4. ???
5. Профит.
Техника требует немного опыта, но работает нормально даже на секретаршах и школьниках — доказано опытным путём. Правда желательно иметь нормального корректора этих художеств, но даже без него результат будет лучше картинки выше…
Я посмотрел трейлер. Сам на Java не пишу, но сомневаюсь, что принципы отличаются от html5 canvas.
У вас очень много статических объектов. На каждом уровне буквально 3-5 объектов, которые изменяют свои координаты, остальные — весь уровень одинаковые.
Их не надо перерисовывать вообще. В html5 canvas это бы достиглось отдельным слоем, который мы не трогаем. Я думаю, что 3-4 объекта джава вполне сможет отрисовать.
Более того, фигуры можно растеризировать — отрисовать вектор в скрытый буфер, добавить глоу, а потом только двигать по полю и крутить картинки.
Я их и не перерисовываю, они в отдельном имедже все держатся.
Да, про кеширование я думал, дело в том, что это может съесть довольно много памяти.
Ну в целом, я подумаю над этим.
Я как-то тоже так думал. В итоге получил две проблемы:
1. Огромное количество поворотов кешируются очень долго.
2. Надо закешировать много картинок. Если брать только целые градусы — мы получим 360мб вместо 1 мб.
3. Кешировать по ходу (при необходимости повёрнутой картинки сначала отрисовывать в кеш и только потом на экран) — плохая идея. Мы ещё сильнее затормаживаем вывод данных пользователю — ещё сильнее проседает фпс, пока не забъётся кеш, а он может и не понадобится в итоге.
4. Да и отрисовывать оно должно достаточно быстро. Поворачивает растр оно, конечно, не мгновенно, но достаточно для нормального фпс.
Надо исходить из сюжета: если появились заставки, значит какой-то сюжет есть?
Типа «Ну не просто так-же этот шарик там катается?!», видимо у него есть какая-то цель, типа как в Крайоне — дорваться до Ньютона и стукнуть таки его…
Соответственно — если уровни разбиты на «миры» по категориям, то можно их визуализировать как-то: типа если космос — на заднем фоне звёзды, а объекты для столкновений — текстурированы какими-нить обломками кораблей. (тупо повторяющаяся текстура)
Или, если это какой-нить сад, то текстуры стволов и листьев, а на заднем фоне — что-то типа поля…
И т.п. — единого совета не зная сюжет дать сложно…
Прошу технические подробности!
Почему именно Java? Не знал ничего кроме неё или у неё есть какие-то особенные преимущества в геймдеве? Что читал, как продвигался процесс изучения? Ссылка на дельфийскую статью? Архитектура игры, объём кода? Советы другим начинающим разработчикам?
P.S.: мне сейчас тоже 17, и я как раз нахожусь в процессе выбора того, чем заниматься летом. Уже присмотрел шикарную тему на рутрекере, из которой можно вообще не вылезать месяцами, но, возможно, стоит не углубляться в теорию, а тоже попробовать свои силы в чём-нибудь подобном…
Да было такое но все на одной машине, попробуйте поискать в интернете длл-ку и закинуть в папку с игрой, а лучше в Windows\System32. Если не найдете — пишите, скину.
Java кажется мне наиболее простым и удобным языком, синтаксис в которой не перегружен лишними «фичами», хожу на факультативные занятия по ней, поэтому решил ее и выбрать.
В целом ничего не читал, только дергал гугл по отдельным проблемам, так как когда писал TD изучил достаточно. Дело в том, что у меня за плечами около 5-6 лет моддинга Warcraft III и его скриптовый язык позволил мне изучить азы ООП и программирования вообще.
Статья — tt.pstu.ru/mnp09/mnp09/s5/bazin.htm но ссылка вроде не работает, попробуйте из кеша гугла глянуть.
Архитектура совершенно непродуманная, у меня не было ни времени ни желания продумывать ее. Там около 30 своих классов всего. Объем кода — около 300 кб своего кода и примерно столько же занимает библиотека Ogg/Vorbis.
Что советовать в целом не знаю, но главное ИМХО — не слушать советы других людей и идти своим путем, ибо советы редко к чему хорошему приводят.
Java кажется мне наиболее простым и удобным языком, синтаксис в которой не перегружен лишними «фичами»
Не хотелось бы показаться навязчивым, но попробуйте Python. Код на нём обычно занимает раза в полтора меньше эквивалентного кода на Java. Он, конечно, медленнее за счёт отсутствия аналога JVM (а, значит, и вкусных плюшек типа JIT'а), но писать на нём, как мне кажется, существенно проще. Не холивара ради.
Не то советуете. Для разработки игр всё же С++ лучше изучать. Тут и разработка для консолей и ведущие игровые студии на нём пишут движки игр. К тому же, если изучать разработку игр, как дисциплину в университете, то только С++.
По делу совет. Небольшие инди игры — экспереименты где важнее идея и минимизация трудозатрат лучше писать на python чем на C++ Я бы даже предложил такую кармольную вещь использовать богомерзкий флеш — на нем писать прототипы игрушек в одного человека еще проще.
А с учетом того что движки все равно лицензируются и почтив все скрипты пишуться на скриптовых языках то разница не такая критическая
Ну и насчет углубления в теорию: единственный раз, когда мне пришлось с ней столкнуться, был момент, когда мне сообщили, что в конце научной работы необходимо написать книжные источники, по которым работа велась, тогда я ввел в первом попавшемся книжном магазине «java» и написал первые 5 книг, хотя видел их первый раз. Сколько книги по программированию не читал — ни разу не удавалось извлечь что-либо полезное, помогала лишь практика.
Впрочем, возможно это только у меня так, для кого-то ведь книги эти пишутся и издаются.
Ну, основы-то всё равно нужно из книжек доставать. Хотя бы самые-самые. Так продуктивнее, нежели разбирать найденный код, даже если удалось найти простой код для начала. И даже если разбирать, то базу программистских основ нужно знать — понимать, что такое цикл, условие и проч.
А дальше, практика-практика-практика — теория-теория — практика! Это нужно.чтобы переходить на следующий уровень, хотя может устраивать и кодинг на каком-то определённом, достигнутом. По задачам и стремлениям…
Приятно видеть своего роверника, который хоть что-то смыслит в современном быдлокодировании :)
Кстати, Desura — не для инди же вроде, для инди игрушек у них отдельный проект был, если не ошибаюсь.
Welcome, как говорится, to gamedev!
Хочу поиграть, но негодую — если Java, то где кроссплатформенная версия?
По поводу графики — можно раскрашивать грани объектов в рандомные цвета когда шарик их прикосается. Ещё можно совсем поднять психоделичность сделав что-то на подобии визуализации в winamp. Объекты в игре перемещаются, окрашиваются, а на фоне какая-нибудь картинка от этого рисуется. www.youtube.com/watch?feature=player_detailpage&v=uhmFsjnlEmw#t=731s
Или как в одном шутере www.youtube.com/watch?v=5lz9NON6obQ
Да, хочу выпустить и для других платформ. На линуксе проверял, работает, можно выпускать. На макоси пока проверить не смог — все попытки поставить леопарда на виртуальную машину были тщетны. Но я займусь этим в скором времени.
Да, про раскрашивания при прикосновении идея неплохая, запишу.
Вот бекграунды как в том шутере я и хочу сделать. Буду работать над этим.
На самом деле молодец. Если сил и желания хватит, можно под андройд портировать и что-то на этом зарабатывать. Главное не ставить заработок самоцелью. Я когда в школе учился — меня на что максимум хватало — сделать сайт на PHP. Вот.
На втором уровне долго пытался понять, почему на попытку повесить на шарик гравитацию мне заявляют, что «Something is wrong.» Совершенно случайно заметил, что гравитации поддаётся не только на шарик :)
Да, и на 4-м, вроде, уровне есть странный баг: при перезапуске (2-я кнопка справа внизу и «Restart» в меню) не восстанавливаются уже потраченные предметы.
Про баг кто-то писал, у меня ни разу не было ни на одной машине — повторить не смог.
Да, хоть и учусь в лингвистическом классе, переводчик ru-en из меня слабый.
Про Bounce я даже отдельно упомянул в работе для конференции, долго еще думал, оставлять такую troll-science или нет. В третьей главе там с магнитами вообще физический абсурд бывает.
У меня он случился 2 раза за прохождение демки, так что вряд ли его тяжело воспроизвести.
Кстати, этого бага при попытке перезапустить через меню игра вообще перестаёт откликаться на кнопку меню, так что приходится убивать её по Alt-F4.
Довольно странно. Сейчас попробовал воспроизвести — да, возможно потерять формулы если хаотично жать кнопку R и цифровые клавиши, но следующим рестартом все лечится, да и меню работает.
Может видео бага заснимете?
Деинсталлятор не удаляет самое главное — папку с игрой. Там остаются конфиг, лог и настройки игрока. Можно сделать галку типа «удалить также персональные данные и настройки».
В статье писал что несколько человек купило, так что думаю 50-70 в лучшем случае. Да и в desura вывести деньги можно только после того, как наберётся 500 евро.
Если Вы всё же про то, что это какие-то там комы (которыми типа медведей называли или кого-то ещё), то это всего лишь одна из версий. Не стоит всерьёз об этом спорить на непрофильных ресурсах. Гуглятся запросто обсуждения на профильных (или там на форуме грамоты.ру).
Не совсем медведи. Ответ на комментарий выше: Мне нет дела кто такие комы, просто присказка такая.
А вот прабабушка моя рассказывала, что по верованиям это духи предков, которые возвращаются в виде животных. В том числе и медведей. Поклонения им особого не было. Но их часто «поминали».
Во первых, понятие школоло в том смысле, в котором оно применяется, относится к людям неважно какого возраста, с завышенным ЧСВ, полностью не хотящим разбираться в чем бы то ни было и задающим дурацкие вопросы/безапеляционно несущим чушь. А такие как вы, сударь, — просто молодец, заставляете верить в то, что не все так плохо у нас в стране с нормальными и адекватными людьми :)
Только сейчас увидел ваш пост.
Спасибо =)
А насчет работы — у меня изначально поступление, да и с программированием связывать жизнь я в общем-то не собирался, это больше как хобби.
Тут все начали советовать по языкам, вставлю и я свои 5 копеек, так как человек сам недалек от геймдева.
Java нормальная тема, нотч же пишет на ней свои проекты. Проблема только в iOS, он с явой не дружит, зато можно легко переносить на андроид.
Если интересно углублятся в 3D я бы посоветовал уже unity3d. Там и языковая среда привычная для явиста(c#/javascript) и встроенный редактор хорош.
А вот питоны всякие я бы советовать не стал, да есть на них игровые библиотеки, но все же для геймдева они очень ограничены. Обычно их внедряют для скриптования внутриировой логики.
Врать не буду — я сомневаюсь в том, что Вы это Вы. Ввиду отсутствия фактической базы для моих сомнений озвучиваю их и предлагаю на этом прекратить обсуждение.
Автор — молодец, идея оригинальна, что сейчас встречается редко и скорее только в инди-проектах. В тексте сквозит обида за места на конкурсах и конференциях, но это в общем не важно, то что ты смог добраться до desura — уже круто и еще круче, что игра продается. Деньги на следующий проект можно попробовать поднять на kickstarter, а текущий включить в распродажи на сайтах типа Humble Bundle, Indie Royale. Для 17 лет очень круто, успехов!
Что называется, «поддержал кошельком» отечественного производителя. Потыкался. Скриншоты оказались обманчивы: выглядит симпатично, хотя немного смущают микро-подёргивания некоторых предметов (физический движок забавно обрабатывает силу трения, походу).
В данный момент намертво застрял на пятнадцатом уровне :) Интересно будет «вживую» посмотреть на фишку с невесомостью из трейлера.
Спасибо =)
Да, иногда дергается немного, постарался снизить дергания до минимума, но все равно чуть остались.
На пятнадцатом уровне лучше использовать паузу(самая левая кнопка), иначе сложно успеть.
Какую именно фишку с невесомостью?
Пятнадцатый в итоге решился за две с половиной минуты с двадцатого раза через то, что я бы всё-таки назвал багом. Видимо, я в упор не вижу правильного решения. Ну да ладно.
С невесомостью это я ошибся. Принял за неё магнетизм. Уровни с изменением размера — вин, к слову.
По идее решение такое: красная гравитация, если не успеваете — пауза, гравитация на верхний квадрат. Все едут вверх, гравитация на шарик, потом на самый первый прямоугольник. Только что пробовал — проходится.
Да, как-то не подумал о таком варианте. Меня почему-то заклинило, что надо сначала создать наклон, а только потом создавать инвертированную гравитацию. Тогда всё нормально.
Отличная статья! Термин «Школота» — в данном случае ни коим образом не применим к Автору! Забей на всех и продолжай! Твое упорство даст фору и многим «Серьезным» программерам! Желаю УСПЕХОВ и жду новые проекты! Купил игру, только времени поиграть еще не было)
В целом статья интересна, хорошо написана и даже мотивирует. Однако, как уже указали выше, не хватает технических деталей.
Например, мне было бы очень интересно узнать, как Вы оптимизировали отрисовку, чтобы она перестала отнимать 98% времени.
Автор молодец! Забей на всех! Жизнь все равно все расставит по местам.
Главное — занимайся тем что тебе нравится.
Also есть еще много не государственных но не менее серьезных конкурсов где ты сможешь себя проявить.
Получилась помесь Micromachines и Lemmings, обе игрушки рульные, так что нечего было и сомневаться, что в итоге получится отличная штукенция. Не знаю кому как — мне понравилось.
Большое спасибо за шикарный пример выдержки и целеустремлённости. Покажу статью сыновьям (9 и 13), а то они у меня порываются каждый раз: «Папа-папа, а давай игру напишем! Там у нас будут монстры, здесь танки а сверху пустим летающих слоников с пулемётами — пыщь-пыщь-пыщь!..» =)
И каждый раз всё заканчивается на моём предложении сесть и нарисовать эскизы на бумаге =)
Спасибо, нафиг-нафиг… =) пока вполне хватает майнкафта. Пусть к нему сначала мод напишут сами. Малы ещё, серьёзности мало, усидчивости ровно на 5 минут. Торопить не хочу. Со старшим написали змейку на js+css и хватит пока. Как сами захотят дальше разговоров двинуться — велкам.
Ой, хотя — вру ведь! Старший таки справился с локализацией миникрафта. Когда увидел каст как он был написан за двое суток — жутко вдохновился, скачал сорцы и попросил eclipse.
С первого захода русифицировал жестоко! =) Включая имена классов =)) Пришлось объяснить. Потом парень получил результат, гордо продемонстрировал младшему и друганам (целую совещалку по скайпу устроили) и на этом задвинул всё подальше и успокоился =)
Товарищ, я все понимаю. Но если ты используешь Яву, то почему не делаешь игру кроссплатформенной? Я например не могу запустить ее в Linux.
Скачал значит твой exe-шник, запускаю в Wine а он требует Java машину. Ну Java машина в Wine — это та еще песня. Да и зачем она нужна, если можно нативно Java запускать. Проблема только в девелоперах, которые только exe дают, а jar куда-то прячут.
«Детский» геймдев или «Как я играл в инди-разработчика»