創造性のフィールド-ブラウザーでのアニメーションとマルチプレイヤーゲーム

Book One:オープンソースプロジェクトの作成





記事「オープンソースソフトウェアに貢献する14の方法、独創的なプログラマーまたはロックスターではない」 habrahabr.ru/post/147220で説明されているトピックを、少し異なる方法で続けます!



多くの初心者プログラマーは、いくつかの珍しい興味深いプロジェクトに投資し、スキルをテストし、他の開発者とチームで働く方法を学ぶことに興味があると思います! これらの目的のために、技術的なテクニックからチームワークの心理学まで、opensourseへのエントリのすべての段階を説明するトピックに分割された、一種のサンドボックスと一連の記事をハブで起動することが決定されました。







ステージ1:アイデア


私たちのプロジェクトはオープンであり、利益を得ることを目的としていないため、まず開発者が今何を必要としているかを考える必要があります。 私はデスクトップ()よりもWeb(開発者)に近いという事実に基づいて、ここから選択します。



外観と、ほとんどの場合、CANVASやWEBGLなどの最も人気のあるブラウザーの実装のおかげで、創造性の大きな分野が現れます。



少し夢を見てみましょう! このようなアプリケーションがあれば、ブラウザで実装するためのベクトルアニメーションを簡単に作成できると便利です。 もちろん、これはFLASHの完全な代替ではありませんが、バナーの作成、ページの詳細のアニメーション化、ゲームの作成、およびJavaScriptで制御される他の多くのマルチメディア要素を作成することは非常に便利です。 骨格構造のキャラクターを描いて、彼にいくつかのパラメーターを渡し、ユーザーのページで彼と彼の行動を制御できたらいいですね。 そして、node.js上のサーバーとすべてを組み合わせると、マルチプレイヤーゲームを整理し、サイト管理者とその顧客との間の異常なコミュニケーションを手配することが可能になります! たとえば、きれいな男を通して。 まあどう? 印象的!? 次に、第2段階に進みます。



ステージ2:システムスケルトン


アイデアがあります。今、これが私たちにとってどのように機能するかを決める必要があります! この段階ではブレーンストーミングセッションが必要なので、コメントから意見を集めると、基本的な開発計画が作成されます。その概要については、次の記事で説明します。



最初に、私のバージョンを提供します! システムに必要なもの...



... ブロックとレイヤー。

すべての要素をブロックとレイヤーに分割する必要があります。 各ブロックには独自のレイヤーのリストを含めることができ、どのレイヤーにも独自のレイヤーを持つブロックを含めることができます。 レイヤーのブロックを移動するために、すべての内部パーツを移動することが可能です。



... jqueryまたは別のフレームワークを使用する必要がありますか? (翻訳:ブロックは、アニメーションを含むレイヤーが含まれる単一のオブジェクトです。たとえば、雨が降る画像を作成し、飛ぶ滴でブロックを描画し、それをさまざまな場所で何度も複製します(雨です!))彼らはアフリカの層にいます!



... 骨。

レイヤーとブロックは骨で結合する必要があります。 スクリプトを介してそれらを管理するには



... 基本的に、すべてのオブジェクトはベクトルですが、たとえば画像、オーディオ、ビデオを接続して、何らかのアニメーションを作成できるようにします。誰かが駆け抜けて壁に白いしみを付け、すでにこのしみの中にビデオが再生されているとします。



... アプリケーションのロード時と実行時(事前)の両方でデータがロードされるため、全体的なビューが完成します。 たとえば、最初にベース、つまりシステムのコアにアニメーションの最初の瞬間が読み込まれ、次に作業が進むにつれて必要なデータが読み込まれます。 そして、突然、画像自体は200メートルになります。 :(



... データを保存および転送する最良の方法は何ですか? JSONダイレクトデータストリームの方が良いと思います。

しかし、アニメーション生成用のデータがどのフォーマットで保存されるのか、100%で何を停止するのかわかりません。2つのプログラムがあるため、まだ完全には理解できません。

最初のプログラムはこれをすべて行うエディターであり、2番目はエディターで行われたすべてを表示するスクリプトですが、このためには書き込みと読み取りに単一のフォーマットが必要です! JSONaを除き、まだ何も思い浮かびません。



...自動モード(つまり、リクエストはICQのような応答)と直接(つまり、リクエストをサーバーに送信することで、訪問者が来たなどのブラウザーでスクリプトを制御する)の両方で、サーバー動作する機能を作成する必要があります。彼がサイトにいることを確認します。作成されたプログラムは、たとえば、ページの一番上で実行してユーザーに挨拶したり、ユーザーに何かを提供したりするように、小さな男にコマンドを与えます。



... エディタは、このアプリケーションで何かを作成できる主要部分の1つです。 エディターでは、描画、漫画の作成、スクリプトの作成などを行うことができます。



... 主な目標:

-必要に応じてスクリプトの必要な部分をロードする最小限のコードサイズ。これにより、すべての機能が使用されないため、カーネルの重量が重くなりません。 追加機能が必要な場合、追加機能があればロードされます。 機能は必要ありませんが、すべてがその場所に残ります。

-可能であれば、スクリプト、アニメーション、マルチメディアデータを1つのファイルに読み込みます! つまり、個人の集まりではなく、100枚の写真と2枚の音楽ではなく、これらすべてが収められた1つのファイルです。

-レンダリングには、ユーザーのビデオカードを使用してスクリプトの機能を強化する価値があります。 ブラウザに負担をかけずに完全なフリーズを引き起こさないように、さらに、カードを介して、さらに数倍の電力があるので、十分な電力があるため、本格的な3Dゲームを構築できます。



その結果、web4.0のような共同プログラムをWEBaの強力なプログラムにすることができます:)))))



ライセンスは最もオープンになります。つまり、このようなプログラムで何でもでき、誰でも実行できます(近い将来、すべてに適合するものが選択されます)



ステージ3:開発


開発には、githubが最も便利です。 機能面では、最適です! 初心者のために、それが何であるか、そしてそれがどのように機能するかの説明は次の記事にあります。



そして今、全体のhabrasocietyへの質問は、「このアプリケーションを何と呼ぶべきですか?」



すべてのオプションが考慮され、最も人気のあるものが選択されます! プロジェクトは現在github.com/xamelion/newprojectにあり、完全に空です!



All Articles