How does one create a game like a Source Engine Game with respect to maps?

I am planning on making a game with Godot somewhat similar to various Source Engine Titles.

I was wondering if there was a way to make maps exist externally, but can be "opened" from the Game.

How would I do this?

Answers

  • TheExtremeGamerTheExtremeGamer Posts: 2Member

    I read the page.
    I'm not sure this is what I was referring to...
    How would I create this sort of "ecosystem" where Entire Maps consist of One File as One Map, and can be "imported" for later use without having to completely recompile the game. This is intended for people to make community maps and what-not.

  • windastellawindastella Posts: 21Member

    Here https://matt-lucas.itch.io/level-buddy

    It's not entirely in Godot but so do using Hammer for Source. Just replace Hammer with Blender.

  • CalinouCalinou Posts: 184Admin Godot Developer

    Unfortunately, if you stick to open source tooling and Godot, it's going to be a bit poor. Blender was never intended for level design (and still is pretty bad at it, in my experience) and there is no generic open source level designer tool that I know of, outside of SabreCSG which is integrated into Unity. Godot also doesn't have any 3D editing facilities built-in right now.

    The best way to go about this would be to have a 3D level editor built into Godot, but that's going to be a lot of work - SabreCSG, for instance, has about 25,000 lines of code at the time of writing. Distribution will remain an issue (packaging each map into a downloadable package) that will remain highly game-specific (as many games don't need that at all). Creating an high-quality, usable UI is also a big challenge here.

  • cdqwertzcdqwertz Posts: 4Member

    I implemented a level editor in one of my 2d games.

    To accomplish this, I use 3 scripts. One handles all UI events from the editor, one exports the level (and does some other stuff) and the last one is able to load levels. To save levels and load levels, I use dictionaries.

    The code is far from perfect, but I hope it helps you anyways:
    UI: https://github.com/cdqwertz/game/blob/master/scripts/level_editor.gd
    Level Editor: https://github.com/cdqwertz/game/blob/master/scripts/level_editor_level.gd
    Load Level: https://github.com/cdqwertz/game/blob/master/scripts/level_editor_play.gd

  • RREDesignsRREDesigns Posts: 5Member

    If all you need is to load custom maps, you can open them as scenes with a bunch of helpers (like spawn points, pick up points and stuff like that).

    So your map would be a .scn file with a descriptor gdscript attached onto it.

  • justinbarrettjustinbarrett Posts: 44Member

    @Calinou said:
    Unfortunately, if you stick to open source tooling and Godot, it's going to be a bit poor. Blender was never intended for level design (and still is pretty bad at it, in my experience) and there is no generic open source level designer tool that I know of, outside of SabreCSG which is integrated into Unity. Godot also doesn't have any 3D editing facilities built-in right now.

    The best way to go about this would be to have a 3D level editor built into Godot, but that's going to be a lot of work - SabreCSG, for instance, has about 25,000 lines of code at the time of writing. Distribution will remain an issue (packaging each map into a downloadable package) that will remain highly game-specific (as many games don't need that at all). Creating an high-quality, usable UI is also a big challenge here.

    what! Blender is amazing for level editing, it just has a steep learning curve...all types of snapping and array setups....what was the problem you had using it?
    and in response to the firs post yes, you can dynamically load objects via script AFAIK, I was going through the docs trying to find some more info for you but fell short....all I found was this
    var scene = load("res://myscene.scn") # will load when the script is instanced
    var scene = preload("res://myscene.scn") # will load when parsing the script
    docs.godotengine.org/en/stable/learning/step_by_step/scripting_continued.html#creating-nodes

  • CalinouCalinou Posts: 184Admin Godot Developer
    edited April 2017

    @justinbarrett said:
    what! Blender is amazing for level editing, it just has a steep learning curve...all types of snapping and array setups....what was the problem you had using it?

    It's terribly hard to have good, game-friendly topology in a tool like Blender when used for level design, and the viewport (the OpenGL renderer) leaves a lot to be desired (it'll be a pain to preview the level's lighting as it'll look in the final game, if it's even possible at all). I've also found the workslow to be quite slower than in dedicated tools (compared to TrenchBroom, for example).

    If you look around, you'll see that no open source game really uses Blender for level design, except for SuperTuxKart, but their levels are wide, open areas with mostly terrain and a road, which is definitely not something you'd see in a FPS.

  • justinbarrettjustinbarrett Posts: 44Member

    fair enough, I'm not sure what you mean by "game-friendly topology".... I also never do any fps stuff...and have never used the other software mentioned...but for me I find it to be an amazing tool...I mean I can texture, rig, animate, and do level design all at once...buuuuttt, I've begun to derail this thread so...sorry.

Sign In or Register to comment.