Zesix

LD 44

Progress over time of our LD44 entry "Heart of the Grove"

Play it here: https://ldjam.com/events/ludum-dare/44/heart-of-the-grove

01-original-concept.jpg Our original paper concept.

02-modeled-low-poly-cliff.png I modeled all the low poly objects (2 cliffs, 2 floor platforms, 2 rocks) using the process of blocking out a shape, then adding subsurf + decimate.

03-outer-cliffs.png The level was created by rotating, scaling, and positioning the low poly objects in different ways. Here you can see the finished outer cliffs.

04-working-on-floor.png Adding floor platforms.

05-island-base-plus-cliffs.png Completed island base. We would later add a few more inner cliffs.

06-added-treant.png Added treant.

07-postprocessing-setup.png Set up postprocessing. Uses Postprocessing Stack v2 with ambient occlusion, color grading, bloom, vignette. Also uses global fog in the Rendering settings.

08-navmesh-for-floor-platforms.png Navmesh for movement. For this, I combined all the floor platforms into a single mesh using the Mesh Baker asset.

09-added-spirit-tree.png Added the spirit tree. This came from a trees megapack on CGTrader. I recolored the leaves to be blue so it stands out from other trees.

10-added-invader.png Added a viking invader. Initially the invaders had torches but we later swapped them out for axes after realizing fire would burn down the whole forest and didn't make much sense. Viking invader from the Polygon Vikings pack.

11-smoothed-ground-platforms.png Added 2 tree variations and some brush. All from the Polygon Nature Pack.

12-added-level-fill.png Filled the level with small rocks and brush.

14-experimenting-with-camera-angle.png Testing camera angles for how the player should perceive the world when playing.

15-beginning-of-ui-implementation.png Starting to replace the placeholder UI with actual elements. We used the Burning Moon UI asset for this.

16-enemy-ui-healthbars-always-persistent.png We determined it was difficult to figure out where enemies were coming from, so we enabled healthbars on all enemies (and not just when they take damage, which was the initial implementation).

17-finished-ui.png The initial 'finished' UI. Later in the final testing hours, we would add the full controls instructions to the bottom left.

18-over-a-hundred-trees-stress-test.jpg Experimenting with how many starting trees the player should have. This in-engine shot shows a stress test of 100+ trees.

Heartemof/emtheemGrove/em2019-04-29_18-25-11-945.jpg Grid layout to help players target their clicks.

Instructions.jpg Final version UI (with added Instructions screen).

Fighting.jpg Final version gameplay featuring treants fighting invaders.

Play our game here! https://ldjam.com/events/ludum-dare/44/heart-of-the-grove

Ludum Dare 44 – “Heart of the Grove” Postmortem

Heartemof/emtheemGrove/em2019-04-29_18-24-37-354.jpg

This past weekend I had the opportunity to participate in ludum dare 44 with my friend JohnnyDalvi.

Concepting

At the event’s start, the theme was announced: “Your Life Is Currency.” The first phase of a game jam is to brainstorm ideas and decide what game to make. Initially, we discussed mechanics such as summoning minions through blood sacrifice and using health to pay for actions. However, I have a policy of pushing back against early ideas because other teams in the event are likely to create a similar game (and based on the submissions, there are a lot of ‘pay with blood’ games).

Game jam themes can be taken literally or figuratively. From my experience, the figurative / metaphorical entries usually score higher. Gameplay that incorporates the theme is not enough – the entry must thematically stand out from the rest of the pack while also having solid polish in all areas – it can’t look like it was “rushed to finish by the deadline.” After discarding the initial ideas, we started thinking of ‘life’ in a broader sense:

  • Life as a journey
  • Life as a soul, like the soul of a forest

The second idea struck with us and we settled on a game where you play as the protector of a forest who ‘awakens’ trees to fight off loggers. To fit the theme, we decided the awakened trees (‘treants’) would leave the forest – they are no longer part of it after being uprooted. Hence, the life of the forest (trees) must also be spent to defend it.

01-original-concept.jpg

Production

The rest of the weekend was spent on development. I was in charge of the game look and feel, meaning the 3D models, 2D UI, audio, and visual effects. The aesthetic style I chose was “hybrid poly”, which combines low and high poly assets. I planned to use asset packs as the base for my high poly assets, so I began by creating the low poly blocks using Blender.

02-modeled-low-poly-cliff.png

I modeled 2 cliff rocks, 2 ground platforms, and 2 small rocks. The base of our level is constructed from these objects, each being rotated and scaled in different ways to break uniformity.

04-working-on-floor.png

After finishing the level layout, I spent the remaining time modifying content from asset packs to fit our game, setting up post processing, and playing with scene settings to capture two primary moods: “mystical” and “airborne”. Check out the progression over time.

Instructions.png

Retrospective

My time allocation looked approximately like this:

  • Concepting: 1 hour
  • Game Development: 41 hours
  • Ice Skating Lesson: 2 hours (yes, I’m an aspiring ice skater!)
  • Random Breaks: 6 hours
  • Sleep: 16 hours (I didn’t sleep from Sunday to Monday)
  • Testing / Tweaking / Building: 6 hours

Those with experience in hackathons and game jams know the actual time a person has to work is about half the allotted amount due to sleep, breaks, and fixing unexpected problems that arise from being imperfect developers. Numerous failed jams have taught me the most important part of these events is agreeing on a concept that can realistically be made in 1/3 of the given time. As my time allocation shows, we missed, and so the testing and tweaking of the game suffered. When this happens, the player experience (emotions, feelings of progress, excitement, etc.) relies largely on the luck of having initially put everything together in a way that creates a memorable experience. See some of the feedback below:

image.png

image-1.png

image-2.png

While our game was extremely polished, the gameplay did not have enough variety to entertain. Dullness, or the player feeling ‘bored’ is an experience that overshadows even the best graphics and plotline. What I should have done is drawn the line on polish after the main level was production-ready, then dive into coding to add more dynamicism to the gameplay. We had only implemented a few simple mechanics and none of them (combined with the level design) allowed for interesting emergent experiences.

For example, most game jam entries do not have an Options menu. The time I spent creating this one could have been better spent elsewhere.

17-finished-ui.png

Overall though, we created a polished strategy game that even rose to the front of the ‘Popular Strategy Games’ section of itch.io for one week. I’m proud of what we accomplished in 72 hours and am already looking forward to the next weekend intensive.

Play our game here: https://ldjam.com/events/ludum-dare/44/heart-of-the-grove

Ludum Dare 46

“Tell a Fairy Tale” Postmortem

Concepting

At the event’s start, the theme was announced: “Keep It Alive.” This reminded me of a quote I once heard:

When do fairy tales cease to be real? When people stop believing in them.

I presented this to my team and we decided to run with it, believing it would lead us to create a unique entry. And it did – there isn’t another submission like ours despite the event having over 10,000 participants.

We settled on a design where you play as Tinker Bell in an orphanage. You fly in front of children to inspire them while avoiding the staff – if they capture you, the game is over. This was to fit within the time constraints. The idea I originally had was a stealth dialogue (yes, you read that right) entry where you play as an elder employee secretly trying to tell fairy tales to the children while not getting caught by the other workers. The stealth dialogue idea still intrigues me as I haven’t played such a game before. Maybe I will create it someday – just need to find (or become) an experienced dialogue writer.

Production

I’ve never worked with the cel shaded aesthetic before, but our fairy tale idea seemed like the perfect setting to try it. If you don’t know the difference between standard and cel shading (often called toon), see this:

standardemvs/emtoon.jpg

Cel shading, as the name implies, comes from shaders, not the modeling of the objects themselves. Right now my 3D artistry consists of hard surface (no organics), so I had to get the characters from asset packs online.

Wallemwith/emmodifiableemmiddle/emcolor.PNG

Door_frame.PNG

I spent most of my time on the level design. I haven’t done an indoor environment before, so this was a major learning experience in architectural design and where to be structurally unrealistic in order to make indoor flying feel less cramped.

First iteration of indoor level design using cel shading. It’s obvious my lighting needs adjustment:

Firstemcel/emshading_test.png

After brightening the main light, adding a soft ambient counter-light, and setting up postprocessing with LUT:

Celemshading/emplusemlighting/emplus_LUT.png

We used IK to create Tinker Bell’s animations. Our main character has 1 forward flight and 2 idle motions. Unfortunately, LD's blog system doesn't let me upload videos (and I don't want to put them on YouTube). See them in my blog version of this post.

Retrospective

My time allocation looked approximately like this:

  • Concepting: 2 hours
  • Asset Production / Iteration: 36 hours
  • Programming: 5 hours
  • Ice Skating / Stretching: 4 hours
  • Random Breaks: 6 hours
  • Sleep: 16 hours (I didn’t sleep from Sunday to Monday)
  • Testing / Tweaking / Building: 3 hours

I don’t know how many jams I’ve done, but I’m seeing a pattern with all of them: They barely get done within the timeframe and I don’t allocate enough hours to testing the gameplay. I believe it’s a scoping fault where I estimate (with good accuracy nowadays) what I can build within the timeframe, not what I can build and extensively test in that period. For my next Ludum Dare, I intend to mentally subtract 12 hours from the jam duration when planning. Hopefully this causes me to reduce my scope so I can iterate more.

As for our entry, here is some notable feedback we received:

feedback1.png

feedback2.png

Moving Forward

I won’t be adding this game to my portfolio, though it is still searchable online. I learned a lot about cel shading and lighting this weekend, and I intend to implement this aesthetic again in a future entry with greater confidence. In the meantime, play the game if you haven’t, and share with us your harshest criticisms:

https://ldjam.com/events/ludum-dare/46/tell-a-fairy-tale

Next month, I’m hosting the GameDev.tv community jam. We have over 500 signed up so far, and I’m looking forward to the creative ideas participants come up with. If you’re a beginner gamedev, join us! We have many people in the forum looking for teammates :)