Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

[Devlog] The New Continent

A topic by Jatsu created Jul 14, 2018 Views: 898 Replies: 22
Viewing posts 1 to 17
Submitted (1 edit) (+2)
First day of the jam

Preproduction:

I chose to stick with the optional theme (water) during the preproduction of the jam. The idea pops up directly when I see the theme.

The game follows the story of a fish who was born on the plastic continent in the middle of the ocean.  The fish, as you can imagine, is not very heatlhy and want a better life.  Fortunately, there's a place somewhere for sick fish, but it's long journey!

The gameplay is inspired by the game kuru kuru kururin. The player controls the fish in the maze-like level. The goal is simple, going from the beginning of the level to the end in a nick of time, while avoding the danger like the wall of plastic bottle, puddle of oil, etc.

For french people, here's my preproduction note, I will try to translate and resume it in english.

notepad for preproduction

I have no idea for the graphic style or in-depth story. As for the fx, I will record some sound in a couple of days and work on it.

Otherwise, the soundtrack isn't my priority for the moment. Maybe at night, during some pause of gamedev, I will work on it.

First step of production:

First off, the engine is gonna be game maker studio 2 for the gamedev.

I decide to begin with a quick representation of the fish and a wall. It's much easier for me when I test the project to have visual cue.



Next, I associate the sprite to their object. After create some variables for the fish's object, I check the collisions between the wall and the fish.

The player can move the fish with the "WASD" command or the arrow keys.



Next step, create a script for recognize a gamepad. It will offer the choice to the player to play with his controller (joystick and d-pad).

(+1)

I like how upfront the walls are. "what are you?" 

"WALL"

Submitted

Ahahah thanks

(+1)

haha, true! so practical and efficient :) 
Love how the game is coming along 

Host(+1)

i like that you're establishing priorities very early on in development and focusing on what you consider important to the game! i also love these very descriptive walls haha.

Submitted(+2)

Yeah, a teacher told me back in the days that when you have a plan, it's much easier to regain focus when you start dive into problems and don't understand what you're supposed to do.

Submitted(+1)

Second day of the jam


first step of production (part 2):

Yesterday, I left gamemaker after a long session of trying to write  the script's creation for the gamepad controller. I didn't succed but I learn some things here and there. I will try again when my project will be in a more advenced state.

Today, my tasks was to implement rotating objects and check that the player didn't stay  blocked in the object.


Unfortunately, as you can see, the collisions don't work as intended.  I think my problem comes from the collisions masks. But after 2 hours spending on that and not finding a good solution for the problem, I'm deciding to approach the thing on an other angle.

I will create a parent group of object that push away the player (like a knockback) and put the rotating object in this group. 

And so, I spend my afternoon creating this collision who knockback the player. For the moment I have nothing good:

Either the player is push away but go through my walls (the bloc wall) or I don't have a smooth movement of knockback, it's a kind of teleportation. 

Nonetheless, I found a interesting thing during this phase of tries and mistakes. I know how to make the player move blocks. So maybe I will make something with this, I don't know for the moment. 


The next point on my plan was the creating of a zone that send the player on an another level, like a warp zone but here, it's more an ending zone.


Success!

The green box send the fish in a precise location. I can choose the coordinates and the next room. That's perfect.

Last work of the day, oil's puddle. The idea is to invert the controls during a certain amount of time when the player hits the oil. 

After few settings for the alarm for the time, here's the result:


Tomorrow I put some oil on the fish during the moment where the players has the controls invert.

Finally, the next step:

  1. Create more sprites for the fishs (left, right, oil, idle?) and maybe some animations.
  2. Create a prototype of menu.
  3. A pause menu.
  4. Reset the level.
  5. Add a timer.
  6. Add a respawn for the level when the timer hits 0.
  7. Work on this parent object that knockback the player.
  8. Add a penality of -x time when the player hits an object that knockback.
  9. Add somekind of stream things. If the player are in an horizontal one, he can move up or down, and for the vertical one, left or right.
  10. Work on the sprite of the environment, the bounderies etc.
  11. Sfx and music time !
  12. A sprint ability?
  13. design some levels (with the plastic continent world, the tanker, the ancient cities etc)
  14. don't forget to sleep and eat.
Submitted(+1)

Third of the jam

Day of progress:

A lot of progress had been made today!

First off, a prototype for the menu.


I've created a menu object and used button[] to put the text of each line.

For the moment, the cursor only go down but I made a loop so I don't know if I'm gonna change that or not.

I've made a little change in the "controls" menu.



Now you have Fishy (the fish's name) in the controls menu for testing the controls.

After that, I've decided to put a timer to the game.

Like a mario bros game, the timer gonna decreased and when the time is up, the player restart the level. In the next days, I will make a feature that make take off a second when the player touch specifics things. 

So, here's my timer:


As you can see, you have a time's up and when you reload the level pressing "R".

I've checked that the timer reset also when you are in another level.



Important things, the player can only restart the level when the time is up. (I deactivated the movements).

Finally, integrate a pause menu.

I chose a soft pause, a pause that let the background visible. It will let also some animations.

Here's a look at the pause:


Tomorrow, I will add a possibility of restart the level through the pause menu.

Can't find sleep so here I come.

I've made a rework of the pause system:



So let's see the list again:

  1. Create more sprites for the fishs (left, right, oil, idle?) and maybe some animations.
  2. Create a prototype of menu.
  3. A pause menu.
  4. Reset the level.
  5. Add a timer.
  6. Add a respawn for the level when the timer hits 0.
  7. Work on this parent object that knockback the player.
  8. Add a penality of -x time when the player hits an object that knockback.
  9. Add somekind of stream things. If the player are in an horizontal one, he can move up or down, and for the vertical one, left or right.
  10. Work on the sprite of the environment, the bounderies etc.
  11. Sfx and music time !
  12. A sprint ability?
  13. design some levels (with the plastic continent world, the tanker, the ancient cities etc)
  14. don't forget to sleep and eat.


Wow, it's only now that I realize all the work I've made today. It's 7:30 am,  let's call it a day!

Ps: I will add some images of the code on the devlog in the future days.

Submitted

Fourth day of the jam

Sometimes, you want to create a little thing, and this thing sends away all the logic of your work, showing off all the weaknesses that can contain some scripts.

That time was today.

Normally, I was supposed to create this knockback effect but I decided to do a one way platform/wall.

I used a simple way of deactive/reactive the mask collision like this:


And I don't know why, but I wasn't really happy with this system. 

The more I searched a better way, the more I realized that I have to rewrite all my work in a better shape.

Took me all day and night (currently 10 am) but hey, for the first time I have a good movement and collision script.

It does basically the same things that I show previously but I use velocity and maths, allow me to have better and deeper control on my project. I can't say it's an early engine's prototype because it's too rudimentary but after the jam, I'm gonna improve it again.

Otherwise, I'm not adding the one way wall for the moment. It's a secondary feature and the important stuff for the moment is the gameplay's core/primary feature.

So the next steps:

  1. Work on this parent object that knockback the player.
  2. Add a penality of -x time when the player hits an object that knockback.
  3. Add somekind of stream things. If the player are in an horizontal one, he can move up or down, and for the vertical one, left or right.
  4. One way wall
  5. Optional : add more features (moving blocs)
  6. Work on the sprite of the environment, the bounderies etc.
  7. Sfx and music time !
  8. A sprint ability?
  9. design some levels (with the plastic continent world, the tanker, the ancient cities etc)
Submitted

Fifth day of the jam

Little progress is still progress:

Today was a hard to work, my back hurts  real bad so I decide to take it easy. 

But it doesn't mean I do nothing.

I continue to clean my code, it's not perfect but much readable and fancy to the eye. Add state system also and finally work on this knockback thing.



With that, I will make things that just push you and other that pushs you and decrease the timer.

By the way, here's a look at the decrease. I'm not satisfied with the time that the "-1" stays on the screen. I'll fix it tomorrow.



Overall, it was good to do simple things and rest a little bit today,  I don't want take the risk to burn out in the middle of the jam and quit. 

But hey, it's the time to check the next steps:

  1. Work on this parent object that knockback the player.
  2. Add a penality of -x time when the player hits an object that knockback.
  3. Add somekind of stream things. If the player are in an horizontal one, he can move up or down, and for the vertical one, left or right.
  4. One way wall
  5. Optional : add more features (moving blocs)
  6. Work on the sprite and animations of the environment, the bounderies etc.
  7. Sfx and music time !
  8. A sprint ability?
  9. design some levels (with the plastic continent world, the tanker, the ancient cities etc)
Submitted

Sixth day of the jam

I left the project yesterday with the decrease time system. 

After my breakfast I added a sprite for the visual cue. With that the player are gonna see a minus one every time he collide with a bad thing.



I've been thinking about the one way wall and I don't know how to make it. 

I have a scrappy way in mind. Let's say you're going to the right and in the background you're seeing a wall. You're passing through and after your move, the wall switch from the background to the player's layer. Like a switch thing. 

Either I do that or I deactive the object and when you're passing through, it active it. I don't really know, it'll be my task for tomorrow.

Otherwise, I create some moving blocs. 



The platform move to an invisble object that set the speed in an opposite direction. 

I cheat a little bit with the collision. I spent a good amount of hours trying to make a good collision system between the player and the moving platform and it's failed.

When the fish doesn't move, the platform goes through it instead of pushing it. So I'll apply the knockback effect. 

But this knockback effect doesn't decrease the time.

And that's it for today.

Next steps:

  1. Add somekind of stream things. If the player are in an horizontal one, he can move up or down, and for the vertical one, left or right.
  2. One way wall
  3. Optional : add more features (moving blocs)
  4. Work on the sprite and animations of the environment, the bounderies etc.
  5. Sfx and music time !
  6. A sprint ability?
  7. design some levels (with the plastic continent world, the tanker, the ancient cities etc)
Submitted(+1)

Seventh day of the jam

Halfway through:

The pression of finished the gameplay's core was heavy today. I wanna spend most of the weekend chill out, making sprites and animations while listening music.

So today I work harder than never. 

First, the famous stream things, and all week long, I was thinking how to do it, but thanks to this week of experiment and learn, I found an idea really quick.

In the create space of the player's object, I added a stream variable set to false.

When the player collide with the stream, the variable turn true. It'll change the horizontal and vertical speed, and for the stream kind-a-like wind effect in platformer:

y += lengthdir_y(3, other.image_angle) for the vertical and x += lengthdir_x(3, other.image_angle); 

I also checked that the decrease time effect apply in the stream zone when the player collide with a bad thing.

Here's a quick view:



After that, another big task awaited me: the one way wall.


I try many ways to add it to the game. The Shaun Spalding, a script found on reddit, a topic on the yoyogames forum etc.

Nothing worked out as I wanted.

Facing the fact that the problem isn't gonna be resolved, I decided to change the concept.

Maybe I can do a system that pass the wall to the background from the layer's player when I'm passing it. Using this way, I'll meet sooner or later the same kind of issues with my old idea.

Why not create automatic doors! Technically, I can go through one way and not open the door the other way. 

After finding the idea, I did a door, an object bloc and a trigger zone. The principle is pretty easy, when the player hits the trigger zone, the door moves up (or another direction) to a bloc, the player moves toward, the door goes down. 




Its feel like a cheap way to me but its work.


So, here's my main features for the game. I also did very quickly an object that add time to the level timer. Maybe it'll go in the final project.



I think we can all agree, we have prototype here, but not finish yet.

The good ol' next steps:

  1. Work on the sprite and animations of the environment, the bounderies etc.
  2. Sfx and music time !
  3. design some levels (with the plastic continent world, the tanker, the ancient cities etc)
  4. Better UI, rework the pause menu and main menu.
  5. A sprint ability? (Optional)

And that's all for today.

Wishing you all a sweet weekend!

Host

huh the inverted controls re: the oil slick is a really interesting solution! i'm like floored by how well your progress is documented--reading up on how you cheat with collisions and different movements is very interesting and especially when you don't initially find a result you want.

Submitted

Thanks you :)

I've learned that you always need to bounce off on new idea and make on the fly, especially during a jam and that's basically what happened since the beginning of the gam jam. It's so excited to always search and find new ways to make a thing.

Submitted (1 edit)

Eighth day of the jam

Time flies by so fast:

Sunday, 12:33 am, i'm entering in my 13 hours of work for today. I'm exhausted and exicted at the same time. The prototype is almost testable, I hope that I can send a demo in the playtest in few hours. Just need a few tweaks here and there, creating some levels for testing the interactions bewteen the differents features, testing the sound and music, the menu etc.

But hey, let's review this looooong day of work. I'm not gonna lie, half of the time, I wasn't really efficient (watching the semi-finals of overwatch league, playing with my cat and chilling on music).

First, days ago, I've created a menu/pause with the only possibility to go down in loop, now it's fixed, you can do up and down in loop.

I've added a camera that is fixed on the player. Creating the camera wasn't really difficult, on the other hand, put back in all my information was an another story.

Basically, for the text on the pause screen, or the timer, things like that, I had created a draw event in their respective object. The draw event take information like the x coordinate on the room width /height, or now, my camera is focus on the player. So, I changed the draw event in draw gui and tweak some numbers.

After finished the camera, I realized that I was writing a little bit my UI for the menu in the same time, so before going full rework of the menu, I searched some of my ancient songs for adding a sound menu. Unfortunately I didn't found my external hard drive, so instead I recovered some "drunk" songs (songs that have been made when I was drunk) on dropbox. In the end, it's not very important 'cause the sound use for the moment are not the final one. After this inconvenience, it was time to met the sound section of game maker (I never used it before or even see a tutorial on this).

Pretty simple to use. I added a group of sfx and a group of music, created an object music and set some variables. When the game starts, begin this sound, when the player selects new game, switch from this sound to this sound. When the player hits the pause, have the gain drops by this amount, when the room restarts, have the music restarts. It was a fun moment and a great discovery. After the jam, I think I'm gonna test some silly things with this.

In the meantime, I tried some sound effects, searching for a goofy one. For the moment I have a hurt sound and a "congratulations" sound when you finish the level.

Lunch time!

During the digestion, I've made some tests on my new additions and I encountered a new problem. My sprites "-1" and "+5" are not set in the camera zone. I've fixed it. I've also made some lines for preventing the music of overlapping itself.

Here's a quick view at the prototype (sorry for sound (maybe too loud) and the bad video quality, I've messed up my obs' settings):



After some sleep, I'm gonna make a few levels and upload the prototype in the playtest.

The one and the only, el famoso "next steps":

  1. Work on the sprite and animations of the environment, the bounderies etc.
  2. Sfx and music time !  (halfway on this point, just need to make some music and sounds but I've already have all the rest setup)
  3. design some levels (with the plastic continent world, the tanker, the ancient cities etc)
  4. Better UI, rework the pause menu and main menu. (halfway on this also)
Submitted (1 edit)

Ninth day of the jam

A bug can hide another:

I'm exhausted. My level of tiredness is so high, I yawn every ten minutes. It's 3pm, today was hard day. I started the day with the high hope of having the prototype playable for the playtest and my god that was painful. I can't even remember all the problems I encountered, and my fix for every of them.


So, before sleep time, my only task was to build some levels, and that's not the first thing I did today. It wasn't because I need some visual cue for the player when you're in "oil state / control reverse". I added the animations, but for the moment it's not that great, the loop for the animation continues instead of restart every time you recollide with the oil. I don't really know how to fix that for the moment, I will think about it after a good night of sleep. 

After this, I've implemented a gamepad to the gam, now the player can play with the keyboard and the gamepad. I've modified a lil' bit the music_object, prevent and avoid some problems like having the wrong song at the bad moment. And a dash ability, when the player keep a certain button pressed, the speed is multiply by 2.

Finally, it was time for creating levels. I've made 6 + main menu and pause menu.


The first screen is the main menu, when you launch new game, it's the first level. The level is a maze, with no real big feature. This allow some time to the player to accustom the controls and how the fish moves. When you reach the end box, it's the level 2. 

A minor problem appears when I'm in the second level, why my timer doesn't show up. 20 minutes of random checks, reading all my objects. Note for myself : don't duplicate room without the confirmation of having all my object in my instance. I forgot to put my timer object in the room.


The gimmick of this room is the knockback. The player will meet the real ennemy, bloc that decreases time when you're hitting them. 

After test, I found a weird glitch, when you're in a dash state and collide with a "knockback bloc", you keep the dash state, even with the button release. At first, I found this real cool, then hours later I fixed it. Now it's the exact opposite, when you're hitting the bloc, you lost the dash, so you have to repress the button. It's more like a punishement for having touching the bloc.


Anyway, the level 3 aka the oil level. Here the gimmick is the reverse controls cause by the oil. And another bug, a minor one. The oil reacts well with all the feature except one. When you're in oil state and touch the end level box, you can have control of the player for a limited time (after the end of the oil state and before the switch to the next level, under 2 seconds). The only things you can do in that time is retouch the end level box, but doing that will replay the end sound. Not a major problem, but it remains a problem, so tomorrow, I have to find a way to handle that.


Level 4, upstream time. The stream gimmick rests on a basic principle, it's a kind-a-like wind. When you're in the stream zone, you're gonna be soft push in a the direction that the stream point towards. And it's there that the fun part begins. Days ago, the upstream system was perfect, I tested it time and time and time and time and time again, no problem. But hey, programming being programming, the avalanche of bugs and errors swept over me.

The first one, the stream that point towards the top or bottom doesn't function anymore, I didn't change a single line of code, but I assume the adding of my camera on the player mess up with the direction, I don't know actually. At this moment, my code for the stream and all the things that flow from it is attached in a collision event in the player object. The system is pretty simple, you enter in it, and the coordinates sends you in a certain direction with a lengthdir_x or lengthdir_y (length, direction), and for the direction I use other.image_angle.

I don't remember well how I fixed it but the problem was solved. Next problem, the state machine and the stream.

My state machine isn't complex, 1 = you move, it's cool, 2 = you hit a knockback bloc, so you can't move. For returning to the first state I check  if point_distance(0, 0, horizontal speed, vertical speed) < 1 , if it's the case, go back to state 1. Easy right, but how it will react in the stream. Bad, you're losing control, the game do whatever he wants until you're ejected from the stream. Very frustrating. I decided to add a boolean variable for checking if you're in a stream state or not. First I try :

when you're hitting a knockback in a stream zone, and you're in a stream = true, deactive the stream object. Problem, it's deactivate the object when i'm not in a stream state, plus I used an alarm system, it's too much things scattered all over the place. I moved all my code from the collision event to the step event.

I've added some #region for more visibility, rewrite some lines and alright, it work! Now when you're in the stream you can collide and keep the control after the knockback, but you know what, yeah, another bug. Now my right/left streams works but not the up and down. I think it's time to change a particular line, the direction in the lenghtdir. Indeed, the image_angle is based on my sprite, so I have a right sprite for my stream, and when I want a left one, I put the right one, and rotate it. I changed that, now I have a sprite for each directions (up, down, left, right) and change the direction in my variable lengthdir. Finally, this case has been resolved.



Level 5, the introduction of moving platforms and automatic doors. Fun part again, the automatic door doesn't open. WHY!!! yesterday it was fine, why it works on my test room and not on my level grrrrr. Like the stream, I used the collision event instead of the event step. After a little rearrangement, I have now things in better shapes. 


Level 6 it's just a thanks room for the moment, that loop to the main menu.

And that's was a glimpse of my struggles against gamemaker, I don't recall all the troubles that I've met but I think it's a good summary.

The prototype is uploading ,I'll post a link on the testplay discussion and here

Edit : https://jatsu.itch.io/new-continent-prototype-unfinished


Okay then the next steps:

  1. Work on the sprite and animations of the environment, the bounderies etc.
  2. Sfx and music time !  (halfway on this point, just need to make some music and sounds but I've already have all the rest setup)
  3. design some levels (with the plastic continent world, the tanker, the ancient cities etc)
  4. Better UI, rework the pause menu and main menu. (halfway on this also)


Feel free to give any feedbacks or advice  :)

That level 5 bug reminds me of this poem 

So good to know that you've finished so much in such a short time, Jatsu - Looking forward to playing your game :)

Submitted(+1)

Ahahahah that was exactly this. I slept 12 hours after finished the upload of the prototype. I hope that I can have a game in a  good state by the end of the jam.

Submitted

Tenth day of the jam

Trouble in paradise:

Bad news, I woke up sick. I'm not feeling very well so I decide to change my schedule for the jam, I need to double my sleep time. I take that decision because I wasn't that efficient in my work.

Before talking about the new schedule and the new plan, I'm going to review the day.


Normally I was supposed to begin the visual section for the game, creating some tiles. I knew before the jam that this part was going to be the most difficult for me, I'm super bad at drawing. But I'm here to learn, so I tried.



It's simple but I like it. I need the triple of this for adding diversity in the background. That's gonna be my walls, my boundaries. 



For the visual part, I need to finish:

  • The fish
  • the boundaries
  • a sprite for bad block
  • a better sprite for the turnstile
  • a better sprite for the bumper (A tire would be great)
  • a sprite for the stream
  • some background
  • (Optional) Fancy stuff like algae.


Sadly, as I say, I changed my schedule.

Now the priorities have been revalued:

First, create 20 levels minimum. The more important remains the final goal, a playable game. Without level, no play. And I also say goodbye to the possibilities to have many "worlds/biomes". Tomorrow I'm going to design all the 20 levels. 

In a second time, music and sfx. It's gonna be quick, Only 4 tracks max and 6 sfx max. If tomorrow I'm satisfied by the levels and I have time, I'll do that, otherwise thursday morning.

Next, the visual. I have the list with the task's order, thursday or friday would be great.

For now, the real important thing is my health.


If you are interested by the project and want to give a feedback, here's a quick prototype.

https://jatsu.itch.io/new-continent-prototype-unfinished


See ya tomorrow!

zzzzzzZZZZZ

Submitted

Eleventh day of the jam

Heatwave

It's so hot, like above 35 degrees. My pc didn't like it at all. He shut down twice. Trying to build level on game maker began to be a hard task. I barely make one level.

I have no choice but report the level design part for the moment.

So drawing time I guess.


I tried to make bubbles in a stream and put in the game with the tile animated system:



After a good start, I did a tire that pushback the player:


And also a bottle with straw in it:



The bottle will turn on itself.

Then I tried to draw a range of hubcaps for the moving platform. It's a failure for me. I'll make a better things if I can:



I'm thinking to change it for hazardous barrel maybe, I don't know yet.

I'll stop for today, time to cooldown my laptop.

Submitted

Twelfth day of the jam

Hurry Up!

I spent all my day on the creation of just 2 big mazes. Normally, this type of mazes would be in a certain biomes, but I don't have time anymore so I will be satisfied with only 2 big maze level. 

Tomorrow, I have to create a sprite like underwater spike things, maybe add 3 more tiles for the set of the waste. Create 3 songs, and make some actions levels.

Submitted (1 edit)

H-30

Final line:

I have finally some music and sound effects for the game. But with the little time remaining, I don't think that there will be enough levels for fit too many musics in the game. 

Speaking of levels, I finished the first one at 100%. And it will be the only one in that state. Again, the time doesn't allow me another, even two or three more days for changing the bloc "wall" by the tile set. After deep thoughs, even if the other levels doesn't have the good textures, their style going on the final project. 


Tomorrow, I will finished with the creation of a logo/ title screen for the game and a level or 2 if I have the time. 

Submitted

Last entry before the deadline

That's it! I did it, the game is publish. 

It's not finish as I wanted, only 2 levels have the final visual, I don't have proper background, It's only 7 levels.. It's particulary hard to review it now, my feelings are really mixed. I can't feel any satisfaction for the moment, I'm exhausted and it was hard.

2 weeks ago I never make a single game, not even a real project. I learn so much, I prove myself that I can draw, respect a schedule, don't quit when it was too complicated.

As I said, the project is unfinished, here's the things that I need to fit in it after the jam:

  • Background
  • More sprites
  • More musics
  • Create more maze levels theme
  • Create more action level theme
  • Put the doors/keys colors in the game


Anyway, I respected my engagements and my main goal: having a playable game.

https://jatsu.itch.io/the-new-continent


Time to rest and test the others entries.

Thanks to the discord and all the people on the forum.