2016-01-28 3 views
3

Я начинаю кодирование с Ruby on Rails, и я делаю игры в свободное время. Я создал базовый веб-сайт с использованием Ruby on Rails для размещения/отображения игр, над которыми я работал. Мне интересно изучать новые языки, создавая игры, и я хотел бы поиграть с текстовой RPG, чтобы узнать, что Ruby on Rails может сделать. Я хочу разместить его на своем сайте, но я не хочу, чтобы структура MVC в игре была смешана со структурой веб-сайта. Что было бы лучшим способом их разделить? Я читал о функции двигателя рубина на рельсах. Будет ли это жизнеспособным способом достижения этого? В противном случае можно было бы создать его как отдельное приложение для рельсов и внедрить его в веб-сайт?Текстовая RPG, построенная с использованием Ruby on Rails внутри веб-сайта Ruby on Rails?

Извините за длинный блок. Надеюсь, это имеет смысл, и спасибо за вашу помощь.

+0

Когда это работает, дайте нам знать! – Tim

ответ

2

Вы можете сделать двигатель наверняка.

Двигатели являются автономными.

Особенно, если вы используете директиву isolate_namespace, у двигателя будет очень мало поворота на «основном» приложении. Вы можете ссылаться на него с main_app, но в конечном счете, это будет самодостаточным:

#lib/game/game.rb 
module Game 
    class Engine < ::Rails::Engine 
     isolate_namespace Game #-> url.com/game 
    end 
end 

Это действует почти так же, как «пространство имен» делает в файле маршрутов - помещает весь код игры внутри модуль:

# lib/game/app/controllers/game/application_controller.rb 
class Game::ApplicationController < ActionController::Base 
    x 
end 

хороший пример того, что вы могли бы сделать следующее ...

#app/models/game.rb 
class Game < ActiveRecord::Base 
    #schema id | name | created_at | updated_at 
    has_many :players 
end 

#app/models/player.rb 
class Player < ActiveRecord::Base 
    belongs_to :game 
end 

Вышеупомянутое позволит вам управлять «игроками» на вашем сайте, с помощью которых вы сможете обновить оценки самих игр.

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

+0

Спасибо! Это похоже на то, что я ищу. Просто хотел убедиться, что смогу использовать движок для создания игры таким образом, чтобы она не зависела от моего веб-сайта или его баз данных. Таким образом, если я говорю, хотел переместить его на другой сайт или сделать его отдельным сайтом, они не были бы неотделимы. Я запустил еще одну ветку своего сайта и начну играть с этими идеями. Не стесняйтесь расширять любую информацию, которую, как вы думаете, я должен знать. И снова, спасибо! – JustinLogic