Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rebrand from "game engine" to "game framework" #667

Closed
bvssvni opened this issue Oct 18, 2014 · 19 comments

Comments

@bvssvni
Copy link
Member

commented Oct 18, 2014

From the comment http://www.reddit.com/r/rust_gamedev/comments/2jiep0/the_new_look_of_wwwpistonrs/clcpyc9

The way you describe Piston sounds like it has more in common with game frameworks than game engines; if that's the case some rebranding might be in order to prevent future confusion.

@bvssvni bvssvni added the discussion label Oct 18, 2014

@mitchmindtree

This comment has been minimized.

Copy link
Member

commented Oct 18, 2014

+1

@erlend-sh

This comment has been minimized.

Copy link

commented Oct 21, 2014

We do not set out to make a game engine explicitly, we simply share the maintenance of libraries, while pursuing our own personal goals
Piston is not a "box" you develop for, but a collection of modular libraries that work well together

This definitely sounds more like a framework than an engine :)

@bvssvni

This comment has been minimized.

Copy link
Member Author

commented Oct 21, 2014

There is not a clear distinction between the usage of the word "engine" vs "framework". The word "engine" can be used about software frameworks. See http://en.wikipedia.org/wiki/Game_engine

@bvssvni

This comment has been minimized.

Copy link
Member Author

commented Oct 21, 2014

There are also frameworks like Love2D, that essentially is "box" you develop for, unlike Piston. The property of collection of modular libraries does not seem to distinguish "game engine" and "game framework".

@mitchmindtree

This comment has been minimized.

Copy link
Member

commented Oct 21, 2014

IMO, even without a clear distinction in gaming texts specifically, "engine" intuitively sounds (to me) more like a singular thing that drives a game, whereas a framework sounds more like a collection of tools.

As an example on the other side of the coin, openFrameworks is a community driven collection of libraries (ofxAddons) that revolve around one singular core library.

One idea is to maybe describe the piston repo itself as the 'game engine' which exists at the core of a larger, community driven collection of libs called the 'game framework'? I dunno, just throwing around some thoughts :)

@bvssvni

This comment has been minimized.

Copy link
Member Author

commented Oct 21, 2014

If we set this up as a context vector, we have:

  1. Game engine / game framework / uncertain distinction
  2. Modular libraries / integrated libraries
  3. no graphical editors / smaller graphical editors / mix of smaller and larger IDEs / one big IDE

I added point 3 because I think it is more characteristic for the distinction between the usage "game engine" and "game framework". According to the formula, this leaves us with 72 comparisons, which is a rather huge space of interpretation. The choice of modular vs integrated libraries can be a design choice, which we have because we are using Rust, and this might not actually influence the distinction.

Piston has no graphical editors at the moment, but I am thinking to make some over the long term. We do not plan to make one big IDE, so if people think that having one big IDE is required for a game engine, then we should discuss this in particular.

I think Piston can described as the following line in context space:

[uncertain distinction, modular libraries, no graphical editors => smaller graphical editors]

@bvssvni

This comment has been minimized.

Copy link
Member Author

commented Oct 21, 2014

Also, if we work on gfx_voxel as planned, then the property of modular libraries might fall away for some subset of the usage of Piston. Actually, when I think of it, the rule of "modular libraries" are not true for all, since we indeed have dependencies in order to do anything useful. I guess the discussion is what Piston is at the core, and then we would have to change it into:

  1. Game engine / game framework / uncertain distinction
  2. Modular core libraries / integrated core libraries / uncertain distinction
  3. no graphical editors / smaller graphical editors / mix of smaller and larger IDEs / one big IDE

Piston has multiple independent libraries designed for different use cases, which makes it a bit hard to tell exactly what Piston is, because you can always add another library that does not share the same dependencies.

@bvssvni

This comment has been minimized.

Copy link
Member Author

commented Oct 21, 2014

The way I see it, Piston is both a framework and an engine, but the definition is kind of blurry. We also had a cool idea of using PistonWorks, which was a play on the word "frameworks".

However, now that we are moving away from using the piston repo, we can actually use it as a name of the entire project. This is both shorter and less confusing than making up a new name for the same thing. When we explain what Piston is, we can say it is a game engine or game framework, depending on how you define an engine or a framework. The way you use it is as a collection of libraries. The website explains how you use it, so I don't think there is much risk for confusion yet.

What I imagined was using PistonWorks as a name of a group working together on specific projects. "PistonWorks represents" sounds better than "Piston represents". It is a really good name, so perhaps we regret it if we are re-branding to a "framework" now, because that might lead to confusion later?

@erlend-sh

This comment has been minimized.

Copy link

commented Oct 24, 2014

The way I see it, Piston is both a framework and an engine

Depending on what you want for its future, it it may be neither.

(p.s. you're long_void on Reddit, right? 😄 )

@bvssvni

This comment has been minimized.

Copy link
Member Author

commented Oct 24, 2014

@erlend-sh I edited your comment because your response ended up as part of the quote. I frequently update my comments, so go to the issue tracker before responding by email. My user name on Reddit is long_void. Also, I am not very tolerant toward bullshit. If you want to discuss seriously with me, then you have to learn what predicates are (statements that can be true or false).

@erlend-sh

This comment has been minimized.

Copy link

commented Oct 24, 2014

I think there's been a misunderstanding. I meant to link to the reply I made on Reddit for that last comment. It was not meant as a stab in any way. I meant "may be neither" as in "it might evolve into something else, OR be phased out entirely", as indicated in that separate discussion.

@bvssvni

This comment has been minimized.

Copy link
Member Author

commented Oct 24, 2014

@erlend-sh Perhaps we should write up a FAQ about newcomers concerns about Piston. I'd like to keep things as they are for a while, because all the maintainers are working pretty heavily on other things. I like the way you are thinking about making it more user friendly and it would be nice if we could work out some concrete way to do this. If you have an idea for a project you want to start on about this, then I'll help you set it up under PistonDevelopers.

@bvssvni

This comment has been minimized.

Copy link
Member Author

commented Oct 24, 2014

@erlend-sh Thanks for clarifying. I really appreciate that.

@bvssvni

This comment has been minimized.

Copy link
Member Author

commented Oct 24, 2014

@erlend-sh If you are on IRC, then I could tell you a bit about stuff that is going on, so you get a picture and maybe you can find a better way of expressing Piston's philosophy to newcomers.

@erlend-sh

This comment has been minimized.

Copy link

commented Oct 24, 2014

I won't be online for much longer today, but I can start idling in some channels. #rust on Freenode (and Gitter sometimes) for starters. Dunno if there is a standard hangout for the Piston crowd.

To be clear, I'm a PR, community & management type, not a programmer. I always make for a good "can the most novice programmer grasp this concept?" litmus test candidate. I can advise on things like copywriting and strategy. Code contributions, not so much (more like zilch).

@bvssvni

This comment has been minimized.

Copy link
Member Author

commented Oct 24, 2014

@erlend-sh We use #rust-gamedev a lot.

@gaudecker

This comment has been minimized.

Copy link
Contributor

commented Oct 26, 2014

I can't see any reason why Piston couldn't be both framework and an engine.

I would personally like to see a two-tiered approach, where there would be the low-level libraries in the first, and much higher-level abstractions built on top of the first in the second. So if the high-level abstractions don't cut it, a user could always fall back on the low-level libraries and build their own abstractions.

@bvssvni

This comment has been minimized.

Copy link
Member Author

commented Oct 26, 2014

@gaudecker I agree. The way you formulated it is pretty nice. You can use Piston as a framework by using the low-level libraries, build your own engine, or you can use the high level libraries and write just what you need to make a game. This sounds like an understandable way of explaining what Piston is.

@bvssvni

This comment has been minimized.

Copy link
Member Author

commented Oct 28, 2014

We will keep "game engine" for now, but think about the public image.

@bvssvni bvssvni closed this Oct 28, 2014

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants
You can’t perform that action at this time.