/VampGame

Primary LanguageC#Apache License 2.0Apache-2.0

Drakulam

2D мультиплеерная игра

Две противоборствующие команды — люди и вампиры

Задача людей — пройти карту за ограниченное время, выполнив задания и при этом остаться в живых

Задача вампиров — помешать людям, убивая их или устраивая саботажи заданий

Победа как первых, так и вторых зависит от слаженности действий в команде

Аналоги

Идея игры вдохновленна лучшей многопользовательской игрой 2020 года — Amons us и мини-режимом под названием “Infection”, появившимся в Halo 2 и нашедшим большую популярность в таких играх как Call Of Duty, Garry’s Mod

Особенности

Объеденив все лучшее вышесказанных игр — режим "инфекция", мультиплеер, задания, отличительными особенностями нашей игры будут:

  • Пиксельная графика

  • 2D игра с видом "сверху"

  • Темный мир

  • Открытый исходный код

Целевая платформа

PC

СОСТАВ КОМАНДЫ:

  1. Герасименко Виктор — тим-лид
  2. Антонов Алексей — тех-лид
  3. Аникин Александр
  4. Смирнова Дарья
  5. Шагвалиев Михаил

Требования к комментарию коммита:

  1. На английском
  2. Глаголы пишутся в начальной форме (fix, add, change)
  3. В комментарии пишется то, что было сделано, а не как
  4. Заголовок должен начинаться с номера issue (#123)
  5. В заголовке краткое описание того, что сделали
  6. Перечисление того, что сделали в теле через "-" с пробелом после

Пример:

Заголовок:

#23 add features

Тело:

- add light feature
- add armour feature

Стандарт кодирования

Имена методов, переменных, классов

Делать

  1. Использовать в именах методов и переменных не более 3-х слов.
  2. Использовать PascalCasing для имен методов и классов.
  3. Использовать camelCasing. для имен переменных и аргументов методов.
  4. Использовать неявный тип var для объявлений локальных переменных. Исключение: примитивные типы(int, string, double, bool, etc)
  5. Использовать существительные для имен классов.
  6. Начинать имя интерфейса с буквы I. Имена интерфейсов состоят из существительного или прилагательного.

Не делать

  1. Писать капсом константы.
  2. Использовать венгерскую нотацию или нечто подобное.
  3. Пользвоваться аббревиатурами(user-usr, group-grp и так далее)

Организация кода

Делать

  1. Выделять все namespace в отдельный блок.
  // Examples
  namespace Company.Product.Module.SubModule;
  namespace Product.Module.Component;
  namespace Product.Layer.Module.Group;
  1. Объявлять все члены класса наверху класса. Прежде всего static
// Correct
public class Account {
  public static string BankName;
  public static decimal Reserves;

  public string Number {get; set;}
  public DateTime DateOpened {get; set;}
  public DateTime DateClosed {get; set;}
  public decimal Balance {get; set;}
  // Constructor
  public Account() {
      // ...
  }
}
  1. Переносить на новую строку, если длина текущей строки более 80 символов
  2. Разделять параметры метода пробелом.
  3. Разделять все лексемы пробелом.

Не делать

  1. Переносить фигурную скобку на новую строку.

Git Workflow

Рабочий процесс git workflow

  • Названия feature веток : <номер issue с описанием>

    Пример:

    #123_human_model
  • Номер релиза — номер спринта

  • Названия hotfix веток : <краткое описание, что фиксили>

    Пример:

    fix_bug_with_lighting
  • Не удалять ветки после слияния