Проверить мой игровой проект ИЛИ (Как провести рецензирование моего проекта)?

Я только что закончил двухмерный платформер на C++/Allegro. Он еще в незавершенной стадии...

Интересно, как провести экспертную оценку от людей, которые занимаются разработкой игр. Я хотел бы пересмотреть свой проект на основании

  1. игра
  2. Обнаружение столкновений
  3. использование ООП
  4. программирование звуков, эффектов и т.д.
  5. любые дальнейшие идеи
  6. способы, в которых я мог бы сделать лучше
  7. способы оптимизации

текущий код в некоторых местах выглядит мусором... не могли бы вы также предложить некоторые методы упрощения?

вы можете просмотреть мой проект (если хотите) по обновленной ссылке - nincompoop (прямая ссылка)

http://ideamonk.googlepages.com/nincompoop_distro.rar

На данный момент я перехожу на C# и XNA, и мне очень легко и быстро научиться всему, потому что я впечатлен:

http://catalog.xna.com/GameDetails.aspx?releaseId=341

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


person Abhishek Mishra    schedule 29.10.2008    source источник
comment
Где исходный код? Я продлил игру, только exe и README.   -  person postfuturist    schedule 30.10.2008
comment
ideamonk.googlepages.com/nincompoop_distro.rar   -  person Abhishek Mishra    schedule 09.11.2008
comment
Я бы не проголосовал за это, потому что... ну почему? но для этого есть специальный сайт обмена стеками - codereview.stackexchange.com   -  person Tom Fobear    schedule 07.12.2011


Ответы (2)


Первое, что я заметил в вашем исходном коде, это то, что большая часть вашей игровой логики находится в файле main.cpp с вложенностью до 11 вкладок! Для целей организации кода это кошмар. Конечно, я сделал это и в своей первой игре. :) Первое, что вы можете сделать, это упростить основной игровой цикл, чтобы он выглядел примерно так:

int main () 
{
    game_object gob;
    gob.init_allegro();
    gob.load_assets();
    while(true) {
        gob.handle_inputs()
        if (!gob.update())
            break;
        gob.render();
    }
    gob.cleanup();
}

Все остальное должно быть реорганизовано в ваш класс game_object. Таким образом будет намного проще управлять, кроме того, ваш код может действительно поместиться на странице, поскольку вы можете избежать глубокой вложенности. Если вы обнаружите, что ваш код становится более чем на 3 вкладки, то все, что вы делаете, необходимо реорганизовать в другой метод или даже в отдельный класс.

Мое второе предложение состояло бы в том, чтобы заменить ваш goto чем-то более разумным, например:

bool playerwins = check_win_condition();

if(playerwins) {
    // win condition code
} else {
    // lose condition code
}
person postfuturist    schedule 31.10.2008

ОБЗОР предыдущего эпизода –

Я не понимаю, почему люди голосуют за вас и оскорбляют. Продолжайте в том же духе... — Даок (27 минут назад)

что-нибудь ужасно неправильное в том, чтобы попросить экспертную оценку? подумайте, прежде чем нажимать кнопку «вниз», завтра вам тоже может понадобиться экспертная оценка! - Абхишек Мишра (26 минут назад)

@Daok: именно это мне и было интересно 58 секунд назад! - Абхишек Мишра (25 минут назад)

Это глупо. Это может не соответствовать типичной форме SO-вопроса, но экспертная оценка - это неплохо, и она не заслуживает оскорбления, тем более 4 отрицательных голоса. — Томас Оуэнс (23 минуты назад)

@Mitchel Sellers: знаете что, когда я работал над этим проектом, было хорошее обсуждение разработки игры ... поэтому я подумал, что было бы хорошо выложить его для обзора ... но @ stackoverflow ... все действительно отличный! Толпа ycombinator еще более умная, они приходят с потрясающими отзывами — Абхишек Мишра (21 мин. назад)

Я думаю, что это может быть фраза и тон вопроса. Это больше похоже на анонс продукта, чем на вопрос о помощи. Если бы это было сформулировано как «Как правильно рецензировать мой проект» и т. д., тогда люди могли бы быть менее суровыми. – Марк Инграм (21 мин. назад)

Дело в том, что Stack Overflow предназначен не для этого. Это для того, чтобы задавать конкретные технические вопросы. — Реми Депре-Смит (19 минут назад)

упс... да, это вертелось у меня в голове, когда я набирал вопрос... позвольте мне перефразировать его в НАСТОЯЩИЙ вопрос! :) – Абхишек Мишра (18 минут назад)

и можно было бы дать технические отзывы о том, как улучшить игру.. кроме того, я также выкладываю исходный код для обзора! Есть ли способ снова ОТКРЫТЬ вопрос? - Абхишек Мишра (17 минут назад)

Я запросил код-ревью и получил его здесь. Абхишек, если кто-то снова откроет это, и вы сможете его отредактировать, посмотрите на этот вопрос: K & R Упражнение: мой код работает, но кажется вонючим; Совет по очистке? в качестве примера вопроса проверки кода. — Джон Руди (12 минут назад)

@Джон: Спасибо! надеюсь, что это работает!

person Abhishek Mishra    schedule 29.10.2008