• Breaking News

    Monday, March 22, 2021

    How we're making procedurally generated worlds more interesting

    How we're making procedurally generated worlds more interesting


    How we're making procedurally generated worlds more interesting

    Posted: 22 Mar 2021 07:58 AM PDT

    https://reddit.com/link/mapk93/video/f5s3h27eglo61/player

    (I'm writing up this mini-tutorial based on my experiences with procedural world generation in the hope that it might help out someone else who is new to all this, like I was 12 months ago).

    One of the things I love about games like Minecraft and Terraria is how incredibly varied the randomly generated worlds are. They invite and encourage exploration, and I wanted to try to put that same feeling of discovery into Little Martian.

    But every time I researched procedural generation I kept coming across the same warnings: if not done well, procedural generation can lead to worlds that – whilst being unique – all sort of 'feel' the same. And Perlin/Simplex noise algorithms seemed to be at the heart of this issue: they make it easy to generate random worlds, but also make it easy to generate boring random worlds. Nevertheless, armed with bags of inexperience I forged ahead naively! :-D

    I started with this excellent article by Red Blob Games, which explains the finer details of noise functions far better than I ever could: https://www.redblobgames.com/maps/terrain-from-noise/

    I quickly had something working, but as expected, all the worlds were a bit boring! 10 minutes of exploring and you'd seen all they had to offer. But I wanted to stick with this Simplex noise based approach for two reasons:

    1. I need the pseudo-random on-the-fly nature of it. I want to be able to regenerate exactly the same world repeatedly.
    2. I also need to be able to do it one chunk at a time, to avoid a costly up front world generation process.

    The reason for these requirements is that I want to be able to adjust the climate of the world dynamically, warming it up, cooling it down, adjusting the moisture levels, raising the sea-level, etc, in response to the player's actions. That wouldn't be possible if I had to generate the entire world up front. (Hopefully I'll explain all of that in a follow-up post).

    So I began looking at ways to make world generation more interesting. Here's what worked for us, your mileage may vary:

    Lots of items

    Given the retro art-style I didn't have a lot of scope to vary the base tiles for each biome. The colours of them vary, of course, but there's quite a bit of texture re-use. So instead, I try to bring the worlds to life with more variation in the items that occur naturally in each biome. For example: "grasslands", "warm forest" and "cold forest" biomes all have the same base tile (grass), but the items found varies greatly: "grasslands tend to quite bare, with lots of tall grass and plants, whereas the forest biomes contain lots of trees, mushrooms, plants, fallen trunks, etc.

    Generate more noise values

    I started with just three noise values: temperature, moisture, and elevation. I generate each of those for each cell, then map from those to biomes. Less than sea-level? Then it's 'ocean'. Moisture low and temperature high? Then it's 'desert', etc... This got us so far, but it didn't help with 'special' biomes such as the "void", "magma" and "sulfur fields". For these I generate extra noise values, and I let these special biomes override regular biomes, though there are some exceptions, such as "magma" biomes can only appear where it's hot.

    Apply transformations to noise values

    Noise functions tend to generate noise values that give cloud-like textures, with areas of low values and areas of low values all pretty uniform in shape and size. For the "mineral vein" biome I wanted to generate curved strips that sweep across the landscape in long arcs, so I calculate two noise values mv1 and mv2, then combine them like so: mv = 2 * (0.5 - abs(0.5 - mv1)) * mv2.

    Let special biomes influence regular biomes

    A cell gets the "mineral vein" biome if the mv value is above a threshold of 0.8. However, I also add a percentage of the mv value to the elevation value, meaning that the landscape around mineral veins is lifted up and they are surrounded by rocky, mountainous biomes. Also, this means that I sometimes see the same sweeping arc shaped pieces of land in other places, where the mv value isn't quite above the threshold.

    Vary climate more gradually

    Within the space of just 4 or 5 chunks (8 x 8 tiles) the temperature can range from very cold to very hot, giving a dramatic change in biomes. I also generate a 'base temperature' noise value that varies far less dramatically, changing only by at most 0.01 per chunk. By combining this base temperature with the local temperature, the climate varies gradually across the world, but there can still be localised hot and cold areas.

    Prevent special biomes close to the spawn point

    This feels a little artificial, but seems to work quite nicely. We don't allow special biomes to be generated too close to the world spawn point. I achieve this by applying a transform to each of the special noise values if the distance to the spawn point is less than the threshold for that biome type. This has a practical benefit: the player cannot spawn in or near a biome they aren't equipped to deal with early on in the game, but also it encourages/forces more exploration! :-D

    Thanks for reading

    Thanks for taking the time to read this mini-tutorial. It's based on my experiences of procedurally generating world, and I hope it's useful to you. I'm happy to answer questions here in the comments, or on Discord, and I'm happy to share bits of the source code too, if it's useful to you! :-)

    If you want to check out Little Martian's world generation implementation and judge for yourself how it performs, there's a free public demo available.

    submitted by /u/little-martian
    [link] [comments]

    I research gamedev topics and write video essays/tutorials about them! Today’s video covers the properties and methods of Unity’s Built-In Character Controller! With a solid understanding of this component, we can learn to properly implement movement for our characters! (Link to Video in comments)

    Posted: 21 Mar 2021 06:12 PM PDT

    C++ for Beginners

    Posted: 22 Mar 2021 04:17 AM PDT

    Hi!

    Considering a lot of newbies join here looking for a guide of where to start, I thought they could do with some guidelines. I will post a 5-episode series of one of the most popular programming resources used for making video games and posting them 1 per day! However, I don't know if that would be allowed in this sub, so I recommend joining r/outscal if this is something that you could make use of!
    Remember -

    • 5 Episodes
    • 40-90 minutes each
    • Free C++ resource!
    submitted by /u/haventworkedinawhile
    [link] [comments]

    Rapid decline of new players after every update on Google Play

    Posted: 22 Mar 2021 03:20 AM PDT

    So my team and I released our game about 4 months ago on Google Play and for the first 3 months we have been updating it about every other week.

    After a while, we have noticed that each time we release an update, we basically start from scratch in terms of new player acquisition.

    Then we didn't update it for a month and during that time we got 3 times as much players as in the first 3 months combined.

    Last week we've released another update and again... our playerbase plummeted down to only 5-10 new players per day (from ~140 per day).

    We expect this to increase every day like it did before, but I wanted to ask if anyone else had the similar experience and if it can somehow be avoided

    submitted by /u/Ragnato
    [link] [comments]

    I've used the event keyword in C# for a long time without really understanding what it does. It turns out it's a lot simpler than I imagined. Once you understand how function delegates work, it's just one tiny modification to get to events.

    Posted: 22 Mar 2021 09:41 AM PDT

    List to help people learn game development

    Posted: 22 Mar 2021 10:59 AM PDT

    Hi,

    Im creating a repository to help people learning game development, by listing good youtubers, tutorials, guides, etc.

    Fell free to help, if you want I can share the rep, or put your name in the credits.

    The link: https://github.com/Toscan0/Tutorials/blob/main/README.md

    submitted by /u/namuh00
    [link] [comments]

    Almighty Game Developers

    Posted: 22 Mar 2021 10:48 AM PDT

    Almighty established game developers, help me out.

    I am starting my journey in this game development career as a somewhat older young man (to my standard(28)). I say career because it is a career changer and I will be devoting my full time into this, although I have no skills yet. So! Skills I can learn, which I am doing right now. But! Meeting people. Quality people. That I can't learn. So here's the question.

    How and where do I meet quality people who gives 100% to this career? To be more detailed, where do I find these down-to-the-bone game developers? and how can I approach them?

    All answers are appreciated. I am a new novice beginner, but stuff like networking and building community is what I want to start as soon as possible. Despite this style of talking, I am actually very sincere about this. So don't think me as a fooool!

    Thanks.

    submitted by /u/Eternal_Probe
    [link] [comments]

    Questions for industry professionals.

    Posted: 22 Mar 2021 03:10 AM PDT

    If this is not allowed I am sorry it will be taken down.

    1. What has your career path been?

    2. What is your current role like? What about it makes you want to get up in the morning?

    3. What does an average week look like for you?

    4. What are your career aspirations?

    5. Are there any expectations you had about this career path that you have found differed from reality, in both a good or bad way?

    submitted by /u/AnonymousMousrr
    [link] [comments]

    Can anyone recommend me service providers who offer CERO Age Rating applications to non-Japanese studios?

    Posted: 22 Mar 2021 11:22 AM PDT

    Your help is appreciated. Thank you

    submitted by /u/iaskquestionssorry
    [link] [comments]

    Share fan-art during development?

    Posted: 22 Mar 2021 08:20 AM PDT

    Hi all,

    At the moment, me and 2 friends are creating our first game. We made some posts on social media to get some attention, which inspired some people to send us fan-art.
    Are we free to share these images (with consent from the fan artists) without any consequences?

    Eg: Fan artist makes a concept for an attack, a similar attack is in our game but not made public yet. Is it smart to share these fan-made-images that can relate to stuff in our finished game?

    Thanks, and have a nice day :)

    submitted by /u/Internal-Geologist-3
    [link] [comments]

    Making An In-Game Level Editor In Unity

    Posted: 22 Mar 2021 07:39 AM PDT

    Link to the orginal devlog

    For the past two weeks, we have been working almost entirely on our in-game level editor. Our game is comprised of obstacles with timed explosions that the player must weave their character through in order to avoid dying. One of the most important features in the game for us is the ability for players to create and upload their own maps to the steam workshop. Rat Race is based heavily around the Bounds type of map from StarCraft UMS game type. Within starcraft itself, it also came with the ability to create and share your own maps, likely keeping that community alive over the years with its many different map types.

    The goal for us is similar, not only provided an interesting set of included maps, but also the ability for players to give each other a level of replayability that an indie studio like us couldn't provide otherwise. So, here is how we have started to create our editor.

    First, let's dive into what our level format is. If you look below you will see we have a list of tiles, their positions, and tags for the start/end of a level or ob as we call it. Then you'll see the actual fire sequence. This tells our code which tiles to fire at which interval, with time in milliseconds. Also at the top, there is some metadata that we use to keep track of things like who made the map, which version it is, etc. Also at the end starts the layout data for the walls which we cut off for brevities sake.

    Level json 1

    Level json 2

    Now up until recently, we had a pseudo-level editor working. We essentially would place and organize the tiles on a grid in the game view in unity and save/load with hotkeys. To do the fire sequencing data we would switch back to a scene view and edit object data at runtime. This process could be very tedious, especially for more complicated levels. But, it worked really well for the final assembly of our Level Designers levels. The whole reason we needed this final assembly step is that we decided very early on that our Level Designer could initially make her levels in a program called Boundmaker that saved files in an XML format. This XML file was filled with a lot of stuff we simply did not need for our game at this point. Which is fair because it was designed to integrate with the StarCraft map editor, not our game.

    To speed this level design process up we created the Ob Editor. A robust tool with much of the same functionality of Boundmaker that works inside Unity builds. Here is a screenshot of the Ob Editor with a level open. Keep in mind the UI art is basically nonexistent at this point.

    Level editor in action

    The buttons along the bottom of the screen are the buttons for placing various tiles, playing the level you just made, save/loading the ob, and some useful functions in level editing. The top right shows you some information about which tile you selected, and editing the start and end of the level. Now the real crazy stuff is on the left with editing the firing sequence in the level. Clicking the Ob Step button hides this panel.

    The buttons along the top allow navigation through the fire sequence with the ability to add or remove a step. The test fire button lets you see the explosions taking place. Time ms is how long the sequence will wait before firing the tiles selected to explode. Tiles show you which ones are firing in that sequence. Finally, adding the selected tile, well adds whatever firing tile you selected to the current sequence. All in all the trickiest parts of all of this included creating text fields with delete buttons dynamically whenever a tile is added or upon switching a step in the sequence.

    All in all, we feel like this will be a useful tool to not only our team but players in the future.

    submitted by /u/DontActDrunk
    [link] [comments]

    I'm looking for an engine suggestion to use in a classic Resident Evil style game

    Posted: 22 Mar 2021 08:41 AM PDT

    I have an idea I want to work on that is essentially a mid to late 1900's era supernatural investigation type game where you use clues to identify what kind of abomination is lurking, be it beast or ghoul, and use the appropriate tools to get rid of the creature. My vision for this game is to have it strongly reminisce of those great resident evil games with tank controls and pre rendered backgrounds for players to explore while achieving this goal, and to have it much more expensive. No single story line, just a bunch of disjointed cases to solve over a mild variety of locations. It would be nice too if there's an easy way to implement user generated content.

    I'm learning unity and rpg maker. Rpg maker obviously obviously isn't the choice for this project, but I'm not sure about unity for this. Any suggestion would be much appreciated

    submitted by /u/Liedvogel
    [link] [comments]

    Question about Verlet rope's distance constraint

    Posted: 22 Mar 2021 09:44 AM PDT

    I'm having difficulties understanding a key constraint of Verlet ropes, to my understanding the distance constraint wants each point for each points pair to move close to each other or away from each other depending on the distance between them, my question is why should this constraint be applied to both the points per pair and not to just one point per pair?

    Verlet rope's dinstance constraint code may look something like this:

    for each point in the rope do: if the distance between the current point and the next point is too long then: move the current point and the next point towards the center between them; else: move the current point and the next point away from the center between them; 

    While in my mind this code looks more correct:

    for each point in the rope do: if the distance between the current point and the next point is too long then: move the next point towards the current point; else: move the next point away from the current point; 

    Without applying velocity both the codes have the same behaviour, when applying velocity the first code works fine but the latter makes the rope swing around like crazy. It's probably just me who didn't enter the Verlet rope physics mindset yet.

    Do you know why each point needs to be pulled both the directions?

    submitted by /u/my_engine
    [link] [comments]

    Question on architecture of online strategy games

    Posted: 22 Mar 2021 06:18 AM PDT

    Hi

    Curious about architecture of "online strategy games". An example being something like Evony or maybe Forge of Empires (only heard of that one). I mostly work with web apps, and am still relatively junior. So this might be the case of everything being a nail, but I was thinking about how you might set up some webserver with a bunch of endpoints that sends JSON calculations (eg; battle results, confirmation of transaction, result of a random roll) and dynamic data (eg. Character stats + names, all loaded at startup). Presumably it also does all the CRUDdy stuff and functions kind of like a webapp in that regard. I'm imagining the frontend would be something like a Unity mobile app?

    But then I thought this might be relatively inefficient compared to something that sends binary data over UDP, like in a traditional game server. Maybe this wouldn't actually matter for these slower types of games where things are typically in terms of minutes + turns, but I don't really know enough to have a good intuition here.

    If anyone has any experience or insight, I would love to have some further information on how things like these are usually architected properly. I can't find a lot of discussion

    submitted by /u/CheekiBreekiIvDamke
    [link] [comments]

    Generate 2D dungeon using only unaltered prefabs

    Posted: 22 Mar 2021 11:16 AM PDT

    Hello guys,

    I am working on a small project to learn some coding. Basically I would like to generate a dungeon that uses a finite number of prefabs rooms (with junctions that cannot be altered). This comes from the fact that I want to generate dungeons that could also be built using a physical board game and its tiles (Space Hulk).

    The different iterations I tried were :

    • One "root" prefab that the other prefabs connect to and branch away. Sadly it does not create loops, which is a feature I aim for.
    • I gave WaveFunctionCollapse a shot, but my tiles are differently sized, and I am having trouble to adapt the code. I am still trying, because it seems to be so powerful if I manage to master it.
    • Having a couple of prefabs randomly placed as "nodes" and trying to use the remaining prefabs to connect the nodes together. The constraints are hard to solve for me.

    So are you aware of a game or an algorithm that uses differently sized prefabs unaltered and creates dungeons (with loops, and connected path etc)?

    Thanks !

    submitted by /u/VictorPapanek
    [link] [comments]

    How would you implement Fallout-style "Perks" in a flexible, straightforward way?

    Posted: 22 Mar 2021 02:14 AM PDT

    Let's say I'm making a role-playing game, and I want a character to have context-specific bonuses - like their sword has a double chance of critical-hitting if the opponent is a Kobold, or they never have a less-than 50% chance of hitting an opponent with an attack, or, as per Fallout, they have a bonus to the success of their speech rolls in conversation with characters of a certain gender.

    My current solution is to have these bonuses as an object with an enum for every type of value, a delegate that takes the unit and the enemy unit and returns a boolean for whether the bonus applies, and a few more ints and enums for what the bonus (or penalty) is, whether it's an absolute value or a percentage, whether it's a bonus, a minimum, a maximum, etc. Making the bonus involves writing the function which goes in the delegate, which is flexible but involves writing code. The combat controller has an event system for applying these bonuses when the relevant type of value comes up - just after weapon skill and weapon accuracy come together to form hit percentage, for instance, it checks for "Hit Percentage" bonuses. There's definitely room for improvement - for instance, by not having a solution for the check conditions that would be achievable in the Unity inspector, I'm limiting myself to working with designers who can code.

    This is the first time I've thought about or implemented a system like this, so I'm curious for other perspectives. Do you have, or know of, any alternative ideas for how you would tackle a feature like this?

    submitted by /u/PopPunkAndPizza
    [link] [comments]

    Photorealistic Vintage Television | Blender intermediate tutorial | Part...

    Posted: 22 Mar 2021 10:25 AM PDT

    An affordable way to play test your game with reddit.

    Posted: 22 Mar 2021 09:51 AM PDT

    Designing a Single Character Turn Based RPG Combat System

    Posted: 22 Mar 2021 02:08 AM PDT

    So I am in the process of prototyping a single character turn based 2D RPG combat system. I am looking for a game that has a 2D Zelda like world with the biggest difference being that everything is turn based (both exploration and combat). Most of the turn based games that I seen are focused on party based and the only recent game I can find like is Stone Shard (which is in early access).

    Does anyone know of good turn based rpg (at least for the combat) that focus on a single controllable character or maybe rogue-like that have an in-depth combat system (since they usually focus on a single character and are turn based)? Also, if anyone has an generally advice regarding this kind of system, I would like to here that too.

    submitted by /u/ryanzec
    [link] [comments]

    Shameless plug! Free accessibility conference GAconf Europe

    Posted: 22 Mar 2021 09:29 AM PDT

    Free conference on game accessibility! Two days of talks and networking on making games accessible to disabled gamers, on April 5th-6th.

    Speakers include Raskal, Capgame. King, Xbox, Remedy, PlayStation, Flying Oak, Ubisoft, Scope, and a whole bunch of disabled gamers & advocates. Topics include low vision approaches to wayfinding, applying usability techniques to accessibility, case studies of the accessibility work on Watchdogs Legions, Control, Candy Crush and Scourgebringer, designing for aphantasia, life as a disabled developer, agile accessibility as a solo indie dev, and the new Xbox accessibility guidelines and testing service.

    Schedule & registration are at http://www.gaconf.com

    submitted by /u/ianhamilton__
    [link] [comments]

    Video game development requires skill, patience, and sometimes dumb luck. Here are 6 instances of that dumb luck changing the gaming landscape forever!

    Posted: 22 Mar 2021 05:41 AM PDT

    How do you figure out the age rating for your game?

    Posted: 22 Mar 2021 12:08 PM PDT

    I'm trying to determine if my game should be rated T or M, as it has coarse language and suggestive themes. I've tried looking on Google, but couldn't find any definitive answers, only definitions.

    Does anyone know how to figure out what your game's age rating is?

    submitted by /u/SugarSlipDev
    [link] [comments]

    If you don't know why MonoBehaviour is in every script in Unity, see this

    Posted: 21 Mar 2021 07:09 PM PDT

    Should I accept game design jobs on mobile if my main goal is to work on PC/Console games?

    Posted: 22 Mar 2021 11:46 AM PDT

    Hi fellow game developers. I'm a little lost. I've been working as the designer of a mobile game company for some time, and new recruiters are getting in contact with me as I gain experience. The problem is that all offers are from the mobile game industry (wich makes sense).
    Should I accept these offers or should I focus on finding a job at a PC/Console game company? Will these jobs help my portfolio when it comes to getting hired for PC/Console jobs later on?

    submitted by /u/HeronSouki
    [link] [comments]

    No comments:

    Post a Comment