Суббота, 17 Апреля 2021, 21:20

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 3 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Форум игроделов » Записи участника » liker [64]
Результаты поиска
likerДата: Среда, 26 Декабря 2012, 20:14 | Сообщение # 41 | Тема: Проблемы на Виндоусе 7
почетный гость
Сейчас нет на сайте
ISS-службы встроенные, посмотри в службах и если есть, отключи ее
likerДата: Среда, 26 Декабря 2012, 20:02 | Сообщение # 42 | Тема: Проблемы на Виндоусе 7
почетный гость
Сейчас нет на сайте
может у тебя не запущен сервер?skype, wmware workstation, IIS-службы порты такие же юзают, как apache
Я лично юзаю openserver, он в лог ошибку пишет подробную какой процесс не дает запустить серв


Сообщение отредактировал liker - Среда, 26 Декабря 2012, 20:03
likerДата: Среда, 26 Декабря 2012, 19:54 | Сообщение # 43 | Тема: Проблемы на Виндоусе 7
почетный гость
Сейчас нет на сайте
если ты запустил сервер после загрузки браузера, то полностью выруби браузер и еще раз пробуй
likerДата: Среда, 26 Декабря 2012, 19:49 | Сообщение # 44 | Тема: Проблемы на Виндоусе 7
почетный гость
Сейчас нет на сайте
у тебя какой браузер?тебе нужно омнибокс отрубить, В хроме это Включить Живой поиск, чтобы ускорить поиск данных (введенные в омнибокс данные могут регистрироваться) в настройках

Сообщение отредактировал liker - Среда, 26 Декабря 2012, 19:50
likerДата: Среда, 26 Декабря 2012, 19:46 | Сообщение # 45 | Тема: Проблемы на Виндоусе 7
почетный гость
Сейчас нет на сайте
попробуй добавить http://твой сайт...
likerДата: Вторник, 18 Декабря 2012, 21:13 | Сообщение # 46 | Тема: Игра покемоны
почетный гость
Сейчас нет на сайте
убить покемонов! biggrin
likerДата: Суббота, 15 Декабря 2012, 09:22 | Сообщение # 47 | Тема: Создание ООП движка браузерной игры
почетный гость
Сейчас нет на сайте
тему прикрепите уже smile

Добавлено (15.12.2012, 09:22)
---------------------------------------------
больше почему то не могу в тему дописывать, видно тут лимит на количество символов, надо новую тему сделать

likerДата: Четверг, 13 Декабря 2012, 17:13 | Сообщение # 48 | Тема: Создание ООП движка браузерной игры
почетный гость
Сейчас нет на сайте
хорошо, скоро продолжу smile
likerДата: Понедельник, 10 Декабря 2012, 23:40 | Сообщение # 49 | Тема: Создание ООП движка браузерной игры
почетный гость
Сейчас нет на сайте
ТЕМУ прошу прикрепить
Если есть вопросы, задавайте


Сообщение отредактировал liker - Вторник, 11 Декабря 2012, 14:00
likerДата: Понедельник, 10 Декабря 2012, 20:14 | Сообщение # 50 | Тема: Создание ООП движка браузерной игры
почетный гость
Сейчас нет на сайте
Создание ООП движка-фреймворка для браузерный игры
Кому полезен могут быть эти уроки?
Людям, которые знают основы php, включая ООП.
Что необходимо знать(основы) для понимания того, что здесь будет написано?
PHP, Mysql, JS, HTML, CSS, AJAX
Что будет написано в конечном итоге?
  • Движок(фреймворк) - каркас, на котором можно писать браузерные игры и, возможно, сама игра(с вашими идеями). Движок будет модульным, т.е. необходимые файлы будут подключаться по мере необходимости.
  • Сами модули - авторизация/регистрация, добыча ресурсов и тд
  • Защита от инъекций(PDO - подробнее далее), защита от межсайтовых атак и от скриптинга
  • i10n - интернациональность - возможность быстрого переключения между языками игры(т.е. в настройках указываем к примеру english или russian, и у нас движок подгружает соответствующий файл перевода)
  • Визуальная часть(не уверен что красиво сделаю, я не дизайнер :))
  • Чат с командами для модераторов и админов
    Чего точно не будет?
    Не будет шаблонизатора - скрипта, который позволяет красиво вписывать php код в html(кто захочет, сам легко это сделает)
    Что особенного будет в данных уроках?

    • ООП - большинство уроков остаются пока-что функциональными + минимум паттернов(я в них сам новичок)
    • Большое внимание защиты
    • Использование только поддерживаемых функций(не будет устаревших)
    • Немного поиграем с сессией(переопределим хранение, и способ формирование идентификатора - нужно для повышения защиты)
    • Напишем свой мини-логгер(скрипт, который пишет в текстовые файлы информацию об атаках, об неправ. запросах и тд)
    • Еще придумаю


    Программное обеспечение:


    • В качестве сборки сервера я использую OpenServer(У вас может быть Denwer, XAMPP),
      OS Windows 7 x64(не принципиально)
    • PHP 5.3
    • Mysql 5.5
    • Программа, где пишу код - NetBeans IDE(не принципиально)
    • Веб-сервер Apache 2.2
    • Интерфейс подключения к бд - PDO(не пугайтесь там все очень просто). Функции mysql_query и mysql_connect использовать не будем, это устарелый подход и они признаны разработчиками устаревшими.

    Урок 1. Введение и теория.
    Что же, начнем со структуры:
    Файловая структура:
    Папка, которую читает веб-сервер - public_html(у вас может быть www, public, htdocs, html, htmls, publics) - не принципиально
    Содержание папки public_html

    • Главный файл - index.php - именно он ВСЕГДА будет первым вызывается сервером
    • .htaccess - настройки для веб-сервера, которые нам необходимы
    • папка assets - в ней будут наши стили(css), javascript, и картинки

    Остальные папки, которые лежат на одном уровне с public_html

    • Папка App(от Application)- в ней лежат controllers, models, views(тоже не пугайтесь, ничего сложного)
    • Папка App/Data - в ней лежат, квесты, итемы, информация об игроках
    • Папка Sessions - в ней лежат файлы сессии
    • Папка Logs - в ней лежат логи
    • Папка System - собственно папка, в которой лежит наш фреймворк(движок)
    • Папка Users в ней лежат данные об игроках(ресурсы и тд). Это не значит что данные мы не будем хранить в бд smile Подробнее в след. уроках
    • Папка public_html/Assets - в ней лежат, как видно на скриншоте, js, css, i(картинки)
    • Папка App/i10n(international) - языковые файлы(перевод надписей и тд)

    Скриншот - как это выглядит:

    У веб-сервера есть доступ только к папке public_html, поэтому папки application, system, logs, sessions, data, users не доступны извне (Веб-сервер смотрит только папку public_html)

    Немного теории, ничего сложного:
    MVC- model view controller - схема, при которой мы наш код разделяем на 3 части: запросы к бд+вычисления(model), вывод html/js - view, controller - объект, который обеспечивает взаимодействие между model и view.
    Не бойтесь названий, это просто названия smile
    Мы просто делим код на 3 части:
    Запросы к бд(model) - mysql
    Вывод информации(view) - html/js
    "Главный файл", который объединяет запрос и вывод(controller)
    Схема MVC, применительно для нашего движка:

    Controller - это файл, в котором происходят основные действия(принятие данных, подготовка данных к запросу бд, передача данных в html-файл(view))
    У контроллера есть action(действие), т.е. это метод класса, (action всегда public), который мы вызываем из браузерной строки
    Имя класса = Controller_Имя контроллера,
    т.е. скажем у нас есть адрес http://test.ru/game/inventory
    game - это имя контроллера, класс будет называться Controller_Game, action - inventory(показать инвентарь игрока)
    Model - это файл с запросами к бд(+возможно, вычиления)
    View - это html файл формата .php, в котором мы с помощью php кода выводим данные
    Файлы(Классы) из которых будет состоять движок:
    index.php - главный входной файл
    Папка System:
    core.php - ядро
    request - принятые данные, ip-адрес юзера, очистка принятых данных от опасных данных
    response - исходящие данные, установка заголовков, перенаправление, 404 ошибка
    session - работа с сессией
    router - сопоставление имени файлов и классов в зависимости от параметров строки браузера(роутер)
    databasel - бд
    filemanager - работа с файлами
    lang - класс работы с языком
    logger - запись критических действий пользователя
    view - класс работы с представлениями(view)
    Все остальные файлы - чат, добыча ресурсов, прокачка перса и тд являются классами и хранятся в папке app/classes
    Последовательность работы движка:

    • Файл index.php устанавливает необходимые настроки (язык, временная зона, константы, конфиги, включает буферизацию вывода) и загружает файл core.php(require)
    • В файле core.php содержатся основные действия. Класс Core загружает остальные необходимые файлы: Session, Request, Response, Logger, Router, Database.. и тд, которые находятся в других файлах в той же папке(system)
    • Класс Router берет данные из браузерной строки, и в зависимости от того, что там, загружает нужный файл(контроллер)
    • В зависимости от написанного нами кода, вызванный контроллер обращается к модели(бд), берет данные и выводит их в View(html)
    • Скрипт заканчивается тем, что движок посылает заголовки ответа(Response) в браузер клиента

    А теперь все это визуально

    Итак, теперь как это ОКОНЧАТЕЛЬНО будет выглядеть:


    • Папка application - в ней содержатся наши controllers, models, view, modules
    • Папка data - квестый, файлы игроков
    • Папка logs - логи
    • Папка sessions - сессии
    • Папка system - классы движка, внимание классы Core, Controller, Model, View содержатся в файле core.php!(так удобнее мне, но можно вынести и в отд файлы)
    • Папка public_html - папка, которую "смотрит" веб-сервер, в ней наш файл index.php

    index.php

    .htaccess - все запросы направляются на файл index.php (т.е. запросы типа site.ru/index.php; site.ru/index; site.ru/just.php будет обрабатывать всегда файл index.php)

    Строка RewriteCond %{REQUEST_URI} !\.(css|gif|ico|jpg|js|png)$ обязательна, если вы перенаправляете любой запрос на index.php(ну или другой файл), т.к. современные браузеры
    запрашивают favicon.ico(маленькая иконка сайта) и этот запрос на favicon тоже перенаправляется на index.php, соответственно проходит 2 запроса вместо одного, изза этого могут возникнуть проблемы работы(я 3 дня мучался один раз), + лишняя нагрузка никому не нужна.


    Урок 2. Mysql(PDO)
    Итак, для работы с бд мы будем использовать интерфейс PDO для работы с базой данных.
    У него есть преимущества перед функциями mysql_connect, mysql_query и т.п.:
    - он поддерживатся разработчиком
    - в нем теоретически невозможна SQL-инъекция(на практике не сталкивался)
    - работает быстрее
    Итак, внешне от mysql_connect и т.п. особо не отличается, пишем такие же запросы, просто немного меняется синтаксис команд
    Класс mysql
    mysql.php(находится в папке system)


    Singleton
    Вы наверно уже заметили, что в коде постоянно фигурируют функции getInstance() и объекты нигде не создаются напрямую через Cat = new Cat()//пример
    Такой прием(шаблон, паттерн) называется Singleton(одиночка)
    Это означает, что у класс может быть ТОЛЬКО ОДИН экземпляр объекта. Это нужно для того, чтобы не размножать объекты:
    например, мы по ошибке создали 2 объекта типа mysql, тогда у нас получится 2 соединения с бд, а это не есть хорошо.
    Пример Синглтон предотвращает от этого. Если объекта нет, то он его создает, если есть, то просто возвращает на него ссылку
    Методы private function __construct(){} private function __clone(){} становятся private(закрытыми) и теперь нельзя напрямую создать объект, а только через функцию getInstance();
    Таким образом мы создадим большинство классов.

    Уроки буду делать дальше

    Сообщение отредактировал liker - Понедельник, 11 Марта 2013, 10:51
  • likerДата: Понедельник, 10 Декабря 2012, 17:21 | Сообщение # 51 | Тема: Создание движка браузерной игры, опрос
    почетный гость
    Сейчас нет на сайте
    Quote (igrodel500)
    Пиши, но только не про "карманных монстров".

    Я даже не думал об этом, я хочу пока не конкретную игру, а движок, и потом, если все получится, то уже и игру
    Жду еще ответов, а то пока что соотношение просмотров и ответов мало sad
    likerДата: Понедельник, 10 Декабря 2012, 15:47 | Сообщение # 52 | Тема: Как уничтожить переменные не зная их
    почетный гость
    Сейчас нет на сайте
    ну так я и говорю, если данные из браузерной строки не фильтруются то возможно думаю сломать, а если фильтруются то все окей, само по себе так тупо в лоб подключиться к бд нельзя
    likerДата: Понедельник, 10 Декабря 2012, 15:36 | Сообщение # 53 | Тема: Как уничтожить переменные не зная их
    почетный гость
    Сейчас нет на сайте
    у вас файлы грузятся в зависимости от того, что передано в браузерной строке? проверяете на допустимые имена, если нет, то показывайте страница не найдена
    likerДата: Понедельник, 10 Декабря 2012, 15:29 | Сообщение # 54 | Тема: Как уничтожить переменные не зная их
    почетный гость
    Сейчас нет на сайте
    теоретически да
    likerДата: Понедельник, 10 Декабря 2012, 15:25 | Сообщение # 55 | Тема: Как уничтожить переменные не зная их
    почетный гость
    Сейчас нет на сайте
    это какая-то ересь, зачем открывать файл через сокеты, используйте просто include, require, и не в коем случае не грузите файлы извне
    likerДата: Понедельник, 10 Декабря 2012, 15:03 | Сообщение # 56 | Тема: Как уничтожить переменные не зная их
    почетный гость
    Сейчас нет на сайте
    чето я не как можно не знать имена переменных
    likerДата: Понедельник, 10 Декабря 2012, 14:54 | Сообщение # 57 | Тема: Как уничтожить переменные не зная их
    почетный гость
    Сейчас нет на сайте
    а почему вы не знаете какие определены?

    Сообщение отредактировал liker - Понедельник, 10 Декабря 2012, 14:54
    likerДата: Воскресенье, 09 Декабря 2012, 21:35 | Сообщение # 58 | Тема: Создание движка браузерной игры, опрос
    почетный гость
    Сейчас нет на сайте
    28 просмотров и только один +, может я вас какими-то словами напугал? biggrin
    likerДата: Воскресенье, 09 Декабря 2012, 15:12 | Сообщение # 59 | Тема: Создание движка браузерной игры, опрос
    почетный гость
    Сейчас нет на сайте
    Некоторые юзеры пишут на форуме уроки по созданию браузерных игр, я тут подумал, может мне тоже что-нибудь такое написать?
    Думаю написать движок для браузерной игры(некий каркас), а если уроки будут популярный и то саму игру.
    Прошу отписаться в теме, кому будет интересно, но говорю сразу, что буду стараться писать "красивый" код + ООП+некоторые приемы программирования.
    Вообщем, прошу написать ваше мнение, стоит ли начинать


    Сообщение отредактировал liker - Воскресенье, 09 Декабря 2012, 15:36
    likerДата: Четверг, 06 Декабря 2012, 16:42 | Сообщение # 60 | Тема: Исходники pokelegenda.ru
    почетный гость
    Сейчас нет на сайте
    Quote (OXION)
    Вот тут наткнулся на движок покелегенды Сюда

    пароль на архивы pok
    Форум игроделов » Записи участника » liker [64]
    • Страница 3 из 4
    • «
    • 1
    • 2
    • 3
    • 4
    • »
    Поиск:

    Все права сохранены. GcUp.ru © 2008-2021 Рейтинг