game design – 3D World; how do I deal with the thickness of walls on a grid to create a tile based building system

I want to develop a tile based 3D building system as a foundation for an game. But there is a question which is cracking my mind a bit.

I am grateful for every thought, hint, link or book suggestion.

How do I deal with the thickness of walls on a grid, respectivelly how should I realize walls?

I used the search engine, watched at other games on steam & youtube, but the result & my conclusion is not really satisfying.

What is the most common way, which causes the least problems in your oppinion?

The game-engine i want to use is Godot.

This are the 3 options which I have, at least I think this are the 3 I have:

(1) Wall as a plane
Wall as a plane

I think this option causes not much problems, but it is also the least attractive option because it doesn’t look that great to a player.

The wall is flat, the positioning of items in front of the wall, on both sides shouldn’t make problems because. The wall has no thickness, so there is no offset related to the grid.

(2) Wall in size of the grid
Wall in size of the grid

I think this option causes the least problems, but probably you get really thick looking walls if your grid is to big & with a smaller grid you maybe get other problems (performance issues or something else).

The wall doesn’t affect the positioning of items in front of the wall, on both sides. The wall has thickness, but the thickness doesn’t results in an offset related to the grid.

Currently I think this is the option I should stick with, but to get walls which are not that thick, I believe I should create a grid with a size of .5 or .25 when you relate 1 to an meter (walls in germany are about 25 till 50 cm).

Maybe I worry too much about the size of the walls?

(3) Wall overlapping the grid
Wall overlapping the grid

I think this option makes the most headache, at least for me. With this option you have a offset resulting from the thickness of the wall. Because it’s overlapping the floor tiles half the walls thickness, so you have to deal with the placement of items in front of the wall & currently I have no idea to deal with.

gm techniques – How do I get a new player to stop rewriting my game to match his favorite fiction?

I have a D&D 5e game that I’ve been running for a year that is on pause because some players don’t want to play online or go outside (stupid plague ruining my tabletop). So I offered my son and the player who still does small gatherings a filler game. My son picked Star Wars, I agreed. He told his adult sister, who wanted to come over with her boyfriend to join. During session zero I warned that Star Wars canon, for me, is the original trilogy and the original rulebooks from West End Games (1987).

In no time the boyfriend was saying his character is the cousin of Dash Rendar (who?) because that’s his favorite character. He defends his expectation because he bought himself a Dash Rendar miniature. Then, 4 sessions in, he wanted me to replace his ship, despite my effort to give him stats, background, drawings and floorplan, with Dash Rendar’s ship, because he bought a miniature for it (after having the other ship for a couple sessions). There is also the expectation that I make Dash a major NPC in my game, and give him Dash’s guns and equipment, and something about a planet; I stopped listening. I’ve never had a player like this (in 35 years). He’s not belligerent when I point the lines of ‘few’, ‘minor’ or ‘cosmetic’, or session zero. He just repeats the requests endlessly. And argues that they are still few, minor and cosmetic. And that’s just the character he wants to play. And he doesn’t see how making the game “enjoyable for him” should be such a hassle for me. It’s completely poisoning the game for me, I don’t even want to judge it anymore.

So to resolve it (dodge it entirely), I asked them if they would like to join my D&D game when social distancing stops or pauses or lightens or whatever. I thought it would help because they don’t have history with Forgotten Realms, so there wouldn’t be the crossed expectations. Since my son and his uncle are in both games, we could do some side adventures to level them up to toward the existing party, learn the rules and explain their characters’ relationships with the existing party. They said yes, and made D&D Beyond accounts to join my campaign. The boyfreind made a Warlock Hexblade. I was stoked to have eliminated the problem.

But now he doesn’t want to have anything to do with the Raven Queen, he wants me to replace her with some guy named Leoric from Diablo 2 because that’s his favorite console game. And I need to modify Shadowfell to be more like Diablo 2. And ALL of his spells and features and feats need a necromantic effect that mimic his favorite spells from the video game. I don’t want to hardline him, because I made concessions for every player, they just stopped demanding additional changes somewhere around ‘totally reasonable.’ And like my experience in the Star Wars game, a few concessions have already resulted in the expectation of more, more, MORE!

I pushed back, and he said that he wants to replace him with a Necromancer like Raistlin from DragonLance. Head:0, Brick Wall: Infinity

I am teetering on the edge of just telling him that I don’t try to play his PC, so he shouldn’t try to rewrite my game, and he’s welcome to go find another table where he can play Dash Leoric or whatever. Am I actually wrong, does this fall under the umbrella of ‘the judge’s first job is making the game fun for the players’ or is this guy hijacking my agency as creator and judge? If I am right, and discussing it does not work, what’s the next thing to try?

It does NOT help that it was my own dumb ass that invited my daughter’s boyfriend into my game in the first place. 🙂

game mechanics – What colour should healing be?

Thanks for contributing an answer to Game Development Stack Exchange!

  • Please be sure to answer the question. Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

Use MathJax to format equations. MathJax reference.

To learn more, see our tips on writing great answers.

game maker – When updating app from Google Play will the app data be deleted?

My question is pretty simple.

I developed a game, uploaded it on the store. In order to keep player level record and UI prefs it writes an ini file.

When the next update is up on the store and the users will update will they lose their progress? Will the file be deleted?

Thanks

Is there a way to setup a notification from Unreal Engine when it finishes packaging / building my game?

In Unity I was able to use a post build script to send myself an email when Unity finishes building a game. Is there a way to make a script run when Unreal Engine is done packaging a game?

Or any other way to set up a notification sound or visual prompt in my Windows PC to alert me when it finishes packaging?

c++ – Bitmap BMP Reading Question: I need to read (large) 8MB 32BPP BMP Files into Memory so they may be queued for game play

class Surface
{
protected:
Surface();
virtual ~Surface();

class IMAGE // create a discreet type to be used to instantiate queue template
{
public:
    // single bitmap image width and height
    unsigned short width, height;
    unsigned int size;      // single bitmap image size
    DWORD* buffer;          // buffer to hold a width X height _size_ image

class Bitmap : protected Surface
{
public:
class BMP_32
{
public:
BMPHeader HeaderSection;
BMPInfo InfoSection;
BMPColorTable ColorTableSection;

void Bitmap::BMP_32::Read(Bitmap::BMP_32& a_bmp32, IMAGE& an_image, SURFACE& a_surface, const char* file_name)
{

fread(&a_bmp32.HeaderSection.FileType, sizeof(a_bmp32.HeaderSection.FileType), 1, fp);

fread(&a_bmp32.InfoSection.HeaderSize, sizeof(a_bmp32.InfoSection.HeaderSize), 1, fp);

fread(&a_bmp32.ColorTableSection.RedIntensity, sizeof(a_bmp32.ColorTableSection.RedIntensity), 1, fp);

an_image.buffer = new DWORD(IMAGEBUFFERSIZE);


// The following three examples render the same output visually:

// DWORD dwords_read = fread(an_image.buffer, sizeof(DWORD), an_image.size, fp); // dwords_read = 2,073,600

DWORD dwords_read = fread(an_image.buffer, (SCREEN_WIDTH * SCREEN_HEIGHT), 4, fp); // dwords_read = 4
// DWORD dwords_read = fread(an_image.buffer, ((SCREEN_WIDTH * SCREEN_HEIGHT) * 2), 2, fp); // dwords_read = 2

Background Detail: I am building up a class framework to read in 32BPP BMP files, that I am creating on a backsurface, which I then bltfast to the frontsurface and flip to GDI. The 32BPP background BMP that I am reading in is 8294400 in size, but the most I am able to read using “fread()” is 2073600, which is exactly 25% of the original artwork. I am using Visual Studio 2019 Community Edition and fread(&MyBuffer, arg2, arg3, stream) extensively. My application is an MFC application.

I have a need to read in the entire BMP Pixel Data Section into memory, because I am saving this into a queue Abstract Data type. Once I have the BMP in memory the I/O is done to disk and I just make calls to update the backsurface, bltfast and flip to update my scene. I am creating a class library for the BMP code.

Question: Is fread() hitting an upperbound on size limit? If so can someone suggest how I might be able to overcome this problem. If so I am hoping to make a minor substitution for this fread() API call for another C++ call. I cannot do anything too fancy with multiple buffers or doing a lot of I/O, as I have tried that approach already without success.

opengl – 2D Tile based game

I am new to OpenGL and game dev, I have been to courses and trying to learing everything about this. My task is to implement a Texture Atlas in a 2D tile based game (very similar to Tibia) using OpenGL.

Now the game have the sprite sheet loaded into memory and on each tile the program generates an image, load to a texture, bind and make a draw call. You can imagine how ineficcient it is. So what I have to do is to load this sprite sheet as a Texture Atlas and get the advantage that it has.

The problem is that in the first step while generating an image, the program makes some combinations on the sprites. For example, the character has an outfit and player changes its colors (boots, pants, t-shirt, hair) to do this there is a sprite for the base outfit, and a sprite for each element of the outfit, so the program apply a mask on color for each element and combine this five sprites into an image, then make the process that I mentioned above. This is an example that happens with outfit, but it happens to other things too, so this is not a special case with outfit only.

My question is: is there any way to make this combinations using OpenGL elements? Combining this multiple textures in my Texture Atlas into one draft and do it in a single draw call?

opengl – Difference between Game Engine vs Physics Engine vs Geometric modeling kernel

I am currently studying the game development.

“The rendering engine generates animated 3D graphics by any of a number of methods (rasterization, ray-tracing etc.).

Instead of being programmed and compiled to be executed on the CPU or GPU directly, most often rendering engines are built upon one or multiple rendering application programming interfaces (APIs), such as Direct3D, OpenGL, or Vulkan which provide a software abstraction of the graphics processing unit (GPU). Low-level libraries such as DirectX, Simple DirectMedia Layer (SDL), and OpenGL are also commonly used in games as they provide hardware-independent access to other computer hardware such as input devices (mouse, keyboard, and joystick), network cards, and sound cards.” – Game Engine

“A geometric modeling kernel is a 3D solid modeling software component used in computer-aided design packages” Geometric Modeling Kernel

I am struggling to understand an underlying architecture of a geometric modeling kernels compared to the game engines and physics engines.

Questions:

1) Am I understand it correctly, that the geometric modeling kernels, are actually the low-level APIs, more specifically, a kernel loadable extensions, used specifically to handle the rendering of a geometric operations, like creating a boundary representation of an objects on the screen?

2) Am I understand correctly, that the geometric modeling kernels, like ACIS, Parasolid are continuing to use it’s own low-level modules, instead of OpenCL/OpenGL, or they are kind of mixed?

3) What is the architecture of the Physics Engine, in terms of an APIs. Is it using the OpenGL or other derived low-level graphics APIs? Let’s say, Havoc, is it relying on other low-level API, say Direct3D?

Physics’s system – Game Development Stack Exchange

Thanks for contributing an answer to Game Development Stack Exchange!

  • Please be sure to answer the question. Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

Use MathJax to format equations. MathJax reference.

To learn more, see our tips on writing great answers.

array – How does the computer place ships in random locations in the battleship game in Java?

There will be two players in the game, one will be human and the other will be a computer. The game board will be 10×10. At the beginning of the game, two players will have 5 ships:
1 of size 1,
1 of size 2,
1 of size 3,
1 of size 4,
1 of size 5.
The ships are randomly placed on the board by the computer. The computer, (1 ship 1 point in length, 1 ship 2 points in length, 1 ship 3 point in length, 1 ship 4 points in length and 1 ship 5 points in length) will place these 5 ships in random places and these ships will be horizontal or they can be vertical, but not adjacent to each other. How does the computer place ships in random locations in the battleship game?

public static void printBoard(){
    System.out.println();
    System.out.print(" ");
    System.out.println("0123456789");
    //Middle section of Ocean Map
    for(int x = 0; x < grid.length; x++) {
        System.out.print(x);

        for (int y = 0; y < grid(x).length; y++){
            System.out.print(grid(x)(y));
        }
        System.out.println();
    }
    System.out.println();
}