我应该如何建立一个游戏社区

Posted

技术标签:

【中文标题】我应该如何建立一个游戏社区【英文标题】:How should I build a gaming community 【发布时间】:2009-07-19 22:29:24 【问题描述】:

长期以来,我一直想建立自己的游戏社区网站(例如http://fragbite.com)。我已经开始了很多次,但几天后就退出了,因为它变得非常混乱。

我已经断断续续地使用 phpmysql 3 年了,但我从未接触过 OOP。我试过了,但我通常以“旧 PHP”结束。

我通常构建我的页面,以便在所有页面顶部包含一个具有必要功能、html 头等的文件,我不介意将 php 和 html 混合在一起,但如果我最终会找到一个设计师,他我想不会喜欢的。

我已经尝试过 phpcake 和 codeigniter 以及所有那些流行的 mvc,但它太多了,就像他们完成了所有工作一样。我想自己做,但我不知道从哪里开始。

如果你是我,你会怎么做?可能有一些非 oop mvc 吗?

(对不起我的英语)

【问题讨论】:

别担心你的英语:没关系:除了几个错别字,没有什么东西跳进我的眼睛——而且我可能不是唯一一个能理解它的人 ^^;顺便说一句,你可能不是这里唯一的非英语母语者(我不是 ^^)——如果知道这个网站的用户中有多少比例实际上是英语母语者…… 【参考方案1】:

也许这不是您真正想要的答案,但我认为您应该更好地了解 MVC 和 MVC 的面向框架。

你谈到了一些;你也可以看看其他人,比如:

Zend Framework symfony

我同意,有一些(至少需要几天的基础知识;几周,我会说,才能真正理解并很好地使用它们)学习曲线,他们确实做到了为你做很多工作......

...但是他们做了很多工作,让您可以专注于真正让您的应用程序 ;-)

我还要说两件事:

使用这种框架确实使修改和维护更容易(我真的认为他们这样做) 将事物分层(数据库访问、数据操作和数据表示)也将有助于团队合作;例如,您的 HTML 设计者只需修改表示层,而无需接触其他层——这是一个加分项! 了解这样的 MVC 框架对您的简历很有帮助(但只有当您打算从事此专业时才会关心)- 至少在我来自的法国是这样。

【讨论】:

而且,如果您只是建立一个社区站点(起初有点跳过 ^^),您应该看看现有的 CMS,它将为您完成大部分工作——它会让你有足够的时间去做其他事情,这也不错^^【参考方案2】:

为什么想要做所有的工作?您为什么不尝试在现有和经过验证的技术上构建一些东西,例如 Drupal 或 Community Server?

您甚至可以为此使用StackExchange 引擎,尽管这不是免费的 ;-)

【讨论】:

Drupal 并不是万能的解决方案,但如果您添加某些将其引导至社区的模块,它对社区的东西来说非常有用。博客和一个不错的论坛直接开箱即用,您可以根据需要对其进行自定义。【参考方案3】:

嘿,自 2005 年以来,我和我的朋友们一直在为游戏玩家运营一个网站,而我是其中大部分内容的“开发者”。我们使用 PHP/MySQL,一切都是我从零开始开发的。

从哪里开始很容易,只需花点时间思考一下您想要展示的内容的概念。然后为实际的 HTML/CSS 页面设计应该是什么样子制作一个粗略的模板。

然后添加动态功能,如 PHP 编码和 SQL 查询等,但将演示文稿 (HTML) 与逻辑 (PHP/MySQL) 分开 - 您可以使用 INCLUDE 或 REQUIRE_ONCE 语句来完成此购买。

我更喜欢在上面做所有的逻辑,只在 HTML 中显示变量,例如典型的页面如下所示:

<?php
     require_once('/system/standard.php');   // constants, functions, session etc.
     require_once('/system/database.php');   // database functionality etc.
     require_once('/system/authentication.php');   // security, logon etc.

     // do some logic e.g. database queries or some calculations.
     $data['username'] = 'Przystojny';
?>
<HTML>
...
Hello <?php print($data['username']); ?>
...
</HTML>

【讨论】:

【参考方案4】:

我没有尝试建立一个游戏社区,但我确实建立了一些东西。我发现 cakephp 对我的口味来说太重了,所以我推出了一个 nano 框架(类似于 python 的 web.py),我更开心了。

这里有几个例子:

nicedog nimble

纳米框架基本上由两个重要概念组成:

一个 url 到类的映射系统。 页面渲染器。

有些人会告诉你,自己动手做所有工作不值得,但这确实是个人品味的问题。我认为自己滚动更个人化,并且您比其他方式更了解内部运作。这也是一种更具教育意义的体验,我全心全意地关注教育。但是.. 各有各的。

附:不是很相关,但我也使用了 nginx 和 postgresql,而不是我通常选择的 apache 和 mysql(我对 apache 和 mysql 没有任何问题,我只是想尝试一些新的东西)。结果非常显着。 :)

当然,他们需要做一些工作才能开始,但没有一件好事来得容易。

【讨论】:

【参考方案5】:

我建议您编写一个轻量级模板系统或使用 PHPClasses 中的一个来处理生成页面的繁琐工作。这个你可以拥有创建内容的模块,然后将其“插入”到相关的占位符中。 Smarty 模板引擎可能值得一看。

外观示例:

<html>
<header>
 <title><!-- title_placeholder --></title>
 <script><!-- scripts_placeholder --></script>
</header>

<body>

  <div id='leftbar'>

    <!-- placeholder_1 -->
    <!-- placeholder_2 -->

  </div>

  <div id='main'>

    <!-- main_content -->

  </div>

 </body>

而 PHP 就这么简单:

$loginSideBarModule = new LoginModule();
$template->replaceTag("placeholder_1", $loginSideBarModule->render());

如果 Smarty 对你来说太重的话,PHPClasses 上有很多模板系统。

【讨论】:

以上是关于我应该如何建立一个游戏社区的主要内容,如果未能解决你的问题,请参考以下文章

颤动 - 建立游戏的良好基础?

建立一个玩游戏的深度学习神经网络

我应该如何使用 Java 保存自定义游戏文件?

我应该如何阅读键盘输入以在 WPF 中创建 2D 游戏?

我应该如何构建我的 Firestore 安全规则?

使用 WinMain() 和 WindowProc() 建立窗口后,我应该在哪里添加我的实际程序? (C++)