Hilvon

LD 38

A newbie progress blog.

My second game for LD... And my first to actually be published in time... Yes, I know that I probably got all this "publishing" process wrong, but... come on. That was my first time figuring it out and it was at the end of a 2 day rush. My brain was an utter mess at that point. I even couldn't figure out the markdown for the publishing page and had to fix it next morning. :sleeping:

Anyway the game, and development process. A few tricks that I figured out for myself:

1) Probably a good idea to set up the repository for source code at the beginning of the process. Would help the publishing a little bit, and keep yourself organized and NOT to lose a couple of hours worth of work when your PC crashes while trying to bake a massive normal map.

2) There are still things I have to learn about the normal maps. They don't exactly work the way I expected them to. Have a few ideas how to work it all out, but those might end up not working anyway. Still had to ditch using normal maps for this game and as a result - Graphics suck. But better to publish with sucky graphics, than not to publish at all.

3) Yay! I managed to make a Moddable game! :smile: This game uses streaming assets to pick up the list of cards to play with. And it can pick up .png images to use as textures for the cards. So you can make your own cards. Add your custom graphics. Make more border types. And it WORKS. Though I didn't mention this in the description, because you have to really be careful to have cards for every possible border type combination, or you can run the game into a situation when it can't offer you a turn and it breaks.

Plans for future are: Not to fall over and die in the office (week of dayjob ahead... :sob: ) Then I will try a few tricks to tame the normal maps and see if I can make them cooperate. And then move on to my other projects. :)

LD 39

I'm In

Third time's a charm?

Will I be able to do things right? :grin:

Some reflection on the Past

This is going to be my third take on Ludum Dare.

Both previous attempts were… less than soaring success. But they were extremely helpful to me in identifying flaws in my programming skills!

On my first attempt, I gnawed at a bit too big. Spent too much time thinking up the concept of a game, with interesting mechanics, only to find myself rushing to get at least something functional done couple a few hours before the time ends. Mercilessly ripping out bits of the game that I just didn’t have time to fully implement (even thought, they costed me some time to get to a point where they were) and half an hour before the time ended I ended up with a pale shadow of a puzzle game I wanted to produce. But hey! It was functional. Not too fun to play, but still something that could be played! And then came the real problem: I had NO IDEA how to publish it! My guess was to upload it to the website (which is not…) and I rushed there… only to find the new site down and a note to submit the games to an old site, which I didn’t have an account on, and the registration process bugged at me… and this was final straw. Albeit technically complete, my first LD game was unpublished…

Approaching my second LD I considered what went wrong last time (too big scope, and too little time to publish) and so I set a target for myself not to overdesign the game and get it ready a couple of hours before the deadline, so I have some contingency. So instead of thinking up some playable mechanics from scratch, I took an existing board game mechanic and adopted it to the theme… And pretty fast I ended up with a concept of the game. One of the visual concepts didn’t work (the game was about making a “map” by putting “cards” next to each other so their borders match. And I wanted to use normal map to give this “map” some 3D sexiness, but… I forgot to ask cards to update their tangents after UVs were updated and this resulted in normal maps not working the way I wanted… and I had to ditch them form the final game and go for flat textures.) but overall the game development went smoother and I in fact had the game ready a couple hours before the deadline… and I realized that I still had no idea how to publish the game. Thankfully I found a manual on the site and it listed Google Drive as a valid way of publishing a game, so I did put out some links with the game and source code archive… so my second LD was a success? Well… not really. I was totally unprepared to the way how judging would work, so I… didn’t put too much effort into playing games from other people, and as an obvious result my own game didn’t get too much attention, finishing with a grand total of 0 ratings. :smile:

So to sum it all up, things to go, to avoid the landmines I hit:

1) Be prepared. You should at least know the full process you need to follow during the jam. Making a game is only part of it. You also need to publish the game and the source code. And you should check all the preparations for it (i.e. that you have accounts on all the relevant services, and repositories set up) before you start programming. Your brain might be a toast when you finish, so don’t leave to much work to do after the game is done.

2) Don’t overcomplicate your game. 48 hours is a short timeframe. I haven’t done this myself yet, but based on watching some Stream recordings, it is a good idea to start small and add features after you already have something playable.

3) When the timer expired, your work is not over yet! Just like with commercial games development, Writing and publishing a game is not enough for it to be noticed. You have to market and advertise it. And in LD this is done by playing other people games and giving ratings out. The more you play – the more people will notice and paly your game. And I know… It may look terribly ironic for me writing advice here, when better half of my problems could’ve been avoided by me reading some advice before getting into it (so most of people who actually need my advice are not going to read it anyway)… but… Oh, well!

Tools I Use

People seem to be really eager to pre-announce their tool belts, and I am kind of feeling left out now. So here are mine:

  • Engine: Unity3D
  • Coding: C# / Visual Studio Community 2017
  • Visuals: Blender / Krita
  • Sound: NA. (Will try BFXR for effects, but NFI what to use for background music…)

And seeing a lot of people announce they would be using their own engines, or even plain C… Makes me impressed.

I remember when I was young (sometime around 2000) me and a couple of friends tried to create a game. And I was coding it using… quick Basic. smile And I even managed to make a Fallout-like isometric map rendering with each tile having it’s “Sprite” and those were rendered in sequence to make a map. Though… at that time we didn’t know such words as “Rendering” or “Sprite”. Heck… Even the “sprites” we used for rendering were not actually images loaded from external files. Those were subroutines issuing commands to set color of specific pixels. And it was kind of tedious to make those (and adjust them if needed). And animations? We didn’t even get to those realms before the project died off.

But the most low-level tool I ever used for creating something, was probably my macro-assembler project… the “Life” simulation with glorious 320x200 resolution, 256 colors EGA graphics (Those are pretty trivial in assembler as all the video memory basically fits into one Segment - 64kb )… And it worked… Though it wasn’t epilepsy-friendly.

Plans and stages

Due to something (a bug probably) the site created a couple of empty blog posts for me. So might as well fill them with my thoughts. :smile:

I'm living in London, so Theme announcement time for me would be 2am. Last two times I stayed up at this time to start thinking the game over as soon as theme is announced... Well... To be fair the first time it wasn't intentional. Just some random person knocked on the door in the middle of the night half an hour before theme announcement time, and asked to borrow a bike lock. And since I was up anyway, I decided that this was my literal wake-up call to stop admiring LD from a distance, and finally start participating.

Anyway... This time I am not going to do this. This time I am planning to go to bed early instead, and start working when I wake up fresh and ready by 6am. Sure this might look like I am willingly sacrificing 4 hours of work time. But in reality - even if I stay up all the way to theme announcement - I am not really going to do some real work done before I eventually have to go to bed. And all the sleeping will be during the Dare. And if I start sleeping before I more like push 4 hour of sleeping outside of Dare tame. So... Sounds like a good idea.

((I suspect I will bee too excited to sleep though... Hype is real...))

Assuming I will be able to sleep I will also get another free bonus: If I only start checking the theme 4 hours after announcement, the site will probably be back up. :) So after I wake up - I plan of checking the theme and then start brewing the concept for a game. This process doesn't require me being at the PC, so I will use this time to cook some food along the way. Most likely this will contain my usual breakfast and a couple of Pizzas for later.

Then utilizing the buffs from "Well rested", "Well fed" and having some Ideas, I will get to work. Which I am going to roughly split it to several phases. - Look for inspirations and references. -- The fact that existing assets should not be included in the game, doesn't mean they can't be used for references creating my own. - Create Assets (!) -- At least for some main objects that would be used in the game. I am mostly a programmer, so I tend to focus on coding and leaving asset creation for later, but this doesn't yield the best result. I get too carried away and when I code to a point when I can't progress further until I actually have final assets in place and can't work with placeholders... usually at that time I already have invested time in some unnecessary features, and then... I realize that I am unable to produce assets I need and I need to cut things out and... bad things happen. So this time I am going to make core assets first and then start coding around them. Hopefully this approach will yield better results. - After core assets are done (around 13:00) I will start coding. Hopefully by 17:00 I want to have a playable prototype that implements main gameplay and hopefully some features. - And what happens after this depends on the requirements of actual development. Hopefully I will have a game ready before 21:00 Sunday so I can publish it and go to bed without being brain dead on Monday.

Progress blog

As planned, I woke up early on Saturday and looked into a theme.

Chewed on some Ideas, came up with a somewhat unusual one and went on creating assets in Blender. After spending circa 7 hours modelling, I ended up with a decent Table model, bearable model for chair back (the rest of the chair would've been hidden by table anyway) and a... humanoid(?) model... well... It was just an upper half of humanoid anyway.

Couple of last two hours were spent trying to rig this abomination to let me position the arms and hands. And I did make a half-decent rig (Woot!) and then I realized that half a day is passed, and I still haven't even started implementing any game logic, and I am not even done with the humanoid yet as now I need to do animations and... I basically overscoped on the graphical asset side. Terribly.

So at 16:00 I took a decision to cut my loses and try making another game. ((BTW. If anyone is curious, you can check the assets I created In this archived blender file

Which bumped me back to square one. I needed a new concept. Something simple. And that would require low graphical asset work.

Curiosly enough - the Idea came after some struggle. That idea wouldn't offer much in a way of replayability or length... So I wouldn't bet on it being a succesful commercial game. Essentially that is a variation of a known puzzle, turned into a videogame. But that hopefully voild make an intersting 5 minutes experience for the player and that is essentially what we are aiming for.

So I started hacking at it. Once again - following my plan - I started with creating visals assets, which were just a bunch of sprites. Then I went into coding, and... By 22:00 I had core mechanic of the game set up. Bu 1am I made a first build that would run the entire puzzle (and I tested it a few times to make sure that the solution I designed for is in fact achievable).

So... Despite the fiasco with the first idea and half a day wasted on largely entertaining, but not utilizable playing with riging humanoid arms ((Damn you, Blender, for putting IK over Rotation limiters in bone constraints!!! Why do you have to make it so hard to make a rig that would not spaggetify the human!)) I made some good progress and now with a whole work day ahead I have a playable game that only needs polish.

Oh... And with all this hustle, I totally forgot to set up the cloning between my Repo and local Assets folder. Now I will have to do some dark woodoo magic (i.e. Move contents of Assets folder, set up the cloning with an empty folder, and then paste the contents back in) in order to make it work.

So... Things that are done: -The Game.

Thing that needs to be done: - Repository (for source code) - Supplementary texts, manuals... Basically something to explayin rules of the puzzle. - Sounds (at least some effects for player interaction, but ideally some backgound music as well.. currently the game is mute as a mime...:smile: ) - Better visuals? I am not the best pixelartist... So there are ways to improve my sprites. Maybe I should look into this if I have time.

Could someone do me a favour?

And check if this repo:

https://Hilvon@bitbucket.org/Hilvon/ld39repo.git

is publicly visible? It's the fist time I set up a public repo in bitBucket and I don't want to eff it up.

Runaway Convoy Published!

I give up. I don't know how to do music. So I let go and publish the game as is.

https://ldjam.com/events/ludum-dare/39/runaway-convoy

I hope you enjoy this little game. It's short, and hopwfully will not take much of your time. :smile:

Am I the only one?

Is there a reason why I am seeing error 503 when I try to access itch.io? The problem "started" when I tried to publish my game there, and is still persistent. Which is kind of bad because many games were published there.

Does anyone know hoe to deal with it and what might be causing it?

Runaway Convoy Post Mortem.

Now, after a few days have past since the LD and my brain is recovering from the mad rush during Development, I am ready to look back on my experience and share it with you.

my game can be found here

First of all – this was my best LD to date. I had a rough start, but eventually I made a game I was content with, I had some time to add polish and didn't waste all of it. :smile:

Process – Before the LD I spent some time planning when to work and the initial idea was:

  • Not to stay up till theme announcement. Instead sleep well so I can start a few hours into the LD, but fresh and ready (rather than having to cut 6-10 hours to sleep during the LD itself).
  • Start by creating assets, so on the scripting phase I don’t rely on placeholder assets.
  • Have playable core mechanic by 17:00 Saturday.

But “no plan survives reality”. Initially all went well. I woke up in the morning and checked the theme. That wasn’t one of my upvoted themes… in fact I am sure that was one I downvoted in Final round, but… That’s how democracy works.

I spent some time and come up with a concept of “Running out of Political power”. The concept was to have a sequence of turns, on each turn player is presented with several problems, and must decide which minister would be overseeing the solution, and how much of budget is allocated into solving the issue.

Depending on some parameters the problem could be either solved – which would give you some power, or failed (depending on some properties of the problem and Minister handling it)

In process of it the minister could display incompetence, corruption and/or publicity blunders, which would be criticized by opposition (costing you power). And those negative effects will be cumulative. Meaning that critique will be coming in every turn, unless you fire this minister, and replace it with a new one. Which you might not want to do, as Minister also gain experience, which give them better chance of successfully solving problems in future.

Was this game original… well… not the most original.

Was this game over-scoped? Maybe… But I felt confident in coding the logic for it, so I went ahead. And as I was going to start by creating assets, I came to a question – what assets I need to create. And that largely depended on what kind of look I wanted to give to the game. First idea was to show a table with a bunch of papers on it… I tried to arrange something and take a picture, but it was… mostly crap.

So I thought up a meeting room with a big table and the ministers sitting next to you… and so I went into creating 3D models…

Table was easy. Chairs were easy enough too – especially I only needed the back of them.

And then it came to modelling the ministers. That wasn’t the first attempt of me trying to model a humanoid, but it could’ve been my first successful take at it… :smile: And surprisingly the modelling went pretty well. I modelled a head that looked… human-like. In fact, there were two heads – male and female. Then I modelled the upper body… and I started rigging it, so I could position arms and hands in some ways, and possibly rotate heads so they face the player.

Adding bones was easy. And Blender did a decent job at automatically assigning weights to bones… but when it can to positioning them it started to rapidly fall apart.

In hindsight, I could’ve done a couple things to improve the result:

  • Add more geometry. I didn’t have nearly enough geometry on the arms. And for good animation having some extra vertices near the joints can go a long way.
  • Modelling hands straight = bad idea. Inverse Kinematics needs to know how to bend your joints. And if you don’t have a slight bent in elbows – it will get confused and bend your model’s arms in all the unexpected ways.
  • I have a real aversion to assigning weights to control bones. That is a long story why this is… and this effort not let this happen (while recalculating weights) did cost me some time, while I wasn’t going to use this rig with any stock humanoid animations, so I could just ignore this…

But anyway… by 15:00 I still didn’t have a rig I was happy with. And I realized that at this pace I will not have enough time to finish the game… And so I decided to scrap the idea altogether.

A brief moment of panic later I started coming up with an alternative ideas… I needed something super-lightweight, to compensate for effectively wasted half of day… And that is how an idea of a puzzle-game was born.

Instead of having several levels each of which was reasonably easy to complete, it would essentially have one level, that would require several attempts to beat, so finally beating it would give a gratification of completing a game. Sure – the replay-ability of such a game would be pretty much non-existent, but… that is a Jam-game… not a commercial project anyway. :smile:

I picked a pretty tricky puzzle – the Bridge and Lantern. (Though in comments a lot of people were referencing Wolf-Goat-Cabbage puzzle… which is also a good one, but an entirely different one) And just to disguise it a bit more I expanded the number of travellers from original 4 to 8 (though at expense of not having each of them unique and expanded the number of possible solutions from 1 to 3) and added a rule for “protecting civilian ships” which ruled out one of 3 possible “correct” solutions leaving 2.

Then I went ahead with a plan to create assets first, and within 1 hour threw together a sprite map with all the ships and some graphical “effect”. First I drew some designs on paper. Them I digitized them using MS Paint and finally I used Krita to cut out white background.

And this approach seem to work quite well. Having the basic assets to begin with allowed me not to use some placeholders, and as soon as the puzzle logic was complete (about midnight) I effectively had the game that could be played.

So I had the entire Sunday for polishing and adding some mood for the game which allowed me to do some totally unnecessary things like the exposition scene that runs upon game start. Yes. That scene was a shameless rip-off from Star Wars. :smile:

And then I decided to do something that I never had time for in my previous games – add sounds. That was my first time working with BFXR… and it turned out… harder than I expected. All those sliders made little to no sense to me, so I basically had to rely on hitting “randomize” button over and over until I heard something reasonable… Though the “Warp” sound was customized by hand a bit – adding some falloff length, and vibrations…

After getting some sounds in the game, I decided to go all in and add some music. Especially since the exposition scene felt incomplete without it… so I opened Audiotool.com and… Well if I felt overwhelmed by BFXR - audiotool simply crushed my by the number of options there. But I was determined and after 5 hours of voluntary sound torture… I gave up. Basically rage-publishing the game without completing a list of smaller features, like custom UI panel graphics, additional UI information on ships, and so on.

Summary:

What went right:

  • The workflow. Basic assets firs, scripts later seem to work well. Will definitely do this again.
  • The background. The stars in the background required a custom shader, 5 materials, 3 prefabs and a script to randomize it! The stars were changing colours, slowly rotated and pulsed in size! And nobody noticed it, meaning that the background was… Perfect.
  • Sound effects. Yes. It was hard to implement. And it took way more time than was necessary, but I did learn a few things and the sounds I picked didn’t seem to invoke any negative reactions from players.
  • Game concept. Based on the feedback – the players enjoyed having a puzzle game and did in fact felt gratified for completing it once. So the intention was met.

What went wrong.

  • Chasing rabbits. – Not once, but at least 3 times I started chasing the stuff I wasn’t qualified to produce, and that cost me a crapton of time and frustration.
  • … and that is pretty much it. Nothing else that I would call a failure.

In conclusion:

I aggressively started playing other games and giving feedback – as soon as I realized that the rating is open, so within a couple of days my game had 20 ratings itself! Which is awesome!

Looking forward for the next jam!

Best game to date?

Hello! I just found what might be the best game of this LD:

https://ldjam.com/events/ludum-dare/39/glow

Definately check it out!

((Think there are better games? Please post links below and I will be glad to check them out too))

LD 40

Joining in

Yay! It's THAT time of year again!

Traditionally working alone (which means graphics and sounds are going to suck deep). Toolbelt: - Unity - Krita - BFXR

Will try to make something more action-y this time... if theme allows, naturally.

Gear up on the Ideas

Okay... 4th LD in a row. Time to get my thought straight, and what better way to do this than to throw them on a paper... virtual one at least.

So firstly - I am going to take part in 48-hour contest. I don't have a luxury of not going to work on Monday... So all my thoughs below are aimed at this timetable. If you are going for 72-hour version, some points might not be for you.

This time one thing is going to be really different for me. I am not going to be alone. I mean I am going to be working on the game alone, but my family is going to be around in the process. On one hand this is obviously going to be a distraction. Especially from my 8 year old son. But on the other hand I will have some help providing some basic needs - like food and drinks. And I wouldn't have to scrape time for other house chores. Hopefully.

Another thing I want to try is to make a game more action-based. All my previous entries (both published and unpublished) were puzzles. And while they got some positive feedback, they as a class seem to be less... well... exciting. So this time I am going to aim for something different. And yes - I am not going to aim high on the theme-relation score. If I can think of a suitable theme application for an action game - good. If I can't think of any clever way - I will just roll with it and shoehorn it in and not mourn too much over it. ((Not that I am going to be the only one in that department anyway))

Now what I am going to do similarly to the last event:

Don't wait for theme announcement. I live in a timezone that is poorly suited for witnessing the theme announcement (and associated website spontaneous DDOSing). So I will just get my healthy sleep and check the theme in the morning. Yes I could check the theme and go to bed hoping to dream up some clever game-idea in my sleep, but my first two LDs indicated that this will end up either in me being too excited to have good sleep and thus poorly fit for work on Saturday. Or I will simply sleep late into the Saturday to compensate and waste more valuable hours.

Remember 80/20 rule 80% of work is done in the first 20% of time. And mote importantly - final 20% of work will take you 4 times longer than the first 80% did. So don't get stuck polishing stuff! If it is 80% as good as you imagined it to be - roll with it. You might have some time later to polish it a bit... but if it is not functionally holding you back from progressing the game overall - just let it be. And if it is already past mid-Saturday and you don't have a fully functional prototype (which is likely to be true) - this is 90% clear sign that you don't have time to polish and you'll end up with some half-assed assets. Don't stress about it though. The event is not about making AAA-level game in 48 hours. And stressing wouldn't help you anyway...

Actually I think it is important enough to put it into a separate point - Don't get stressed. Stress leads to anxiety, anxiety leads to rushed decisions and rushed decisions lead to poor results and wasted time. And a good way of not getting stressed is to keep as much info as you can outside of your head. Plans, Ideas, Sketches - put as much as you can out of your head. No matter which way - electronic notes, paper drawings, audio logs. Anything. But don't keep things in your head.

Time Management

The event is drawing closer, and it is time for preparations, so I wanted to put down some notes on how I plan to manage my time during this LD. Those might look like pieces of advice, and you are free to use them as such, but in reality those are just notes. They might not even work for me.

  1. Chomp the chunks. The Game Jam format is wonderful, because it offers you a strict deadline. And setting deadlines is a huge part of Time Management. Having a start there is wonderful, but this is only a starting point. Now we need to plot this time we have as a timeline and chomp it into chunks. Firstly - plot the time you need to sleep. Then add a couple breaks for eating, and going for a walk - you'll need those to keep your productivity up. If you have other obstructions that you know will take your time - plot them on the timeline as well. Now you are left with the time you can actually spend on the game. But since the development is not a homogenous process, split this time into 3 chunks: Plan, Prototype and Polish. Those are going to be the main stages your development process. My plan is to spend 6 hours in planning, about 4 more in Prototyping (yep, that might look like not much, but more on this below) and about 3-4 hours of Polish on Saturday. Sunday is Polish all the way. This is about it for planning before the event. But all those time chunks need to be chomped into even smaller partitions each having a smaller task that needs to be completed. And if those tasks end up being too big - they will still need to be cut into even smaller chunks. In theory your plan should end up having no task that would take you longer than 5 minutes to complete individually. But in reality, I will stop partitioning if the tasks are about 20-30 minutes each.

  2. Planning Stage This is probably the main stage of the process. And this is why is plotted to take almost half of the Saturday. Obviously this stage includes thinking up the idea. Or several ideas. And possibly some basic asset creation. And a lot of time allocation. But most importantly - the end of this phase means that there is no turning back from current game idea. At the end of planning stage I am committed to the game I am making, and so I must be sure that I can pull it off. In order to assure this I will do something like this:

    • Imagine a game.
    • List all assets required to pull it off.
    • Split all assets into 2 groups: Essential and Cosmetic. Essential assets are something that is required for the game to function. Imagine the game without this asset. Can it work? Sure it will be less of a game anyway but will it still be a game? If yes - than the asset is not Essential.
    • Split the Essential assets into Familiar and Experimental. Experimental assets are the ones I am not sure I can build. Not to the point of "not having a clue how to handle it" - having those on the list would meant the idea needs to be scrapped... or at least modified not to require them. I need to have a rough idea how to make it, but I am not comfortable estimating how long it would take me to build. All those assets must be done by the end of planning phase. And if there are too many - down the trash bin they go.
    • Evaluate time and the amount of experiments and if you can fit in. If no - what would be more feasible - down-scope this idea?
    • If necessary - start over.
  3. Prototyping Stage By the beginning of this stage I should have a number of assets prepared and a comprehensive list of things to build. This means that at every stage I can focus on executing limited tasks, rather than wasting my mental capacity on reevaluating what to do next. The only thing to consider - reserve some time towards the end of the process on "Assembly" - making sure the assets work together as a game.

  4. Keep calm and carry on. Once the prototyping stage is over, I will have a piece of mind knowing that I have something to publish already. And on top of it I will have list of potential improvements. And if I end up not implementing some of those - not a big deal. This will not ruin the game anyway...

I have a bad feeling...

I have a bad feeling that I have overscoped my game... a bit.

I mean - the gameplay elements are going fine, but I would need quite a number of 3D assets to make it look pretty... Some of them animated... ((Even if I ditch the enemes as they are optional obstruction in the game - the protagonist needs to have at leas run cycle... Potentially even a strafe... and walkback... and run sideways... OhCra....

But no matter what - I am committed now. If I fail miserably - the worst thing to happes is that the protagonist would be a floating capsule...

Progress Update

It took me waaay longer than planned.

And I got myself into a couple of "infinite loops" (which ended up the level generation requiring to iterate among like 150000 items and do some math on them...) but I now officially have a playable prototype with the core mechanic! Yay!

There are still some stitches to be made to functionality - like main menu, and restart button... but the core functionality and level flow are now there!

Ready or not, time to go!

I definately overscoped this time. The math for maze generation took the whole day to debug and optimize (and still it requires several seconds to construct the maze!).

Also I need to practice more with animations. But at least I finally got a character model that doesn't makes me want to run away! Still animation pipeline is far from perfect. I got a hang of it by the end, but time ran out...

So the submission is in fact using floating capsule as a protagonist...

Anyhow... Maze Crawler is out!

Maze Crawler Post Mortem

So… The LD40 is now over… I got some beauty sleep and now it’s time to recap my experience.

First of all - I think I finally got the hang of “Subtractive design”. In the initial idea the maze was supposed to be filled by monsters, that are mostly dormant initially, but wake up as you collect more keys so as you collect keys you have to fight through increasing amount of enemies. This also implied combat. And Health system. And potential for game-over… But as I was laying out the assets I need prepared for the game in order of priority I realized that all this combat and enemies and their AI is optional. As the maze would get increasingly harder to navigate if the passages get gradually blocked.

Second - I am still bad at estimating my time. The one core asset that I needed for this idea to work was a constructor script that would plan the Maze and plot the blockage in such a way that even if all the blockages are active, there is still a path to reach the final destination for any key. Eventually I managed to pull this off, but it didn’t only take circa 5 hours to build the algorithm, but it also took about the same time to optimize it so that path-sutting is done in matter of seconds (instead of looking like I added an infinite loop somewhere). As the result, I only got the functional prototype with one level and placeholder graphics mid-Sunday instead of mid-Saturday. And the obvious result - not nearly enough time to make optional assets. And faced with this time-deficit I should have rearranged asset by time required rather than importance, and focused more on stuff I had a clue how to make (like polishing environmental graphics, setting up torches as light sources, basic sounds) instead of sinking all the time I have into animating the player model. Though a big part of this priority allocation was that my son wanted to see “the Knight” walking. After all the model was based on his drawing. Anyway - the model is there among the assets downloadable with sourcecode. It is a blender file if you are interested.

Lastly - itch.io HATES me. I don’t know why. The first time I wanted to publish my LD entry there it glitched denying access from my IP for several days - up to the point of me being unable to download games from itch.io. This time it refused my credentials and said that it doesn’t have a record associated with either of my emails. And at the same time it stated that my username is still locked. I will contact the support team to sort this out, but for now it’s publishing on Google Drive… again.

Now some short bullet point:

What ended up missing in the game

  • The protagonist model. - I could’ve at least put it in T-pose into the game instead of the capsule… but I only got this idea now.
  • Sounds - Not even basic sound effects of keys collection, and “Whooshing” of the flames. And definitely no music… :( I even disabled the sound ratings…
  • Floor/Wall variations. - I had planned some environmental details - like some unobstructing debris, spiderwebs, wall-torches and chandeliers to be added to some of the tiles to add variations. Also to have 2-3 different templates for walls and floor cobblestone placements to randomize them a bit and make tiles less-obviously-repeating. And to have 3 types of blockages - Collapsed tunnels, and metal bars in addition to “Flame wall” made of particles. ((And in hindsight I should’ve added size-by-lifetime on particles as well…))
  • Keys and Exit models. - I only realized this as I was rushing to publish what I had, but I never actually made a pretty graphic for the keys and Exit as well. The exit was supposed to be stairwell going upwards and “keys” were supposed to be gems…
  • Combat and Enemies. - I know all of you wanted to whack things in the dark dungeon, but… maybe next time. :)

What went well

  • Map generation - I really like how the map generation was implemented. The script uses a pixel map where white is the background, and black pixels are rooms and passages. Anything that is 1 pixel wide is a passage. All intersections, dead-ends and larger volumes are room. Also you can add colored dots for start position (green), exit position(blue) and key placements(red) but those are optional. If you don’t state them the generator will randomly scatter the items. And it will them assign some of the passages to be blocked, randomly choosing on which key count it will trigger. One option to improve the algorithm would be to assign some passages to be blocked on count =0 and drop them from layout initially so the mazes from the same layout map will end up slightly different. And this offloading most of level generation to script allow to easily add more potential layouts to the game (more levels) and even potentially read the layout maps from external file allowing players to mod in more layouts!
  • Floor Graphics - I found this kind of neat way to make cobblestones and I like them. And it didn’t take much time!
  • Player Model - I know that it didn’t make it into the game, but I still glad how the model turned out. If only I could make animations in time…

What went poorly

  • Working environment. - I knew that it would be harder to work while family is around. And it’s not like I mind having a board game evening for a break, or having my son as an early playtester, but it did take a sizable chunk of my time.
  • Map Generation - Yes. I know I listed it as “went well”, but this was related to the end result. It was really good. But the process of creation, testing and optimization, were a hell of a mess. And the worse part - I figured out what more could be optimized in this script. But I still think that optimizing this pathfinder from iterating around 200k routes down to slightly below 20k was a hell of an task. And I still had to put a loading bar on the process to show that the game is not stuck. ((On a sidenote - putting label on the progress bar helped to figure out what tasks needed more optimization!))
  • Animation pipeline - Honestly - I did create animations for the character. Idle cycle. Walk forward and run forward. But they were kind of poop. At first the Root movement didn’t get added to Walk/Run animations. Then some movement got baked into Idle animation. And the result looked terrible. You can find this horror in the assets. By the end of the process I figured out some workflow that yielded some bearable result for walk cycle, but it was like an hour before the deadline, so I switched to other tasks.
  • Game Menu - It is functional at best. But it is ugly as heck... Though... it was just a placeholder...

Overall this LD was a really fun experience. And I do see my improvement across my entries. (Woot!) but I still have miles to go before my gamedev skill will catch up to my imagination… if they ever will.

I do believe that this game deserves a post-LD version to be added. ((And maybe add combat back in and turn it into a roguelike…))

Yay for the votes!

Wow! Maze Crawler is over 20 ratings for almost all the categories! (Except for Humor, which I am not actually aiming at... Had more of a Horror vibe in mind when designing the game...)

HUGE Thanks to everybody who played and voted!

And I am really sorry for not being able to play and rate everybody who left the feedback. I promise, I will get to it as soon as I have some free time! ~~Which I hoped to have this weekend, but it didn't happen...~~

The score is here!

Hello, my dear fellow LDers!

The final scores are here and it means it is time to evaluate the end result.

So far I had 2 games that made it to the ranking:

Below are the scores for my latest game and their difference compared to my other ranked game:

  • Overall: 2.909 (-0.091)
  • Fun: 2.606 (-0.161)
  • Innovation: 3 (-0.267)
  • Theme: 3.03 (-0.603)
  • Graphics: 2.924 (+0.091)
  • Humor: 1.75 (-0.596)
  • Mood: 2.55 (+0.031)

As you can see, I have been rated lower almost across the board. Definitely something to ponder on "What wend wrong", and I suspect that the reason this happened is best described by a comment by @justinooncx:

Interesting game! Or, well, tech demo.

The simplistic Runaway convoy, was actually ready to go on Saturday, so I had all Sunday to add "unnecessary" bits like the animated stars in the background, teleportation effects, sounds and even a Star Wars - style intro before the game. And this gave the game a fair bit more polish. It felt more solid. More complete. Even though terribly short and non re-playable.

Maze Crawler, while being a fair bit better game IMO ((At least developing it definitely felt more satisfying for me)) was nowhere near complete. More than half of the items in the game were placeholder assets slapped together just to have something playable. The game has a lot of potential, but that is what it is - potential. And there is no rating for "potential" in the scoring system. :)

Now a bit more detailed thoughts on each of the ratings individually (Will skip "overall"):

Fun During the preparation to LD I wanted to make a more Fun game than my previous one. It really looks like I failed at that. The main reason here I believe was a poor movement system. TBH the movement script was one of the placeholders, and was tuned to work with maze generated of tiles 3 units wide, and them the final maze was generated of tiles 5 units wide, so the movement ended up being almost half slower than I intended it to be. Which made traversing the maze a bit too slow. Less fun. And honestly - I haven't figured good movement speeds in the post-LD version yet.

Innovation This is actually surprising to me, as I definitely felt more innovating developing this game compared to previous one... But I guess this reflects that traversing a maze is a fairly well-known concept for a game, while the puzzle in Runaway Convoy was not familiar to many players... and this is what this score is reflecting.

Theme Again - I am a bit surprised by score drop here. But I guess this is due to Theme implementation in my last game was pretty obvious, while here... well... The game was set up in a way that you could collect all the keys without ever noticing that the maze is changing as you go. I have a few ideas how to fix it in the post-LD version, but only play test will tell if they are going to kill the fun of the game or not.

Graphics are up. And I guess this is mostly thanks to the game being 3D and floors/walls using some normal mapping. Which (surprisingly) didn't take me that long to make.

Humor Didn't really care that much about this rating. So not surprised it went down.

Mood went up a little. And I really hope that I can improve it a lot more by adding better lighting, environmental props and sounds.

So... What can we learn from all this? One thing that is still haunting me is wasting a lot of time on one thing, that I don't end up completing anyway. This time it was character model animation. Maybe a good thing for me would be to set up a limit for time I spend on one thing in a row. Like if I don't finish something in an hour, I put it aside and start working on something else. This will let me get more simple things done which would make game more complete overall.

Not sure how deal with the experimental creep though.

All of Saturday and a good portion of Sunday I spent working on effectively one thing - the maze generation script that required quite some optimization. ((And the version that was published still had room for improvement. I have already reduced the time it takes to build a maze by at least half! And I think this can be improved even further by more aggressive application of multi-threading)). Yes, this is definitely goes under the "Don't work with stuff you don't have experience with" advice, but.. that is just my thing I guess. It is really hard for me not to push the limits... even if that reads as "bang my head on the limits fruitlessly".

I am still planning to publish the post-LD version sometime soon. But I don't know when would it be.

I hope you enjoyed playing my game, and this LD in general. I definitely did!

Will see you next time.

And please let me know what you think in the comments below.

Cheers!!!