Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 12 Mar 2005
Online Last Active Today, 09:59 AM

#5254920 Unpredictable, ubiquitously rng seed

Posted by frob on 30 September 2015 - 09:10 PM

There are several web sites and companies that do dice rolls online, then email or otherwise give the results to everyone.

You could use that for your seed. Whatever the daily third-party dice roll email says to use, you use. Nobody can predict what it will be that day, although they could peek ahead once the roll is known.

#5254877 How do you plan your project?

Posted by frob on 30 September 2015 - 03:07 PM




Spreadsheets to help prioritize, move rows up and down.


Spreadsheets with dates and deadlines and future plans.


Spreadsheets with dates and completed milestones and past events.


A big list of features and goals.  Everything above the black line is finished.  Everything below the red line is not yet committed.  Everything between the black and red line is currently being worked on.

#5254873 An Easier Marketing Target? (Web Games)

Posted by frob on 30 September 2015 - 02:59 PM

1. Would deploying a web-game ... be an easier target for plays and revenue, given my poor marketing skills?
No.  Unless you are working through an established, popular web site you are likely to see roughly zero visits, except from bots.  
If you are working through an established, popular web site you are still unlikely to see anything unless you are one of the handful of major titles they choose to push ... or unless you pay a lot of money for marketing.
2. How do sites like ... do they help generate plays and revenue?
They put your game in a pool along with tens of thousands of others, and then a small number get some interest by companies occasionally.  There's a roughly 99.9% chance yours will stagnate.  If you are "lucky" someone will contact you asking to do work for a few cents per hour.
3. What are techniques used to market web games?
Marketing is a huge topic. Think back to the games you have actually heard about, then think about where you heard about them.  
For major games, the marketing budget often matches the development cost.  If you spend $30M developing a game, you spend another $30M marketing the game.
4. Any other advice for a game programming wannabe sort of stuck in a rural area?
Move.  Really.
If you cannot get a job in your chosen field, get a job in a related field. 

#5254722 Need help with pathfinding C#

Posted by frob on 29 September 2015 - 09:58 PM

Generally the navigation mesh (3D) or navigation grid (2D) is created along with the art. 


Often it will encode additional information, such as the type of motion to use on the area (walk, swim, climb, crawl, slippery, etc) and sometimes different areas can be traversed at different times (can swim after getting flippers, can walk on quicksand after getting special boots, etc).


WozNZ basically covered the rest.

#5254628 Should i run the client logic in separated thread or in update () ?

Posted by frob on 29 September 2015 - 11:16 AM

It does not necessarily need to be in either a separate thread or in any specific function.  Those are implementation details.


What matters is that you regularly check for and process incoming messages.  The frequency of the task depends on the game.




If your implementation needs a separate thread for your program to check it regularly, then do what you need.


If your implementation needs it to be in a particular function to check it regularly, then do what you need.


If your game's implementation requires something else so you can check for network traffic regularly, then do what you need.

#5254471 Need help for game. C#

Posted by frob on 28 September 2015 - 02:15 PM

Using the C# language and the .NET Framework you are still leveraging tools made by others.  You're just leveraging different tools.


Professional studios rely on all kinds of libraries.  There is generally no need to rewrite everything yourself.  In the 1980s you needed to write your own graphics drivers for every card, your own audio systems that wrote directly to the memory locations and IO ports of the different audio cards.  Over time more middleware came out where you could hit a generic driver for many different audio cards, or VESA drivers for a bunch of video cards. These days we hit systems like OpenGL or DirectX for graphics, we use systems like WWise or FMod for audio. And that can mean relying on major engines like Unity or Unreal as well.


There is nothing inherently wrong with doing it all yourself.  You could even write your game entirely in machine code if you felt the urge.  But doing so is directly at odds with productivity.


You can take advantage of systems that would take thousands of hours, tens of thousands of hours, or even millions of hours for you to develop on your own.  And that is exactly why most groups do it.

#5254468 Referencing other media in video games...law issues?

Posted by frob on 28 September 2015 - 02:09 PM

Why don't you guys think this qualifies as de minimis usage fair use?

It doesn't qualify because it isn't the least amount possible. 


In this case, the least amount possible is ZERO.  There is no need for the IP to be in there at all.  


The element is thrown in gratuitously. As an 'Easter Egg' it is content that is not essential to the game, it just happens to be an inside joke to the people who happen to find it.



Now if it were a proper parody that would likely be covered. But that would require using the characters to make a strong narrative about Adventure Time, maybe pointing out some absurd element of the show, or doing some other commentary.  But even then it must be kept to a reasonably low level of use, only using what they need for their social commentary.


Alternatively, if part of the game included making a list of top characters then de minimis use might mean only their names and not their picture, or using only their picture for nominative uses. 


But what was described is not either of those.  It was throwing in an element from another product not because it is essential for commentary, not because it is a parody of Adventure Time, but because they hope using the other company's IP will adds value to their own.  And that requires licensing.

#5254467 Managing different screen resolutions and Mipmaps

Posted by frob on 28 September 2015 - 02:00 PM

Am i right or do i miss something with Mipmaps?

You missed something.  That isn't what they are for.


3D graphics wrap the texture around the model. When the 3D object is displayed, the mipmap image most closely resembling the right distance is used.  That way a closeup view may have a detailed texture, but a far away view will show a smooth intermediate value rather than sparkling between the lightest and darkest values in the details. For example, th closeup value may be a black and white checkerboard. Without a mipmap, when rendered at a distance the graphics card picks a spot in the texture; it may pick solid black one frame, then pick solid white when the object moves slightly. Since a checkerboard pattern at a distance looks like a solid gray, the mipmap value for a distance will be gray rather than checkerboard, and the graphics card will sample a spot in the gray texture, which looks correct without flickering to black/white.


For UI elements you are generally best creating several sets of 2D images. If you cannot find an exact match, take the next biggest image and scale it down.

#5254465 The Simpsons Hit & Run on iOS

Posted by frob on 28 September 2015 - 01:54 PM

Moving to Business forum.



Making ANY games based on The Simpsons is going to require proper licensing.  Without it, sooner or later (probably sooner) you'll end up with some legal nastygrams arriving at your door.


Make your own game. 

#5254462 What exactly is API-First?

Posted by frob on 28 September 2015 - 01:51 PM

"API First" is similar to "Big Design Up Front".  You specify the methods you think you are going to need.  Or in this case, they're talking about web calls rather than method calls, but those are functionally equivalent.


If you've already got systems working, it is called "Standardization" instead.




TL;DR: Clickbait headline on slow news day.

#5254414 Referencing other media in video games...law issues?

Posted by frob on 28 September 2015 - 11:28 AM

Do I need licensing to use their character? 



There are very few exceptions to copyright and trademark law.  Many game developers seem to think that the parody exception means any attempt at humor. It does not. Parody is an extremely narrow defense and it does not apply to 'Easter Egg' type content.

#5254410 How do I know what Android version to target?

Posted by frob on 28 September 2015 - 11:19 AM

Useful numbers.


Gingerbread (2.3.x) was the first major wave of devices. Currently it has about 4% install base. Most of these are devices are three years old or older.  In normal real life terms that isn't very long, but the mobile space has been rapidly changing.


Honeycomb (3.x) was the first major round of Android's Tablet-specific system. Most tablet vendors updated to Ice Cream Sandwich (4.0) so this doesn't show up on the stats.


Ice Cream Sandwich (4.0.x) has about 4% install base. It includes many early tablets, and phones made from 2011-2012.


Jelly Bean has three variants, (4.1.x, 4.2.x, 4.3) starting with phones and tablets from early 2012.  With 12% market share itself, API level 16 targets about 92% of all Android devices in use. This is what many businesses choose for their target today.


You might also select an older (lower number) API version if you want to target older devices, or chose a newer API (higher number) depending on your personal needs and beliefs. If you only old an old Gingerbread phone, target that.  If you only own a new Lollipop device and don't care to target older devices, or if you want to exploit some new feature, target that instead.

#5254403 Getting started with game programming!

Posted by frob on 28 September 2015 - 10:55 AM

flash games ... learning C++ ...  unity, adobe/macromedia flash, and java, but I just can’t get a definite answer.


If I just wanted to put up the simplest game, what programs would I need to do it? I can learn the languages as I go, but I don’t know what to use to actually write the code it. At this point, ANY help would be appreciated.


You can use whatever you want. Those who play the games don't usually care about how they were made.


About the tools you mention:


  • Flash. This was once a popular tool for making games on the Web.  It has fallen out of favor for many reasons.  It isn't dead yet, and it likely won't be completely dead for another decade or so.  But if you are looking to the future, this probably isn't it.
  • C++. Major studios use C++ for console and PC games because the language has many strengths for systems-level work. For major games, usually the core of the game engine is implemented in C++, other languages are used for game scripting, controlling game objects, and simulation work.  While the language is quite powerful, it is a terrible choice for a beginner. C++ assumes the programmer always knows what they are doing, and that the programmer is always right; beginners rarely know what they are doing, and are very often wrong about their implementations. When you do eventually decide to learn C++ you will need to know that the language does not provide direct support for most game-related functionality. Graphics, audio, networking, input devices, and high performance disk operations go through libraries that interface with C++.
  • Java. Java is the officially preferred language for Android devices. It also runs okay on desktop computers, can be fairly portable, and has built in graphics, audio, networking, and other systems. Unfortunately for beginners the design of the language is focused more on small business applications, transactions, and tiny chunks of processing work, so it can be difficult to get high performance. For hobby games and personal learning it is great. It is a fine choice for a beginning language.
  • HTML5 + Javascript (not mentioned in your post). Javascript -- which really isn't related to Java in any way except for the first four letters of its name -- is the current popular language of the Internet. You can do quite a lot with these two combined, but because every browser has their own implementation details and quirks, trying to get a program to run here is often a matter of building for one browser, then fixing the things that are broken in the second browser, then fixing what you broke in the first browser, then fixing it for a third browser and double-checking the first two, then adding another browser, and another.   Every programmer should eventually pick these languages up eventually because they are ubiquitous. It works as a first language, but beware that learning can be quite painful.
  • C# (not mentioned in your post). Works good in Windows with Microsoft's implementation, and with mono it works on most other systems, so it is quite portable. I love this language for quick prototypes and testing out ideas. It has some of the same problems Java has with larger systems and the language's design choices not quite matching what games need, but still a good choice for small hobby projects and personal learning. I recommend it as a first choice.
  • Python (not mentioned in your post). Another good learning language, tools like PyGame can help you build games rapidly.  Inside the professional world python is frequently used for quick scripts and automation tools. Some people recommend it as a first choice, I think it is a good early choice for a second or third language if not your first.


  • Unity.  This isn't a language.  Unity is a game engine where you can write your own scripts that get compiled and run by the engine.  Unity supports three different languages for development: C#, a variant of Javascript, and a variant of Python. Most people who use Unity these days tend to use C#.  Over the past few years they have added 2D support, so you can build 2D and 3D games relatively easy. (They are still a lot of work, easy is relative.) If you want to make games without years of experience, this is a great tool. Many people have built professional quality games with the tool with just a few weeks of effort. It also targets a wide range of systems, including PC, Mac, Linux, and phones/tablets.  Free for most hobby games.
  • Unreal Engine (not mentioned in your post). Another popular engine used for many commercial games. It primarily uses C++ for scripts you write, and it also has another system called Blueprints. You can do quite a lot with the built-in functionality, and is often compared against Unity. Both are very powerful, capable engines that are used in major games. Unreal has a longer history of the two. Also free for most hobby games.
  • GameMaker Studio (not mentioned in your post). Another popular game engine, it uses its own language. It can help you build 2D games quickly.
  • Game Salad (not mentioned in your post). Another popular game engine, using its own language. It can also help with 2D games.


There is no wrong answer, except not to do anything.  Pick something.  My current recommendation (that changes every few years) is to learn C# as a language and learn Unity as the game engine. Both have strong community support and are widely used, both have shallow learning curves.

#5254399 Tool to measure memory fragmentation

Posted by frob on 28 September 2015 - 10:23 AM

On a PC or other modern workstation that uses virtual memory, those holes don't really mean much. They are only logical holes since the OS will page out lesser-used blocks of memory and page in blocks when needed.


If you start to come close to exhausting your memory space (e.g. 2GB or 3GB on a 32-bit program) and need another large allocation then those are important, but for most PC programmers it hasn't been an issue for two decades.


If you're on a console or embedded system, or a system that does not use virtual memory, then you will likely be using your own custom allocator. Inside your custom allocator you can build statistics on memory fragments.


If you're on a system where it is an actual potential problem, you'll need a custom allocator. Pull from one side for long-term allocations and operate on a stack-based system; allocate on entering that level of the stack, release on exiting that level of the stack, and make sure every system operates on a push/pop design. Short term allocations pull from the opposite side of memory and have strict rules about when you can and cannot allocate. Google can find lots of examples of the rules and requirements for such systems since it needs to match your system's design.

#5254302 Game Development as a Career

Posted by frob on 27 September 2015 - 09:14 PM

but when my professor told me that this isn't the place for game programming, along with knowing the learning game programming and arts is hard and time consuming, discouraged me from wanting to continue.


He is partially right.  No school will bestow upon you what you need for game programming, not even game-centered schools.


Schools are an environment to help you learn. Instructors guide through topics you may not normally know to cover, and topics you may not want but still need to know. They are guides to help you learn, and hopefully they can offer insights and direction that you wouldn't easily find on your own, but still it is up to you.


Games are software. Courses on software development are useful. You must learn how to develop software if you want to develop games.  Any tool or technology you learn about in a computer science program is going to have uses in game development.  You probably won't use everything on every job, a gameplay engineer is not going to use much of their database schooling, and a back-end game server engineer uses different knowledge, a UI engineer uses different knowledge, a developer working closely with designers is going to use different knowledge, but all the knowledge is useful to people in the industry.


Exactly what you learn and accomplish is entirely up to you.  


If you want to make games, doing it during college is a great time to build a portfolio of small stuff because you are in a safe environment, have tools and resources at your fingertips, have professors and peers to help answer questions, and have time that becomes less and less available as the years roll by.