oss / opensoccerstar
一个开源的足球经理浏览器游戏
Requires
- php: >=5.3.3
- bmatzner/foundation-bundle: ~5.3
- bmatzner/modernizr-bundle: ~2.7
- doctrine/doctrine-bundle: ~1.2
- doctrine/doctrine-fixtures-bundle: 2.2.0
- doctrine/orm: ~2.2,>=2.2.3
- friendsofsymfony/user-bundle: ~2.0@dev
- fzaninotto/faker: ~1.4
- hwi/oauth-bundle: 0.4.*@dev
- incenteev/composer-parameter-handler: ~2.0
- sensio/distribution-bundle: ~3.0
- sensio/framework-extra-bundle: ~3.0
- symfony/assetic-bundle: ~2.3
- symfony/monolog-bundle: ~2.4
- symfony/swiftmailer-bundle: ~2.3
- symfony/symfony: 2.5.*
- twig/extensions: ~1.0
Requires (Dev)
- phpunit/phpunit: 4.1.5
- sensio/generator-bundle: ~2.3
This package is auto-updated.
Last update: 2024-09-12 09:08:26 UTC
README
在 http://opensoccerstar.com 上玩当前稳定版本
简介
这是一个实验。开源社区能否创建一个浏览器游戏?
背景
2002年,我开始编写我的第一个独立浏览器游戏 Onlinetennis.net。它于2004年发布,并刚刚庆祝了10周年纪念日。随着我的编程技能的提升,代码质量也得到了提高。但单独编程是一项艰巨的挑战。各个方面都存在问题 - 前端、后端、服务器维护、社区管理、市场营销、工具等。
描述
我一直想着另一款游戏 - 一款足球经理游戏,其中你不是经理或教练,而是球员。你将收到合同报价,并选择一支球队为其效力。训练计划由你的教练设定,但你可以选择你想要投入最多精力的训练部分。或者甚至节省你的精力去接受采访、开快车或通宵狂欢。这样你不会成为完美的球员,但媒体会让你变得流行。与其他真实玩家的互动使你能够提高团队协作 - 或者让不受欢迎的教练离开球队。
这是一个庞大的项目。因此,我最终决定公开开发,并尝试找到其他人加入。在每个项目中,除了编写代码之外,还有许多其他事情要做。有游戏设计、艺术、翻译、测试或简单地玩游戏。
哲学
到目前为止,项目只有骨架,一个简单的 Symfony2 项目。我一直在使用 Symfony2 进行所有最新的项目,所以我决定继续使用它,因为它我认为它符合要求。我还在私有仓库中编写了游戏的某些部分,并计划逐步将其移动到这里。我不想一次性完成,因为这需要同时清理它。我认为重要的是尽可能使用现有的库,以保持实际的业务逻辑小而易于维护。像 Symfony2、jQuery 和前端框架这样的东西在这里可能很显然。但我认为,这也有助于不包含非常抽象的游戏机制,例如联赛管理。这可能尚未存在,但将其移入自己的仓库,使得其他人可以在不加入这个特定项目的情况下使用和扩展它。能够创建表格和比赛日程、管理降级和升级的联赛管理,也可以用于私人FIFA锦标赛等。
在阅读有关如何开始开源项目的文章时,总是建议在建立为人们提供实际用例的基础之前不要开始并希望得到帮助。我决定反着来,从一开始就在公共场合启动项目。这并不是因为我希望很多人阅读这份文件或甚至加入项目。但从一开始就在公共场合启动项目消除了关于何时发布第一个版本的痛苦。
设计原则
首要任务是达到最大的沉浸感。因此,游戏中不应有管理员或版主。相反,应有联邦组织,其中包含像主席或球员顾问等职位的人。这些职位由真实的人担任,取代了管理员和版主的需求。游戏应该对活跃玩家和非成员都非常容易访问。为了实现这一点,游戏中的每一部分都应该在无需玩家账户的情况下可访问。这样,每个人都可以调查排名、团队或球员档案和统计数据。这也使玩家能够在社交媒体上链接到这些页面。游戏中的所有公式都是公开的。因此,对玩家的真正挑战不是找出所有计算背后的公式,而是如何最好地处理它们。如果游戏在某个时候需要赚钱,这应该通过不会干扰玩家技能的高级功能来实现。例如,额外的统计数据、某种类型的计算器或助手是很好的例子,而增强效果则是不好的例子。
开始使用
所以,如果您喜欢这个想法,只需关注这个项目以了解任何更新。当您觉得时机成熟时,只需提出一个问题或建议的issue。
如果您想添加自己的功能、改进现有的功能或只是想玩玩,请按照以下步骤操作
- 分支此项目
- 将项目git克隆到您的服务器
- 将
parameters.yml.dist
复制到parameters.yml
并调整值以满足您的需求 - 执行
composer install
以安装所有依赖项 - 打开
localhost/config.php
以检查一切是否设置正确/修复问题 - 执行
php app/console doctrine:schema:create
以创建数据库模式 - 执行
php app/console oss:setup
以填充数据库的基本数据和创建初始比赛赛程 - 执行
php app/console oss:matchday
以评估一个比赛日 - 您可以将此设置为cronjob
下一步
下一步是将项目骨架改为一个非常简单但可玩的游戏,最小可行产品。此外,我还想更详细地阐述我对这个项目的愿景,以便每个人都能看到项目应向哪个方向发展。
感谢您阅读这段文字,感谢您关注这个仓库!