SFML_Cloud

Друзья, возникла идея создать общий проект в облаке и открыть доступ для всех. Цель – работа в команде между посетителями сайта. Это хороший опыт, дающий человеку больше понимания чужого кода. Этот проект эксперимент, но надеюсь, что он приживётся.

ВНИМАНИЕ! АКТУАЛЬНАЯ GIT-ВЕРСИЯ 

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

Если создаете проект, то указываете его название и через нижнее подчеркивание примерный жанр. Например mario_adventure. На форуме в разделе SFML_Cloud создаете тему с названием проекта, в описании которой указываете идею вашего проекта.

Если хотите присоединиться к существующему проекту – делаете все тоже самое, что написано ниже, и отписываетесь на форуме в теме проекта, что вы принимаете участие.

Затем в этой папке (например mario_adventure) вы создаете главную папку , в которой и будет проект (название игры, уже без жанра можно). В этой папке существует основной проект. Когда работаете с проектом – вы не работаете напрямую с основным проектом! Вы рядом в папке mario_adventure создаете другую папку, в имени которой указываете свой ник или фамилию+имя (такие же как на форуме) и уже в этой папке хранится копия проекта, с которой вы и работаете! Когда завершите работу – переносите свой код в основной проект, предварительно его протестировав, желательно отписаться на форуме в разделе вашего проекта что же было сделано вами. Таким образом собирается общий проект и каждый делает в него какой-то вклад.

Требования: Весь ваш код комментируете как можно больше и подробнее, чтобы другим было понятно, что он делает. Переменные в коде называете так, чтобы было понятно для чего она нужна. Первое слово в переменной с маленькой буквы,остальные слова с большой и пишете слитно без всяких там разделяющих символов типа “_”.

Правильно: coordinateOfPlayerX

не правильно: Coordinate_of_player_x или еще как то

Переменные константы пишутся большими буквами и уже с разделителем “_” . Например : const HEIGHT_MAP

Класс называете так же логично, первая буква большая, начало другого слова в имена класса тоже с большой буквы.

Членам класса с модификатором private следует присваивать суффикс-подчёркивание “_”.

методы и функции своим названием должны так же говорить о том, что они делают, то есть быть глаголами. оформляется так же как и переменная, например: “setTextureRect”

Если вы пишете отдельный заголовочный файл, то в его начале указываете свой ник или ФИ, например в файле view.h:

/* Created by Bukreev Pavel */

Человек, использующий ваш файл будет знать кому задать вопрос. На форуме есть раздел SFML_Cloud и будет понятно кто и что делает.

Не пользуйтесь транслитом в названии – koordinataIgRokaX, так не нужно делать. ) только англ яз.

По максимуму старайтесь использовать возможности ООП.

Рекомендуется к прочтению

Я создал тестовый публичный проект, который идет на основе наших уроков и соответственно тему на форуме. Если хотите – развивайте его, никто не запрещает. :-)

Тот проект практически без комментариев, что делает каждая строка вы знаете из уроков. В последствии новый код всегда комментируйте, а на форуме сообщайте, что вы сделали.

Что насчет безопасности вашего проекта? Ведь тут общий доступ. А вдруг злой человек зайдет и удалит ваш проект? Не знаю может ли такое быть, тут вроде люди понимающие сидят, но мало ли. Здесь я вижу несколько путей решения – храните копии у себя на компьютере в случае участия в тестовом проекте. Лучше всего , если вы создаете свое облако для этих целей, то есть вы создали проект, расписали его идею, и уже потом людям, написавшим в теме вашего проекта о желании развивать его, присылаете в личку (личка отправляется через ваш профиль, ссылка на него в верхней панели, которая появится когда вы войдете) логин и пароль, тем самым давая доступ только избранным участникам. Я даю логин пароль зарегистрированным (приходит на почту, а так же написано, если войдёте, при нажатии на черную иконку авторизации/управления справа вверху) и если удастся спалить, что это именно этот чел удалил чужой проект – будет бан. Я думаю таких случаев не будет. Можете создавать проекты и участвовать в них на предложенном мною облаке, или как я уже сказал делать свои аккаунты.

Проекты хранятся на яндекс диске и удобнее всего будет установить приложение яндекс диска, чтобы работать с облаком как с обычной папкой на вашем ПК. Скачать отсюда https://disk.yandex.ru/download/?from=webinterface#desktop это приложение и установите. Включите в нем автосинхронизацию, чтобы при изменении на ПК какого то файла, этот файл скидывался на облако сам (по умолчанию эта ф-ция вроде включена).




Итак, ниже , на примере тестового проекта распишу как начать свой проект:

Скачиваю приложение Яндекс Диска , устанавливаю, при установке снимаю галочки установить ЯндексБраузер и тд. Когда установил – ввожу логин пароль учетной записи (получите на почту при регистрации или логиньтесь и открывайте справа вверху панель личного кабинета – черная кнопка) , захожу через “Мой компьютер” в папку Яндекс Диск и создаю папку там с именем Lion_adventure. Далее иду в Visual Studio и создаю новый проект (всё как в первом уроке), ввожу имя проекта Lion, нажимаю расположение “Обзор” , нажимаю ЯндексДиск и выбираю папку Lion_adventure, студия тогда создаст сама папку с проектом Lion.

расположение проекта Lion_adventure->Lion
расположение проекта Lion_adventure->Lion

Далее жму окей, галочка “пустой проект”, (как в уроке по настройке VS2013), создаю файл main.cpp с тестовым кодом урока 1 или 2 , скачиваю библиотеку SFML с сайта  32 бит для студии (чтоб у всех работало). Настраиваю всё аналогично первому уроку по настройке vs2013, за исключением путей библиотеки sfml. В уроке я хранил на диске D, но он есть не у всех. Храним папку SFML-2.2 на диске C. Диск С есть у каждого, поэтому если настроить один раз – проект нормально откроется у всех с уже подключенными дополнительными файлами sfml. Настраиваете так же как в 1 уроке , только для диска C.

Идем в проект-, свойства, св-ва конфигурации, компоновщик, ввод, и в поле “дополнительн зависимости” пишем :
sfml-graphics-d.lib;sfml-window-d.lib;sfml-system-d.lib;sfml-audio-d.lib;

остальное затираем. Тут все как в первом уроке, только аудио ещё подключили сразу (в первом уроке исправил, там теперь тоже подключаем и аудио либу).
Далее создаю в корне Lion_adventure рядом с папкой проекта Lion свою папку с именем Павел Букреев и в эту папку копирую всё содержимое проекта папки Lion. Что-то там программирую в проекте своей папки, когда всё доделал редактирую код основного проекта в папке Lion, добавляя то, что я сделал в своей папке. На форуме в ветке SFML_Cloud создаю тему Lion_adventure и пишу идею проекта, чтобы привлечь единомышленников по этому жанру. Затем в последствии пишу изменения, внесенные мною в этом проекте в этой же теме. Не выключаю комп или инет – обязательно дожидаюсь окончания синхронизации файлов (справа внизу в трее у яндекс диска вращается синий круг – нужно дождаться значок зеленая галочка)

 

Надеюсь всё это приживется и вы будете этим заниматься!

SFML вопросы, прошу, задавайте на форуме.
  1. Всем привет от новоприбывших =)

    Во первых, от души хочу поблагодарить автора за труд! В рунете почти нет нормальной информации по SFML, и этот зарождающийся ресурс просто святой грааль!

    А теперь ближе к теме. Идея SFML_cloud очень хороша, но не проще было бы её реализовать при помощи git? Например на гитхабе или с помощью MS Team Foundation Server? Насколько я знаю, всё это условно бесплатно в использовании.

     
    Автору МЕГАРЕСПЕКТ!

    1. Привет!
      Большое спасибо:)
      Насчет sfml_cloud – мне показалось для новичка проще поработать так, как я описал.
      Вы можете создать проект и запись на форуме и работать при помощи git или ms tfs (один проект на гит уже есть на форуме) и расписать как к вам подключиться и работать с вами. Написать преимущества этой системы и удобство (а оно явно есть, конечно). А быть может и вполне вероятно,что все перейдут на эту систему и как следствие потом появится ещё одна инструкция на этой странице:)

      1. Полностью согласен!
        А в будущем, если идея пойдёт, я думаю стоит сделать видеоурок/обзор работы с github, так как слышал много жалоб от новичков, что сложно разобраться, собенно после закрытия русского языка.

Добавить комментарий