Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 12 Mar 2005
Offline Last Active Today, 12:36 AM

#5316122 how to handle Immensely large multiplayer worlds?

Posted by on 21 October 2016 - 02:55 PM

Like I said everyone misses the point , ITS MULTIPLAYER not single player, so even if one player cannot see it server still need to keep track of it


The things that exist on the server are different than the things that exist on the client.


There is nothing preventing you from using fixed point math in one representation --- as discussed with the world as a fixed point 64-bit integer --- and also having a floating point representation used for your client game engine.


The most common practice that I read about for overcoming floating point precision in video games with large worlds is by dividing the world into cells and load it with player's position and shift origin of objects with respect to player.


Note that this is extremely common because it is very effective.


Floating point works well for most games, assuming a meter scale, up to about a 4 km value from center. That's +/- 4km in x and in y, or about 64 square kilometers, or about 25 square miles.  That's an enormous area.


Occasionally, perhaps after you've traveled a kilometer or two, or a mile or so, you update the world so you're in a new center location.



Even for large worlds it is rare for RPG-style games to cover more distance than that in a single region.   WoW is currently on the order of 60 square miles of actual content. Most of the older areas are vacant ghost-towns. Skyrim and Dragon Age Inquisition are both on the order of 20 square miles of content. GTA 5 covered about 100 square miles, but the vast majority of it was fake/duplicate buildings. It was probably around 2-3 square miles of actual modeled stuff plus about 10 miles of modeled roadway segments.

#5316083 TDD and predefined models

Posted by on 21 October 2016 - 09:20 AM

Regarding how tests make things permanent:



You may write a unit test for code.  Say it gives an input of 3, 5, and 9, and the output is "M".  That becomes the permanent behavior. The test will always pass as long as 3, 5, and 9 produce "M".


As your test suite grows, you have thousands of tests for thousands of different pieces of code.  If you change something and the behavior is modified, the tests fail.  If your change means 3, 5, and 9 now produce "X", it will show up in the test.



Once you have a comprehensive suite of tests, every functional change you make to the existing software should change the test results.  No matter what the functionality is you are modifying it should be covered by something in the tests.


Hence, tests help make code permanent.  



Note also that they don't necessarily make code correct, only permanent.  The correct result for 3, 5, and 9 might have been "Q", but if the test says it is "M" then that is the result being tested.  Tests should be designed to help minimize defects, but sometimes bugs exist both in the main code and the test code.




TDD with an existing suite of tests means you modify the test first so the test fails, then modify the code to make the tests pass.  In this example you may modify it so 3, 5, and 9 should result in "Q" and the test immediately fails.  Then modify the main code to the new version, which should make the test pass.  Finally you can clean up anything that needs cleanup, which should not cause any test to change results, verified by rerunning the tests and having them still pass.




This is why automated tests for experimental code or for systems with design in flux is usually a bad idea.  Any time your system changes you need to change both the test code and the main code.


However, for engine code, core code, shared code, anything where the system needs to stay permanent, that is were automated tests are amazing. 

#5315891 Game Balancing Methods.

Posted by on 19 October 2016 - 09:41 PM

As MooseDev wrote, it is highly dependant on your game.

In multiplayer balancing, competition time is key to balance.

Generally early in the competition you want a stable game, make it easier to catch up from behind with an unlucky situation, and also find ways to make it more difficult for the most advanced player to leap ahead. Slow growth is useful here as small corrections have big effect. Slow growth is useful at the beginning as it reduces the effect of random chance, yet still allows an extremely advanced player to win over a novice. Early game you want the game to self-stabilize.

Generally mid-competition you want to enable powerups and strategy. Nothing that is too powerful, but plenty of power in whatever balancing factor you are using. Combos, powerups, whatever, should encourage a wide range of strategy. Details are unique to each game. Often you want to build a "perfect imbalance", where every strategy has both strengths and weaknesses, where every strategy can be overcome by another strategy.

Late in the competition you want the game to destabilize, one player to surge ahead as the others quickly drop off. This generally means high power and major events, big enough to destabilize the game. Players who are behind will fight with all their might to keep it stable, but you want the game to throw itself out of balance rapidly.

#5315669 Should I buy a console if teaching this stuff?

Posted by on 18 October 2016 - 06:29 AM

I have been advised to buy both an xbox 360 and a ps3 as between the two I will be able to buy and return the largest number of classic games. Visiting Game Stop, they had 5 times as many of the older games than the new ones, so it stands to reason that if I want to experience more games that are classics, I would need an older system.   Agreed?


They will probably be less expensive overall, yes.  

And there will be many more used games because people are likely to turn in all their old games when they trade in their old systems.


I'm not sure I'd call them the "classic games", but there are plenty of good games to choose from.

#5315424 An alternative to "namespaces"

Posted by on 16 October 2016 - 08:57 AM

expecially when you try mising using <namespace> in the cpp with not using namespace in the header.

Seems like an issue learning to use C++ properly. This is in addition to using good names.

You shouldn't have "using namespace" in the header. That destroys the entire purpose. It invites the hordes to everyone who uses your module.

In a CPP file you generally shouldn't have "using namespace" either, preferring to rely on Koenig lookup to automatically find the items. Generally either use explicit names or a short list of "using name" statements rather than "using namespace" statements. The using statements invite entire systems directly into your module which usually isn't what you want. The exception is if you are working as part of the module, in which case you declare the entire block as being inside the namespace.

#5315379 portfolio link on Resume?

Posted by on 15 October 2016 - 07:26 PM

Partly disagree with your person.  It depends on the company. Generally the documents you send in for your resume are kept as documents that are shared, but are printed at the final steps.



Some people will not look at your links, that is true.  But some people who interview you WILL click on those links if you are a promising candidate.  They will look at your pages and see what you have created.  If it looks amazing they'll make note of it.  If it looks mediocre they'll still make notes that you have passion.  If it looks absolutely terrible they may note that as well.


Since sometimes they'll be printed out, make sure you include the actual address if reasonable.


Use either a shortened link or your own website if possible.  Generally as a tech field your own domain name is quite common, but if you're using something like a subdomain wordpress site you'll want to shorten it.  Such as:


Project Foo  (http://bit.ly/whatever)




Project Bar (http://GeneralJist.com/ProjectBar/)


where the links are clickable hyperlinks on your PDF document that you send.



These days keeping everything electronic is fine.  If you get to the interview and you ask them to look at your portfolio they'll pull it up on a computer.

#5315334 Getting more curious and curious

Posted by on 15 October 2016 - 09:43 AM

Isnt that jack of all trade master of none thing?


Nope, I see it as gaining specialties.  Implementing more and more details until you know all the critical details, then jumping down into an even more specialized area.  Once in that specialty, learning more and more details, becoming expert all the way down.

#5315295 Should I buy a console if teaching this stuff?

Posted by on 15 October 2016 - 03:13 AM

WII U, like WII, seems babyish.


Nintendo has a great design philosophy as far as that goes.  You call it "babyish", but that isn't exactly right.  The games that do amazingly well on the platform are approachable and feel more like toys.  Not necessarily baby toys, but toys nonetheless.


The best games on Nintendo systems tend to include 'moments of delight', whether that is Yoshi doing some crazy animations, Link getting a closeup as he opens the treasure chest, or the delight of Smash Bros as you whack your enemy into oblivion.



The games tend to attract both more children (who don't have money) and more parents/grandparents (who do have money) thinking of children.


As the game mechanics generally are more friendly and approachable it means that people who don't have hundreds of hours to invest in playing can approach them easily and immediately get into the fun parts.

#5315294 Complete Noob Trying to take a shot at game dev

Posted by on 15 October 2016 - 02:54 AM

ClickTeam Fusion is probably good given your background is in art.  GameMaker Studio and GameSalad can also be good depending on what system you use.


Of the four choices Unity, UE, Cryengine, and Source 2, Unity would be most friendly to an artist if you're wiling to buy a few things from the Unity Store, with UE4 close behind if you only use the built-in Blueprint system.  All of them will require programming, some require more programming than others.

#5315245 UML diagrams for video games

Posted by on 14 October 2016 - 01:43 PM

I've seen UML used on whiteboards and done so myself when describing how systems are put together, but that is very transitory and as a communications tool.  That's all UML is, after all, is a communications tool.



Like the others before, I don't see UML in design documents or anything related to the game itself on any regular basis.


Rarely someone will document how a system works. They generally don't use UML formally, but with a UML-style collection of boxes and lines to communicate the relationship. Other times the UML communications diagrams showing how data flows over time will show up, but it isn't common.

#5315243 Should I buy a console if teaching this stuff?

Posted by on 14 October 2016 - 01:37 PM

Also, I always hear about PC games. Do those require a lot of memory and will downloading them slow down my computer, or are they mostly online and easy to access?


These days PC games are generally download-only.  Steam is the biggest provider, the other major publishers (EA, Ubisoft, ...) have their game portals too.  The biggest drawback in your situation is that they are purchase-only.  No returns, no exchanges.


And should I conclude that purchasing a console and discs (cds, dvds whatever) is a good investment?


No, they are a terrible investment.  It is possible that in 20-30 years copies that were pristine and untouched will have some collector value, and a few limited release titles will become collectibles.  But overall the value drops quickly, with the biggest value when the title is fresh and new, dropping rapidly as popularity diminishes, and falling on web sites to "free plus shipping" a few months after they are no longer popular.


But I am still not sure which console I should buy.


I like to remind people it doesn't have to be a mutually exclusive choice.  It can be if budgets are limited, but based on industry surveys over half of American homes use multiple game consoles.


I'll assume money is tight and you're looking for just one. 


First, I'd look to see if there are any platform exclusive games you want. For a few examples, the latest Final Fantasy and God Of War will put you on PS4, the latest Halo games or Titanfall will put you on XBox One, Mario and Zelda live in Nintendo's universe.  I think of the current hardware generation PS4 has the longer list of exclusive titles.


The vast majority of games are cross platform between both PS4 and XBox One.  The hardware is similar enough between them there is minimal difference for player experience.


Wii U has its own set of games due to the controller design, and while they are interesting for study purposes they may not give you the choices you are looking for.  However, as they are different, it may give you different ideas.




As I believe cost is the key factor, would just go to the used game store, briefly explain that you're a teacher who was assigned to teach some games courses, and ask them if they can give a discount on either PS4 or XBox One.  


If nothing is at a big discount, and if you don't have a preferred platform, I'd probably take the PS4 500GB for $250 along with 2-3 games under $20 that you can get good return and exchange later.  If you get a bundled game you won't be able to use the full value return policy, but they'd give you a few dollars in exchange.

#5315072 What is the general name for types like Quadtrees and Octrees etc

Posted by on 13 October 2016 - 04:32 PM

BSPs and KDtrees are very different entities with different uses.

I'd say they are only slightly different.


Octree and Quadtree are always broken up exactly into regular grids.  1/2, then 1/4, then 1/8, and so on. It is divided by space.


BSP trees and KD trees allow arbitrary subdivisions. They also tend to focus more on keeping the slices divided based on number of items rather than area covered.

#5315068 Play Station VR

Posted by on 13 October 2016 - 04:11 PM

Now that PSVR is publicly available ....  :D


I see this holiday as the bend in the curve, the tipping point, where enough people with enough wealth are going to have them, bring the devices to grandma's house, show 20+ extended family members who call people up the neighbors and show 100+ total people over the holidays, and suddenly everyone says "I absolutely need to buy one of these VR entertainment devices."





Among the four headsets currently on my desk and assorted motion trackers that are probably giving me cancer, I personally prefer using the Vive's motion controls and the grip for my virtual hands feels best.  I think in the marketplace it will be PSVR becoming the console edition of VR, and Vive becoming the PC edition of VR, and I see them both fighting madly for an enormous multi-million-unit install base next year.  



However, the way the headset lenses distort the display make it look reasonable as you move your eyes around, the Vive's lenses distort and detract from the world much more. While the screen itself is not the best, the lenses visually look better to me, there is less visual distortion on PSVR.



Following Hodgman's list for these three devices:


Tracking: Vive, Rift, PSVR  -- Agree.
Screen: Vive/Rift, PSVR -- Agree, but it is a mixed result because of the next item...
Lenses: PSVR, Rift, Vive -- Agree.  While PSVR has a technically worse screen, the lenses are a serious strike against Vive.
Comfort: PSVR, Rift, Vive -- I'd say PSVR, Vive, Rift. I really want to get my hands on the wireless Vive headset adapters that various groups online have been discussing, as that may change my answer, the tether is annoying.
Audio: Rift, Vive/PSVR -- No preference, I think this varies more by the software used than the device itself.
Motion Controllers: Rift, Vive, PSVR -- I'd swap Rift and Vive.
Price: PSVR, Rift, Vive -- They could all be cheaper. 
Even so, all of them are great, and everyone we've brought in to try stuff has been amazed and wanted to come back regardless of the system used.

#5315064 Should I buy a console if teaching this stuff?

Posted by on 13 October 2016 - 03:48 PM

And with this thread and the other comments, that is exactly what I believe is happening.


I recall back to my own school days, we had a group of us who took AP Computer Science our junior year and wanted another course beyond pascal.  After much begging with the administration and the AP CS teacher -- who was a math instructor that was originally given the AP CS course reluctantly -- they agreed that if we could get 8 students together who would absolutely commit to the course as an elective, they'd find a way to make it work.  


Our teacher was often frustrated by CS topics, but he did an adequate job teaching us C++.  He allowed the more advanced students -- the few of us who were the core who already knew the semantics of the language but not the CS topics on algorithms and data structures, to build projects as advanced as we wanted, as long as we shared with him the CS-side of how things worked. As these were the days before the Intarwebz, much of it was finding information on the limited newsgroups we had access to and finding stuff on Archie/Veronica, and from the few CS departments with publicly viewable ftp sites hunting for gems.



Both from this and the previous thread, I get the impression gameteacher is in a somewhat similar situation.  He (assuming it is a male due to English grammar, if female then 'she') is an educator first, and since there is nobody else willing/able to teach the topic, he's taking it on himself to educate the kids as best he can.  


I love that attitude, and while sometimes there has been disagreement over course scope and discussion topics, I'm THRILLED he is spending the extra time trying to do the best he can for the students who are interested in my vocational field.



So gameteacher, while there are many people who rack up extended hours on games, including me, nobody expects that for the level you're teaching.  While I personally may rack up 100+ hours over the course of several weeks playing a game I absolutely love, it is not necessary for the role you've got, you can play enough of the game to try it out, study it, get comfortable, and be able to talk with enough authority that your students will understand you, if not respect you, for it.



Also now that I think about it, if you've got a game store that has lots of dead time you might talk about your situation and convince the manager to let you play the games there at the store, and maybe occasionally have employees talk about the games with you and the mechanics they like.

#5314917 Should I buy a console if teaching this stuff?

Posted by on 12 October 2016 - 08:21 PM

Game designers tend to play many games, yes. But more critically than playing games: they study the games.

Good game designers dig into the games to figure out what is fun. They ask questions, why did the game developer put this item there? How did they control access to keep the player from getting into trouble? Why is this fun? Or possibly more importantly, why isn't that fun?

The game designers I've worked with over the years tend to love used game stores. Get a used game, study it, return it within a week and get 100% in-store credit, get another used game, return it within a week, repeat over and over. Within the week they can study all they need to understand the core mechanics and new features, and if they love the game enough the costs to keep it longer aren't a big deal.

As you are a teacher, IIRC you were teaching in a public school setting, you should probably be aware of the iconic games at a minimum.

Playing the games gives you a more complete experience, but it often isn't necessary to play the entire game if all you are attempting to study is the specific mechanics.

Youtube viewing of the iconic elements won't give you the full experience of being a player and being emotionally involved in a great story, but it can give you enough to study the mechanics for yourself. We frequently refer to youtube clips to break apart what other games do for specific situations.

As for which console, many games are cross platform; generally if it was on PS2 it was generally also on XBox. If it was on PS3 it was generally also on XBox360. Today if it is on PS4 it is also generally on XBox One. Wii and Wii U tend to have fewer cross platform games since they have a different demographic and because the hardware has different processors and different performance characteristics than the other two major consoles.

However, some of the most iconic games are single platform, and all the major systems have their own iconic characters and iconic games.

You don't need to purchase them nor do you need to play them, but for a deeper understanding you do need to study them. Fortunately used systems are relatively cheap and you can often study core mechanics over a few hours rather than the hundreds of hours many people play each game.