Thursday, 12 December 2013

Small progress

Nothing major changed from the last build.  I added some functionality under the hood and made adjustments here and there.  I'm trying to implement a Shufflebag system for my random values but it's really not working at the moment; I guess that's my big hurdle to overcome this week.

There's also room for improvement to optimize the generation process; some of the dungeons get so large that it can take the computer a very, very long time to complete a task that should be straight forward.  At least I know WHERE to look in order to make the adjustments.

In the following screenshots, you'll see some progress in the different lighting variations, new art assets as well as an updated look at how dungeons are laid out:

Thursday, 28 November 2013

New art! It looks so much better now!

You know, its been over a month and, it hasn't been until this point that I look back and realize that I've made much more progress than I originally thought since my last blog update...  otherwise, I would've shown stuff sooner.

It's getting late so I won't go and fetch screenshots of all the things I'm going to list here but I'll make sure that I'll showcase some of these elements in future updates.

Basically, what I did for the past month is I took apart the algorithm that generated the various shapes of the terrain, re-wrote some of the code, implemented the new art assets, implemented lighting and atmosphere variety.  The reasoning behind removing the shape generating algorithm was primarily because I wanted to re-write the logic in a different way and I also wanted to focus on replacing all of the old art... which required a lot of debugging.

Everything is coming together really nicely.  The different sets of lighting really gives my environments a mood and the new art makes it look more organic.  This was very time consuming but it was worth it.

Tuesday, 15 October 2013

Room types & outdoor areas

Lately, a lot of thought has been put into categorizing types of rooms and possible shapes for these rooms.

I also did a quick mockup today of how outdoor areas would be generated.  There's a lot of adjustments needed before I'm satisfied with the generated results, mainly the size and environment colours, but adding a sun already helps.  Makes me think I should really consider adding a time/day.

Because I did a major rewrite on how rooms are being generated, I had to make slight adjustments to the logic in which ramps spawn; so I spent some time doing that.  The last screenshot shows (it's a bit dark, mind you) how ramps can easily get out of control!  There are everywhere!

Thursday, 10 October 2013

It's starting to take SHAPE! HA!

I didn't post until now because there was a lot of "thinking things through" and a lot less "doing" going on.  It's hard to show pictures of mere (and incomplete) ideas unless you're showing concept art and I don't want to reveal any of that just yet... because, yes, I have been doing some concept art.  Besides, the infrastructure of the game hasn't completely solidified yet and that's where most of the thinking has been about.

Last month, I mentioned that I wanted to focus a bit more on the 3D Art "by the end of the month" and, as far as that is concerned, "organic" was the recurring theme.  The current 3D models that you see in the screenshots so far have been redone because everything looked too much like you're surrounded by a bunch of boxes.  So there was a lot of brainstorming to see if something couldn't be done to make it look more natural.  The basic ideas are the same, the execution of the art is different and more akin to what the final game will use both in looks and how it's modeled (polygon count, etc).

The new 3D assets aren't in the build just yet because they're far from being completed but the results I'm seeing so far are very promising and I can't wait too put them in.  For now, I'm content on using the old assets as my basic construction tool for the programming side.

The programming side has received a major change.  Most of the code has been re-written (again) so that it's organized in such a way that I can actually start building the game as opposed to just a mere "random cave generator".  There was a lot of planning involved in trying to figure out how to structure the code and, as far as I'm concerned, I think it's done now... it might be more efficient too.

Lastly, a lot of thought has been put into how rooms are being generated.  They started as square rooms, then they evolved into more uniquely shaped yet still very square-like but now I got it all setup where I can build even more unique shapes... with more 3D-ness involved.

The cool part is that the shapes can now be based on the type of dungeon I want.  Man-made structures such as crypts, keeps or shops shouldn't be too organic while prairies, forests and caves should have varied terrain elevations, etc.

These are very exciting times!

Tuesday, 17 September 2013

More bug fixes and more tweaks on ramps/hallways...  pretty much all of the known bugs are eliminated but there are still a few rules I want to add in the algorithm.

I also experimented on lighting to make it more interesting.  While I'm doing everything I can to not make it look like Minecraft (which, for a project like mine, would be too easy), I also don't want it to be  too dim and gray.  I'm liking what I'm seeing so far.

Running around and looking at the results of the dungeon being generated is really inspiring for new gameplay ideas.  Who knows, I might figure out how to implement them later on so I'm taking notes.

Monday, 16 September 2013

Bug fixes "East, always to the East!" - Marius (Diablo2)

I removed a few major bugs today; they were mostly typos (two bugs related to the direction "east"; odd considering I'm just adding numbers on the X axis but whatever) so I'm glad the logic in the programming is working nicely.

Screenshot bellow showcase the overall layout of two generated dungeons:

As I'm running around the dungeon(s) to help me out debug the code, I'm glad to report that I've gotten lost plenty of times (often needing to look at the overview in order for me to get my bearings).  It's interesting to note that so far it looks a lot like maps to Diablo III which isn't necessarily a bad thing but it's still not enough RANDOM for my liking.  I'm getting close, though.  A few tweaks in how the logic for the hallways work and I should be golden.

I still haven't tweaked my algorithm to change how rooms are generated.  It's not bad the way it is but I want more variety.  I got a few ideas on how to approach this so, further progress throughout the week should yield interesting results.

The really cool thing right now is that the bulk of the program is complete; now it's just a matter of tweaking to get more desired results.

Yep!  I'm pretty confident that I'll be able to focus a bit more on the 3D Art department by the end of the month.

Friday, 13 September 2013

Rewrite #3

I practically rewrote the entire thing from scratch again.  This is, what?  The third time now?  It's all good, though.  As I'm seeing the dungeon generator at work, it gives me new ideas on behaviours/algorithms, not to mention it allows me to organize and clean up the code tremendously.

The way the code generates the shape of the room(s) is much more isolated which allows for greater flexibility without messing up the rest.  I'm also applying this to the hallways that are connecting the rooms and its surprising to see how much more interesting it makes the overall experience.  Without this iterative process, I'd still be generating very basic square rooms; it looks much more organic now (relatively speaking, of course).

Another thing I looked into was the lighting.  I changed some parameter that was causing the light to not do a proper falloff on the walls and ceiling.  Made it all look like Playstation 1 era graphics.

There's no point in showing screenshots yet as the end result looks practically identical since last time I posted.

So what's on my ToDo list now?

  • Adding another algorithm to generate a room with a completely different shape.
  • See if I can't generate a dungeon that could go downwards or have rooms that have multiple floors.
I'm trying to think about other things I'd want to put in but I think, at this point, once I'm done with my ToDo list I'll just add more art assets to make everything feel more organic.

Tuesday, 10 September 2013

It's been a month, already!

I've been planning this thing for years but I've only started working on the prototype 30 days ago.  It's just one of those things I was putting aside because I wasn't confident enough to do it on my own and there were a few (important) things I couldn't figure out yet.  Thankfully, I have some support and it has helped me immensely!

Daring Legends is a pretty ambitious video game project and the main focus is on procedural generated content.  What I got so far (as a prototype) is a fully functional 3D rendered dungeon generator.

Today was a pretty long evening night as I was debugging the code that generated ramps on elevated terrain and, more importantly, I was struggling to get decent pit generator within rooms and that proved to be more difficult than it should have been.  I'll have to come back and clean that code because that particular section is a nightmare to look at in its current state.

What I've got so far is the following:

  1. Dynamically scalable room generator with various shapes (placeholder tiles) and height.
  2. Randomly generated lights (placeholders for environment torches, moonlight, etc).
  3. Procedurally generated hallways with ramps.
  4. Randomly generated multi-leveled platforms.
  5. Dynamically placing giant green pills (those are programmer art for monsters such as goblins).

Here are the latest screenshots of the current prototype.  The images are all part of the same 10-room generated dungeon viewed from different rooms/angles: