Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

Max Did It

16
Posts
2
Topics
A member registered Nov 21, 2020 · View creator page →

Recent community posts

(1 edit)

Hi everybody!

Savanna Sam waving to the audience on the title screen of the game

When creating games, sometimes seemingly mundane things can create the most work. Like giving your game a neat little intro and title screen. Doesn’t sound very spectacular on its own, but it requires a couple of things you don’t think about very much when playing games.

Suddenly, your game needs a logo, for example. I quickly put one together in Inkscape and exported it to Blender so I can animate it in the intro sequence.

Then, I want the player to be greeted by the official Savanna Sam title theme when starting the game! Which, of course, requires me to write and record said theme. So, I dusted off my midi-keyboard and fired up LMMS, and after more than a weekend, I now have the first of hopefully several catchy tunes to set the mood for the game.

LMMS showing the song editor for the Savanna Sam theme song

I then could load the song file into Blender and animate the intro sequence so that it matches the beats of the song. The intro sequence really isn’t very long, and yet, even animating such a relatively small scene takes a lot of effort! That salad of lines below is the visualization of part of the animation from the intro sequence.

The curve editor in blender showing part of the animation for the Savanna Sam intro sequence

All that effort, just so that the player is gets a neat little introduction to the main character of the game:

Short clip from Savanna Sam intro

Thank you so much! Currently, I’m busy implementing an intro animation for the game, so maybe there is going to be another neat update by tomorrow :-)

I’m currently building levels for the game, placing obstacles and items to create hopefully interesting courses.

Not using Unity or Godot to create this game means that I don’t have a tool to create 3D levels for the game. Instead, I’m using Blender to place objects and making sure the distances and the timing of obstacles is correct.

Using Blender as level editor for Savanna Sam

Since I’m already using Blender to create the characters and items appearing in the game, using it to create the levels seems logical to me.

Any geometry that I need specifically for a level, like buildings or bits of environment, is modeled and stored directly in the level Blender file. If the object needs to appear more than once, then I will create instances, which generates additional positions for the object but prevent the geometry and texture coordinates to be duplicated.

By using instances, I can see within Blender how the object fits into the level at each position. Later, the game will be able to recognize, which geometry data the respective instances are using and render the correct 3D objects at each position.

For general objects like items, I’m simply using placeholders in Blender. By using a specific naming convention, the game will know which object to use for each placeholder.

(3 edits)

I hadn’t posted an update over the easter holidays, but I have been busy nonetheless! The game is slowly starting to look more and more like a game.

Rendering the landscape has improved considerably:

  • rendering distance works better now
  • transitions between chunks of the landscape are more seamless now
  • no more “gaps” left, right and behind the landscape anymore

Also, the world we are flying through now has 3D clouds, which I think is quite important ;-)

Clouds in Savanna Sam

To make sure rendering the environment isn’t using up too much performance, I have implemented a simple level-of-detail-system. Most level objects will have two versions of themselves, one with fewer details and one more detailed version. The game will render the low detail version if the camera is further away, and switch to the high detail version once the camera comes closer.

LOD system in Savanna Sam

This should keep the number of polygons rendered low, which will hopefully make the game run more smoothly especially on mobile devices.

Everything is rings now!

I wasn’t too happy with using the x-ray effect for pretty much every item that you can collect in the game. It looked visually cluttered and could make the game a bit confusing if you constantly hat colorful shapes superimposed on your character.

After some pretty good feedback over at the Newgrounds forums, I decided to change the collectable items to be ring shaped.

I was a bit hesitant at first, since I feel that “flying through rings” is a bit of a flying game cliché, but I suppose there is a good reason why they are used so often.

With the new item design, I can turn off the x-ray shader and still have the player see where the item is, even if the character is flying in front of it.

So, coins and wrench items are now golden hula hoops and turning cogs, respectively. The new item designs in Savanna Sam

And the hearts are now heart silhouettes: The new heart item design in Savanna Sam

I was also able to solve some of the environment rendering issues mentioned in the last post, though I am still working on that part of the game.

Yeah, I decided to not use engines like Unity or Godot that can export to HTML because I feel that these engines bring a lot of overhead with them. Even when exporting an empty scene with nothing happening, the resulting HTML files will still have a considerable file size.

I am not writing my own rendering engine from scratch though, I am using three.js, which covers a lot of the basics, which helps a lot. :-)

But, more complex features like level of detail functionality you still have to do yourself.

(1 edit)

So, I’m in the middle of implementing actual levels.

I’m currently trying to figure out how to best manage and display level geometry and objects appearing in the levels like buildings and obstacles.

I think some of my basic approaches already work quite well, like creating a file format that combines 3D geometry that is needed for the current level with placeholders that tell the game where the geometry needs to be rendered.

However, I have a good amount of work still ahead of me. At this step, some of the challenges of the perspective the game is rendered in become apparent:

  • Rendering parts of the landscape from far away requires that the landscape geometry extends quite far to the sides, otherwise the landscape ends too early on the left and the right when rendered at a distance.
  • When approaching the landscape, the parts on the left and right will vanish outside the screen quite early, so it’s important not to put too much detail into these parts.
  • I will probably need some kind of LOD system for landscape geometry and larger objects in the game. It doesn’t make sense to render an object at full detail if it is too far away and too affected by fog.
  • I will probably need different viewing distances for small and large objects. It doesn’t make sense to render a coin or an item when it is basically only a pixel large, but I don’t want large objects to pop into existence in the last second either.

There is already some early version of the level system visible in the game. Some of the problems are quite visible, but should be fixed relatively easily:

Some cosmetic problems with the early level system in Savanna Sam

When flying a little higher, the problems with the viewing distance become very apparent:

The viewing distance in Savanna Sam is too damn low!

I hope I will make some progress on this in the coming days and weeks.

Thank you so much! I think it will still take me a little bit of time before I can release a version that is playable in any meaningful way. But until then, I will post any updates here :-)

(1 edit)

I’ve added a small quality of life feature to the game. I found that the character model is often obscuring items that you are about to collect, making it tricky not to miss them.

To prevent this very basic gameplay element from being frustrating, I’ve added an x-ray shader for these elements. So, whenever the the character is in front of any of these items, a colored silhouette is rendered. This is done for hearts:

x-ray shader for heart items

for wrenches:

x-ray shader for wrench items

and for coins:

x-ray shader for coins

I think the shader works pretty well already, and it fulfills it’s purpose. Maybe a bit too thoroughly, though. In some cases, the character is full of colored shapes. Often from objects that are still quite far away and not really relevant yet.

I’ll try and optimize this. Maybe I can try and fade the effect in when the item gets closer to the player?

So far, it was only possible to avoid obstacles, now there is also something to fly towards! I’ve implemented items! Another basic, but important building block for the gameplay.

The player can now collect coins, increasing their score:

Savanna Sam collecting coins

They can collect wrench items to repair their airplane:

Savanna Sam collecting wrench items

And they can collect heart items to regain health points:

Savanna Sam collecting heart items

Most basic gameplay elements are here, the next steps will be to build actual levels with the elements that are there already.

(2 edits)

I’ve added some basic, but important features, making this feel much more like a game already: A health bar!

The health bar(s) in Savanna Sam

Currently, the health bar is split between Sam’s health and the state of repair of the plane.

If Sam himself gets hurt, then the player loses one (or more?) hearts.

Sam bumping his head

The plane’s health is further divided into segments. If Sam hits an obstacle with the edge of his plane, like the tip of the wings or one of the wheels, then he only loses one segment.

Sam scrapes his plane

However, if Sam crashes his plane into anything dead center, then the equivalent of a full wrench is taken off.

Frontal collision

If Sam’s plane is in poor shape, it starts to leave a trail of smoke:

Should it be doing that?

And, of course, if Sam runs out of health, then the player sees a game over screen (which I am going to make prettier, I promise)

Going down!

My next step would be to implement collectable items that will replenish Sam’s health :-)

(3 edits)

I’m developing the game to run in browsers, to make sure it’s quick and easy to access it. Another step to make sure it reaches a broad audience is to implement control schemes for different platforms.

Controlling Savanna Sam with mouse and keyboard

I expect mouse and keyboard to be the most common control scheme for playing the game. You use the keyboard to control the airplane, while the mouse is used to let our giraffe pilot to roll into the desired direction. I’m using the browser’s pointer lock feature to capture the mouse and then to simulate behaviour similar to an analog stick.

Controlling Savanna Sam on tablet via touch screen

I myself like to sit on my couch and play on my iPad, so it just makes sense to also implement touch controls. I’ve implemented on-screen analog sticks which already work quite nicely. The analog sticks appear wherever the player touches the respective half of the screen, which makes it more comfortable to play the game, since it adjusts to your preferred finger placement.

Controlling Savanna Sam on a smart phone via touch screen

Having touch controls on a tablet means that technically, you can play the game on a phone, as well. I’ll be honest though, I don’t know if I’ll be able to design the game in a way that works well on small screens…

Controlling Savanna Sam via game pad

I was delighted to learn that you can use game pads in browsers! I’ll be honest, I didn’t know that all modern browsers support game pad input, but I’m very happy they do. This means that you’ll have the option of using a game pad when playing the game on your PC.

Okay, I’m bit for bit adding the parts that are going to make this a game.

For testing purposes, I’m generating random red boxes that the player flys towards. Not very spectacular, but it alread gives the player a reason to move in order to evade the obstacles.

Then, I’ve added the cannon-es library for collision detection. I’m not using any of the physics simulations right now, I only want to know if the giraffe is hitting any obstacles.

And last but not least, I’m using three-nebula to display particles. Currently, they create the star particles when the player is hitting anything.

The green wireframe boxes are the collision shapes, I’m rendering them for debug purposes.

It’s very much a work in progress, but it’s making progress!

I’ve been busy to become reaquainted with the animation and rigging system of Blender and have managed to create a working rig for my giraffe pilot!

Savanna Sam character rig inside Blender

With this, I’m now able to create poses and animations that I can use in my game code. So, I can already move around in my game interactively, which is pretty neat:

But not only that, as mentioned in my first post, I want rotating the character to be an important part of the movement. And that already works, too:

I’m especially happy with the little dynamic animations I can already create in the game. I really like the wobble the head of the giraffe does when they stop moving or rotating. It’s a small detail, but it adds a lot in my opinion.

As you can see, there isn’t much else happening in the game yet, but I’m working on that! :-)

I have trouble getting videos to work in my community devlog posts:
https://itch.io/t/3487239/savanna-sam-flying-giraffe

I first tried to upload videos directly to itch.io, since it says in the UI for the image upload that *.mp4 video files are supported:

However, in the actual file selection screen, mp4 files can't be selected:

I then tried to host the files myself and to embed them in my posts. They show up in my edit preview, as well:

But in the actual post, there's only an empty space showing up.

Am I missing something? Is this a known issue?

(1 edit)

This is the first game project I've started after taking a break from making games for several years.

For a while now, I had this idea of a cartoon giraffe flying a comically tiny airplane stuck in my head. At last, I sat down and drew a character design:

Going at a breakneck pace!

I like how "vertical" the design of this character is. It's an unusual silhouette for anything airborne. I liked the character, so I proceeded to create a 3D model based on it:




Now that I have the 3D model, I want to try and make a game with it!

(Very rough) Game Concept

  • I'm thinking of a game where you fly down a linear level, similar to Starfox/Lylat Wars.
  • I'm imagining the game as a twin-stick action game: You control the airplane with one stick and the roll of the plane with the other. Basically, you can do barrel rolls freely and orient the plane the way you want.
  • I'm not sure whether the player themselves can shoot, it might be interesting for the game to be about avoiding obstacles instead, flying through obstacle courses where you need to position and orient yourself correctly to make sure you don't crash into anything.
  • I want to try and make this game a browser based game. I think it would be interesting to see what's possible on that platform.

Let's see how far I'll get with this. Wish me luck!