Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 27 Aug 2002
Offline Last Active Sep 24 2016 03:22 AM

#5297715 Projective Texturing?

Posted by on 23 June 2016 - 10:50 AM

You can bet whatever you hold most dear the bug or its solution isn't just in setting a sampler state.


Hint: once you activate your projective shader or pipe state everything you draw will get the texture on it.

#5293547 does video memory cache effect efficiency

Posted by on 26 May 2016 - 05:06 AM

If the GPU needs to randomly access it's memory, there will be hell to pay as it unleashes chaos on the pointer, forcing some sort of sanity checking before it draws.

Nope. The reason is simply scattered reads: it's hitting a memory address most likely not in cache, perhaps it will also trigger bank/channel conflicts. In full sequential the successive memory to access is hopefully close, more likely to be in cache and more likely to be read 'packed' as the various processors fetch their data.

The sanity checking is in hardware it does not have 'I am accessing something guaranteed valid' operations AFAIK.

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

Posted by on 26 May 2016 - 03:59 AM

Athlon II X3 450.


Reality check: Atoms, Celerons and Pentiums do exist, they still get manufactured and they're still being sold. When you're talking about customers you should be talking about those.

Rant: last time I worked on my game it was about 20% of a single 800Mhz AMD K10 core.

#5292426 My game ends up being boring

Posted by on 19 May 2016 - 02:06 AM

I was going to try it but I was put off by the file permissions.


I would say the graphics is not at all 'sweet'. By the screenshots it just the opposite. You have a sort-of-realistic car moving on a totally abstracted landscape. If that's not enough, the context does not look like a road and I bet the physics don't either.


26MiBs? What for?

#5292425 Almost finished game - needs fresh eyes

Posted by on 19 May 2016 - 01:51 AM

Very nice. I somehow got stuck in LVL3 after the shields activated, it kept me asking to charge them. I charged the cannon instead. Run out of energy yet the game won't get forward.


I think the mechanics are solid but I would prefer everything to be slightly faster and levels to be much shorter. I will try again another time and see if I get the same vibe.

#5287952 KitKat 4.4 writing to external SD etc.

Posted by on 21 April 2016 - 06:50 AM

I'm pretty sure it does. WRITE_EXTERNAL_STORAGE is marked as API level 4. I have myself never used nor plan to use external storage but I'm interested in knowing more. What have you tried?

#5286261 programming language for android.....

Posted by on 11 April 2016 - 03:24 AM

Since you are a beginner I'll cut it short: there's nothing else than Java for you.

Ok, there's C# with Xamarin and now it's MS I bet it'll be very soon far, far better than Java. The Xamarin API looks to be intersecting with the Java API at large so I would consider those fairly equivalent. The Java framework (or the Xamarin, likely) have a few quirks such as having your app window getting killed implying you basically cannot do anything taking for granted it'll complete. Those issues AFAIK are common to Java and Xamarin (which binds to the same framework basically) so get in touch with them ASAP.


Those issues are not there for native NDK. NDK is still a work in progress and even if you do it you need workflow to support it (build all your libs for all archs etc). I have used C++ for more than a decade now but I don't think it is productive for me to go NDK yet.


Look around at where you can move and figure out which one is more requested. For me, that was Java.

#5281893 Why is the Fixed Function Pipeline performing better than using Vertex Buffer...

Posted by on 18 March 2016 - 11:54 AM

No. To perform benchmarks, you have to perform realistic benchmarks. Drivers perform workload analysis and switch behavior according to detected patterns. Your workload does not even begin being a realistic load and most of your components will likely be sleeping. In those conditions simple delays in buffer transfers will change your perf in a way you have no control about.

#5281176 How to give Sense of Progression in a procedural generated game?

Posted by on 14 March 2016 - 04:35 AM

Theme is very relevant here.

Some time ago I played inside a star-filled sky. Being procedurally generated it has infinite assets, but still finite content.

In that game, the abilities were quite well designed. Enemies would shoot bullets and the higher the level the higher powerups they got. Longer range, more bullet bounces, more steering capabilities for homing. I'm pretty sure you can do the same for magic spells.


The levels are bigger and bigger the more it goes forward. Note the language this game uses is extremely compact.

#5279801 Creating a Text Adventure Game

Posted by on 06 March 2016 - 05:31 AM

Since you can walk a circle (where you have more south than north) your N/S count can be disturbed.
Not sure how this would affect the gameplay in any way. Walking a graph is walking a graph.

To maintain your mental sanity, consider data-driven approaches. JSON in particular would allow you to kick various 'hierarchical' layouts with ease so you can keep your complexity inside a single city node.

#5278264 Serialization and pointers

Posted by on 26 February 2016 - 05:34 AM

Back when I used to deal with this issue, I had everything transforming pointers to pool-slot pairs. The observations were:

  • World data is not generically serialized. It is very well understood by the world structure or by an even higher level manager, therefore I can resolve all possible uses in advance. This mostly applies to native.
  • Scripted data is not a problem: save/deserialize the whole execution environment.

In general, I found that generic serialization frameworks are just overkill. I'm currently playing with google protobuffers and I like the simplicity.

(De)serializing generic structures... way too many issues and every time I hear reflection I think something has gone wrong at a certain point in time. You only need to serialize what you need to have working.

In particular, you don't serialize raw pointers, especially without figuring out the ownership semantics but if it's not owned then it's owned by someone else... and thus you can reduce it to a resource index.

#5272974 Best way to check collisions with multiple objects?

Posted by on 28 January 2016 - 05:46 AM

Multiple questions here, albeit related. I would suggest to keep your collision checking independent from rendering - who says entities outside screen don't need collisions? They want some collisions as well!


Try something more generic. Tiles on a grid lead themselves well to some hierarchical system (see: QuadTree). You might also want to check out some other library doing the work for you. There are a few and they'll mangle thousands of static objects with relative ease.

#5271988 C++ exceptions

Posted by on 20 January 2016 - 06:02 AM

I think I missed the parts where error handling was considering as the problem in itself. Fedor Pikus at Mentor Graphics is apparently pro-exceptions, I honestly agree. I'm not sure how having my code interleaved with if(error) gives me better control.

#5270714 Considering an RPC or message oriented server architecture, confused

Posted by on 12 January 2016 - 10:50 AM

Hello network experts! I somehow managed to get an idea for a promising application and I'm slowly executing it. This time networking is required and since I am moving to a whole different platform (Android) I decided to take a few days to figure out something which is state of the art. In theory. In practice I'm fine with something industry standard at least.
While looking for serialization solutions I couldn't avoid stumbling on google protocol buffers. I'm 100% on them.
When it comes to service definition however I'm a bit more confused.
My system is very easygoing. It models a fully sequential process so basically I have a list of peers connected to a server and the server decides who gets to act when. The active device gets its chance at modifying the shared data and then signals itself inactive (the server can also timeout the user). So it's all about manipulating this shared state, no surprises.
The server 'owns' the data in the sense it initializes gathering of the clients and keeps persistent data on it but in practice the clients are allowed to manipulate the data and they have power even on other people's data within the limits of the protocol.
In my head I modeled it as message passing / events: when you get a Active(ID) and ID == yours it's your turn to do stuff. Now you can send Shuffle or ChangeState messages. Most of those messages are not confirmed. I just expect the server to push a different, updated state.
This is where the thing starts to be odd. Of course I wanted to streamline even more by using protobuf service definitions and this is where stuff starts to go awry. Sure, there's Empty but I think the underlying problem would still hold.
Most of the examples I've seen look like this:

service EasyGoing {
    rpc JustCallMe(SomeRequest) returns (SomeReply);
I get the idea that most RPC calls are about getting stuff back and not really about manipulations 'returning' void.
Plus, the client has it easy but the server also needs to call stuff on the client. Granted, I could have a ClientService I'm considering the thing and I would rather do full message passing at that point...
Furthermore services can stream back results so for the case of my Active message/event I could do something like
service CentralArbitrator {
    rpc SendMeActiveEvents(Empty) returns (stream ActiveMessage);
I suspect I haven't fully grasped what RPC is. I always assumed it was just a layout on top of networking to have a somewhat unified interface (talking simple blocking stuff here) but I have got the vibe we're talking mostly about get-resources somehow, like most of the requests to be stateless, with a heavy client-server architecture.
By using something like the above, I would have each client register to the various events. I could still get the 'RPC' sticker (evrybody luvs biz talk) but I have the impression this isn't what an RPC-oriented system is supposed to do. Would that make sense to you?
I feel like I'm missing something fundamental about the theory.
I think I can put it short as follows:
What would you suggest to consider when evaluating an RPC-oriented architecture vs an explicit message passing one?

#5269590 Why do most RPG games uses range values for attack/defence?

Posted by on 06 January 2016 - 04:54 AM

The reason is simple: they model good strikes and 'lucky' hits. Also see: critical hits.

If you have 1d6 damage and roll 1, your character just scratched the enemy. With 6, they have hurt them considerably. At critical the whole blade has gone in.

In my experience the incidence of variable damages becomes secondary at a certain point, it's mostly relevant at low levels.