Skip to main content

Posts

Showing posts from July, 2023

Level design basics, part 11

Hard level design To make a hard level, you have to apply challenge methods, used on steam games: achievements are very hard to get. Especially when it comes to magic games. I had a lot of fun playing bridge crossing in americas army. Also the FBI in counter strike. Very simple level design, but lot of hard challenging fun. Traditionally, people think some easy games are fun. But they really aren't. Making a fun map level requires making a good challenge structure. Example hard level design A good challenge structure: must be directly related to the core steam mechanics. Pacing is important in hard first person shooters, so if you ever played a first person shooter, on steam you'll see the achievements are really hard to get. So the steam basically works just like level design. secret.bat get on the 300th level Steam is a system of games, level design is like a system of levels. Levels in steam games; or at least some include achievement, so it's important to under stand st

Level design basics, part 10

Example level design Gladiator arena. There are 2 secrets in the level. The combat area 4 meter radius circle, or 16 square meters. Secrets are triggered when killing target number of opponents 3 times in a row. The opponents are animal beasts, monsters and other gladiators. The high score in the single player game affects the campaign goals.  gladiator.bat 2 secrets set circle(4) trigger target Arena is actually very large in this level, even though it might not sound that way. Experience is hard to get in this level. Experience points, more specifically. Exercise Make a level script file set. Graphics That's probably the role of graphics designer, but making 3 dimensional game design objects is a part of level design as well for better imagining when writing hard source code. class LevelObject {     std::string type[50]{}; public:     int create(); }; Script code was mostly used by JavaScript and Java. And macrowave flash. But it is still important as it is essential. It can be u

Level design basics, part 9

  Memory A level can take 100 mega bytes of random access memory which is taken on each load. Play a match 20 times, you will have 2 giga bytes of memory taken. So it is important to separate level files into 10 data base segments. A navy level would be hard to make as it involves loading ships on the start base. Saving memory is an important method when it comes to designing a level. Design is important. That's what after all level design is all about. And memory plays an important key role. Database 1 "arena.lvl" generic memory RAM stack geo Memory design: seal animal This script code prevents the client user from reading confidential united states army information used in the game. Made them a lot of troubles while designing Doom 3. Memory is an important part of human brain; and also of a personal computer. 90% of the human brain's memory has to be used all the time. And under standing computer memory enchances human memory and under standing level game design. Ze

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 convi

Level design basics, part 7

Meta files Meta means in between. Wild hard ware and soft ware connection. A game design level document is just documentation; it is normal text. Actual level files however are en coded. Not normal text, in other words; which is why they are a lot harder to make. Forests for example are hard to put into a text file. Trees are real world eco systems that are the source of nature and life. It is one thing to put a real world object into a game, what is even a LOT harder is putting one, for example a tree into a text file. Source code is just sofware, it is nothing but encoded writing, which is why to put it into soft ware is not exactly easy, but has been done many times before. However, putting source code directly into hard ware is a completely different thing. That's where meta files come in handy. Meta files are clay ware. They work very similiar to a human brain. Like a connection between software and hardware. A meta file contains level game design documentation and level code.

Level design basics, part 6

Blocks It takes a lot of building blocks to make a video game level. Video games are after all nothing but very sophisticated and complicated toy games. You can start by making very small pieces of code, say ten of them. After put them in separate files and connect them together. Using JavaScript should do a good trick here. TypeScript defines code blocks, modules and scripts. Forest campaigns are hard to make, but are real fun to play. It is a great adventure, even if it is not a role playing game; and regard less of the weather. Weather and weather conditions are two very different things. Weather conditions are a clausal, all you have to is switch a weather variable: std::string weather{"sunny"}; weather = "rain"; That is a good way to implement into a video game. But weather is something else, it's a cloud system. Very hard to make changing weather. int weather_clouds{10}; weather_clouds+=1; Pick the one you prefer and are capable of doing. So a major buildi

Level design basics, part 5

 It is possible to use script files, to sort level design files. render repeat 0 1 0 1 0 Simply by using script files, it is possible to make something useful of constant three dimensional world or two table dimensional world. Script files work as meta files. They build cubical tables. Very good way to use script files is by using java and javascript. Especially now that Flash has been shut down. It controls repetitive data processing. Using script data will help you improve program: Responsiveness. For example, first person shooter radio games work exactly that way. It is one thing to render a big three dimensional level, what's even harder if to apply real radio physics into the level.

Level design basics, part 4

  Module It is useful the separate level design files into modules, for better remembering and faster game processess. There are two types of level design files: Game design documentation and game data. This should be two main modules, each sub sequent should have 5 files each. class Module {     std::vector<Data> container{};     const int max_size {5}; }; So basically that should be around 4 modules total. Unless you're using data bases. A module makes the link and build time faster. Also improves code read ability and more stable frames per second. Module frames{};