Project Requirements

Project Requirements
What will we need to do to make Artisan a reality?

Each section is a stub intended for expansion. What do we need to know?

"Whither shall I go that I may find ore to molten, that I may make tools to construct the ship after the manner which thou hast shown unto me?" -1 Nephi 17:9

Main objective
(from Scope below): '''We need to be able to show one player character, and we need to show him in his forge. We need to show him working on one or two items in his forge so the creation process can be shown in the Kickstarter pitch.''' (Bryce)

Essential Elements of Gameplay and Organization:

 * 1) Combat system
 * 2) Enemies
 * 3) Animations
 * 4) How to fight? How to win? What makes our system unique?
 * 5) Possibly integrated with #2?
 * 6) The world - Smorgasland
 * 7) Scenery
 * 8) Travel
 * 9) Locations
 * 10) Materials - how to acquire them, significance, etc.
 * 11) Storyline and NPCs
 * 12) Other characters in the game
 * 13) Party size and characters that can join
 * 14) Cinematics / storytelling? - There is plenty more in the way of story, and it’s still being written down at the moment. Story probably doesn’t need to make it’s way into the project at this point. Right now we need to focus on getting the engine working and enough content to show on Kickstarter. Story implementation really doesn’t need to happen until after then.
 * 15) Quests / commissions to make certain items
 * 16) Scoring for items created on commission. NPCs who commission your character to make items for them will compensate you for work well done. We need to develop a scoring system that will allow the computer players to “judge” your works based on the criteria they gave you. This is where the concept of levels is introduced to the item-making aspect of gameplay - some commissioned items are simple and easy to create; others are more difficult and/or require exotic items that are difficult to obtain (such as dragon’s teeth!)
 * 17) Network / Internet play?
 * 18) Item Creation
 * 19) Menus for item creation - choose the type of item to create, show what materials you have on hand, etc.
 * 20) Interactive modeling of items - research needed (SethS). Possible approaches for modeling unique items in-game:
 * 21) Voxel editing - really easy and straightforward; basically just a 3D pixelated Paint program (like Minecraft)
 * 22) 3D modeling - there are a number of cheap and free 3D modeling programs out there that let you point and click and edit 3D objects. While it isn't physically based, the basic features are simple to implement and allow for a high degree of geometric customization (see the freeware Anim8or.com). Point-and-click polygon creation could be easily implemented well within the course of a semester. Sculptris.com has invented something they call "Digital Sculpting" which is a lot like Photoshop, but for 3D objects: http://pixologic.com/sculptris/ The geometry and math required for this approach are quite a bit more challenging, but many well-published and well-documented algorithms exist for solving this type of problem interactively.
 * 23) Approximate physically based modeling - This approach is even more realistic but is still an oversimplification of physical reality. It is not particularly hard to implement, for example, a spring-body system where particles in a "solid" object have a basic shape but employ some amount of deformability. The main challenge here is to tweak the system so that it approximates real objects to a sufficient degree of accuracy. The complexity of this system could be highly variable depending on how accurate or detailed we want it to be. Many surveys and papers have been published detailing these approaches and their pros and cons: https://graphics.stanford.edu/courses/cs448b-00-winter/papers/TR97-19.pdf
 * 24) Exact physical modeling - in this type of system, certain laws of physics are employed with the highest degree of exactness available. Benefits are high fidelity and close correspondence to real-world systems, but drawbacks include greatly increased computational complexity so we are not likely to attempt this approach.
 * 25) Gameplay/creative elements of item creation (dependent on above). Perhaps we could do some research into how actual blacksmithing is done?
 * 26) 3D backdrop - This can be an easily created, mostly static environment to give the workshop its ambient feel. The artists ought to create an 3D environment in Maya, then turn it over to the programmers as assets they can implement in the engine.
 * 27) Storing models
 * 28) File format
 * 29) How to manage complexity and level of detail?
 * 30) General
 * 31) 3D models, characters, architecture, assets (trees, street lamps, etc), props, scenes
 * 32) Sound / Music
 * 33) Input processing
 * 34) Kickstarter Pitch
 * 35) We may need a kickstarter “Pitch manager” or advocate to ensure our project is pitchworthy. This will require some serious effort and research. See the Kickstarter Research Document for more details.
 * 36) Legal
 * 37) Licensing of software
 * 38) Agreement by contributors

Some Thoughts on Scope
(Ramblings by Ben) For each of the essential gameplay components listed above, we currently should be careful to focus on creating a framework/engine rather than getting too caught up in creating content: a working engine is a lot more impressive to show off in a demo. In particular, the item creation system will likely both be the selling point of the game, and will be the most technically complex, so we should focus our efforts there.

(Response by Bryce) Ben, I agree completely - we need to be able to show off item creation. Content is secondary. I hereby propose a content goal: '''We need to be able to show one player character, and we need to show him in his forge. We need to show him working on one or two items in his forge so the creation process can be shown in the Kickstarter pitch.''' It may be wise to exhibit a very small portion of the outside world as well, so I propose having a small (very small) example of alpha-stage combat in a limited exterior environment. From here, we could make a comprehensive list of assets that need to be created, and that list would probably be pretty small. Then we could more easily create goals and deadlines for both the programmers and the artists. (end response)

NOTES ON 3D MODELING (Bryce, here): The other artists and I have access to Maya, which is arguably the most powerful 3D modeling and animation tool. This project deserves no less. Plus we have training using the software. We will use it in combination with either Sculptris or Mudbox to create the 3D assets and environments for the game. Once it is time for the Kickstarter project, we will include the cost of professional licenses for the software in our funding goal so we can legally sell the game. We shouldn’t need more than two licenses for Maya. Until then, it is completely alright to use the licenses we currently have. I spoke to a professional on the issue just the other day.