Pull to refresh

Comments 123

Забей на всех, на неудачи и на идиотов что смеются вокруг, забей на то что ты школьник, забей на всё, и делай то, что тебе хочется. Только не останавливаться. И в универ ехать учиться в другой город, это позволяет воспитать самостоятельность раньше.
Спасибо. Учусь уже 4 года в другом городе. И планирую уехать еще дальше от дома. Возможно из-за того, что самостоятельность раньше развивал и не бросил начатое.
Побольше такой школоты, которая не пиво во дворе хлещет, а занимается чем то полезным.
При попытке скачивания билдов: Page doesn't exist. =(
Качается. Спасибо за оперативность.
Молодец!!!
Раз игра на JAVA, портируй для андроид. Мне кажется для мобильной платформы она лучше подходит.
Спасибо. Уже есть такое в планах. Как-нибудь соберусь с силами и начну.
Будет версия как для линукса, так и для макоси(хотя для нее обещать сложно, пока протестировать работоспособность на ней нет возможности).
А что вы за бинарники используете? lwjgl, jogl, libgdx?
Не могу понять, что препятствует кроссплатформенности из коробки.
Бинарников не использую вообще, дело в том, что я jar оборачиваю в .exe, т.к. десура, насколько я понял, не позволяет использовать просто .jar. Хотя я в этом не уверен.
У вас получилась очень интересная игра. Я к ней уже давно присматривался…
Отлично. Далеко пойдешь )
Не могу не приложить )
image
Такая школота среднестатистической нешколоте 100 очков форы даст.
Хехеее! Игрушка классная, скачал билд для конференции — сижу гамаю) Перетаскивание свойств на объекты — отлично!
Лучше уж скачать демку с десуры тогда =) Там уровней столько-же вроде, а сама игра лучше.
Геймплей хороший, но вот графику все же надо сделать православную, особенно если хотите портировать на моб платформы и чтобы игру покупал обычный люд.
Спасибо. Насчет графики было много восклицаний, но ни одного конкретного предложения(кроме того, чтобы сделать заливку объектов градиентом, что я реализовал) не поступило.
В целом я не знаю, как можно сделать годную графику для игры, в которой форма объектов абсолютно произвольна. Разве-что как-то декорировать линии объектов или заливку им придумать другую.
Единственное, что мне недавно пришло в голову — сделать динамичный ненапрягающий фон. Какие-нибудь звезды или вроде того.
Я бы посоветовал как минимум инвертировать цвета, ну или хотя бы сделать фон более светлее, черный фон — не самый приятный для глаза. Еще можно попробовать поэкспериментировать с эффектами внутри статических объектов, допустим какие-то сгустки энергии исходящие от ребер внутрь объектов, которые изменяют свое поведения в зависимости от прикасания к ним других объектов и т.п. Еще можно поэкспериментировать с небрежностью в линиях.
Про изменения при прикасании писали ниже — идея и правда хорошая, спасибо.
Кстати, как временный вариант «дешево и сердито» можно просто заливать геометрические фигуры текстурами. Я вот взял случайный уровень с кораблём, нашёл в инете пароход, надёргал из него кусков, залил небо градиентом и получил по графике что-то похожее на четверть игр в АндроидМаркете:





Обратите внимание — я специально не применял никаких художеств. Можно просто взять любую фигуру и сделать ей fillPattern.
Есть простой способ для тех кто не умеет рисовать:
1. Создаём коллаж из фоток в инете.
2. Обводим его вектором (подойдёт и Flash MX).
3. Заливаем градиентом используя пипетку для определения ключевых цветов.
4. ???
5. Профит.

Техника требует немного опыта, но работает нормально даже на секретаршах и школьниках — доказано опытным путём. Правда желательно иметь нормального корректора этих художеств, но даже без него результат будет лучше картинки выше…
По поводу того, как сделать красивую графику, состоящую из геометрических фигур — посмотрите на Geometry Wars. Glow эффект творит чудеса :)
Да, красиво.
Жаль, на дефолтных средствах явы все это скорее всего будет тормозить.
Нужно было мне сразу писать на openGL.
Да, тут без шейдеров уже ни туда и ни сюда.
Я посмотрел трейлер. Сам на Java не пишу, но сомневаюсь, что принципы отличаются от html5 canvas.
У вас очень много статических объектов. На каждом уровне буквально 3-5 объектов, которые изменяют свои координаты, остальные — весь уровень одинаковые.
Их не надо перерисовывать вообще. В html5 canvas это бы достиглось отдельным слоем, который мы не трогаем. Я думаю, что 3-4 объекта джава вполне сможет отрисовать.
Более того, фигуры можно растеризировать — отрисовать вектор в скрытый буфер, добавить глоу, а потом только двигать по полю и крутить картинки.
В идеале, конечно, статическое окружение должно быть превращено художником в красивые пейзажи, но это не критично)
Я их и не перерисовываю, они в отдельном имедже все держатся.
Да, про кеширование я думал, дело в том, что это может съесть довольно много памяти.
Ну в целом, я подумаю над этим.
Та не много памяти. Допустим, 5 объектов, которые надо закешировать. Объекты размером 200*200. Повороты кешировать нет необходимости. Что мы получаем?

200ширина*200высота*4байта-на-точку*5 картинок=800000байт~1мб кеша. Совсем не страшно.
Дело в том, что повороты как раз лучше кешировать, т.к. оно может выйти очень медленным, я экспериментировал когда-то.
Впрочем, проверю.
Я как-то тоже так думал. В итоге получил две проблемы:
1. Огромное количество поворотов кешируются очень долго.
2. Надо закешировать много картинок. Если брать только целые градусы — мы получим 360мб вместо 1 мб.
3. Кешировать по ходу (при необходимости повёрнутой картинки сначала отрисовывать в кеш и только потом на экран) — плохая идея. Мы ещё сильнее затормаживаем вывод данных пользователю — ещё сильнее проседает фпс, пока не забъётся кеш, а он может и не понадобится в итоге.
4. Да и отрисовывать оно должно достаточно быстро. Поворачивает растр оно, конечно, не мгновенно, но достаточно для нормального фпс.
Хорошо, попробую поворачивать без кеширования, спасибо за пояснения.
Надо исходить из сюжета: если появились заставки, значит какой-то сюжет есть?
Типа «Ну не просто так-же этот шарик там катается?!», видимо у него есть какая-то цель, типа как в Крайоне — дорваться до Ньютона и стукнуть таки его…

Соответственно — если уровни разбиты на «миры» по категориям, то можно их визуализировать как-то: типа если космос — на заднем фоне звёзды, а объекты для столкновений — текстурированы какими-нить обломками кораблей. (тупо повторяющаяся текстура)
Или, если это какой-нить сад, то текстуры стволов и листьев, а на заднем фоне — что-то типа поля…
И т.п. — единого совета не зная сюжет дать сложно…
Прошу технические подробности!
Почему именно Java? Не знал ничего кроме неё или у неё есть какие-то особенные преимущества в геймдеве? Что читал, как продвигался процесс изучения? Ссылка на дельфийскую статью? Архитектура игры, объём кода? Советы другим начинающим разработчикам?

P.S.: мне сейчас тоже 17, и я как раз нахожусь в процессе выбора того, чем заниматься летом. Уже присмотрел шикарную тему на рутрекере, из которой можно вообще не вылезать месяцами, но, возможно, стоит не углубляться в теорию, а тоже попробовать свои силы в чём-нибудь подобном…
P.P.S: Демка с Desura ругается на отсутствие MSVCR100.dll и отказывается запускаться.
Да было такое но все на одной машине, попробуйте поискать в интернете длл-ку и закинуть в папку с игрой, а лучше в Windows\System32. Если не найдете — пишите, скину.
эта dll вроде в папке явы лежит, возьмите её оттуда и киньте в папку windows, должно заработать.
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 — не для инди же вроде, для инди игрушек у них отдельный проект был, если не ошибаюсь.
Вроде как на инди в основном ориентирована. Там даже категория проекта выбирается — Indie либо AAA
На оба конкурса я уже, кажется, опоздал. В любом случае спасибо за информацию. =)
Поздно сообщаете! Автор, по всей видимости, является одиннадцатиклассником, а эти конкурсы закончились несколько месяцев назад.
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» в меню) не восстанавливаются уже потраченные предметы.
Есть куча мелких огрехов в английском тексте. Видно, что автор владеет языком не очень хорошо :)

А Bounce умеет эпично нарушать закон сохранения энергии.
Про баг кто-то писал, у меня ни разу не было ни на одной машине — повторить не смог.
Да, хоть и учусь в лингвистическом классе, переводчик ru-en из меня слабый.

Про Bounce я даже отдельно упомянул в работе для конференции, долго еще думал, оставлять такую troll-science или нет. В третьей главе там с магнитами вообще физический абсурд бывает.
У меня он случился 2 раза за прохождение демки, так что вряд ли его тяжело воспроизвести.
Кстати, этого бага при попытке перезапустить через меню игра вообще перестаёт откликаться на кнопку меню, так что приходится убивать её по Alt-F4.
А что по этому поводу написано в log.txt?
Абсолютно ничего. Файл девственно чист.
Довольно странно. Сейчас попробовал воспроизвести — да, возможно потерять формулы если хаотично жать кнопку R и цифровые клавиши, но следующим рестартом все лечится, да и меню работает.
Может видео бага заснимете?
В моём случае баг появился, когда я пользовался только мышкой. И игру я уже удалил. Демка закончилась быстро :)
В любом случае спасибо за информацию.
До вас о баге только один человек писал — dg-lab.com/s/ytentu
Постараюсь исправить.
Деинсталлятор не удаляет самое главное — папку с игрой. Там остаются конфиг, лог и настройки игрока. Можно сделать галку типа «удалить также персональные данные и настройки».
Поправлю, спасибо.
Во всем виноват странный интерфейс инсталл-мейкера. =)
Так и самое главное не рассказали — сколько? :)
В статье писал что несколько человек купило, так что думаю 50-70 в лучшем случае. Да и в desura вывести деньги можно только после того, как наберётся 500 евро.
Ты молодец. Респект за целеустремленность.
Только «комАм», «первый блин комАм» :)
Что? Вы серьезно? :)
Не обращайте внимания, это одна из довольно распространённых баек а-ля лингвист Михаил Задорнов :)
Первый блин комам,
Блин второй — знакомым,
Третий — дальней родне,
А четвертый — мне!

Довольно старая присказка. Даже в шуточно-детской песенке используется.
А кто такие по-вашему эти комы?
Если Вы всё же про то, что это какие-то там комы (которыми типа медведей называли или кого-то ещё), то это всего лишь одна из версий. Не стоит всерьёз об этом спорить на непрофильных ресурсах. Гуглятся запросто обсуждения на профильных (или там на форуме грамоты.ру).
Не совсем медведи. Ответ на комментарий выше: Мне нет дела кто такие комы, просто присказка такая.
А вот прабабушка моя рассказывала, что по верованиям это духи предков, которые возвращаются в виде животных. В том числе и медведей. Поклонения им особого не было. Но их часто «поминали».
Во первых, понятие школоло в том смысле, в котором оно применяется, относится к людям неважно какого возраста, с завышенным ЧСВ, полностью не хотящим разбираться в чем бы то ни было и задающим дурацкие вопросы/безапеляционно несущим чушь. А такие как вы, сударь, — просто молодец, заставляете верить в то, что не все так плохо у нас в стране с нормальными и адекватными людьми :)

А во вторых — айда к нам работать :)
Только сейчас увидел ваш пост.
Спасибо =)
А насчет работы — у меня изначально поступление, да и с программированием связывать жизнь я в общем-то не собирался, это больше как хобби.
Зря) Программирование — очень прибыльно.
Да я по первому образованию вообще автомеханик :) Так что тут вопрос желания :)

Ну а что касается поступления — есть такая весчь как фрианс, и я к ней очень трепетно отношусь :)))

Но решение конечно за Вами
К Единому Государственному нужно готовиться, поэтому пока времени точно нет.
С большим удовольствием заплюсовал автора где только можно.
Тут все начали советовать по языкам, вставлю и я свои 5 копеек, так как человек сам недалек от геймдева.
Java нормальная тема, нотч же пишет на ней свои проекты. Проблема только в iOS, он с явой не дружит, зато можно легко переносить на андроид.
Если интересно углублятся в 3D я бы посоветовал уже unity3d. Там и языковая среда привычная для явиста(c#/javascript) и встроенный редактор хорош.
А вот питоны всякие я бы советовать не стал, да есть на них игровые библиотеки, но все же для геймдева они очень ограничены. Обычно их внедряют для скриптования внутриировой логики.
Unity — интересная вещь, пробовал чуть-чуть.
Но не люблю готовые движки в целом.
Если хотите писать свое, то, как писали выше — лучше обратится к С++.
Очень хорошо написано, как следствие возникает резонный вопрос — откуда такие познания в гуманитарных науках?
Талантливый человек талантлив во всем
Учусь в лингвистическом классе, много читал в детстве, вот и результат =)
Врать не буду — я сомневаюсь в том, что Вы это Вы. Ввиду отсутствия фактической базы для моих сомнений озвучиваю их и предлагаю на этом прекратить обсуждение.
Предлагаю перейти в личку для такого рода обсуждений.
Ерунда полная. Перельман явно страдает отсутствием талантов в сфере коммуникаций :)
А по-моему у него просто талантище в этом сфере :)
Автор — молодец, идея оригинальна, что сейчас встречается редко и скорее только в инди-проектах. В тексте сквозит обида за места на конкурсах и конференциях, но это в общем не важно, то что ты смог добраться до desura — уже круто и еще круче, что игра продается. Деньги на следующий проект можно попробовать поднять на kickstarter, а текущий включить в распродажи на сайтах типа Humble Bundle, Indie Royale. Для 17 лет очень круто, успехов!
Что называется, «поддержал кошельком» отечественного производителя. Потыкался. Скриншоты оказались обманчивы: выглядит симпатично, хотя немного смущают микро-подёргивания некоторых предметов (физический движок забавно обрабатывает силу трения, походу).
В данный момент намертво застрял на пятнадцатом уровне :) Интересно будет «вживую» посмотреть на фишку с невесомостью из трейлера.
Спасибо =)
Да, иногда дергается немного, постарался снизить дергания до минимума, но все равно чуть остались.
На пятнадцатом уровне лучше использовать паузу(самая левая кнопка), иначе сложно успеть.
Какую именно фишку с невесомостью?
Пятнадцатый в итоге решился за две с половиной минуты с двадцатого раза через то, что я бы всё-таки назвал багом. Видимо, я в упор не вижу правильного решения. Ну да ладно.
С невесомостью это я ошибся. Принял за неё магнетизм. Уровни с изменением размера — вин, к слову.

По идее решение такое: красная гравитация, если не успеваете — пауза, гравитация на верхний квадрат. Все едут вверх, гравитация на шарик, потом на самый первый прямоугольник. Только что пробовал — проходится.
Да, как-то не подумал о таком варианте. Меня почему-то заклинило, что надо сначала создать наклон, а только потом создавать инвертированную гравитацию. Тогда всё нормально.
Отличная статья! Термин «Школота» — в данном случае ни коим образом не применим к Автору! Забей на всех и продолжай! Твое упорство даст фору и многим «Серьезным» программерам! Желаю УСПЕХОВ и жду новые проекты! Купил игру, только времени поиграть еще не было)
В целом статья интересна, хорошо написана и даже мотивирует. Однако, как уже указали выше, не хватает технических деталей.
Например, мне было бы очень интересно узнать, как Вы оптимизировали отрисовку, чтобы она перестала отнимать 98% времени.
Автор молодец! Забей на всех! Жизнь все равно все расставит по местам.
Главное — занимайся тем что тебе нравится.
Also есть еще много не государственных но не менее серьезных конкурсов где ты сможешь себя проявить.
Автор идёт правильной дорогой. Написал в личку.
Получилась помесь Micromachines и Lemmings, обе игрушки рульные, так что нечего было и сомневаться, что в итоге получится отличная штукенция. Не знаю кому как — мне понравилось.
Школьники в последнее время прямо заряжают Хабр. Молодцы!
Большое спасибо за шикарный пример выдержки и целеустремлённости. Покажу статью сыновьям (9 и 13), а то они у меня порываются каждый раз: «Папа-папа, а давай игру напишем! Там у нас будут монстры, здесь танки а сверху пустим летающих слоников с пулемётами — пыщь-пыщь-пыщь!..» =)

И каждый раз всё заканчивается на моём предложении сесть и нарисовать эскизы на бумаге =)
Пусть попробуют позаниматься модмейкингом для того же варкрафта =)
Спасибо, нафиг-нафиг… =) пока вполне хватает майнкафта. Пусть к нему сначала мод напишут сами. Малы ещё, серьёзности мало, усидчивости ровно на 5 минут. Торопить не хочу. Со старшим написали змейку на js+css и хватит пока. Как сами захотят дальше разговоров двинуться — велкам.
Ой, хотя — вру ведь! Старший таки справился с локализацией миникрафта. Когда увидел каст как он был написан за двое суток — жутко вдохновился, скачал сорцы и попросил eclipse.

С первого захода русифицировал жестоко! =) Включая имена классов =)) Пришлось объяснить. Потом парень получил результат, гордо продемонстрировал младшему и друганам (целую совещалку по скайпу устроили) и на этом задвинул всё подальше и успокоился =)
Стиль изложения — отличный, от души написано. Не обращай внимания на «непризнающих», не забывай радоваться успехам и дерзай.
Собственный физический движок? С ноля? В семнадцать лет?
*ушел рыдать навзрыд от зависти*

Это круто. Нет слов.
Где же с нуля? Автор вроде как написал, что просто портировал на Джаву большую часть кода из какой-то статьи
Да, так и было.
На мне была его имплементация, оптимизация и модификация под собственные нужды.
Не запускается. Все скачанные версии выдают лишь ошибку «The main startup class could not be found»
Вероятно, не установлена Java, либо версия неактуальная.
Товарищ, я все понимаю. Но если ты используешь Яву, то почему не делаешь игру кроссплатформенной? Я например не могу запустить ее в Linux.

Скачал значит твой exe-шник, запускаю в Wine а он требует Java машину. Ну Java машина в Wine — это та еще песня. Да и зачем она нужна, если можно нативно Java запускать. Проблема только в девелоперах, которые только exe дают, а jar куда-то прячут.
Sign up to leave a comment.

Articles