構建網路遊戲-我們是如何一無所有和php製作股票市場模擬器的-第1部分

基於網路的遊戲(例如股票模擬器)的開發始於一個想法。不只是 「我想做一個股市模擬」 但是這個主意 「我想做一個不同的,新的股票市場模擬,這比現有的模擬貨幣更好,更獨特」

然後是研究-看看已經有哪些其他市場模擬產品可以正常工作,並從最終用戶的角度看它們如何工作。有使用Java和基於伺服器的引擎(如Hollywood Stock Exchange)運行的股票模擬交易,使用SSI和ASP模塊運行的模擬交易以及諸如Futures Exchange的開源股票模擬交易。我們研究了所有這些因素,並確定了市場的開放位置和需求的位置。

我們確定在股票市場遊戲和模擬電視的預測市場和期貨交易所方面存在巨大空白。有很多網站可以為您的節目的受歡迎程度投票,其他網站甚至可以為真人秀節目投票,並通過運氣預測下一個節目。但是,沒有網站將電視視為股票市場。所以我們決定那將是我們的利基遊戲。

電視是一個新興產業-每年他們銷售的電視機數量都比前一年多。電視演播室不知疲倦地工作,製作新的不同節目來播放無線電波和有線網路,僅在北美就使數億人受益。所有這些觀眾對自己喜歡和不喜歡的東西都有自己的見解-這是一個與眾不同的市場。

我們坐下來,仔細檢查了電視股票市場將要做什麼的清單。

  • 買賣電視節目,電視頻道,演播室和明星中的股票
  • 賣空並覆蓋相同的股票(賣空和補倉與買入或賣出相反,如果您賣空股票,則希望價格下跌,以便在下跌時獲利。
  • 對熱門電視節目進行評分或投票
  • 提供易於使用的無縫註冊
  • 設計用於極端模塊化的市場系統,這樣我們就可以在開發新功能時添加新功能而不會干擾市場本身。

那是我們最初的功能列表。在本系列文章的最後,我將顯示當前功能的列表,並說明市場系統如何變得越來越複雜,但仍保留我們開發的所有基本模塊。

首先,最重要的是建立一種買賣股票的方法,跟蹤實際的買賣過程,並授權市場本身在買賣產品時調整價格。

我們決定使用mysql進行資料庫編製,並決定實施cron作業來進行後台計算和市場平衡。

通過使用php語言,我們可以更輕鬆地實現mysql訪問,還可以實現更大的靈活性,以保持Stocks Online應用程序儘可能模塊化。

MySql和php已在其生命周期中進行了修改,以儘可能接近無縫地一起工作,因此使用這兩個組件來構建我們的庫存系統是有意義的,因為這將使維護和將來的開發更加容易。

從基本的數學代碼開始

</p><p>買入價=股票價格x(股數+傭金)<br />

我們開發了一個簡單的買賣過程,使玩家能夠購買或出售股票。系統會自動計算傭金並將其添加到交易中。

我們意識到我們需要限制單個玩家可以購買的股票,因此將每隻股票的上限設置為25,000股。這將確保沒有人可以壟斷股票。並且還限制了單個批量購買或出售的效果。

最初是一個簡單的公式和跟蹤系統,然後迅速膨脹為一個複雜的數學函數演算法,現在看起來像這樣:


Number of shares available
= (max shares available - number of shares held by player)
IF
player shares are less than max allowed
THEN
process buy transaction
Buy
current price * number of shares available + commission (1.5%)
Transaction complete - do market calculations
Stock price adjust by (+0.01 x 5,000 shares or fraction thereof)
cron runs, checking transaction and adjusting 0.01 for every 10,000 shares moved
cron also checks if more than 50,000 shares have moved
then stock adjusts slowed to .01 per cron cycle to ensure a run-on stock does not occur.

為了確保這一點正確發生,我們必須為cron和系統添加多個mysql表條目以跟蹤庫存交易,這樣我們不僅可以獲得交易和庫存變動的歷史記錄,而且系統還可以交叉檢查自身以維護數據損壞或庫存交易不佳時保持平衡。

賣出交易幾乎是相同的過程,但有負數而不是正數。

我們還實施了投票系統,玩家可以投票選擇自己喜歡的電視節目-從而根據自己的投票向上或向下調整該節目庫存的價值。如果您喜歡該節目,請投贊成票;如果您不喜歡該節目,請投反對票。我們設置了一個隨機數發生器,每次載入投票頁面時,都會從資料庫中提取10個節目名稱,因此沒有一個節目比其他任何節目都具有更大的分量。從而確保票數的平均分配。投票系統還通過向玩家的每次點擊增加遊戲現金來獎勵玩家。如果您對所有10個選項進行投票,您將獲得1萬美元。因此,貪婪成為一個因素-通過投票獲得更多收益。

建立玩家投資組合頁面僅是建立一個if / then循環以拉動每隻持有的股票,並在頁面上顯示它們的買入價格,當前價格,價差等。

Nest的文章將解釋我們如何構建股票行情自動收錄器和其他功能,以及「股票在線」應用程序的未來發展方向。

Total
0
Shares
相關文章