# frob

Moderator

11092

45176 Excellent

## 9 Followers

• Rank
Moderator - Mobile & Console Development

• Website
• Interests
Art
1. ## Roguelike MMORPG - Game Design Discussion

I think you just described the MUD and MUSH world. Some have been running for decades with hundreds of players online at any time, such as this one. I've heard compelling arguments that the MMORPG games of today are little more than highly graphical MUDs.
2. ## R&D What it takes for artificially synthesized speech to be suitable for gaming?

Some games have used TTS for quite some time. It isn't fancy, but consider how Animal Crossing has done that for more than a decade. The text doesn't sound like professional voice acting, but when you've played for a while you can understand every utterance. There are many games where TTS is thematically appropriate. Games set in computerized worlds would be a great natural fit. Also less natural, but many text-based games have used it for years, particularly with vision-impaired players. So I think there is an item 0 on your list, the context of the synthesized speech.
3. ## A* pathfinding: nodes instead of grid?

Be careful with what you described. The only reason the A* optimization works is because of the geographic spatial format of the map matches the heuristic function. The heuristic provides a sort, allowing the first match to be the best match. The more the nodes drift away from the actual map distances, the more the optimization breaks down. With a regular grid where cells represent motions exactly, A* works great because the heuristic is ideal. You can always estimate the amount left to reach the target by using the map distance. With nodes representing areas, the heuristic is more difficult because it no longer perfectly represents the sorting criteria. When the heuristic breaks down so it no longer represents the approximate best remaining solution, then you need to revert back to plain old Dijkstra's shortest pairwise path algorithm.

5. ## C++ precision

Truncation like that is one way to do it, but most applications don't want that. For an example, a value of 123.000001 that has a floating point rounding error beyond the value would be truncated to 123.00. However, a value of 122.9999999 that has a rounding error below the intended value would unexpectedly go to 122.99 instead of the correct 123.00. There are several different rounding modes. The ones typically used in computers (and supported by hardware) are: Round to nearest, ties to even. This is also called "banker's rounding". Round to nearest, ties away from zero. Round up Round down Round to zero, aka truncation. This is the one you're doing. The default mode -- which is also the version humans typically expect -- is the first. The programming language provides string manipulation functions that correctly round the value. The printf family, the stream family precision functions, and Boost's string manipulation families all have the code to correctly round the result. The first two are part of the language directly, there is no extra cost to use them. The Boost version is an extremely common library I've had available in most professional projects. They are already present and included in the code. Use the tools that are available to you.
6. ## How To Convert double To float

As far as I can see, there is nothing specific on the matter. It looks like the standard defines several critical aspects, such a the numeric base (either 2 or 10) the sign/coefficient/quotient requirements, ranges, and so forth. Looks like you've got that covered. Section 5.3 covers the conversion, but doesn't provide a specific process. The conversion merely needs to happen and be properly rounded if narrower, exactly precise if wider. Nothing specific about denormalized numbers so I presume the rules are the same. I'm not exactly sure about your example values since an implementation MAY use reserved exponents used for +/- INF, SNAN/QNAN, +/- zero, and denormalized values, using the two lowest values for the markers. That's why 8-bit coefficients have a range of -126 to +127 instead of the more typical -128 to +127, 11-bit coefficients range from -1022 to +1023 instead of the more typical -1024 to +1023. Implementations are allowed to extend beyond that because the standard is careful to define the represented values rather than the encoding. In your example you give a 16-bit float with a 5 bit coefficient, but I think the representation allows for e-05 instead of e-08 since the two lowest values are reserved (excluding denormals). The 7-bit coefficient would have values -64 and -63 reserved so range from -62 to +63, meaning the lowest number would be e-19 rather than e-28 (excluding denormals). In that regard I agree with your assessments. Denormalized numbers aren't treated differently other than a special value for the coefficient. For a denormalized number I'd expect the mantissa to be extended or reduced in the same manner, rounding the mantissa if narrower, extending with zeros if wider.
7. ## Copyright on a game that contains domain public content (or any free license)

Registering your own copyright won't help with that. For that concern you need to talk with an actual lawyer, and do research on things like legal clearance, legal risk tolerance, and documentation trails that are legally acceptable. Everybody's situation is different. Laws vary by location so advice you get on the Internet probably has differences with the law in your spot on the globe. Those are why you need an actual human lawyer who understands your actual situation and your actual laws, your actual needs and concerns. Advice from strangers on the internet, even lawyers on the internet, don't know all those details without in-depth discussions.

9. ## Copyright on a game that contains domain public content (or any free license)

You talk to a lawyer because you've created a bit of a mess. In the mean time while you wait to talk to a lawyer, keep documentation of where you got every single asset. Keep documentation of the license you acquired it under, the website and URLs or people you obtained it from, the original author listed in the web site, and copies of the license. It is sadly common for people to get content under one license and then re-release it under a different license. Many photographs and designs that are licensed end up getting re-distributed where someone claims they are freely available. Having a documentation chain that shows you obtained the file from a specific source under a specific license can help you avoid costly problems later. If the file was owned by someone else and unlawfully redistributed the license trail shows you still acted in good faith, then you get to negotiate new terms with the proper owner. Be wary of sources that claim to be put into the public domain. Some "anti-copyright" statements are not legally binding. Others correctly release economic and property rights but fail to release rights like moral rights for attribution, integrity, or author's reputation, and more. While the person releasing the content is unlikely to sue, there are legal rights that are tricky to revoke. They can be an issue if someone wants to buy/license your game outright or buy your company. If you don't have documentation that you have the proper rights, you're asking for trouble if you use them. Keep them documented. As for the act of registering a copyright, that part is easy. Go to copyright.gov, fill out some forms, include the first 25 and last 25 pages (usually that means the file with main() and another random file), and pay the $35 fee. It's$55 if certain other conditions apply. Wait a few months, get a certificate. File the certificate in a drawer somewhere. Your copyright is registered. Enforcing your registered copyright is much more difficult. That requires going through the courts, which is expensive and time consuming, winning the battle or negotiating a settlement, and extracting money which often requires collections services.
10. ## Is Full Sail University a good choice for learning game development?

I think a high number of applicants points the other direction. They're applying for jobs. That could mean the people are struggling to find jobs, or are having trouble keeping their jobs. It may mean they're dissatisfied with something related to the job, such as lower wages or difficulty getting promoted. People who are comfortable in their careers (getting responsibilities and wages they prefer) tend to stay in the jobs as long as they are able.
11. ## Need Advice for Education (Programming)

If you limit yourself to learning only what the teachers present, you won't learn very much. Take the courses and learn C++ on your own while in the classes. For some classes you may implement routines both in their preferred language and again in C++. Few schools focus on C++ any more since most of the programming world has moved on. C++ is one of the better choices these days for systems-level work and most games use C++ for exactly that reason, but that doesn't mean it is the only language you should learn. Experienced programmers should be comfortable working with a long list of languages, and should learn a new one every year or two. I've recommended against hiring several programmers with 10+ years of experience but who only knew C++ and not any other language. We need people who can help into the future, not people who are exclusively stuck in the past, cannot work on the tools, or will otherwise struggle with the work. Learn the languages on your own, you'll be doing that your entire career. Focus on the algorithms and data structures, then learn whatever you can about C++ and other programming languages on your own. The algorithms and data structures will be applicable to all languages. Even when C++ and Java and C# and other languages have all fallen out of favor, the algorithms and data structures will still be applicable.
12. ## C++ c14 g++ + bionic compiler template comp error

std::vector takes two parameters, but usually the second is set to a default of std::allocator. If the compiler is looking for a second parameter and you're using the default, try: extern std::vector <std::string, std::allocator<std::string> > w_nawiasie[10]; Otherwise if you're using a custom allocator, use that instead.
13. ## C++ use class

Unexpected tokens like that often mean issues on the line before the error, an expression that wasn't finished.
14. ## White Chart in Mecanim Transition Inspector Window

I believe each white line represents the change due to each animation clip. I'm not sure how they come up with the squiggles, probably the sum of the motions. Each white line fades in/out based on the transition curve. It can be useful to visualize and avoid an abrupt transition between animations, or to identify when an animation is moving back to idle or stable state. The person editing the transition can use the visualization to align the steady portions of the animations or otherwise help provide a more continuous transition.
15. ## How many dimensions of progression can a game have?

There are quite a few RPG games out there, such as those from Bioware, that use a multiple axis system for player progression in their Star Wars, Dragon Age, Mass Effect, and other games. For example in Dragon Age, characters can become "hardened" or "softened", becoming more cruel/amoral or more kind/sympathetic based on decisions made, dialog choices increase or decrease various scales for an agreeable/disagreeable axis, a charismatic/stoic axis, and aggressive/peaceful axis, high/low approval by certain groups like the dwarf nation or approval by the royal courts, and so on. Some quests and some dialog options are related to the different values, such as options available or rare item gifts from others if you have high charisma, or the ability to bully others into compliance or giving rare items if you are aggressive or cruel. In their games there are multiple endings depending on your choices in the game. There are 8 different endings in Mass Effect 3. Dragon Age 3 has a bunch of options depending on quests and the character axis, with over 50 different clips to choose from based on the various axis, such as four storyline clips based on royal court approval, three different options depending on if one party member was hardened/softened/neutral, six different options based on if another party member made patterns of various choices during gameplay, etc. It isn't just Bioware's games. The Fallout series, Nier series, Chrono Trigger, Resident Evil, and others all provide assorted layers depending on how you play the game and decisions you make throughout. Many "visual novel" games have a wide range of emotion/attribute layers as well. These attribute layers don't change gameplay directly, but they do affect story options, affect the availability of certain quests or certain rare items, dialog options, and game endings. Many people replay the games to see different options, making characters cruel and aggressive, making them good yet harsh in applying the law, making characters neutral, or pacifists, or whatever attribute layers the game provides.