Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 10 Nov 2006
Offline Last Active Today, 03:04 AM

#5240462 Best engine for cinematics?

Posted by Ashaman73 on 15 July 2015 - 05:52 AM

Well, a game engine is tailored for real-time rendering. Using it for cinematics and expecting the same quality like a offline renderer is problematic. All what you have mentioned is most likely true for all the other game engines around.


Or would it be easier to extend Unreal?

You will have some hard time to extend features like translucent material etc, other features will be more easily added. A game engine has still a long way to go to compete with real raytracers.


But my real question is: why do you want to use a game engine instead of an offline renderer ?

#5240406 Mobile game theme.

Posted by Ashaman73 on 14 July 2015 - 10:42 PM

Your game sounds like a mix of Fallout Shelter and Clash of Clans, two games in one, you like challenges wink.png


I want to keep it small and will be my first MMO

This is a paradox wink.png


I am leaning towards zombies....it will be the simplest

Yes, this is true and I would follow this way.


will be a wait or pay game

Lot of challenges here, good luck wink.png

#5240224 [Cooperative Pathfinding] Agents get stuck at choke point

Posted by Ashaman73 on 14 July 2015 - 06:47 AM

Pathfinding will not solve this. You can use some kind of steering behavior, e.g. queuing and avoidance. If you don't have free moving agents, agents which move only along a riggid grid, you could think about swapping. That is, two agents are able to swap places to solve a locking situation.


I had a similar issue in my game (narrow tunnels and many agents running around). I solved it by disabling inter-agent collision detection and adding steering behavior. So, if everything runs fine, they do not overlap. But in some disadvantageous cases they will start to overlay, but there will not  be a locking situation.

#5240206 Blending one animation to another

Posted by Ashaman73 on 14 July 2015 - 02:41 AM

much the same as the way an individual position is worked out by interpolating between key frames. Nothing more to it than that.

This. It is much like bi-linear interpolation.

Simple example:

Animation A is given bei keyframes A1,....An
Animation B is given bei keyframes B1,....Bm

// 1. calculate the two keyframes you need to interpolate each animation individually
A_key_frame_0 = Ai
A_key_frame_1 = Ai+1
B_key_frame_0 = Bj
B_key_frame_1 = Bj+1

// 2. Calculate the alpha value depending on time for the interpolation
A_alpha = ... 0..1 
B_alpha = ... 0..1

// 3. Calculate the finale animation 
A_ani = interpolate(A_key_frame_0,A_key_frame_1,A_alpha)
B_ani = interpolate(B_key_frame_0,B_key_frame_1,B_alpha)

// 4. Now overlap both animation by interpolation
Overlapping_alpha = 0..1
Overlapped_ani = interpolate(A_ani,B_ani,Overlapping_alpha)

// 5. everything have been done in local space
.. transform to world space (consider parents and binding matrix )

The "real magic" only occurs in 4.

#5240044 2D game character

Posted by Ashaman73 on 13 July 2015 - 04:29 AM

It is hard to rate your character due to its abstract, highly stylized nature. In the right context and environment it would suit perfectly, so without knowing the context it is really hard for me to rate it.

#5240012 A Pointer to member functions and boost::bind

Posted by Ashaman73 on 12 July 2015 - 11:05 PM

The most common way to create callback functions are static functions. If you want to call a member function, you need to call it on the according object, that is, you can't simple refer a non-static member function as callback. You can read it up here.


This is often only useful in really generic event system (e.g. a gui system where you want to define multiple events of the same type in the same class). An alternativ is to use an interface with some public methods instead and let the target object inherit from this interface. Or functors/lambda.

#5239434 Any Ideas?

Posted by Ashaman73 on 10 July 2015 - 12:54 AM

colby@monkeybuckets ~/attempt/core/src/com/evergeen/attempt $ sudo javac -cp ".:kryonet-2.21-all.jar" GameServer.java PosPack.java ServerPlayer.java
colby@monkeybuckets ~/attempt/core/src/com/evergeen/attempt $ sudo java -cp ".:kryonet-2.21-all.jar" GameServer

You  should not compile the code in the individual directories (com/evergeen/attempt), you would compile outside of the package (which is com.evergeen.attempt), test something like this

colby@monkeybuckets ~/attempt/core/src $ sudo javac -cp ".:kryonet-2.21-all.jar" ./com/evergeen/attempt/GameServer.java ./com/evergeen/attempt/PosPack.java ./com/evergeen/attempt/ServerPlayer.java
colby@monkeybuckets ~/attempt/core/src $ sudo java -cp ".:kryonet-2.21-all.jar" com.evergeen.attempt.GameServer

Ensure to place the kryonet jar accordingly. For more information look at the java doc (e.g. how to compile whole code branches etc.). Hereis an example to compile some test program.

#5239433 Properly managing abilities/spells

Posted by Ashaman73 on 10 July 2015 - 12:46 AM

Another way to do it would be to use a super class that takes as input the ability to cast, which seems like a better way to manage things, but then the class becomes very large, and instead of requiring just a few dependencies, it requires much more access to the game world.

My epxeriences with generic uber-code which handles a lot of different abilities are not the best. The issue is, that many abilities/spells are often unique in one or more ways and adding more and more abilities will result in very complex generic code hardly manageable.


My worry with this design is that while having the game actions performed by each of the abilities classes (inside their Execute() function), they require access to only part of the game core they modify/use, but I foresee a lot of maintenance using this system, as changes to the core game might require modifying tons and tons of classes in order to handle the changes.

This worked a lot better for me. Each ability/spell has its own small piece of code, easily maintained. Thought, as you have already mentioned, adding or modifying stuff in your core game could result in some refactoring. To ease the effect, I would recommend to add some utility/proxy funcitons which encapsulte some often used functionality. With some proper design, changed in your core game will hopefully target only these utility functions, reducing the refactoring efforts a lot.

#5239421 free private SVN with biggest disk space?

Posted by Ashaman73 on 09 July 2015 - 11:00 PM

Yep, most flexible free solution is to host it yourself laugh.png Leave a PC on 24/7 running the SVN daemon, and tell your router to forward the SVN ports on to that PC.

Alternatively, it's free to rent a private host in the amazon cloud with 5GB of storage (for the first 12 months).

[edit] as pointed out below this can be as expensive as renting a server/service -- A 250W PC * 0.15c/kWh * 24hrs * 30days = ~$27/month -- so check your utility rates and look into low-power PCs to use as the server biggrin.png

Instead of a PC you can use a NAS too (best to use a NAS with RAID for data security). Many NAS (e.g. qnap) have a solid power management including a spin-down of the harddisks.


If the NAS is not able to handle SVN (either it does not allow installation of SVN or the processor is not powerful enough), you can still use it as simple data storage for your repository (much like a cloud-storage) and install SVN on your dev-machine. Thought this will not be really useful in a multi-user environment.

#5239125 [D3D11-OGL4] Gamma Correction - sRGB : render target / diffuse texture

Posted by Ashaman73 on 08 July 2015 - 10:33 PM

You need to consider input and output.

Input: if you have sRGB textures, use a sRGB buffer format for the textures. When used in a shader, they will be mapped to linear space automatically (much like compressed textures).

Output: you can use a sRGB framebuffer as render target. This way your linear space data will be mapped back to sRGB for display (your system should be configured to display sRGB)

Gamma-correction: gamma correction is already included in the sRGB color space (roughly ~2.2)


PS: in OGL you need to define, if the color conversion when writting to a sRGB framebuffer happens automatically (alternative you can write already converted sRGB data directly) by the global parameter GL_FRAMEBUFFER_SRGB. For furhter information take a look here.

#5239121 Using taken name?

Posted by Ashaman73 on 08 July 2015 - 10:21 PM

Go to a laywer specialized in trademarks etc. They can often help you to check if a name is protected or is protectable at all. Using an already used name is not the best idea.

#5238603 Light Shader Management

Posted by Ashaman73 on 06 July 2015 - 06:38 AM

I don't know if you can call this forward shading but this only takes single draw call? Plus, number of lights are limited by this way. Is there any better way I can have flexibility with light shader? Like a light shader which does not have a limit of maximum number of lights? I know I can use deferred shading but I don't want to use that at the moment. I am looking for a better design of writing shaders.

One way would be to upload all light data to videomemory (think buffers) and look up the lights dynamically per pixel. You could subdivide the screen into tiles and save the lights which influence a tile in videomemory to increase the performance of looking for the right lights too.

#5238547 What kind of games can I create with my 3 member team that someone may actual...

Posted by Ashaman73 on 06 July 2015 - 12:42 AM

I'm just a bit scared of devoting hundreds of hours to a game that no one will play.

Stop here, because this will most likely happens.


Also, if I currently have no "graphics guy" what are my options to make the game look good enough that sb plays it?

Looking good enough that somebody will play it is seldomly the issue. Look at games like Minecraft or dwarffortress etc. The issue is, that the devs themselves have often unrealistic and very high expectations. Yep, all this fantastic 3d rendering technique, so easy to turn some simple sphere into a wonderful PBR rendered piece of art, yet it is just technique and you need an army of artists to create according art. A monster of a graphics engine needs a lot of food ;-)


I wanna ask you guys, if it is by any means possible to create a game competitive to some market that is 3D and involves even a bit of a story, items, and just classic game design job like level design and not only spending days in code to create some fancy new puzzle that doesn't exist yet.

It depends. A lot of successful indie games were created by 2-4 people. I think that it is more important to utilize the skills the team have, instead of frenetically trying to compensate what skills are lacking. A team of artists could benefit from making an artful game with simple game mechanism, a team of story writer could deliver a fantastic story telling game and a group of coders could create some demanding and challenging game mechanism/effects.

#5238122 What would you be willing to trade to get your ideal job in the gaming industry?

Posted by Ashaman73 on 02 July 2015 - 10:43 PM

What would you be willing to trade in order to get your ideal job in whatever field you wanted in the gaming industry? Would you pay? If so, how much? Work for free? Move across the world? Leave your friends behind? Quit gaming so much?

None of these. Really, I'm not a big fan of game industry romance. This was the first illusion which has been taken while working in game industry. You don't have a lot of creative freedom, you have lot of pressure, you need to do lot of things which you would do personally in an other way, publisher tell you what you need to add and what you need to remove, in short, it is just a job.

#5237954 Ways to release an indie game in chunks?

Posted by Ashaman73 on 01 July 2015 - 10:53 PM

But would 25% of the game be enough for Early Access? Because crowdfunding projects usually have 60%+ already done, and with my budget, I can only make 25% max.

Nobody can tell you. Regardless of using Early Access or crowdfunding or chapter releases, there are other issues which will be a lot harder to overcome. The most prominent issue is, that people will need to notice your game in the first place. There's a reason that markting budget of AAA title are so extremly high, sometimes (or always?) even higher than the development budget.

That is, a good game which will be noticed (either marketing or luck), will perform good regardless of how you release it.


There are some market rules when releasing a game. The following rules are my personal perception by reading post mortems, articles etc., so just my two cents again:

- The first one, especially for AAA title is, that the majority of profit with the game is made in the first week (similar to movies), thought this might not be true for indie games.

- The second rule for indie games is, if you don't sell a PC game on steam, you will most likely not make any profit at all (break even).

- The third rule is, as indie game, you will sell most games during special events (summer sale etc.).

- The forth rule, kickstarter for a indie game is a double edged sword. The real money from a campaign is quite small (provision, gifts, taxes etc.) which is traded for a lot of promises and dependencies.


Personally a game clearly marketed as early access is my favorit, with a price tag which represents the current state. People know what they get, people know, that the game will improve over time and is not finish yet, and you don't dive into some hard dependencies. But I fear that this isn't the best way to get rich wink.png