Результаты поиска
| |
Fill_Freeman | Дата: Понедельник, 30 Июня 2014, 16:22 | Сообщение # 101 | Тема: Подскажите софт для структурирования данных |
почетный гость
Сейчас нет на сайте
| aalla, спасибо, посмотрю
|
|
| |
Fill_Freeman | Дата: Понедельник, 30 Июня 2014, 13:41 | Сообщение # 102 | Тема: Подскажите софт для структурирования данных |
почетный гость
Сейчас нет на сайте
| В общем постоянно сталкиваюсь с такой проблемой.
Когда разрабатываю игровую логику пишу все на бумаге. Все поверхностно и только чтобы собрать "каркас" игры.
Но во время разработки, когда каркас начинает обрастать мясом. Бумажки становятся не читаемы, теряются и т.д. А в голове удержать все это не получается. Стараюсь делать все понятным, чтобы можно было разобраться без поястняющих материалов - но это тоже не сильно помогает - в основном из-за отстутсвия знаний.
Отсюда два вопроса.
1 - Может кто-нибудь знает програмки, которые позволяют создавать простые, читаемые схемы, где можно было бы описать и алгоритм игровой логиики, и зависимость объектов друг от друга и т.д. Что-то вроде UML, но не только для программистов. Я какое-то время пытался пользоваться Astah, но он сильно нацелен на програмные языки, я же хочу что-то более простое, но удобнее чем oneNote. Astah пока это самое подходящее что я нашел. Может у кого есть какие нибудь идеи.
2 - И может кто-нибдуь подскажет литературу, где я мог бы подчерпнуть знания как строить игровую логику, взаимодействия между объектами и проч. Понимаю это очень базово и общирное, но может быть есть что-нибудь похожее.
Заранее спасибо, большое.
|
|
| |
Fill_Freeman | Дата: Среда, 25 Июня 2014, 08:33 | Сообщение # 103 | Тема: По поводу Multiplayer. |
почетный гость
Сейчас нет на сайте
| В GMS можно сделать простой мультиплеер и без внешних расширений.
Вот пара статей (на англ) с помощью которых я разобрался:
https://www.yoyogames.com/tech_blog/11 http://help.yoyogames.com/entries/25891363-Networking-Overview
Я вроде где то встречал русский перевод одной из них. Если проблемы с англ, то можешь попробовать поискать ее.
Сообщение отредактировал Fill_Freeman - Среда, 25 Июня 2014, 08:54 |
|
| |
Fill_Freeman | Дата: Вторник, 24 Июня 2014, 23:31 | Сообщение # 104 | Тема: Дебагер для GameMaker |
почетный гость
Сейчас нет на сайте
| aFriend, я так раньше и делал. когда надо было паузу поставить..
Я сейчас получше полазил в студии и наконец-то нашел то, что я искал. Начиная с 1.3 в студии появился нормальный дебаггер, только чтобы его включить надо поставить галочку в настройках.
Пока не эксперементировал, но, вроде, то что надо.
|
|
| |
Fill_Freeman | Дата: Вторник, 24 Июня 2014, 17:20 | Сообщение # 105 | Тема: Дебагер для GameMaker |
почетный гость
Сейчас нет на сайте
| Есть ли стандартная возможность или сторонние дополнения для GMS, которые позволяют пошагово отследить выполнение кода. Где можно выставить breakpoints (точки прерывания) итд. Debug mode в GM ничего кроме изменения переменных, FPS и проч. не показывает. Но нельзя поставить breakpoint и затем следить, какая функция выполняется.
Сейчас я изголяюсь и создаю всяческие show_debug_message, чтобы проследить что за чем выполняется.
Кто нибудь знает о чем-нибудь подобном?
|
|
| |
Fill_Freeman | Дата: Понедельник, 23 Июня 2014, 17:01 | Сообщение # 106 | Тема: Вектор движения |
почетный гость
Сейчас нет на сайте
| Цитата Saitei ( ) Т.е. надо построить вектор по двум точкам (где находится корабль и место клика), а потом найти угол вектора относительно Ox? Т.е. надо найти угол между полученным вектором и вектором (1,0)?
Да именно так. По-моему в GameMaker это можно сделать одной функцией (что -то с dir) посмотри помощь или погугли, я точно не помню. На крайний случай можно воспользоваться старой доброй математикой.
|
|
| |
Fill_Freeman | Дата: Понедельник, 23 Июня 2014, 16:14 | Сообщение # 107 | Тема: Вектор движения |
почетный гость
Сейчас нет на сайте
| Лично я делал примерно так:
у корабля есть cur_dir - текущее направление и dest_dir - направление к заданной точке
при клике определяешь dest_dir (угол от оси абсцисс)
потом каждый степ cur_dir += rotation_speed (пока не станет равен dest_dir) x += speed * cos(cur_dir) y += speed * sin(cur_dir)
понятно что еще надо определить в какую сторону вращаться, чтобы корабль вращался в наименьшую сторону. Но думаю ты и сам догодаешься
UPD: Я сейчас общую логику написал. В GameMaker может можно проще, просто я сейчас не вспомню всех свойств объекта.
Сообщение отредактировал Fill_Freeman - Понедельник, 23 Июня 2014, 16:18 |
|
| |
Fill_Freeman | Дата: Понедельник, 09 Июня 2014, 15:56 | Сообщение # 108 | Тема: Справка |
почетный гость
Сейчас нет на сайте
| Цитата KaramBino ( ) Fill_Freeman, и что это?
Официальная документация Game Maker. Точная копия обычной справки. Всегда релевантная. Если не знаешь англ. словари в помощь.
|
|
| |
Fill_Freeman | Дата: Понедельник, 09 Июня 2014, 13:56 | Сообщение # 109 | Тема: Округление чисел. |
почетный гость
Сейчас нет на сайте
| Цитата XDominator ( ) Тем не менее, для округления ВСЕГДА в нижнюю сторону есть функция floor. floor(10.99) даст 10. Есть аналог и для округления в большую, но его не помню.
Обычно это ceil. т.е. ceil(2.3) = 3
Для любопытных: floor и ceil легко запомнть зная, что floor (с англ) - пол; а ceil - потолок.
|
|
| |
Fill_Freeman | Дата: Понедельник, 09 Июня 2014, 13:49 | Сообщение # 110 | Тема: Справка |
почетный гость
Сейчас нет на сайте
| docs.yoyogames.com
|
|
| | |
Fill_Freeman | Дата: Суббота, 07 Июня 2014, 21:16 | Сообщение # 112 | Тема: Помогите найти ошибку. |
почетный гость
Сейчас нет на сайте
| Вот попробовал переименовать, ничего не меняется.
Если я тебя правильно понял, то вот копия ошибки из Firebug:
Код SyntaxError: invalid object initializer file:///D:/Development/Game/prototype/game.js Line 273
При этом у меня на экране он выделяет строку:
|
|
| |
Fill_Freeman | Дата: Суббота, 07 Июня 2014, 21:05 | Сообщение # 113 | Тема: Помогите найти ошибку. |
почетный гость
Сейчас нет на сайте
| Привет. Не могу понять в чем ошибка. При попытке открыть страницу дебагер мазилы пишет SyntaxError на этой строке: Пытался записать в одну строчку не помогло. Другие объекты в скрипте описывал точно также. Помогите пожалуйста, может я уже не вижу опечатку или что..? Вот код всей функции: Код unction createInsect(posIn, spriteIn, baseSpeedIn, speedRangeIn, moveTipeIn, spDirIn, usDestIn, hpIn, fearIn, ondeadIn, lifeSpanIn) { var insect = { x: posIn[0], y: posIn[1], sprite: spriteIn, baseSpeed: baseSpeedIn, speedRange, speedRangeIn, speed: null, moveType: moveTipeIn, hp: hpIn, fear: fearIn, ondead: ondeadIn, lifeSpan: lifeSpanIn, lifeTime: 0, usualDest: usDestIn, dest_x: null, dest_y: null, absDir: null, tempDir: null, curDir: null, spDir: spDirIn }; getNewDestination(insect); insect.speed = RandBetween(insect.baseSpeedIn - insect.speedRange, insect.baseSpeedIn + insect.speedRange); insects.push(insect); }
Сообщение отредактировал Fill_Freeman - Суббота, 07 Июня 2014, 21:30 |
|
| |
Fill_Freeman | Дата: Пятница, 06 Июня 2014, 14:48 | Сообщение # 114 | Тема: [3D] Locomotive of history: The first war |
почетный гость
Сейчас нет на сайте
| Планы у тебя наполеоновские. Но не невыполнимые.
Ordan прав, терпение и труд все перетрут. Но чтобы сразу не загнуться на таком проекте, начни с чего-нибудь маленького. Разбей его на отдельные геймплейные состовляющие. Например сделай только глобальный режим с двумя фракциями. Сделай играбельное демо, и дай поигаться людям. Получишь фидбек, работай над след. версией. А там глядишь и заинтересованые лица найдутся.
|
|
| |
Fill_Freeman | Дата: Пятница, 06 Июня 2014, 13:07 | Сообщение # 115 | Тема: Процесс просчета баланса |
почетный гость
Сейчас нет на сайте
| Решил потренироваться в просчете баланса на своей маленькой поделке Timid Elephant, чтобы знающие люди, если такие есть, оценили, указали ошибки, дали бы пару советов. Немного о проекте. Делал его для GamesJam: Gamm. Править баланс не было времени, поэтому делал все по наитию. Теперь же обновляю версию и хочу набить как можно больше шишек на маленьком проекте, прежде чем браться за что-то посложнее. Итак.
Геймплей. игровой персонаж (лягушка) находится практически в центре экрана. На экране в это время появляются враги (насекомые) которых надо убивать просто кликая по ним. Почти кажое насекомое влияет на уровень страха слона. Когда страх превышает определенный пределел - потеря жизни.
У насекомых есть такие характеристики:
Эти характеристики константы: - Кол-во жизней (кликов до смерти) - Скорость - Размер спрайта - Тип движения (хаотичный, линейный, рывками) Все три характеристики определяют сложность нанесения урона. - Влияние на страх - Эффект при съедании (кроме очков. Они ниже) - Длительность эффекта (если есть) - Минимальное количество очков (для более "сложных" насекомых) - Максимальное время нахождение на экране (для некоторых видов) - Количество очков при "съедании" - Вероятность появления (зависит от набраных очков) - Вероятность улететь (зависит от набраных очков)
Итак для расчета вероятности появления использую простую зависимость: Чем больше очков, тем выше вероятность появления. Основываясь на базовом значении. Вероятность улететь наоборот уменьшается.
Появление: база + очки / 100 Исчезновение: база / очки.
Тут есть таблица со значениями для всех видов насекомых. Далее самое интересное.
Есть вопрос: Как мне прикинуть значения всех этих величин чтобы заранее были видны несбалансированые места.
Я рассуждаю так: Показатель интереса в этой игре Сложность. Т.е. она должна наростать именно так, чтобы игроку было интересно и сложно. Сложность можно измерить скоростью увеличения страха. Страх - это по сути Сумма влияний на страх каждого насекомого в каждый момент времени. Их количество, теоретически, это количество появившихся насекомых минус кол-во съеденых. При этом количество съеденых увеличивает сложность, т.к. увеличиваются очки. С появившимися насекомыми все просто - сумма (время*вероятность появления) каждого вида насекомых Со съеденными сложнее: я хочу принять навык игрока как константу. Т.е. допустим игрок будет делать 200 кликов по насекомым в секунду. Размер спрайта тоже будет константой - за 1 возьмем 32x32, далее при 28 - 0.8; при 16 - 0.6. Так же сделаем и с типом движения - линейное движение возьмем за 1, хаотичное за 0.8, а движение рывками за 0.6. Скорость имеет обратную зависимость. Т.е. чем она выше, тем сложнее попасть. Так же как и жизнь. т.е 2 жизни это два клика получается что-то вроде. Для обычного игрока при клике по насекомому 28x28 двигающегося рывками со скоростью 300 пикс/сек. будет такая формула "сложности съедания": 200 * 0,8 * 0,6 / 300 * 1
Правильные значения констант можно проверить только тестами.
В итоге подскажите пожалуйста: Во первых - правильно ли я рассуждаю, правильно ли пытаюсь настроить баланс. Во вторых - может есть какие-то идеи как мне смоделировать процесс, чтобы увидеть несбалансированые моменты.
В общем буду рад любым советам. Главное только держитесь в рамках темы, пожалуйста. Я хотел бы больше получить конструктивную критику именно про процесс моделирования\просчета баланса в рамках этого учебного проекта.
Сообщение отредактировал Fill_Freeman - Суббота, 07 Июня 2014, 21:31 |
|
| |
|