I'm liking these a lot! They all have personality which is hard to nail.Hey everyone, thought I'd drop in a few gifs of some characters and enemies we've been working on for our new game!
I'm liking these a lot! They all have personality which is hard to nail.Hey everyone, thought I'd drop in a few gifs of some characters and enemies we've been working on for our new game!
Hey everyone, thought I'd drop in a few gifs of some characters and enemies we've been working on for our new game!
I mean... I don't want to tell you how you 'should' be making your game, because that is anathema to the point of being an indie in the first place, but to me that video doesn't even look like a physics based interaction - I was imagining something like a buoyancy simulation where landing exerts a downwards force that then levels off back to equilibrium after a few 'bounces'.
To my eyes, that same effect could be achieved just with an up/down looping animation, no physics required.
For the type of game it looks like you're making, I'd be steering clear of most of Unitys built in physics simulation systems entirely tbh, but again, this is not a criticism of how you want to do things.
Hey everyone, thought I'd drop in a few gifs of some characters and enemies we've been working on for our new game!
I'm willing to take any criticism, but is there a specific reason for this? I've noticed Unity brings quite nice physics interactions and in many cases everything works "out of the box". I assume it's also more efficient compared to anything similar I'd want to code.
Indeed, any procedural generation that relies in generating randomly and then discarding can become quite slow, especially in worst case scenarios. I guess it's obvious (especially since you're quite far ahead of me in this), but whenever possible, it's better to generate stuff that's always valid.
I myself use a lot of cheats and tricks myself to avoid discarding at all in my map generation. For example, I want to have cities with roads between them; these roads in turn have some restrictions (e.g. a road crossing a body of water becomes a bridge, and so it should be straight, with no turns). If I were to put down the cities first, then try to interconnect them with roads, it may be impossible in some maps, forcing to start over. So what I do is put a few cities close to the edge to the map, generate several winding roads that reach the other side of the map, and finally place down the rest of the cities on road tiles.
I'm thinking I could follow your lead and make a gif with a few generated map layouts myself; they're not nearly as varied or complex as your dungeon rooms, but I wonder how that'd look. I'll do it tomorrow if I remember.
Hey everyone, thought I'd drop in a few gifs of some characters and enemies we've been working on for our new game!
Unitys physics system (which IIRC is Nvidias PhysX) is performant, but its still a physics system, which is overkill for a game that doesn't need actual, you know, physics,
and its likely going to throw up weird edge cases in simulations long term, like things getting stuck on things they shouldn't be able to get stuck on, or things firing off at infinite velocities and all the other issues that can crop up using prebuilt physics solutions.
For a 2D platformer style with a retro aesthetic, raycasts + collisions is going to be enough to handle entity interactions, and will 'feel' like a typical 8/16bit platformer, because thats how they did things.
For something like a Little Big Planet or a Rochard where the physicality of interactions having believable physics is fundamental gameplay, thats a completely different matter, obviously.
First of all, don't give me too much credit =) I am mostly just winging it here.
In general, though, I'd say there's room for a bit of both. Always generating something valid has the obvious upside of faster generation speed, but it has downsides too:
- If there are a lot of rules, writing code that always obeys them may be impractically complicated compared to judging after the fact and discarding.
- To make the rules practical, they may have to be overly restrictive, reducing the variety of layouts created (essentially "pre-discarding" a lot of good ones).
In my case I'm quite laden down with rules, due to (a) the door locations being set in advance by the dungeon layout, (b) wanting to have rooms with two floor levels, and (c) the unusual wall perspective that makes a lot of floor locations invalid, but makes it hard to tell which ones without trying them out.
After much hand-wringing about how to do this more efficiently, I ended up with the current version, which is less about "getting it right first time" and more about "failing quickly and gracefully".
The "quickly" part is important, because the earlier in the process it can fail, the less time is wasted on an invalid layout. There's a lot of room for optimisation there. The "gracefully" part is also important, because failure should be invisible to the player, and (just as importantly) seeing how it fails tells me a lot about how I can make it fail less/sooner.
Which is not to say it can't be done in a better way... but right now I don't think the speed is bad enough for a rethink. Plus, it's basically functional, which is enough to be moving on with. The whole process is pretty modular, so if I really decide I hate it, I can still replace this step even after working on everything else.
For comparison, the other steps I've worked on so far:
1. Dungeon layout generated as a node graph: This is pretty much a "right first time" thing where it creates the graph based on very strict rules. I'm not totally happy with the current results, but I think I can keep this approach and tweak it to work better.
2. Node graph converted into a 3D dungeon layout: This is based on trial and error. It experiments with room positions one at a time, and eventually throws out the layout and restarts if it realises there's no way to make all the paths loop back around as required by the node graph. I went this route because otherwise I would have to learn how to calculate ideal layouts for node graphs in 3D space, which is seriously complicated maths (like, I googled it and the results were scientific papers I could barely understand). Anyway, it runs quickly enough this way that I don't see a need to go that far =)
In the past I also experimented with a genetic algorithm to cover these two, which is perhaps even further away from "right first time". I didn't have much success, but it was fascinating to play about with!
This is pretty ingenious, and I spent a while today musing over whether I could take a similar approach for my rooms. The stickler, though, is that I'm committed to this top-down approach where the door locations are already set in stone by the dungeon layout. This means there's not so much flexibility to do something like that. I will keep thinking about it, though!
Don't worry about spamming the thread anyone. (unless, you know, it's actual spam. Like only posting to copy-paste a press release and then vanishing.)
Aren't we all, hahah! I think game development is one of these things where everyone feels like they're the only ones playing by ear and that everyone else has a detailed plan and knows perfectly well what they're doing from start to end. And then you watch a candid interview with the makers of FTL and Into the Breach, two of the most successful indie games ever, and how they were pretty much blindly fumbling through prototypes for both games, throwing stuff to the wall and seeing what stuck; and even some early design decisions that you think "how could you possibly consider that?!" (and realize it's only obvious with the benefit of hindsight from the completed product). Quite a shock to learn your game dev idols are as human and non-omniscient as yourself!
You make a truly great point that making rules for what is allowed may generate far less combinations (and therefore less variety) than making rules for what isn't allowed. So much so that I'm going to rethink some of my own map generation and see if I could make it more varied with discard-based rules.
Really, pushing for efficiency is mostly the perfectionists in us speaking; it's a one-time thing followed by a ton of gameplay, surely the player can wait a few seconds. :)
... it's "a few seconds", right? How much time are we talking to generate a full dungeon?
Oooh, this sounds super fun. I've read about genetic algorithms but never implemented one: procedural generation of dungeons sounds like such a fascinating application.
It might come more handy for things you need to make in the future, than what you've already made. I have an intuition it's also probably better for things that are more open with less strict structure, like paths and secrets in the overworld.
Agh, I forgot about this. I'll do it tomorrow, I just added an item to my to-do list so that I don't forget again.
Reassuring indeed! I guess this is why I'm a big fan of being candid about this stuff in general... Expecting everything to be perfect right out of the gate (both the game and my skills in making it) is a bad habit, so it's good to have it pleasantly shot down once in a while :)
I haven't properly combined the steps together yet, but as of right now it's looking like 1-2 seconds to generate the dungeon layout and all the included rooms. I'm worried this will creep up when it comes to adding in puzzles, so I do want to speed up this step as much as I can.
In the long term, the goal is for one seed to generate an overworld and multiple dungeons at the start of the game. The jury's still out on whether that will be too much for one loading screen, but if it is, I have some workarounds in mind already.
Yep! I'd like to play about with it some more someday. There are a lot of challenges, like:
- how best to represent the randomly generated candidates (e.g. as a string of bits)
- how best to convert that into testable game content (e.g. a dungeon layout)
- how best to judge the fitness of each candidate (to promote the survival of the best ones)
- how best to breed the candidates for the next generation
- how many generations is optimal
After experimenting for a couple of weeks, my results were terrible... but I'll chalk that up to a) very specific requirements of these dungeons that don't lend themselves to being purely randomly generated, and b) not finding the best approach to any or all of the above points.
Like, one requirement for my dungeons is that there aren't any wasted rooms. Some paths are optional, but there's always some kind of item at the end of them, not just a dead end. So I included points for this as part of the fitness function... but no matter what I did, it never succeeded in finding solutions that fully met this requirement.
Still, I find the concept fascinating. Maybe I'll find a way to use it properly someday!
Could be! I'll definitely keep it in mind.
No pressure! But I'll look forward to it ^^
Thanks!I'm liking these a lot! They all have personality which is hard to nail.
Thanks, the game is called Rogue Heroes: Ruins of Tasos. It's basically a top-down Zelda style action RPG with some roguelike elements (the games dungeons regenerate with each run, you use gems that you've collected during the run to upgrade your character, equipment and village) and up to 4 player co-op. If you want you can check out some more stuff about it on our Kickstarter page here:https://www.kickstarter.com/projects/1983471571/rogue-heroes-ruins-of-tasos
Thanks, that's a good point for sure. I need to get back to some of these and finish up/polish them up a bit more. Sometimes the fun of getting them animated and into the game gets me a bit side tracked!These are lovely! If I had to make any criticism, is that a bit more of antialiasing would make them look even better. You've already applied it in some cases, but its lack is especially noticeable in the edges of the lighter areas. See what difference a few pixels makes:
Thanks, glad you dig them!Allow me to be another voice saying that these are absolutely beautiful!
Thanks!
Thanks, the game is called Rogue Heroes: Ruins of Tasos. It's basically a top-down Zelda style action RPG with some roguelike elements (the games dungeons regenerate with each run, you use gems that you've collected during the run to upgrade your character, equipment and village) and up to 4 player co-op. If you want you can check out some more stuff about it on our Kickstarter page here:https://www.kickstarter.com/projects/1983471571/rogue-heroes-ruins-of-tasos
... holy shit, this looks absolutely incredible! And also quite obviously, it shows a lot of overlap with what Brushguy Woodthreep is doing. Have you guys been checking out his work in this thread? It's interesting because if I understand your kickstarter correctly, your game uses handcrafted rooms connected in a flat layout, while his work generates rooms and multi-floor dungeons procedurally. Perhaps there might be value in some collaboration?
I've run out of words to praise your work, but this is as exceedinly beautiful as ever, damn.
The only thing that surprised me a bit is that when doing the "pet" animation, she's quite serious, while I'd expect her to smile. :)
Wow this is a really cool looking game. I love various aspects of it, such as the multiplayer and town building. There was a moment in the trailer where you walk into a building, and it lists objectives on the side. It looks like a smart way of summarising quests for people on the UI. Regardless, this looks like a promising game and I hope you do well with it!Thanks!
Thanks, the game is called Rogue Heroes: Ruins of Tasos. It's basically a top-down Zelda style action RPG with some roguelike elements (the games dungeons regenerate with each run, you use gems that you've collected during the run to upgrade your character, equipment and village) and up to 4 player co-op. If you want you can check out some more stuff about it on our Kickstarter page here:https://www.kickstarter.com/projects/1983471571/rogue-heroes-ruins-of-tasos
Thanks, that's a good point for sure. I need to get back to some of these and finish up/polish them up a bit more. Sometimes the fun of getting them animated and into the game gets me a bit side tracked!
Thanks, glad you dig them!
Actually it seems like a Mona Lisa type smile, which is pretty cool! I guess I expected her to grin like I do with my cats. :D
I don't post much in here, but here's a quick look at the menu I'm trying to work on for a more Resident Evil-like horror game. Apologies for the dreadful recording quality and tiny size.
Work on The Godbeast is in the final stretch, but also going extremely slowly due to my lack of motivation (and skill) in implementing sound effects and music.
Yeah, that's mine. Copyright infringement is not possible as there is nothing being copied from those unrelated action figures. Trademark infringement should not be the case either, as I don't seen anything registered and it's a different type of product with minimal/zero risk of consumer confusion.I google the name of your game and I see a collection of Action Figures with this name.
Maybe you need to check for Copyright?
Also is this related with this game?
https://forums.tigsource.com/index.php?topic=49756.0
Yeah, that's mine. Copyright infringement is not possible as there is nothing being copied from those unrelated action figures. Trademark infringement should not be the case either, as I don't seen anything registered and it's a different type of product with minimal/zero risk of consumer confusion.
Actually I came back to the thread to post it (who needs to sleep?). :)
Not that much variety since I only have three types of terrain (grass, mountains and water), but with a few more like desert, ice and lava it could be quite varied, especially if I only use a handful of terrain types per world, as I intend.
The individual maps, in case the above is a bit too fast:
https://imgur.com/a/SxuseDV
Generation rules:
- For this specific map, it generates either a Supertank or a Shield Generator (those are the bosses), one or two tiles away from the East edge of the map.
- From there it shoots two roads to the West that must end on the West edge of the map, and a river with the same rules (also the same to the East, but these are much shorter, obviously). Where you see roads joining and diverging, there's actually two roads overlapping. :)
- When roads cross water, they become bridges, and they won't turn until they reach the other side, or until they reach the edge of the map.
- Finally, it generates either two cities (on road tiles), two battleships (on sea or river tiles), or one of each.
Notes:
- Successive maps are larger and have more of everything: they're larger, more stages, more bosses, more roads, etc.
- The tiles are not square, and are designed to look good on their own, overlapping themselves, or overlapping other terrain. The jagged effect on the map's edges is just how the tile borders look.
https://www.kickstarter.com/projects/1983471571/rogue-heroes-ruins-of-tasosThanks, the game is called Rogue Heroes: Ruins of Tasos. It's basically a top-down Zelda style action RPG with some roguelike elements (the games dungeons regenerate with each run, you use gems that you've collected during the run to upgrade your character, equipment and village) and up to 4 player co-op. If you want you can check out some more stuff about it on our Kickstarter page here:https://www.kickstarter.com/projects/1983471571/rogue-heroes-ruins-of-tasos
... holy shit, this looks absolutely incredible! And also quite obviously, it shows a lot of overlap with what Brushguy Woodthreep is doing. Have you guys been checking out his work in this thread? It's interesting because if I understand your kickstarter correctly, your game uses handcrafted rooms connected in a flat layout, while his work generates rooms and multi-floor dungeons procedurally. Perhaps there might be value in some collaboration?
I went back and made a slight tweak to the dungeon layout step in preparation for linking it up to the room layouts... In the process, I somehow made it significantly slower for reasons I can't fathom. If anything, this change should make it easier (and thus quicker) to find valid dungeon layouts.
I suspect it's probably not quite doing what I intended, but debugging is haaaarrrrddd...
Looks good - I love the way the roads intersect and cross over, and the bridges on the water are a great touch!
Visually, I do wonder if the colours are a little muted and smaey for an overworld. Adding more colourful terrain types will definitely help, but within these ones, the mountains look a little oppressive maybe. They're very bold and high-contrast while also being quite a dark shade.
I was going to compliment you on the border effect on the edges of the map, but it's even niftier that it's part of the tile shape. That's a great way of making the tiles overlap in a natural way. Looking more closely at the gif, I can see how the rivers are all curly, and all of the edges lay over each other naturally. Very nice.
Let's not go overboard! They have a team and a whole project that's nearly finished, and all I have right now is an early work-in-progress experiment in doing something their Kickstarter page says they explicitly decided not to do (for perfectly good reasons).
Their project is obviously relevant to my interests, but they don't need my help =)
Ooh I'm digging the visual direction you're heading towards.
I see your demo is up on Steam. I'm gonna check it out :)
At this point, source control's a must for pretty much anything I spend more than a few hours on, even if there are no long-term plans. It's so much less stressful knowing you can't really ever TOTALLY mess something up.Unrelated to all else... I had a scary incident today where I very almost lost a bunch of work, and this finally prompted to me to set up source control for my project. I feel like I can breathe a bit easier now, haha...
My work cycle pretty much assumes source control, I revert like thrice on average for each commit. By the way, anyone working with Unity, remember to set it to save your assets, scenes and such as text, otherwise you're fucked when merging anything (or, hell, even diffing to see what's changed).
Also, BitBucket offers free private Git repositories for anyone interested, that's where I have mine set up.
Anyhow, I just spent an embarrassing amount of time reworking my mountains map sprite as per Brushguy Woodthreep 's suggestion. It's incredible how much time one can spend on such a small sprite, but of course the constraints for it to work correctly are pretty crazy (must look good by itself, next to itself in any pattern, and next to any other tile). Old and new:
At this point, source control's a must for pretty much anything I spend more than a few hours on, even if there are no long-term plans. It's so much less stressful knowing you can't really ever TOTALLY mess something up.
My work cycle pretty much assumes source control, I revert like thrice on average for each commit. By the way, anyone working with Unity, remember to set it to save your assets, scenes and such as text, otherwise you're fucked when merging anything (or, hell, even diffing to see what's changed).
Anyhow, I just spent an embarrassing amount of time reworking my mountains map sprite as per Brushguy Woodthreep 's suggestion. It's incredible how much time one can spend on such a small sprite, but of course the constraints for it to work correctly are pretty crazy (must look good by itself, next to itself in any pattern, and next to any other tile). Old and new:
Yeah, I'm feeling a bit silly for not doing it sooner :) but it's one more thing to learn.
I'm super glad for this advice, since I know almost nothing about this stuff... although on the plus side, it seems Unity uses the text setting by default:
https://docs.unity3d.com/Manual/class-EditorManager.html
At a glance, that's a huge improvement!! Would love to see it in context too.
They must have changed it recently (in the past year), because I'm almost sure I had them as binary by default when I created mine (with Unity 5.4). About time they changed it, too; there's zero reason to use binaries in this day and age, the space saved is not worth the lack of transparency.
Interestingly, if those are the defaults, it would seem Meta Files are now hidden by default, while I'm also almost sure they were set as visible in my project without me doing anything.
https://answers.unity.com/questions...5.1879148902.1526156635-2121534859.1513562726
Apparently they should be set them as visible for source control to work correctly; it's kind of hilarious that they'd fix one option's default for source control and then mess up another. Frankly it's incredible that hidden metas are an option at all, let alone the default; wouldn't that completely mess up the object relationships upon checkout?
I'm on 2017.3 (from when I restarted the project) and I didn't have to change the setting, so it could indeed be a change from the past year or so!
For what it's worth, even with the meta files set to hidden, they seem to have all been committed along with the other files. I changed the setting anyway just to be on the safe side!
Wow, that is MUCH better! It's gone from heavy and dark to light and world-mappy. Impressive work!
Now that I see more clear the main character, did you use as placeholder the hero from Hyper Light Drifter ?
Unrelated to all else... I had a scary incident today where I very almost lost a bunch of work, and this finally prompted to me to set up source control for my project. I feel like I can breathe a bit easier now, haha...
What are you using for source control?
I was using WinCVS for years and switched to Github in March. I found git to be tough to learn at first, but I'm really starting to appreciate the flexibility and branching of it.
I use Subversion myself, and I kinda disagree about Git strictly being better than other options. Git's popularity has a lot to do with Github. If it had been Hubcurial or something else instead, many people would be using a different version control system.Version control systems seem to be one of the few pieces of software where there's an actual hierarchy of "this is strictly better than this", and the difference is huge. There's really no reason to use anything else than Git (or something similar, like Mercurial I guess, although I've never used it myself) if you're starting a new project from scratch.