GithubHelp home page GithubHelp logo

heller77 / yougine Goto Github PK

View Code? Open in Web Editor NEW
5.0 1.0 4.0 13.8 MB

ゲームエンジン開発プロジェクト

License: MIT License

C++ 73.28% C 26.18% CMake 0.29% Objective-C 0.22% GLSL 0.01% Python 0.02%

yougine's Introduction

Yougine

これは、OpenGL + imguiで開発中のゲームエンジンのリポジトリです

開発中の段階の為、まだ配布する段階にありません。配布する際にはRelease等で配布を検討しております。

スクショ1

特徴

  • Windowsで動くゲームエンジン
  • ゲームオブジェクト&コンポーネントシステム採用

実装済み機能

基本機能

シーン ゲームの世界。後述するゲームオブジェクトの一覧を持つ。
ゲームオブジェクト ゲームの世界に存在するオブジェクト一つ一つ。(ex : キャラクターや建物、木等がそれぞれゲームオブジェクト)
コンポーネント ゲームオブジェクトの挙動を決めるもの。ゲームオブジェクトに複数付けられる。(ex: どの様に描画するか決定するレンダーコンポネント、物理的挙動をさせるリギッドボディーコンポーネント)

エディター

基本的なエディタウィンドーは以下。

エディタウィンドー 説明
SceneWindow シーンを描画する
HierarchyWindow シーンにあるゲームオブジェクト一覧を表示する
InspectorWindow 選択したゲームオブジェクト、又はリソースの詳細を表示、編集できる
ProjectWindow リソースを管理する

他にもゲームをビルドするボタンなどを格納するMenubarウィンドー(将来バーになる)や、シェーダをノードプログラミングで開発できるウィンドー等も開発中です。

実装途中の機能

  • 立方体や球などの当たり判定用のColliderComponent
  • シェーダをノードプログラミングで開発する機能。
  • ユーザがc++で独自コンポーネントを定義できるCustomComponent

yougine's People

Contributors

heller77 avatar uni101a avatar ao2324-00 avatar

Stargazers

Juha avatar sunguangdong avatar uwe avatar kugi avatar Keita Sanefuji avatar

Watchers

 avatar

yougine's Issues

SceneクラスのGetGameObjectByNameがnullを返している(ほとんどの確率で)

GetGameObjectByNameがシーンに複数ゲームオブジェクトがある場合、ほとんどの確率でnullを返すことになっている。
gameobject_listのリストの最後にあるゲームオブジェクトを探していた場合のみ値を返す。

GameObject* Scene::GetGameObjectByName(std::string name)

    GameObject* Scene::GetGameObjectByName(std::string name)
    {
        if (name.empty()) return nullptr;

        GameObject* r_obj = nullptr;
        for (GameObject* game_object : gameobject_list)
        {
            r_obj = RecursiveGameObjects({ game_object }, name);
        }

        return r_obj;
    }

プレイボタンを押すと、シーンが再構築されるが、必要な部分だけ変更することで処理を軽量化する。

ユーザスクリプトが更新されたときに、シーンにあるユーザスクリプトのコンポーネントを差し替えたい。そのため、現在はシーンを再構築しています。ただ、全てのシーンにあるオブジェクトを削除し、再生成しているので重い処理になっている。変更のあったコンポーネントのみ差し替える処理にする等して処理を最適化したい。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.