搜尋此網誌

Glossary script

Project F games

Here is a list of Project F games. All of them are built by components of F.core, but it is more than relying-upon-F.core that makes a game Project F games. Project F games should comply to an architectural guideline and be open source, documented and hackable to fulfill the mission of Project F.


F.LF

open source implementation of LF2
type: keyboard fighter
demo: f-lf2.blogspot.hk

2012: foundation

2012回顧 - Foundation基礎

計劃大約是在上年同樣時候開始的, 當時還未有名字, 只是一心想重現LF2. 雖然瀏覽器科技已經很厲害了, 但始終HTML原意並不是為了做遊戲的, 所以花了很多時間去探討及建立開發網頁遊戲的方法, 包括F.core核心程式集, 架構設計, 開發流程 及 發佈途徑.

六月, F.LF發佈了第一個示範, 其後陸續實現了LF2的部分功能, 制定了the LF2 standard中的各式系統.

keyboard controller

keyboard controller for games that every keystroke is critical.

長話短說:
  • 不要做polling / 不要每frame檢查一個鍵是否被按下
  • 用event driven model
  • 一個frame之內其實可以有多於一個鍵, 如果你的遊戲不可以漏鍵的話, 用一個緩衝器儲住按鍵
  • 定時定刻地 從緩衝器擷取按鍵
  • 小心處理程式並行性的問題 / 不要給其他pseudo-thread堵塞了流程
  • 如果不明所以, 就用F.core提供的鍵盤控制程式吧
{"polling":"唔識譯","frame":"幀","event driven model":"事件驅動的模式","pseudo-thread":"偽執行緒"}

in short:
  • never do polling / never check whether a key is down every frame
  • listen to key events / use an event driven model
  • if it is critical that every key must be captured / no keys can be dropped, buffer the key inputs
  • fetch the buffer at a defined point in the game loop
  • watch out for concurrency issues / do not get your event listener blocked by other pseudo-threads
  • use the carefully built keyboard controller provided by F.core

F.core/controller.js

Projectile motion 拋體運動

拋體運動, kinematics嘅定義係

一件物體被給予初速, 其後在唯一的力, 重力, 影響下運動.

詳細嘅解說係, 例如一個波嘅 垂直初始速度係 每秒20米.
  1. 1秒之後, 個波會上升左20米, 但響呢一秒裏面, 重力同時會令垂直速度減少至每秒10米
  2. 所以再過多1秒, 個波只會上升10米, 響呢一秒裏面, 重力會令垂直速度減少至每秒0米
  3. 再過多1秒, 個波會靜止, 重力會令垂直速度增加至向下每秒10米
  4. 再過多1秒, 個波會下降10米, 響呢一秒裏面, 重力會令垂直速度增加至每秒20米

睇唔明以上嘅equations唔緊要, 可以比心機d讀DSE/AL或者搵我私人幫你補physics.
重點係框框左嘅equations, time of flight T, maximum height h, range R同initial velocity, gravity及projection angle嘅關係.

{"kinematics":"運動學","equations":"方程式","physics":"物理科","time of flight":"空中的時間","maximum height":"最高高度","range":"射程","initial velocity":"初速","gravity":"重力","projection angle":"投射角"}

F計劃的結構 / Structure of Project F


F.core是F計劃的核心程式, 提供網頁遊戲所需的系統元件. 每個元件負責一個功能或代表一個概念.
F.LF由F.core的元件組成, 是一個對照LF2功能的遊戲引擎. 將會以LF2原版的圖檔及聲效包裝成F.LF2網頁遊戲.
F.docs包括 討論,技術性文章及遊戲開發課程 以輔助以上程式的使用.
將F計劃分成獨立的部分, 主要的原因是版權問題.
F.core, F.LF及F.docs是100%原創的內容, 因此允許再發佈但禁止商業用途, 採用了不自由的開源條款.
由於我們不擁有LF2的發佈權, 所以發佈F.LF2則有侵權之憂. F.LF引擎設計上是為了配合原版LF2及以外的內容運行, 所以未來是可以有100%玩家原創的版本的. 這裏建立了兩道防火牆以保護F計劃的核心價值免於受損.
F.core 及 F.LF 都有十分高的要求, 講究 概念, 機制 及 可擴展性.

F.core is the core component of Project F used to build browser based fighter games. F.core is a set of conceptual and functional components that can be used to build an engine.
F.LF a LF2-compatible engine built upon F.core, which will then be wrapped with contents of LF2 into F.LF2.
F.docs includes documents, articles and tutorials associating Project F.
The major concern of structuring Project F in different parts is copyright. F.core, F.LF and F.docs are pure original works that adopted a lesser-freedom open source license which prohibits commercial use.
Since we do not have the publish rights of LF2, publishing F.LF2 can create issues later in time. F.LF is designed to be hackable and customizable, that we will eventually have versions completely made by community.
Both F.core and F.LF have the highest software standard which cares about conceptual design, mechanism and extensibility.

F核心程式集 / F.core repository

F.核心 在 / F.core on https://github.com/tyt2y3/F.core

license

Creative Commons License Copyright © 2012-2013 some rights reserved. All original work published on: and any work published under the name of "F計劃" or "Project F" is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License with the following additional terms: In addition to the stated meanings, "Work" includes articles and program source code. Distribution of any part of the Work for commercial use is prohibited.