The imaginary requirements for game programmers of istar Studio were as below:
1.Basic CS/SE knowledge 2.Deep knowledge of games and a passion for game development. 3.Strong 3D math (linear algebra, trig, matrix/quaternion math) 4.Knowledge of Data structure & algorithm 5.Solid background of Computer Graphics(Rendering, animation, special effects) 6.Strong animation-related physics(rigid body physics, collision detection) 7.Knowledge of software design: modular architecture, event-driven architecture, software design patterns and object-oriented design 8.Working knowledge of various SDLC methodologies (Waterfall, Agile, SCRUM) 9.Deep knowledge of data compression. 10.Excellent C/C++ skill(STL, windows api, Qt, MFC) 11.Experience in C# & .NET platform 12.Scripting experiences(LUA/TCL/Python/Javasript) 13.Experience with RenderWare, Direct 3D, Open GL, or equivalent. 14.Experience with shader programming, especially with Cg. 15.Be fluent in multi-threaded programming 16.Be fluent in SIMD programming 17.Deep understanding of XML 18.Ability to quickly understand and work with internal and externally developed code. 19.Experiences on Gameplay programming 20.Physics-related programming(rigid body physics, collision detection) 21.Experience implementing animation systems (Vertex/Skeletal animation) 22.Experience on developing 3D-render systems or Special effects system 23.Tools development experiences (content editing tools, 2D and 3D art content pipelines, art importers/exporters, and automated content/data) 24.Familiar with current animation and modeling packages 25.Experience with the Unreal engine 26.Experience of all phases of the product cycle 27.Experience architecting and developing integration projects using WCF and web services 28.Years of professional experience in game industry or a related industry 29.Experience as an engineer on a large team and has previously published games. 30.Experience working with applications geared toward customer service 31.Knowledge of and/or interest in wireless technologies
32.(Plus) Experience with Maya api, Nuke api and MEL programming. 33.(Plus) Experience with commercial game physics packages 34.(Plus) Experience in working with MySQL + Apache 35.(Plus) Experience with Linux 36.(Plus) Experience with Server/networking programming 37.(Plus) J2ME experience 38.(Plus) Experience developing for iPhone, Android, J2ME, BREW and/or Blackberry devices 39.(Plus) Experience with Web development
If you meet all of the requirements above, please send me an email(firstname.lastname@example.org).
--Reasons for using agile in game development
Finding fun first
--Agile manifesto for game development
People & Communication > Process & Tools
Working game > Design document
Customer collaboration > Contract negotiation
Responding to change > Following a plan
--The Scrum project community
Team member, Scrum master, Product Owner
--Sprint planning & execution
Product backlog -> Sprint backlog
--Moving to a "Pull" System
Use tool properly
--Scalability of Scrum
Mix team to lower the integration effort:
The matrix team structure:
Production is an expensive part of development.
Scrum is not the best choice for production, but we don't want lose the benefits of agile:
Continuous Improvement, Collaboration, Focus on value and reduce the waste.
Pre-production vs. production
Lean Game production (Follow the deming cycle):
7 Lean Principles:
3.Decide as late as possible
4.Deliver as fast as possible
5.Empower the team
6.Build integrity in balance discipline
7.See the whole
--Repeatable works (Parallel Production)
Try the best to keep the steps in a harmony to eliminate buffers.
Handoffs create a sense of handing-off responsibility.
--Scum vs. Kanban
There are lots of things we need to know when we are designing a game, that means we should really understand what a game is all about. These words below which I collected from books and internet may be of inspirational values for us. Let's enjoy them:)
Only very hard-core gamers are interested in technology. The vast majority of your audience isn't. And technology does not sell games or make them fun. (Daniel Sanchez-Crespo Dalmau)
Having a "smart" AI but not a "human" AI can sometimes yield poor gameplay. (Daniel Sanchez-Crespo Dalmau)
Games are an integral part of all known human cultures. Digital games, in all their various formats and genres, are just a new expression of this ancient method of social interaction. Creating a good game, as noted in the Jung quote above, is a challenging task, one that requires a playful approach but a systematic solution. Part engineer, part entertainer, part mathematician, and part social director, the role of the game designer is to craft a set of rules within which there are means and motivation to play. Whether we are talking about folk games, board games, arcade games, or massively multiplayer online games, the art of game design has always been to create that elusive combination of challenge, competition, and interaction that players just call "fun."(Tracy Fullerton)
It's important to remember that what has made games such a long-lasting form of human entertainment is not intrinsic to any technology or medium but to the experience of the players. (Tracy Fullerton)
It's far too easy to get caught up in a game's graphics, story line, or new features and forget that what makes a game great is solid gameplay. (Tracy Fullerton)
Games are everywhere, from how we manage our money to how we form relationships. (Tracy Fullerton)
Action may not always bring happiness; but there is no happiness without action." (--Benjamin Disraeli)
I has been reading a book named "Ultimate Game programming with DirectX" in my spare time these past 2 months. Although somebody said that this book is actually not so good as it contains too much contents but lacks of lucubrating on either specific content, I still think that I have got lots of instructional information from it.
And I have also built a simple game engine "istarEngine" which is based on the "strandedEngine" project mentioned in the book. The whole organization of "istarEngine" is almost the same as the "strandedEngine" except some tiny differences on a few components, but most of the codes were re-wrote by me to add new functionalities or to unified the codes or to enhance the holistic performance.
The main features of istarEngine now are listed as below: -Route/Path animation -FPSCamera -Simple GUI System(Supported controls: Backdrop, Text, Button and Label) -The common input device support(Keyboard, mouse and joystick) -Logger -MathLib(Vector3, Matrix4X4, Quaternion, Plane, Ray and frustum) -Model loading(Supported formats: .obj, .x with animation) -Simple particle system -Physics(Box collider, sphere collider and force-applying) -Material, Lighting, Muti-Texture, Details-Mapping, Fog, Multi-Sampling -The function to take screenshots -Scripting(Property script and command script) -Audio(Based on XAudio, to be done in the later phase)
I am also building a game demo "Energy of Dragon" using the engine, the picture below is an in-game screenshot
(I know, it looks awful now as it is just the beginning version of the game demo "EOD", more functionality and more models will be added into it in the later days):
AS the title of this journal is "istar's Game Life", I'll write down or record something about "Game" here in the later days. In my personal opinion, "Game" is definitely a most abstruse thing in the world as it has comprised almost all the other things. Briefly speaking, it's a complex composite of all kinds of knowledge : Science, Humanities, Engineering and Art, in addition, the Idea is also a very important component of Game. As the reasons above, we can get a simple equation which should represent the soul of the journal: G = S+H+E+A+I. And the definitions of these components are as below:
Science From the Latin scientia, meaning "knowledge" or "to know". It is the effort to discover, and increase human understanding of how the physical world works.
Humanities The humanities are academic disciplines which study the human condition, using methods that are primarily analytic, critical, or speculative.
Art Art refers to a diverse range of human activities, creations, and expressions that are appealing to the senses or emotions of a human individual.
Engineering Engineering is the discipline and profession of applying technical and scientific knowledge and utilizing natural laws and physical resources in order to design and implement materials, structures, machines, devices, systems, and processes that realize a desired objective and meet specified criteria.
Idea An idea is a form(such as a thought) formed by consciousness (including mind) through the process of ideation.
Game A game is a structured activity, usually undertaken for enjoyment and sometimes also used as an educational tool. Actually, game should not only be considered as a kind of entertainment but the high-level simulation of our life.