Jump to content
  • Advertisement

Recommended Posts

I want to start learning Level Design, so what are the main topics I have to learn about  specifically? since I learn on my own, so I don't want to drop something that could be important, and if there are some suggested books or courses to start from.

Share this post


Link to post
Share on other sites
Advertisement

Just start making levels. For the beginning, choose a game with a level editor. Experiment, try to make a competent levelset. Practice makes perfect.

If you don't have any idea for what game to make levels for, let me know what sort of games you like and chances are I can point you to something.

Edited by JulieMaru-chan

Share this post


Link to post
Share on other sites

This is not a whole course on level design but it's a nice start.

 

this channel has a lot of good content, that has help me a ton with making my first game.

Edited by Jaccob Trifonoff

Share this post


Link to post
Share on other sites
7 hours ago, JulieMaru-chan said:

 choose a game with a level editor.

 

what games that have level editor you would suggest, since i just need a start more than choosing a specific type of games to work with 

Share this post


Link to post
Share on other sites
57 minutes ago, kane david said:

what games that have level editor you would suggest, since i just need a start more than choosing a specific type of games to work with 

mario maker, happy wheels

even little big planet works

Share this post


Link to post
Share on other sites
16 hours ago, kane david said:

I want to start learning Level Design, so what are the main topics I have to learn about  specifically?

You should take Psychology 101, Architecture 101, Art 101, Geology 101, and Programming 101. And read this.

Share this post


Link to post
Share on other sites

If you don't have a particular type of game in mind, I'll just list off a few I think are good (they're all free and pretty easy to use):

- Scavenger: https://sourceforge.net/projects/sdlscavenger/
- KGoldrunner: https://games.kde.org/game.php?game=kgoldrunner
- SuperTux*: https://supertux.org
- Alex the Allegator 4: http://allegator.sourceforge.net/

* I haven't tried the current version's level editor, but the 0.1.3 editor was good, so I assume the current one must be too.

Share this post


Link to post
Share on other sites

In art there is a concept called unity that refers to the composition of a piece. It basically refers to the balance of the whole image. Not just color affects it but the sizes of forms and their frequency. Basically, the idea is that balance can be done with more than a single aspect of the design but if there is no overall balance then it feels wrong. The difficult and never-quite-reachable goal of level design is to have unity from wherever the camera might be at any time. Obviously it's a tall order but focusing on the focal points of the map can help as well as positioning things to form a balance in not just appearance but also gameplay mechanics.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Advertisement
  • Advertisement
  • Popular Tags

  • Popular Now

  • Advertisement
  • Similar Content

    • By Stalefish
      Automated builds are a pretty important tool in a game developer's toolbox. If you're only testing your Unreal-based game in the editor (even in standalone mode), you're in for a rude awakening when new bugs pop up in a shipping build that you've never encountered before. You also don't want to manually package your game from the editor every time you want to test said shipping build, or to distribute it to your testers (or Steam for that matter).
      Unreal already provides a pretty robust build system, and it's very easy to use it in combination with build automation tools. My build system of choice is  Gradle , since I use it pretty extensively in my backend Java and Scala work. It's pretty easy to learn, runs everywhere, and gives you a lot of powerful functionality right out of the gate. This won't be a Gradle tutorial necessarily, so you can familiarize yourself with how Gradle works via the documentation on their site.
      Primarily, I use Gradle to manage a version file in my game's Git repository, which is compiled into the game so that I have version information in Blueprint and C++ logic. I use that version to prevent out-of-date clients from connecting to newer servers, and having the version compiled in makes it a little more difficult for malicious clients to spoof that build number, as opposed to having it stored in one of the INI files. I also use Gradle to automate uploading my client build to Steam via the use of steamcmd.
      Unreal's command line build tool is known as the Unreal Automation Tool. Any time you package from the editor, or use the Unreal Frontend Tool, you're using UAT on the back end. Epic provides handy scripts in the Engine/Build/BatchFiles directory to make use of UAT from the command line, namely RunUAT.bat. Since it's just a batch file, I can call it from a Gradle build script very easily.
      Here's the Gradle task snippet I use to package and archive my client:
      task packageClientUAT(type: Exec) { workingDir = "[UnrealEngineDir]\\Engine\\Build\\BatchFiles" def projectDirSafe = project.projectDir.toString().replaceAll(/[\\]/) { m -> "\\\\" } def archiveDir = projectDirSafe + "\\\\Archive\\\\Client" def archiveDirFile = new File(archiveDir) if(!archiveDirFile.exists() && !archiveDirFile.mkdirs()) { throw new Exception("Could not create client archive directory.") } if(!new File(archiveDir + "\\\\WindowsClient").deleteDir()) { throw new Exception("Could not delete final client directory.") } commandLine "cmd", "/c", "RunUAT", "BuildCookRun", "-project=\"" + projectDirSafe + "\\\\[ProjectName].uproject\"", "-noP4", "-platform=Win64", "-clientconfig=Development", "-serverconfig=Development", "-cook", "-allmaps", "-build", "-stage", "-pak", "-archive", "-noeditor", "-archivedirectory=\"" + archiveDir + "\"" } My build.gradle file is in my project's directory, alongside the uproject file. This snippet will spit the packaged client out into [ProjectDir]\Archive\Client.
      For the versioning, I have two files that Gradle directly modifies. The first, a simple text file, just has a number in it. In my [ProjectName]\Source\[ProjectName] folder, I have a [ProjectName]Build.txt file with the current build number in it. Additionally, in that same folder, I have a C++ header file with the following in it:
      #pragma once #define [PROJECT]_MAJOR_VERSION 0 #define [PROJECT]_MINOR_VERSION 1 #define [PROJECT]_BUILD_NUMBER ### #define [PROJECT]_BUILD_STAGE "Pre-Alpha" Here's my Gradle task that increments the build number in that text file, and then replaces the value in the header file:
      task incrementVersion { doLast { def version = 0 def ProjectName = "[ProjectName]" def vfile = new File("Source\\" + ProjectName + "\\" + ProjectName + "Build.txt") if(vfile.exists()) { String versionContents = vfile.text version = Integer.parseInt(versionContents) } version += 1 vfile.text = version vfile = new File("Source\\" + ProjectName + "\\" + ProjectName + "Version.h") if(vfile.exists()) { String pname = ProjectName.toUpperCase() String versionContents = vfile.text versionContents = versionContents.replaceAll(/_BUILD_NUMBER ([0-9]+)/) { m -> "_BUILD_NUMBER " + version } vfile.text = versionContents } } } I manually edit the major and minor versions and the build stage as needed, since they don't need to update with every build. You can include that header into any C++ file that needs to know the build number, and I also have a few static methods in my game's Blueprint static library that wrap them so I can get the version numbers in Blueprint.
      I also have some tasks for automatically checking those files into the Git repository and committing them:
      task prepareVersion(type: Exec) { workingDir = project.projectDir.toString() commandLine "cmd", "/c", "git", "reset" } task stageVersion(type: Exec, dependsOn: prepareVersion) { workingDir = project.projectDir.toString() commandLine "cmd", "/c", "git", "add", project.projectDir.toString() + "\\Source\\[ProjectName]\\[ProjectName]Build.txt", project.projectDir.toString() + "\\Source\\[ProjectName]\\[ProjectName]Version.h" } task commitVersion(type: Exec, dependsOn: stageVersion) { workingDir = project.projectDir.toString() commandLine "cmd", "/c", "git", "commit", "-m", "\"Incrementing [ProjectName] version\"" } And here's the task I use to actually push it to Steam:
      task pushBuildSteam(type: Exec) { doFirst { println "Pushing build to Steam..." } workingDir = "[SteamworksDir]\\sdk\\tools\\ContentBuilder" commandLine "cmd", "/c", "builder\\steamcmd.exe", "+set_steam_guard_code", "[steam_guard_code]", "+login", "\"[username]\"", "\"[password]\"", "+run_app_build", "..\\scripts\\[CorrectVDFFile].vdf", "+quit" } You can also spit out a generated VDF file with the build number in the build's description so that it'll show up in SteamPipe. I have a single Gradle task I run that increments the build number, checks in those version files, packages both the client and server, and then uploads the packaged client to Steam. Another great thing about Gradle is that Jenkins has a solid plugin for it, so you can use Jenkins to set up a nice continuous integration pipeline for your game to push builds out regularly, which you absolutely should do if you're working with a team.
    • By Zamma
      Hello!
      I'm doing an A.I. course at my university, and searching on internet i learned about the GOAP A.I. system. I found it really interesting and I would like to learn more about others techniques.  So I was wondering which A.I. system is used by the civilization saga (or at least in civilization IV/V/VI) but i'm not able to find anything about that. Does anyone know where i can find some infos or docs about A.I in Civ?
    • By rakshit Rao
      I'M interested in programming tools (For animation, UI, etc). Can anyone suggest me the resources where I can start learning or which technologies I need achive it.
       
      Thanks,
      Rakshit
    • By tones31
      Hello. I am looking for an unpaid, hobbiest game developer to help me continue to work on a fully functional game prototype built in PlayCanvas that I have built as a hobby. I intend to release and monetize the game once it is complete.
      About the Game
      The game is entitled "Battle Runes."  It is some strange mixture of scrabble and word search, but instead of English letters it uses Viking runes. Each rune represents an English letter. The game takes place on a board, which is a grid of any size (4x4 for example). Not all squares on the grid are required to exist (there can be holes) but there can never be an incomplete path from one square to the other. The game starts with all squares on the board populated by random Runes. The player clicks and drags Runes around the board from one square to the other, costing them "moves" in the process. Runes can also be stacked vertically if they are the same, which adds both literal and figurative depth to the game. The main point-scoring mechanic is to create English words (like "war", "hello", "sky", etc...) using the viking Runes. Words are automatically found by the game using any of the 8 cardinal directions, just like a word search. Points are rewarded to the player for each word they create, and they get bonus points if a word has extra Runes stack on top.
      History
      The current PlayCanvas prototype is actually the third revision of this game, but it is the one that has made the most progress. The first two revisions were in Unity, and were actually multiplayer games. I abandoned Unity when I found PlayCanvas and ended up rewriting the entire thing in a few weeks versus the few months it took me with Unity. Obviously the advantage was Javascript.
      Who Am I
      I am a full time software developer with a job at an engineering firm. I code daily in C, C++, Javascript, and PHP. I am a full stack developer, creating UI, and backends on Linux, Windows, and even embedded devices (hence the C and C++). I had no idea how to program 5 years ago, and have been learning every language I can get my hands on since. I have worked my way up in my company from a software tester to my current full stack position. 

      I went to game design school about 10 years go to be an artist, so I also have a lot of 3D and 2D experience. But I rarely do that anymore, hence the amazing artwork you will see in the below screenshots. Eventually I will find an artist to replace all prototype assets.

      Why I Need You
      The game concept came from a good friend of mine who, at some point, was heavily involved in the design of the game. He has since floated away from the picture. As I enjoy focusing on programming mechanics, I need someone to help me continue to define the game, including at least a few major modifications. Currently, the game is functional. You can actually win in Adventure Mode or play "forever" in Arcade Mode. The problem is.. the game isn't really that fun. I played a lot of Farm Hero and Juice Jam, and these games kept me coming back because of the challenge and allure. Currently, the game is challenging, but mostly out of bad design. It also feels like the game is really missing some core mechanics. 
      Thus, I am looking for someone who wants to spend time playing the game and figuring out some new mechanics, major or minor, to implement. This must be more than "you should make it like this game.." I am looking for someone who really wants to develop a fun game.
      You Are a Good Fit If...
      1. You really enjoy the design aspect of game development
      2. You have original ideas, but know how to borrow existing mechanics from good games
      3. You have 2-5 hours per week to analyze the game, discuss ideas via voice chat, and create a technical document for the game mechanics
      4. You have strong writing skills (technically) 
      Bonuses
      Strong story writing skills for Adventure Mode
      Private PlayCanvas account
      Screenshots
      I always hesitate to share the game outright, because literally all the source code can be stolen when using PlayCanvas. I currently have a private account on PlayCanvas to protect this, but will share a temporary public version for those interested by PM only. So here are some screenshots (please enjoy the prototype models and art :] )

      Screenshot 1
      Level 1 starts out with an easy board. Currently, the player is trying to create the word "air" as represented by the secondary word board. Lots of "i"s available. One "a". But no "r"s. In order to get an "r", the player will have to start stacking similar Runes on top of each other to free up space. New Runes fall from the sky to fill empty squares!


      Screenshot 2
      As an example of the main mechanic, dragging and dropping Runes around, the player has clicked the "s" and has swapped it with the "i" (for no real reason..!). Without committing the move, the game has given the player a preview of what would happen if they swapped the "s" and "i".


      Screenshot 3
      In this screenshot, you can see Rune stacking in effect. The player has stacked a bunch of "i"s on top of each other... there's no limit, and it can get pretty funny when you stack lots of runes (queue gravity!).


      Screenshot 4
      Arcade Mode produces completely random boards, but ensures that there are no unreachable squares, thanks to a really amazing JS pathfinding library. You can actually see the pathfinding library in action (follow the blue highlights). Currently the player has swapped the "g" (looks like  <>) and the "b". The pathfinding highlights all the moves the player would have to make if they could only move a Rune one square at a time. This swap will cost 6 moves. Thankfully the pathfinding library finds the shortest path!!

       
      Thank you for reading this far. Please PM or reply here if you would like more information.
    • By Sebastian Werema
      Do you know any papers that cover custom data structures like lists or binary trees implemented in hlsl without CUDA that work perfectly fine no matter how many threads try to use them at any given time?
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!