Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 15 Jun 2006
Offline Last Active May 23 2016 08:31 AM

#4971820 Realistic Encouragement vs Trolling Tear-down

Posted by Katie on 21 August 2012 - 07:37 AM

There's the rule of 10,000 hours as well. Some of us really are actually really good developers; but we've spent years and years working to get to this place. People who've read a book and written a ten-liner just aren't going to build stuff. Not without going through that 10,000 hour learning curve. Now, there's no reason why your dream game isn't at the end of that process for you, but it's a painful way to do things and you'll probably end up hating it long before 10k hours.

A lot of people show up with concepts for the game they want to play. But the news is that you ain't ever playing it. Even if you write it, you'll spend the rest of your time *running* it. I went to movie writing class once. It's a pain of a course to get onto -- turns out those of us on the year long writing course get priority. Week 1 is always scheduled in this huge lecture room. 50 seater room for the 20 people subscribed because people bring their friends, people show up on spec... this guy walks in carrying a HUGE folder of notes and talks for two solid hours about three-act structures, plot-point systems and so on. For those of us who are there to learn to write movies it's BRILLIANT. For the people who just want to have written a killer movie without going through the intervening hard work places... well, lets just say that weeks 2 onwards of the course are apparently habitually scheduled in much smaller rooms. I think four of us completed the course in the end (by submitting a pitch, a plot outline and at least 30 pages of a properly formed movie script).

{It was even harder for me, because I lost my temper with the text editors to hand and had to write a tool for typesetting movie scripts in C++ before doing much of the writing...}

Too many people want to have written a cool game, whereas generally successful game devs are interested in the actual writing of games process and the cool, if it happens at all, happens by accident.

#4932030 Send more data to the GPU vs more operations

Posted by Katie on 16 April 2012 - 11:52 PM

In general the memory transactions will happen in the background. They're also very fast, don't pollute the CPU cache, don't cause cacheline fighting and can happen while your 3D card is busy doing something else; as the CPU can be doing.

The CPU is pretty fast at doing tight operations loops, but there will still be tons of branches, cache misses, hyperbus communications and other assorted friction. In addition it can't parallelise the work. Mapping more of the GPU memory, doing simple writes into it and then leaving both devices to get on with more work while other (specialised and faster) parts of the computer hardware deal with the shifting around of memory is definitely the way to go on desktop systems.

If some of the data is constant or not updated often, consider using two buffers -- a frequent and an infrequently changing and use two accesses in the shaders to combine the data. This will reduce the amount of memory which needs to be moved between the devices across the memory busses[1]. This is usually less of a problem in the shaders because the shader cores will each have memory controllers (often one for each buffer), and you're still processing the vertices in linear order so you'll still get good cache read-ahead on them.

[1] An example would be a skinned model. The texture posn/colour at each vertex will typically not change, it's just the vertex posn that gets updated, so by using two buffers, the memory transmission size can easily be reduced by 2/3.

#4921063 2D OpenGL ES wrapper with emulation on Windows?

Posted by Katie on 11 March 2012 - 01:37 AM

ARM ship a GLES emulation layer which will run on NVidia or AMD cards on Windows and Linux which is free for non-commercial use; see http://www.malideveloper.com/developer-resources/tools/opengl-es-20-emulator.php

The last time I talked to the devs, they were working on a Mac version so it's on the way. It's pretty easy to use -- link against the library, run your application. Shader code should be re-written on the fly, API entry points bounce through and have the right restrictions to match the ES spec.

{Disclaimer; I worked for ARM in the same group which produces this.}

#4916748 RTS-AI built on potentialfields

Posted by Katie on 26 February 2012 - 11:24 AM

I did some work like this a while back; my environments were large and open with relatively few obstructions, so it made a reasonable amount of sense to do micro-routing like this. You're right in saying that static solutions are better for larger scale routing. It's *possible* to get the field systems to (say) find the bridge over the river, but it's not as good a solution as a better macro scale system. For example, we used potential fields to get units onto the road network, and they would then drive the road network (which is modelled as a graph) until they get close to their destination, at which point they get off the road again. Road driving uses an attractor which moved ahead of them to tow them down the road. It means that if they come across a partial blockage, they'll simply drive around it, and then regain their correct route. It actually produce very "realistic" looking movement.

We got quite good results with "formed" infantry moving through woods/obstructions etc, but back then it all had to run on the CPU and it was actually quite expensive to run. (These days it might run nicely as a GPU job). The other issue was that it meant it was difficult to predict arrival times at destinations/waypoints along the route, because the local field-movement system might add arbitrary distance to the actual movement at the macro level. Never did work out what to do about that really.

"Your unit may well halt at a distance where it can be fired upon, but not fire itself."

This problem can (sort of) be solved by using scalings on the potential attractors/repellers. Conveniently they can be hooked up to "fuzzy logic" outputs for things like "How much do I want to seek cover" vs "how much do I want to obey instructions" although one needs to be careful to order the scalings properly and that's the part which gets difficult if there are many scalings.

#4895104 Which Country Should I Move To?

Posted by Katie on 18 December 2011 - 04:21 PM

"I don't see that I am giving off such a vibe."

Yeah. Sorry. You are. Your post is all ranty and foamy.

Just as an example; "It is exactly such misunderstandings by the politicos of some very fundamental aspects of how modern monetary systems actually work"

You're blessed with knowledge that the entire political leadership of the western world has either stupidly spurned or just never bothered to learn? And the absolute assertion that MMT is a definitive description of the world's monetary system? Posted by someone on a games development site? Yep. That comes across as ever so very slightly looney.

"their emotional commitment to irrational ideology."

Good job none of that is happening round here.

#4892559 Best computer science schools in Europe?

Posted by Katie on 10 December 2011 - 11:12 AM

Actually Cambridge (and other English unis) tutition is UKP3.3k a year for all UK/EU resident students -- call it 10k for the course.


Cambridge is widely recognised as being world class. Warwick, Bristol and Southampton have good reputations with employers within the UK and Europe. Imperial, as previously mentioned, is world known.

List here; http://www.thecompleteuniversityguide.co.uk/league-tables/rankings?s=Computer%20Science

#4887734 Speedup OpenGL at some Opperations

Posted by Katie on 25 November 2011 - 04:26 PM

"Use google a hole bunch of hours to get something that dosent work is anoing."

Since that is largely what software engineering consists of these days, I'd suggest finding a new line of work then.

#4887733 Compiling Lite Versions for Android

Posted by Katie on 25 November 2011 - 04:25 PM

"Does some-one know a short-cut I can take?"




Personally, I tend to write bash/sed scripts for this sort of thing.

#4887732 Why is it that game designers should not have emotions for their ideas?

Posted by Katie on 25 November 2011 - 04:21 PM

Writers refer to this as "Be willing to kill your children."

You must be ruthless. You must be objective. You may think it's a neat idea, but *YOUR* opinion is not important. Your readers are the important ones. If it's not the very neatest idea, then it's not a neat idea at all and it must go.

Without that ruthlessness -- that willingness to kill ANY of your ideas in the service of the greater story, you will be self-indulgent and great writing is never self-indulgent.

#4884524 AOP .... who uses it?

Posted by Katie on 16 November 2011 - 04:52 AM

" logging is not an important problem to solve. It's quite irrelevant and trivial and the goals that loggers are after are not about how to log as many actions as possible with as few lines of code as possible."

Logging isn't unimportant. Logging is mindbendingly important, particularly in large service infrastructures such as the sort of place where Java gets used. Finding out where, in hundreds of supposedly co-operating components running on scores of machines in dozens of datacentres, something happened to something inside your process takes up the majority of large systems maintenance. Fixing any single problem is usually relatively trivial compared to the painful, painful weeks of trying to find out why 1 per 10,000 download activations never complete successfully because something somewhere on the network is placing a lock on something that we're not expecting.

Logging is problem that is rarely solved well and yet is VITAL to most infrastructures.

#4883517 Use a Pixel Shader or Make More Textures?

Posted by Katie on 13 November 2011 - 02:30 PM

One thing to bear in mind when making these decisions is whether your GPU has sufficient bandwidth to access the textures. Spritesheets, in particular, tend to be large and randomly accessed and this can cause texture cache thrashing. Adding mip-map levels to entire sheets can make that worse.

In some circumstances, (particularly mobile) maths operations on simpler pixel data can be cheaper than extra texture lookups because GPU <-> memory bandwidth is often constrained by power requirements (driving the offchip memory controllers at higher frequencies would use too much power) while maths operations are relatively power cheaper (because they take place entirely on-chip) and hence more available.

#4876679 Story mapping / Dialog Tree Software

Posted by Katie on 25 October 2011 - 03:44 AM

There's a relatively new one out called "Articy: Draft". They have some youtubes of demos. Looks interesting.

#4875046 Problem with skills

Posted by Katie on 21 October 2011 - 08:05 AM

Bricks aren't all the same.

Some bricks are tough bricks which you can use to make kilns and furnaces. People pay extra for high quality bricks like that.

Lower quality bricks you buy in a stack but some of them will be crumbly. The better the brickmaker, the less chance of getting crumbly bricks.

#4874990 List of medieval offices

Posted by Katie on 21 October 2011 - 03:49 AM

Might I suggest reading some history books?

"tax collector", as an example, was not really a medieval office.

Firstly very few people had noticeable monetary incomes. So there was no universal income tax. Much of the taxation arrived as duties levied on various things -- England, for example, taxed wool exports. These were usually imposed on things that were easy to find -- wool export needs a port, it's fairly easy therefore to see it happening.

Collection of the monies was delegated down through various structures to people such as bailiffs (typically non-landholding tax collectors), sheriffs (landowners who also collected taxes, and also ran local courts) and coroners (in addition to their duties investigating deaths). There was also a scheme of purchasing the rights to collect taxes. For a pre-determined price one would buy from one's Lord the right to tax others; any excess monies collected over the purchase price were your reward. Similarly some grants of land included the right/obligation to collect tax from subholders.

Very rich landowners were expected to pay an amount of money determined by the worth of their holdings. So a landholder with land worth 5000 pounds a year might be required to pay a tenth of that. Terms were somewhat flexible, and the payment might be in money or goods or personal military service or by supplying soldiers or by various other means. These taxes were granted by parliament on a case by case basis -- some years a fifteenth would suffice. In wartime a tenth. One year the King proposed an eighth and nearly provoked a revolution..

In other areas, the church might be responsible for gathering taxation at a local level (the ecclesiastical tenth) and funnelling the money to deliver both to the church structures themselves and also to the King's wardrobe.

So, "tax collector" isn't a medieval job. "steward" (working for a lord running his estates and also collecting taxes), "sheriff" or "coroner" would all be jobs which may include collecting taxes. "bailiff" isn't an office, it's a sort of collective title -- "mayors" are also sometimes included in the term but at various through medieval England it also referred to those who administered a hundred.

These sorts of things are complicated and if you want to be realistic, you shouldn't be just making them up based on a sort of SCA view of what was actually quite a long period of history.

#4872155 N64 Quality Water...

Posted by Katie on 13 October 2011 - 04:08 AM

The surface looks like it's just a triangle mesh, rendered after the scene with a surface texture and the waves are done by shifting the verticies up and down, probably in the shader. It's probably just a simple set of sine waves of different frequencies added together. It's fast and also easily reproducible for when you want to do (say) collision detection.

The interactions with the objects can be done in two ways.

Firstly, for decorative objects (say things floating on the surface of the water) they can be drawn with a shader which just computes the same sort of offset as the waves based on their position and adds that to all coordinates.

For player objects you'd probably do the position calculation on the CPU and send them prepositioned. This allows them to do things like sink into the water upon landing.

Scatter water splash particle effects around at all the interaction points based on what interaction is happening and that'll help obscure some of the polygon edge artefacts (although many are still visible in that video).

The only complicated part is going to be doing the bouncey "floating" behaviour for your player objects but it'll end up being a fairly small lump of code run a few times a frame (so efficiency won't be too much of a stress) with a few constant factors which will need tuning by hand until you get a behaviour you're happy with -- it's that that tuning process which will give your game its character and feel.