Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 03 Jul 2003
Offline Last Active Yesterday, 11:49 AM

#5301809 Why didn't somebody tell me?

Posted by on 21 July 2016 - 01:21 PM

Are you symbolically linking 'bin' to "Program Files", or were you just explaining what 'bin' is, for conformist Windows-using lemmings like myself?

It would seem more useful to create a C:\bin directory, and then symlink every executable in C:\Program Files into that directory...

Then you set PATH=C:\bin, and you are cooking with (some sort of) fire

#5300200 When you realize how dumb a bug is...

Posted by on 11 July 2016 - 09:41 AM

Why would you leave your PC on for weeks continously anyway? ^^

I restart mine maybe once every couple of months (i.e. when an update forces me to restart). Otherwise it is just placed in sleep mode.

#5297610 Is there any reason to prefer procedural programming over OOP

Posted by on 22 June 2016 - 12:18 PM

And let's be very clear that 'implementation inheritance' (the 'extends' keyword in Java) is a very different beast than 'interface inheritance' (the 'implements' keyword in Java), with separate advantages and pitfalls.

In particular, most folks you will meet who are very anti-OOP are talking about implementation inheritance, and have no particular problem with interface inheritance...

#5297136 Planetary cloud rendering

Posted by on 18 June 2016 - 02:04 PM

BTW: I have been looking at volumetric clouds, but it looks like I wouldn't be able to use it planet-wide.....

You typically want to combine at least two methods. Flat textured cloud maps at extreme distances (standing on ground looking up, looking down from orbit), with volumetric clouds for closeups (i.e. flying through the cloud layer). For performance and visual fidelity, you might also need an in-between level of detail, using billboarded impostors of volumetric clouds.

#5297098 Why didn't somebody tell me?

Posted by on 17 June 2016 - 11:35 PM

C++ doesn't allow function-local classes with static members or template member functions.

I'm a little worried that anyone ever tried to do that...

#5296825 Dependency Management in a Cross Platform, Multi Developer Environment

Posted by on 16 June 2016 - 09:10 AM

As for the submodule approach, how do you handle dependencies that don't have their own CMakeLists.txt (to pick a well-known example, Lua), do you find a fork with a CMakeLists.txt (e.g. LuaDist/lua) or is there a way I can get CMake to figure out how to use their makefile (even as I'm typing this it sounds insane)?

For the most part, I just write the CMake file for them. It's rarely more than a handful of lines for something tiny like Lua, and most larger libraries seem to use CMake already.

EDIT: Further to that, how do you handle all of the set calls that need to be made to turn off features in your dependencies builds (e.g. building tests), doing it in the CMakeLists.txt is fine, but messy, is that just something you have to live with doing it this way?

The option() command is your friend:
option(BUILD_EXAMPLES off)
option(BUILD_CPU_DEMOS off)
option(BUILD_BULLET3 off)
option(BUILD_EXTRAS off)
option(BUILD_UNIT_TESTS off)


option(GLFW_BUILD_TESTS off)
option(GLFW_BUILD_DOCS off)
option(GLFW_INSTALL off)




#5296756 Dependency Management in a Cross Platform, Multi Developer Environment

Posted by on 15 June 2016 - 07:34 PM

These days I use the git submodule approach, with CMake wired up to build all the submodules too. It's a bit of a pain to setup, but it honestly works extremely well, provided you don't have source code licensing issues, or dependencies that need to be distributed as binaries...

On previous projects I have maintained pre-compiled libraries for each platform on a central server, and have each developer rsync them to their devbox on a nightly basis. Its not pretty, but it is very flexible and easy.

Ultimately, I feel like the answer may just be to use a better build system with dependency management built in. Java has Gradle, Rust has Cargo... for some reason C++ still limps along without anything.

#5296033 are vidgames disrespectful of player's time vs tabletop RPG's?

Posted by on 10 June 2016 - 06:14 PM

you're mining the dungeon for loot, and you've reached max encumbrance - time to go to the store and sell it all off.

I feel like this issue is just as easily solved by getting rid of encumbrance as a game mechanic.

One of the most frustrating elements of playing Diablo is town-portaling back every 10 minutes to sell off your loot. Or sorting your inventory at similar intervals to manually sift out the junk. Torchlight worked on this by introducing a pet you could send back to sell your stuff, but the travel time took longer the deeper you journeyed, to the point where you could refill your inventory before the pet returned.

Either automatically convert all items below my current level into gold, or provide me with a portable treasure smelter / pet furnace...

#5293386 how much PC do you need to build a given game?

Posted by on 25 May 2016 - 10:00 AM

but it seems there are more fundamental questions to be resolved first. such as does a given title even require an "average PC".  not all games are skyrim.

Why does it really matter, so long as your development PC is sufficient for the specific game *you* are building?

Last I checked, the actual "average PC" has a dual core CPU, 2 GB of RAM, and an Intel Integrated GPU. Steam survey represents a set of people who regularly play games on Steam, which pretty much guarantees a skewed picture of the world (most gamers, by the numbers, play browser and mobile games exclusively).

#5292831 how much PC do you need to build a given game?

Posted by on 22 May 2016 - 01:32 AM

one really needs the survey results from 2 to 4 years from now, not from right now

I'm not really sure that the average moves that much in 2-4 years. For GPUs the high end moves quite a bit in that time, but I think you'll find the low end doesn't move much if at all, and the midrange also moves pretty slowly.

CPUs barely move at all these days, my current CPU is a quad-core i5 from 4 years ago, and it's still running today's games on ultra settings. Storage has only changed in price/quantity since SSDs became mainstream. RAM gets faster and bigger over time, but realistically enthusiasts have had 8-16GB of whatever RAM their motherboard supports for at least the last 6 years.

#5292728 how much PC do you need to build a given game?

Posted by on 21 May 2016 - 12:04 AM

Recommended specs are what happen at the end of the dev cycle, post-optimization work. During dev, a game requires much more power because it hasn't been optimized yet, and you may have any number of quick and dirty hacks to get things done. There are also productivity concerns - our game doesn't use a hexcore i7 effectively at all, but the build sure as hell does.

QFE. When it comes to compiling giant C++ codebases, you'll want as many cores as money can buy, and an SSD or two into the bargain.

GPU tends to be less of an issue, so long as it's of the generation you plan to support, and somewhere in the mid-to-high end of things.

#5292477 How can I install a module in Python (Read More)

Posted by on 19 May 2016 - 07:44 AM

If you grabbed the source code, just open it up, and run python setup.py install from the directory.

If you grabbed an egg instead, it needs to go into the site-packages directory under your python installation.

#5291313 Ways of Buffering Data to be Rendered?

Posted by on 12 May 2016 - 12:26 PM

the other option is some sort of intermediate buffer, where update places a copy of its data when it changes, and render grabs the current data when it renders. but then update must lock and unlock the buffer, as must render. but this does mean update wont stall while waiting for render to copy its data. of course you could still gets stalls if update was ready to write to the buffer, but render was still reading

You can always double or triple-buffer your data to get out of all these issues, at the expense of additional memory.

#5291300 Are there any services for reducing network delay/latency?

Posted by on 12 May 2016 - 10:34 AM

Also, AWS is a virtualization based hosting provider, which does not guarantee any particular scheduling latency. Real time applications may find that they suddenly see unexplainable jitter on the server, which would be caused by "noisy neighbors" or the virtualization platform itself.

To some extent you can buy your way out of this issue by forking over for dedicated hosts. Doesn't get the virtualisation overhead out of the way, but you can guarantee dedicated access to hardware resources.

#5291205 Are there any services for reducing network delay/latency?

Posted by on 11 May 2016 - 03:08 PM

But, if you have a Netflix-like budget, yes, there are things you can do.

Well, one thing, really.

Only effective way to reduce latency between server and client is to move the server closer to the client. Services like OnLive/Gaikai with strong latency requirements mostly solve this by placing datacenters near each major population center they served. Blizzard splits all their online games into geographical regions for the same reason, placing a datacenter in each of US East, US West, Europe, and Asia (possibly others).

Of course, most small companies don't have the resources to run their own datacentre, let alone many datacentres. In which case your best option is likely to lease servers from a company that operates such datacentres for you. For example, here at AWS, we offer a pretty good spread of datacentres, with more coming in the near future.