Skip to main content

Level design basics, part 8

 Abstract code

Optimally, there should be two or more level design team members, one for graphical
design and one programmer. This is where code abstraction comes in handy. The
graphical part of doing it is to make a level design document in code: 

arena.lvl
Arguments: hard level, hard bonuses.
Design:
main table = circular 4 meters radius

C++ abstract script code:

Level arena_1{};
arena_1.set_script(hard, hard, basic 3);

Such code extraction and abstraction makes hard to transfer documentation into
actual soft ware and hard ware code to more convienient process.

class Ware
{
    std::string data[100]{};
public:
   void draw();
};

The ware class can be used to more correctly bridge the gap between the both
documentation types.

void Ware::draw()
{
    Direct play{};
    for(int iterator{1};iterator<=100;++iterator)
    {
        play.push_x(data[iterator-1]);
    }
}

The class creates a ware house node in the graphical processing unit, so it is more
challenging, but also more convinient to sort through the random access memory.

Ware pixel_1{};
Ware pixel_2{};

Code abstraction makes a level design document more convinient to read for the
programmer or a coder. A ware house node is stored to the random access memory,
but also the central processing unit.

void Direct::push_x(std::string print)
{
    if (print=="array")
    {
        return;
    }
    else
    {
        std::cout << print[1-1];
    }
}

The function prints the system message if the program is console type. Two members
should collaborate and debate on how to improve the level. Basically printing a 3
dimensional square in a video game is hard, so abstraction fixes this problem. In

theory it sounds easy, but it really isn't. Wether it is a first person shooter, real time
strategy or third person adventure game. This is where data abstraction comes in handy.

class Square
{
    int position_x[4]{};
    int position_y[4]{};
    int position_z[4]{};
    std::string script{};
public:
    void draw(std::string parent_type);
};

Same problems arises when making a square in making a 2 dimensional game that
correctly resembles reality, or 
real world.

arena_collosal.lvl
0 1 12 3 4 5

You would expect only 4 parameters for the square, but there are additional 2 for
colossal challenge input for the monster parameters. You would expect the arena
to be circular from the top down, but it is realistic, which is why physics have to

be applied as well. Such as low-polygon count to improve the frame rate. 60 frames
per seconds is good for level design, especially when making a two dimensional
simulation. Making breathing sounds in a two dimensional stealth games is hard.

And challenging. Code abstraction comes here in handy too. So code abstraction
doesn't make development easier, but actually harder, but also more worth it. People
thinks source code abstraction is to make the coding easier, but where could there

possibly any point in that? Experience points system can be abstracted too.

Comments

Popular posts from this blog

object oriented programming

Object oriented programming is a sound and bold approach to c++ and internet wiring application and video games. It reduces a lot of code messes, made by global and half global functions. One of the more advanced object programming techniques are private access, poly morph and object message inheritance. It is set by c++ bjarne stroustrup and iso isometric standard convention comitee to use classes instead of structs and structures for making objects. Which means you most definitely should , but not must or have to. class Monster {     std::string memory_attributes{}; public:     void treck();     void track();     void trace(); }; The treck() function makes the monster roam and do human like jogging and trimming. track() means the monster goes ai path tracking and trace() means it tries to find other monsters in the area. class Weapon {     std::string memory_attributes{}; public:    void use(); }; void Weapon::use() {   ...

What does a good game consist of? (part 19)

Programmer's Role in Game Development -part 1: Better Code Organization This will be a bit different blog post compared to the previous. It will be a sub-series of the role of programmer in the game development. The first part of the sub-series will explain how a game programmer is more effective alone or in a team. Code organization is in my experience essential, as the amount of code quickly increases, especially if the game has many features. It includes: knowledge of the programming language, APIs, dev kits and make sure you know the techniques with which will you finish the project  list of steps to get there a clear to read and understand GDD a clear task list don't rush to learn everything about everything related to your project-set to make a project which you can actually handle(=have learnt 98%-100% about it) There you go, one step closer to understanding how to make a classic game.