Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 12 Mar 2005
Offline Last Active Yesterday, 11:15 PM

#5241612 Questions about releasing my new MARDEK RPG on mobiles

Posted by frob on 20 July 2015 - 04:15 PM

I'm also wondering whether I should be using Flash and Adobe AIR at all. I know that the Flash browser plugin is essentially doomed, especially considering recent events, but do you think that Flash and AIR for mobile devices will last for another two or three years at least? 

It has some overhead to packages, but if you've already got it written then go for it.


The existing tools are not going to vanish, and assuming you're building a standalone app with AIR, projects you build will continue to function.  Building them as standalone apps adds around 10MB I believe, but that is easier than hoping the person has AIR installed and available.


I don't know how to implement in-app purchases or adverts

Both are things that should be designed early into the project.  When you design them late and try to shoe-horn them in, they tend to feel like money-extraction rather than natural expansions to the game.


You write that you want to do 2 free content packs and 43 paid content packs. While I think the numbers need adjustment (you want to get them hooked on the fun and demanding more, are 2 packs enough?) the task ultimately isn't that hard. You can request from the system a receipt of what they've bought or a list of entitlements (products the user is entitled to). It is common to have several unlocking systems since you likely want to be on Apple's store, Google's store, Amazon's store, and possibly more. Abstract it away inside a query function to see if a particular module is unlocked.


I'm uncertain how to go about the release.


That is a more broad business question. You likely will need some sort of announcements and advertising, especially if you don't want to be lost in the shuffle. 


Apple and Google both are growing by over 1000 app releases every day.  Without marketing you will almost certainly be lost in the crowd. Note that for big games, the marketing budget is usually larger than the development budget.

#5241605 New Game Programmer!

Posted by frob on 20 July 2015 - 03:38 PM

Also, read this, comes with a 3-line implementation you can copy/paste and a list of bias sources if you aren't careful.

#5241551 Jobs for specialists in maths/physics?

Posted by frob on 20 July 2015 - 11:08 AM

My degree is in maths, and it's a PhD degree.

That is overkill for most game development jobs.  A bachelors degree is typical, masters is uncommon but reasonable.


At various jobs we've hired PhD grads before, and they tended to be more theoretical than practical, all the ones I know of didn't last six months.  The reason why is:


What qualifies as a decent coder? I have done lots of programming, but most of it using scientific tools (Mathematica, Matlab) and not in the object oriented framework.


While you may be comfortable in Matlab, you aren't shipping stuff in matlab. 


There are some engine side tasks that occasionally require advanced math.  There are some graphics routines that occasionally require advanced math, but typically you use the more advanced methods in order to simplify a large number of smaller steps. If you can merge three or four passes through the data into a more complex single pass, you can often see large performance gains.


The majority of most game development comes in general gameplay engineering, and that is all about extremely simple, direct, iterative solutions. Usually this only requires basic statistics and algebra; event happens at a designer-adjusted Gaussian distribution, or growth rate is x% per second. 


perhaps a consultant for physics or developer for games with great weight on simulation?


Unlikely, but possible.  Most game physics is a rough approximation of real life, because real life is hard to get right. It is generally easier to make a simplified system with a small number of variables rather than actual real-world physics. A small number of tools use actual real-world physics, so you might be able to find some of those jobs, if you are also skilled at writing code in C++, the language of game engines.


is C# widely regarded as insufficient for a coding position?


C# is used in many games for game object scripting. This is where your specialized math skills are least likely to be useful. The people who write these systems do rely on some math, typically pulling heavily on linear algebra, statistics, and trig, but not so much what you describe.



Being able to do math is one piece of software development.  You must know how to encode the math in a way the computer is able to do all the work efficiently. Just because YOU know how to do it does not mean you have the skills to tell a computer how to do it efficiently.


There are some jobs like that in the industry, but they aren't common. Look for physics engine teams primarily.

#5241400 Who do I have to contact to write a book about software?

Posted by frob on 19 July 2015 - 12:26 PM

You can write the book yourself without special permissions. If you want to publish through a publisher you need to pitch it and get it accepted and go through lots of hoops.

If you are going to use screen shots and images from their software in your book, you will need to discuss with your (or your publisher's) lawyer about permissions and proper attributions. This applies to every other program and library, any images of any software, you need to make sure every image is legally cleared and properly cited.

#5241291 2G/3G latency for FPS/TPS

Posted by frob on 18 July 2015 - 05:40 PM

Thankfully most populated areas have moved on to 4G, 4G-LTE, and even 4G-LTE-Advanced networks and devices.

Yes, you will have higher latency using a cell phone network. It is still low enough latency that with a bit of creativity you can work around it.

Phones old enough to not support newer cell protocols are also old enough to be too slow to run high-speed games, so that mostly works out okay.

#5241099 Need to make app for ipad without apple products...

Posted by frob on 17 July 2015 - 01:46 PM

Apparently the boss doesn't have wifi at all and my brother said something about the boss not paying for a data plan and since he doesn't have wifi or even internet at his house the only way he can get online is at a free hotspot place.

There are a lot of warning signs there.  I'd seriously ask why you are involved in this project.


As described, I see no reason why it shouldn't be fully paid by company.


The web app, the only reason I am talking about that is because it looks to be the only way to do it and I really don't want to learn something I'm really only going to use once. To get that it would cost a grand from what I see. I don't think I'm that much of a salesman to even attempt to sell someone on that and I think you're right generally about them not willing to spend that much means their not serious though, but then it could also just be a reflection of what they think my abilities are too, which doesn't bode well...

Correct, it does not bode well.


Simple back-of-the-envelope cost estimation is in order.  It will take you how many weeks? Four? Six? Ten? Fifty two? Then how much is your time worth? For back-of-the-envelope usually that's $10k/month for professional level work for many regions of the world, especially since you're on your own for all benefits, medical costs, time off, and finding clients.


You wrote it would "cost a grand".  That might work for a side project that will take less than a week.  


This does not appear to be such a project.  I'm guessing moderate five-figure project for the simplest custom project, done at a professional quality.


unfortunately i'm not sure how well it would work out for how they talk about one of the guys they work with. So instead of trying to make an app, you'd suggest telling them to subscribe to Square?


Well, YOU can tell them what you want, because it is your life. The posts look like you are essentially volunteering your time because your brother's boss is looking for someone to do something cheap.


I would tell them (specifically, I would tell your brother through an email that he can print and give to his boss who cannot be bothered to pay for Internet) that what they are asking for does not match what they are paying. The cost of custom software is far more than most people expect.  I'd explain the reason for my costs based on the design requirements -- which would be significant -- and explain that if that doesn't work, suggest that they can go to other sites that will offshore the work to the cheapest bidder around the globe, often somebody in a very poor country who can comfortably work for the low wages they are offering.


But since it is your brother and your brother's boss, you can tell them whatever you want.


Also, I recommend you get familiar with this chart. Start in the center. This likely falls under "a company your friend works for"

#5241097 AI helicopter

Posted by frob on 17 July 2015 - 01:32 PM

My answer "yes, and more" was in response to your post:

I wanted to know will they use any Technique or Algorithms for pathfinding(such as A-star, Dijkstra's) or just a simple raycast.

Yes, many do use pathfinding.  Yes, many use ray casting. And yes, they use more than that, too.


An AI helicopter camera needs to do a lot of work. They need to move around within the world, so they need to do path finding within the world. They need to avoid obsticles. They also need to use ray casts to ensure the target and the "interesting things" are still visible. They need to predict where the player is going to move so they can avoid barriers that are not a problem right now but will be a problem in the future.


Because they need to do a lot of different things, I recommended -- and still recommend -- you look up ways to implement a follow camera. There are many different methods, each with their own pros and cons and varying results.  Far more than could easily fit in a forum post.

#5241093 Md5 Password Hasher would you use this.

Posted by frob on 17 July 2015 - 01:16 PM

Assuming you're only storing the password hash, currently you'd want a salt plus SHA2, either done yourself or using another library.


Advice to use an encrypted password is only useful if you intend to make the passwords recoverable. Depending on your risk tolerance and legal situation, recoverable passwords are usually a bad idea in most cases.  Same is true with financial information, many good payment systems will work with a recurring payment token rather than storing the actual card information (which may also violate payment card data storage standard requirements).


There is an enormous difference between making a statement "We were attacked but no passwords or customer card information was taken" versus "We were attacked and both passwords and financial information was compromised."

#5240991 AI helicopter

Posted by frob on 16 July 2015 - 11:27 PM

Yes, and more.

Search terms for your research should start with the keyword "Follow camera" or "follow cam", which is a type of camera that follows a player without usually bumping in to things.

#5240929 Limiting game updates but not framerate in old D3D game

Posted by frob on 16 July 2015 - 04:53 PM

Just spin-loop

While in the short term that feels like a good solution, the more time passes and faster machines become, the worse the solution is.


Far better to wait on the actual thing. Since in this case he cannot rely on vsync, it is probably better done through calling WaitForSingleObject() coupled with a multimedia timer.

#5240926 typeid operator

Posted by frob on 16 July 2015 - 04:50 PM

Is there any good reason to make it an integer rather than a string? Is it just for the sake of quicker lookup? (ie unordered_map rather than map)

Strings are slow. Every time you use them, you need to run string comparisons instead of a direct single-value comparison.  


It is a major speed difference. For most uses, the integer compares are practically instant, comparing a direct numeric constant in the code to what is likely a register value; other times it is a direct comparison of two register-sized values probably already in cache. But on the other side, strings are slow.  Every time you use them, you branch to a string comparison routine that probably isn't in the instruction cache, which in turn iterates over two chunks of memory where either one or both is likely not in cache. 


Strings are big, they take memory, although this is not an issue on modern platforms. On smaller devices this can be a concern.


Strings are harder to work with at development time, usually. When used by name, the integers are usually named numeric constants found in an enumeration and can be strongly typed; it is also immediately obvious to everyone when they see a magic number, and it can be called out in code reviews.  Unfortunately in many string-based engines, the strings are used as string literals in the code rather than strongly-typed constants.


Since they are usually stored as enumerated values and named constants, any typos for the integer constants are caught immediately. It is less obvious if the strings don't match the data, or if there is a typo, and this is usually not caught until runtime.  Depending on the logging and error handling, a typo or unused string can exist in code bases for many years before someone discovers the defect.  In one notable example we found in one version of The Sims, cars were supposed to have headlights at night; somebody's string change broke it and nobody noticed. It wasn't until the series was several expansion packs in before the feature that was present in design and thought to be present in game was actually usable for users, all because the string-based system was designed to silently fail for most cases.

#5240889 typeid operator

Posted by frob on 16 July 2015 - 02:08 PM

As you discovered, RTTI is not designed for serialization




It seems every game has their own unique solution to this.  My favorite solution has been a counter implemented with a tool and hard-coded in the file. 


Many games I've worked on have had tools that generate and reserve an ID.  That ID is also embedded in some data tables that are kept in source control.


The more effective ones produce a table showing the ID, a text description, the component it is associated with, and the source file that it was originally tied to.  That last one is nice for tools that automatically build the boilerplate and insert the new file at the right places in all the build scripts and project files.  Pick a few dropdowns to indicate what the object is based on and which template you need, type in a class name or whatever is associated with the ID, and the tool checks out the files, creates new files, adds them to the project, and prepares everything for submission. You build it once just to be sure it works (which it will) and submit it back so other people can create their own items.

#5240884 Getting rid of platform-specific ifdefs

Posted by frob on 16 July 2015 - 01:59 PM

How can i remove this and turn it into a more versatile code?

Any time you're dealing with multi-platform code you will need to have blocks like that.


While vstrakh's solution of having multiple files (one per platform) does simply a single file, it ends up complicating development because any changes to one file need to be replicated to all the others. Effectively you're manually doing what the macros do automatically. In such a system it is very easy to files to get out of sync. You fix an error in one file but forget to make the identical change in all platforms, or you implement a slightly different buggy behavior in one platform that should have been common to all of them.


If you are looking to make LESS VERSATILE code, if you are only targeting one platform you could remove all the code that hits other platforms.  Seems a bit of a waste, though, unless you truly know you are permanently severing ties and will never ever change platforms again.

#5240881 Broken code

Posted by frob on 16 July 2015 - 01:40 PM

Splitting this off to a new topic. Rayj00, please do not hijack other topics with your questions.

#5240594 New to programming!

Posted by frob on 15 July 2015 - 02:51 PM

As this is about game development jobs, and the difference between jobs of 'designer' and 'programmer', moving to the jobs section.


Please read the links in the FAQ, especially sections one, three, and four, as they cover your questions with more comprehensive answers.