In my previous
topic, I posted a link to a small sketch of the ideas of the game under the working title
Hexagon (the document at that time included the name Celestial island). Quite a lot of people showed interest in him, and not only as correctors: the punctuation marks and the frantic correcting spelling errors in him, for which of course they are grateful, but it was still a “sketch” - notes in the margins. But some also asked questions and expressed a desire to participate in the project.
Having a little thought and having weighed all the pros and cons and saying to myself: - Ah, why not.
I decided to conduct an experiment: from the project “for the soul”, which is being developed in my spare time, to open a project and conduct development publicly under an open license and see what happens.
First stage
The first stage of any work is preparation for it. It is not unimportant to decide on the bank the main organizational issues that may later become stumbling blocks and stall the work. First of all, I decided to decide on a working environment that would have to make work on a project comfortable and transparent. Not only for me, but also for other developers and “viewers”.
Workspace
Game engine
Initially, the choice was from several engines that are “on everyone's lips”:
All of them in one form or another have “sparing” licenses for non-commercial projects with the ability to switch to the paid version for various conditions. All of them offer a whole infrastructure, a developed community and a great portfolio of AAA titles. UDK and Unity3d in turn "out of the box" provide the ability to port projects for mobile platforms.
')
Unity3d was removed from the list almost immediately - “misunderstandings” with licensing for non-commercial projects: it is not explicitly on the site; according to rumors on the Internet, someone did it - decide it individually or on special licensing terms and so on ... Too many questions and few answers - I decided that it was easier not to get involved.
A little later, two other applicants were sent after him.
All three engines with their “infrastructure” impose their own philosophy on what can be created on them and how to do it from beginning to end - just such a feeling, possibly erroneous, I had when I met. You start the demo and editor and literally appear before your eyes how to do them: first-person or third-person shooter, race or “level-based” platformer ... But the image of the strategy with an open endless world didn’t appear as well.
In addition, an important criterion when choosing was the cross-platform nature of both the final product and development tools - this was a common problem.
As a result, the choice fell on
blender . Until now, many perceive it solely as a 3d modeling tool (render, compositing, animation, etc.), but not as an engine. Although this module literally with each update gets new features. You can also connect to it, an external graphics engine, for example:
Ogre or
Crystal Space , as well as another physics engine, if necessary.
The engine and runtime is initially cross-platform and includes source code in the delivery. At the same time, everyone has their own infrastructure, but to a certain extent, there is no “philosophy” and the imposition of “the only true way”.
After several feature tests have been conducted:
- Creation of "full-fledged" shaders (GLSL)
- Ability to connect external script files (by default, scripts are written in the project's .blend file, in the built-in editor)
- Testing the performance of physics and logic by collisions between objects, as well as the event model as a whole.
It was decided, at least at the stage of the prototype of the main version of the game, to dwell on it.
It is probably worth clarifying here that the game implies the ability to play using various devices and “protocols”. For example, by sending sms with a short team to change the tactics of combat game units, and going into the game from a mobile in the opened simplified-mode, make strategic decisions or participate in the bidding. A full-featured client is currently only planned for a computer - this also allows you to solve an important problem that many ports face from one platform to another: when it is uncomfortable to play the same shooter on the touchscreen, while the joystick or keyboard mouse is controlled "With a bang."
Programming Language and IDE
The choice of the engine was made, he defined the language - python. Before that, there was an experience of writing on it both for web projects, and once upon a time scripts directly under blender itself. Problems with developers, documentation and the community should also not be.
The choice of IDE was done in favor of
pycharm. It is not surprising that the developers who expressed a desire to join also worked in it, because at the moment, according to their own conviction, this is the best tool on the market that is worth the money, and of course the support is beyond praise.
3d editor
It may seem that the choice was obvious given its presence in blender, but this is not so. Unfortunately, not for all modelers, the specificity of its interface has a positive effect on performance. At the same time, it is open and free, and there was a desire to find an alternative under the same conditions.
They became the
Softimage Mod Tool , a version of the Softimage XSI editor, largely cut down for creating game mods and non-commercial projects. The problem was only in different scales between the game scene and the Mod Tool, but it is quickly solved by the export-import pipeline.
Localization
In order for the project to be truly “open”, it is necessary to get rid of the language barrier as much as possible. All texts including the documentation, it was decided to conduct in parallel in English and Russian. For this, the
notabenoid project was chosen as it turned out, according to their administration, with the help of it and its audience a number of game projects and project documentation have been translated for a long time.
Web platform
A public project must be adequately and conveniently presented on the network:
- Collective remote work and planning
- Writing documentation
- Opportunity to work with the community
- Source Publishing
The collective tool first became the
googel apps later
teamlab . Describing the project and creating tasks (especially nested) in teamlab turned out to be extremely inconvenient, and delineating user rights was not very obvious as a result, we had to continue searching, including creating the corresponding
question in q & a . The most appropriate for all my requirements voiced there was not very well-known
birdviewprojects . Combining the tools: planning, teamwork and a small "accounting".
For documentation, the choice is obvious - you need a wiki engine. Google docs are good for everyone, but you can’t do without convenient cross-references and multi-lingual support, especially with large amounts of text. The choice turned out to be quite limited within the framework of the cloud platform that became the
appfog . With all its advantages (tariffs, the attachment of their domain names, a wide choice of languages, good documentation, etc.) compared to, for example,
OpenShift, glitches and slowness start literally after passing registration (access to the service for an unknown reason was received only a week after) she has childhood diseases, and a number of restrictions for downloadable applications.
Only
MediaWiki started and started. In this case, it was she who was in the first place among the applicants in the totality of available opportunities. So coincidence has become the determining factor.
Working with the community and source repository in a modern open source software product often goes “side by side”. This is our case -
github , in my personal conviction, has no competitors at the moment, if you do not need private projects that are not relevant for this project.
License
An important aspect of open source development is the license for published materials and sources. For me, it was important first of all to retain the authorship of all the project participants, no matter how much they make a small contribution to the project, and also not to exclude the possibility of creating paid “editions” of the project.
For these and other reasons, after a long study of various options,
New BSD was chosen for the code, and for all other content, from models to documentation (for all materials where the license is not specified explicitly),
CC BY-NC 3.0 gives you the opportunity to use everything in non-commercial projects, and if desired, request from the right holder an individual extension of its scope.
Afterword
At this point, I think it’s worth completing my story about the “preparation” stage for the development of a game project. If visitors of Habr have an interest in the project, about which literally a couple of lines were told in this article, then ask - I will definitely answer. If you want to participate - please contact, discuss.
Also in the near future will begin the publication of source code and documentation, about everything - this except for articles on habr.
UPD: Project website opened:
hexagon scrw