如何使用 Laravel 高效地制作网页和移动游戏

Posted

技术标签:

【中文标题】如何使用 Laravel 高效地制作网页和移动游戏【英文标题】:How to efficiently make a game for web and mobile with Laravel 【发布时间】:2016-11-25 09:40:15 【问题描述】:

几年前,我开始制作自己的浏览器游戏,使用原始 php 和一点 javascript。就是这样。但时代变了,自几年前游戏首次发布以来,移动开发变得越来越重要。现在我想将我的游戏从原始的、自己编写的 PHP 转换为更稳定的版本,并且我想让它也可以作为原生应用程序用于移动设备。我想对我的游戏做出两件重要的改变:

我目前正在将游戏从原始 PHP 转换为 Laravel 5 框架。这样我就不再需要自己编写所有关于身份验证等的代码了。我想为实时数据实现 socket.io(我正在考虑使用 AngularJS 来获得单页体验,但我还不确定)。 而且,我想创造一种移动体验:游戏应该可以在移动设备上玩。我已经开始使用 Unity3D 了。

两个版本(网页版和移动版)都应该调用一个 API 来处理所有 CRUD 和安全检查。但是我有一个问题:我想节省自己的工作,所以我想为 Web 和移动版本编写尽可能少的重复代码。我希望网络前端和 Unity 游戏都使用相同的 API 进行通信。

举个例子:我有一个http://api.example.com/?check=login&...,它检查是否提供了正确的用户凭据。我认为这是用 Lumen(Laravel 的孩子)制作这个 API 的好方法。好吧,我知道如何将这个请求从 Unity 发送到 api。但是我如何在 Laravel 网络版本中做到这一点?我的意思是,Laravel 网页版应该连接到 api,否则我必须重写 web 和移动的登录检查,而不是一个中心位置。还是有更好的选择?我对所有的信息和可能的事情有点厌倦了,所以我希望你能说得更清楚:)

所以,总结一下我的问题,不要太宽泛:

1) 我是 Web 和移动开发的新手:我的想法是否正确? 2) 如果可能:与一个代码库 (/api) 与 Web 和移动版本交互的最佳方式是什么?我是否应该使用一个单独的 api.example.com 域来处理所有事情。或者手游可以和普通的 Laravel 应用通信吗?

我真的希望你能帮助我,或者如果有什么不清楚的地方请告诉我。

【问题讨论】:

我会使用 REST 样式来编码 api 并将数据作为 Json 传递并进行身份验证,我将使用令牌身份验证。看看这个 laravel 教程吧:gistlog.co/JacobBennett/090369fbab0b31130b51 【参考方案1】:

您可以为您的网络和移动版本使用相同的 API,并使用 JSON Web Tokens 进行身份验证 - 这样您就不必通过 cookie 和其他浏览器锁定机制来管理用户状态,从而难以协调移动平台和网络。

所以如果你走 JWT 路线,游戏和浏览器可以通过你的 API 与 Laravel 应用正常通信。

Dingo 可以用于您的 API,还有a nice JWT wrapper 用于 Laravel,它本身使用 Dingo。我已经在 SPA 中与 ReactJS 一起在生产中使用它,效果很好。

如果不了解您想要实现的所有目标以及游戏的具体细节,很难回答 - 希望对您有所帮助!

【讨论】:

非常感谢!另一个问题:如果我想让 API 在 Lumen 上运行,因为它更快,该怎么办?我也可以用 Dingo 做那个吗? 是的,Dingo 也与 Lumen 合作。根据description,他们将其称为用于 Laravel 和 Lumen 框架的 RESTful API 包 我的意思是我在 Laravel 中的主要应用程序和在 Lumen 中的 API。同时。 Dingo 两者都可以使用,所以应该不是问题。你可以让你的主 Laravel 应用也调用 Lumen API,而不是复制功能。

以上是关于如何使用 Laravel 高效地制作网页和移动游戏的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 laravel 4 从容地返回图像?

课程设计:使用JavaScript制作一个网页上的贪吃蛇游戏

如何使用laravel 4安静地返回图像?

如何在 Laravel 中渲染网页和移动视图

使用jQuery快速高效制作网页特效-----------------------------之jQuery事件与动画

如何在 iOS 中高效地使用图像制作动画