🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Scrum metodology

Started by
116 comments, last by Tom Sloper 5 years, 12 months ago
50 minutes ago, Fulcrum.013 said:

Now he researches next-gen Java Script improvement and be sure he on really true way.

I really look forward to someone replacing Javascript, because it was not designed appropriately to handle things that people are trying to make it do.

Programming language design benefits from a LOT of formal methods to design and analyze it, and a lot of published research.  Many of the things I have to deal with in game development would benefit from formal methods as well, if they existed for the combinations of problems we face.  At the moment we're limited to specialized tools for particular applications:  Valgrind, TLA+, theorem provers, static analyzers, code coverage, unit testing, etc.  If you know any good tools or methods applicable to games, I would love to know about them.

In my experience, the unfortunate truth is that 99% of the developers I've met don't even know these tools exist, nor how to use them.  They're entirely unfamiliar with formal methods.  Very little of the code we write in most games has very much math at all.  We almost never deal with converting actual mathematical equations to code.

We have teams of hundreds of people where nobody knows every single detail of the project.  Spending time to ensure the entire team all knows everything they need to is not only unnecessary, but incredibly difficult, costly, and frustrating.  I frequently have to remind artists and designers to commit files to source control.  Yet we still need such teams finish the product anyway.

Companies cannot simply fire everyone who can't remember everything, or misses a detail.  You might only have 5% of your employees left, who will then quit due to the shock.  You cannot hire only the incredibly skilled people because you cannot spend the time to properly find out whether someone is that good or not.

From my perspective, having seen both the formal methods way of doing things and the "fly by the seat of your pants" way, most of the management and team coordination approaches like scrum are meant to allow teams somewhere in the middle of these two extremes to split up and coordinate work according to skill sets, minimize schedule risk due to inability to estimate costs for unfamiliar tasks, adapt to unexpected problems, and eventually accomplish what they need to.

Agile, Scrum, etc. are not ways to do things correctly the first time.  They're ways to mitigate problems due to imperfection in teams.

Advertisement
20 minutes ago, Nypyren said:

I really look forward to someone replacing Javascript, because it was not designed appropriately to handle things that people are trying to make it do.

We do have replacements for Javascript. In fact, a number of them (things like Dart, TypeScript, for example). However the main reason it still in-use today because it is so popular so no body really want to switch away.

I agree that it's not well designed. I think the designer put it in the browser at the last minute when they shipped Netscape Navigator.... It is kinda ok for simple scripts, but nowadays it's much more complex than what it used to be.

http://9tawan.net/en/

13 hours ago, Nypyren said:

In my experience, the unfortunate truth is that 99% of the developers I've met don't even know these tools exist, nor how to use them

Exactly. But it two categories. First category not use it becouse just not know about it. Other category not use it tools becouse know it usability range and exactly know that have no problems that its tools can help to solve. Usualy problem came not from place where it detected. Its tools intended to improve code quality. But most problem usualy come from wrong architecture or concepts of architecture. By other word most problems come from misunerstanding or not enought understending of task, and only way to solve it is to understand task complitely. Most likely it require just to decomposite task to subtasks.

 

17 hours ago, Nypyren said:

We have teams of hundreds of people where nobody knows every single detail of the project.

It is really imposible to do. Even in case a single person make a whole project it is imposible to keep into head all details any time. It why decomposition to independet or low dependend subtask is very importent. Also it is more simple to figure out set of tiny tasks than a one big task. But exactly figured  task allready have 99% of its solution. Programming language is just a pen that intended to write a way to solve task to computer and nothing else.

14 hours ago, Nypyren said:

Very little of the code we write in most games has very much math at all. 

Really most of math concentrated into engine. Game mechnics especialy for shooter of the year usualy uses a simple math into code. Most of math-related methods used to design architecture. Generally it some part of theory of conclusions. Architecture just have to follow base principle - any conclusion have to be made by component that have enougt information to made its conclusion. Architecture must not make a difficulties into this atea.

 

 

#define if(a) if((a) && rand()%100)

18 hours ago, Nypyren said:

Many of the things I have to deal with in game development would benefit from formal methods as well, if they existed for the combinations of problems we face.

I guess about any problems into gamedev comes from inproper GDD. I dont seen GDD that you really use, but any GDD yhat i seen into internet  don't figuring task for game mechanics programmers at all. For example hypotetical GDD for game MMO about WWII called "Chess". GDD by examples from internet will have a many pages of story of Communistical Party of USSR. pictures of Soviet and German soldiers and tanks,photos of Stalin and Hitler that have be used as pieces, and many other not related to game development water, but have no single word about how pieces have to move (really on one GDD i has seen in game mechanics section "Is anybody interested into it?" ).  Using GDD like this you never will have a game mechanics. But show programmers only FIDE paper with chess lows at morning and you will have a ready to use game mechanics until end of day, where you can add any graphics for pieces and any game story. Now next level of abstraction. Notify programmers that it is not exact rules of moves, but rules will be very  similar. Shortly thay have to find that chess have only 2 abcstract kind of possible pieces - with fixed shape of move, and with shape of move limited by desck borders only. So using this way you will have a data ajustable mechanics for any chess like game until middle of day.

#define if(a) if((a) && rand()%100)

 

21 hours ago, Nypyren said:

You cannot hire only the incredibly skilled people because you cannot spend the time to properly find out whether someone is that good or no

Really it required only two skills - wish to make a games and Software Engeneer deegre. First of it is a best motivation, and second is enought background (of course with steady knowledges that its deege require to have. Just here at least 75% of diplomas just purchased. ). 5 years of studing of Applicative Mathematic and CS is complete enought to get knowledge from any required field fast in case of need, and develop architecture and implement any kind of software .

#define if(a) if((a) && rand()%100)

On 7/6/2018 at 3:44 AM, Nypyren said:

So the agile development process is a way to perform that research while creating the actual product,

Better say "while destruct a actual product".  Each component that you code today became you tool tomorrow. So it have to be universal on its field, independend from other and data driven as much as it possible from start. As result you shortly have a set of lego bricks, from wich assembly more complex components. But if you anytame have to refactor your bricks  you just have no enougt time to build house from it. As result you have to hire more programmers. But new team members usualy slow down a development becouse at least require a time to enter a project details, also with growth of a team, complexity of managment and communication growth too.

It is plenty examples of architectures that able to even reflect changes of field without refactoring of existing code.  For  example VCL. Thay updating components that wrap WinAPI controls according to WinAPI upgrades anytime, and updating/adding new database adapters component according to database engines news, but they never refactored anything, just made point addition to abstract control class to reflect new features of winapi,  and adding new component that WinAPI added. But they never ever touched components independed from external code. Just follow SOLID princeples and you will never need to refactor existing code.

By the way, their architecture that use a intrusive weak owe and processing lists on 2-way pointers concept completely protect them from memory leaks and broken pointers.

#define if(a) if((a) && rand()%100)

On 7/6/2018 at 7:01 AM, jbadams said:

but you really need to accept that sometimes alternatives work just as well or even better.

Any algo have to be universal and data-driven as much as it posible by definition of algo. By other word in case customer ask you to calculate a white stars you have from start calculate a stars of given by end-user color to avoid future refactoring. It is ONLY valid way.

#define if(a) if((a) && rand()%100)

By that logic, every game should use the exact same code. Just have all the stuff that's unique per game data driven. World of Warcraft vs Super Meat Boy? Just data driven changes.

Which is obviously nonsense.

Hello to all my stalkers.

8 minutes ago, Lactose said:

Which is obviously nonsense.

So by your opinion a game engines like Unity or UE or Cry is a complete nonsense? And any APIs like WinAPI or DirectX or OpenGL  is complete nonsense too?

#define if(a) if((a) && rand()%100)

2 minutes ago, Fulcrum.013 said:

So by your opinion a game engines like unity or UE o Cry is a complete nonsense?

You still write code in Unity, Unreal Engine, CryEngine and other game engines.

Hello to all my stalkers.

This topic is closed to new replies.

Advertisement