Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

FanMan's Dev Blog

A topic by FanMan created Dec 28, 2015 Views: 8,801 Replies: 7
Viewing posts 1 to 7
Submitted

Hello,

I know I'm starting a bit late so I'm really gonna have to crunch in order to get things done in time but part of the reason why I started a bit late was that I couldn't think of a game to create according to the theme but after a few days, I've finally came up with an idea and how I'm going to approach it. So for now, I'm going to create the backbones of the game and get everything ready within the next few days so that afterwards I can test the gameplay. I might be asking my friends to help me out on the artwork but I will have to see. In the next post I'll go a little more into explaining the game that I will be creating which will be sometime later tonight.

Submitted

Ok, so the game I will be creating is titled "27 Days in a Rocket Ship" and story goes that an astronaut crew from NASA was tasked to carry cargo to the Moon to set up a second (or first) Moon Base. Unfortunately something happened along to the rocket and the ship is now stuck in orbit. And the only way to rescue the crew is to send another rocket to them but it'll take 27 days for the rocket to be complete and to send the recovery crew. So now it is up to you manage how the food, water, and oxygen is used among the crew and to keep them alive till help arrives.

So that's the premise of the game and the gameplay is making sure you're able to keep the crew alive. The game sounds like it would work best for mobile so I will have to try my hand at that so my goal for tomorrow is to hopefully get a working demo running while trying to avoid making spaghetti... code.

Submitted

Oh boy, haven't made an update in awhile. Let's see where to start? Since I've only ever made one other game in LibGDX following the tutorial from youtuber Brent Aureli, I didn't have as much experience in setting up a project on my own to get it working but after some time of understanding how Brent set up his project, things started to make sense. So through his tutorials, I was able to get a game running properly and being able to set up a render and update method for different states of the game.

Now the states was another challenge as I was going back and forth between using enumeration to switch between states or using a stack that would keep track of my states with the use of a State Manager class. And since I didn't have too much experience using enumeration, it was best to stick with something more familiar so I ended up using a stack which would push a new state, such as the menu state, and pop the state when changing to a different state. Besides those challenges, I've also been working on artwork such as sketches of the astronauts, the logo, buttons, the spaceship, and other stuff. Currently the background image is probably the only thing finalized at the moment but more will be done soon.

One other thing that I have been tackling these past few days is figuring out how the make the oxygen, water, and possibly electricity supply last for 27 days exactly while also adding an easy and hard mode on top of that. I'll have to figure out the numbers more tomorrow. That's all for now.
Submitted (2 edits)

Let's see what's the topic for today is... *rummaging through notes* ah right, timers and clocks. Since I haven't made many games, my knowledge on timers was, well, lacking even when searching to find suggestions to determine how much time passes in order to say this ability can be used again after 20 seconds or 2 hours has passed in-game. But after creating some of my own timers as a pet project back in October and implementing a similar method for this game, hopefully I can explain how timers work that might help other people as well.

First off, System.currentTimeMilis() vs System.nanoTime(). I decided to go with nanoTime() as most people recommended that to measure time that has passed since the method was called inside the app/game while currentTimeMillis() takes the current time of your computer's clock and turns it into milliseconds. Next, you need to imagine a stopwatch that you can start, stop, and reset so in order to start, you call nanoTime() in the constructor and assign it to a long variable called start (can also be done in a method but be careful about calling it, especially in the update method as I've accidentally reset the start timer multiple times while unaware at first) and it'll save the start time.

Then if you want to see or check how much time is passed, you can either use a variable called end that calls nanoTime() or use System.nanoTime() itself. You would then subtract end from start and then divide that number by 1,000,000,000 to get a result.

ex:

long start = System.nanoTime(); // <-- called somewhere else
long end = System.nanoTime();

if( ( (end - start) / 1000000000 ) == 2.0) {
   System.out.println("Two seconds have passed");
   start = System.nanoTime(); // <-- this might not be necessary but I need to continuously check to see
          // if a second passes. Could be a better method
}
else {
    // do nothing or something till the two seconds pass
}

And that's my method of getting a clock running that will keep track of every class that works based on the time.

Submitted

Now, one last thing I want to discuss before signing out for the night (which needs its own post since it'll also be long) and that is the actual gameplay. I originally thought I could implement 5 crew members that all would need food, water, oxygen, exercise, and sleep while trying to implement the survival of threes for a human to survive states

  1. 3 minutes without air
  2. 3 hours without shelter (not necessary since the shuttle is the shelter)
  3. 3 days without water
  4. 3 weeks without food

So I ran into the problem that the player could make sure to feed the crew once a week without running out of food and a similar process to water and talking with a friend about some of these dilemmas, I came up with an idea where the longer a crew mate goes without food or water, the less active they'll be and the less likely they'll want to eat and such, aka getting weaker. So the player must make sure they feed the crew at least once a day and at most 3 times a day.

Another thing that my friend brought up that would add challenges and make the gameplay different each time you start new would be to give each crew mate a different characteristic randomly, such as one crew mate eats more than the others or another gets thirstier easily and other things so the player would really have to manage how everything is used while keeping the game interesting.

So gotta account for those types of variables and changes tomorrow and I should have an alpha build up by Tuesday if no distractions occur.

Submitted

This will be a quick blog but two things I wanted to share that I haven't really seen after searching on google for awhile is that if you have a Texture or Label or something else added into the stage and you want to temporarily remove it, you can just call stage.getActors().removeValue("name of variable you want to remove", true); and it is set to true meaning you want to remove it. I'm sure that there is a better method to remove an item from the stage or to just not render it but this was the best solution I could find. And one other thing that I did not know until yesterday is that when you create a ClickListener for a button, where an event occurs when you press on the button, it is best to put the method that this event is created in into the constructor so that it is created once and then it runs each time the button is clicked. The reason why I wanted to mention this was that I was having trouble clicking on a button and it would fire an event a few times instead of just once because I had the method in the update method of my code where it would be called each frame instead of just once.

Hope this helps others.

Submitted

Well, this will probably be my final dev log for this game jam so I might as well write down my final thoughts on working on this game and reflect back on what I've done.

Thoughts & Reflections:

It sure has been an interesting month learning what LibGDX has to offer and what I can do with it in such a short amount of time. One of the biggest things that I didn't fully realize was how much time, coding, and art goes into creating a video game, especially if you're a one-man team. And although I spent a lot of time searching on Google and Stack Overflow and testing and debugging things when they didn't work, it was a really positive experience for me as I finally got to make a (mostly working) game and I'm sure with the experience I've gained I'll most likely continue making games in LibGDX.

> I'll most likely continue making games in LibGDX.

Nice to hear it :)