377 reputation
18
bio website
location
age 28
visits member for 2 years, 5 months
seen 15 hours ago

Enthusiast. No formal computer science education (yet). Interested in 2D and 3D rendering techniques and shader programming. Actually making own engine for RPG game.


Feb
21
revised What is a “2.5D” environment?
Corrected an error about direction of axis in the 3D render, actually the projection matrix makes them the same as the 2.5D version
Feb
21
revised What is a “2.5D” environment?
Corrected an error about direction of axis in the 3D render, actually the projection matrix makes them the same as the 2.5D version
Feb
18
revised What is a “2.5D” environment?
where in place of were
Feb
18
revised What is a “2.5D” environment?
replaced off course with of course (ups)
Feb
18
answered What is a “2.5D” environment?
Jan
31
comment Which image format is more memory-efficient: PNG, JPEG, or GIF?
Yes. You will choose any of the discussed formats thinking in save disk space or bandwidth. When loading images into the game, any library/engine I know will decode them to uncompressed pixel buffers (think in pixel buffers as an array of RGB or RGBA values, where each channel usually occupies 1 Byte in RAM/VRAM if using 32 bits per pixels, that is probably what everyone is doing).
Dec
25
revised Monogame [Linux] cannot resize screen
Minor grammar correction.
Dec
25
answered Monogame [Linux] cannot resize screen
Nov
8
answered Scripting APIs and scripting to make games
Sep
24
awarded  Autobiographer
May
30
comment Retrieving components from game objects (entities)
std::unordered_map is faster than std::map and at the same time saves you from having all those wasted empty pointers, they are still slower than vector I think, so you will have to decide what is more important, a bit more of speed or save memory. Note that I switched to another approach. Now my entities are only an ID and components are singletons that can return their data if you pass them an entity ID (not so efficient as lookups are involved) or let you iterate through all the entities that are associated to that component (what systems do most of the time, and very efficient).
May
13
comment How to achieve cavalier projection using OpenGL fixed pipeline?
I didn't take that matrix as an array. The answer is ok as it is but, believe me, someone may arrive here as result of a web search and simply add the commas, some will realize what just happened when running their programs, others may need to think for a while. OpenGL documentation contains warnings about the elements order because people tend to expect the opposite order, isn't it?
May
13
accepted How to achieve cavalier projection using OpenGL fixed pipeline?
May
13
comment How to achieve cavalier projection using OpenGL fixed pipeline?
Marked as answer. Just note that OpenGL expects arrays representing matrices being in column-major order.
May
12
comment How to achieve cavalier projection using OpenGL fixed pipeline?
I think this is what I'm after. Just let me do a quick test before mark as answer.
May
12
asked How to achieve cavalier projection using OpenGL fixed pipeline?
Jan
18
awarded  Popular Question
Jan
3
comment Do I need multiple perlin noise generators for different features in terrain generation?
Ups, It's more like, tree_type = (int)((value - 0.5) / 0.5 * 3), If less than 1, no tree at that coordinates, from 1 to 3, any of the three tree meshes.
Jan
2
comment How to get pixel coordinates between 0,1 from SV_POSITION
It is an array/structure of 4 elements as an optimization. It is the same as why some APIs represent vectors as arrays of 4 floats even if the last element is not used for anything. Maybe somebody can post a link to a good explanation of why. I could not find one in my bookmarks.
Jan
2
comment Do I need multiple perlin noise generators for different features in terrain generation?
Only add to existing answers that you may want to implement an erode algorithm pass: float4x4.net/index.php/2010/06/… to obtain believable heights distribution. Apply a noise pass to the xz plane (assuming y is up) to obtain areas with more flat terrain was smart too and maybe no need for the erosion pass. Placements of things like trees will require its own pass, for example, anything belows 0.5 means no tree, above that means tree, or different types of tree. If you have 3 tree meshes, tree_type = (int)((value - 0.5) / 3)