Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

bicoosh's DevLog

A topic by bicoosh created Jan 13, 2016 Views: 4,270 Replies: 8
Viewing posts 1 to 9
Submitted (1 edit)

We had an idea for a game the first day the Jam started. Actually, we had several ideas! But alas, life, Christmas, New Year and so on, we have only just started.

Perhaps some of you are familliar with the idea of panspermia, that life is abundant in space and that it is spread through space by celestial bodies crashing into each other (e.g.asteroids carying life creating proteins crashing into a planet). In our game your mission is to plant the seed of life on messenger-asteroids, for the galactic corporate law states "Any celestial object seeded by Life becomes the property of the company that places the Life-Seed". Messenger-asteroids that have life on them will be catapulted to the far reaches of the galaxy to spread the corporate interest:

"Space! An infinity of an unimaginable vastness. A vastness filled to brim with nothing and topped with a bunch of rocks. And yet here we are... Welcome, dear Pilot, to Space Seed Inc. !"

You will take control of a Life-Wing class spaceship specially equipped to generate and spread Life-Seed. Your mission is to enter the dangerous asteroid field, navigate it, mine if for resources and plant the Life-Seed on as many asteroids as you can all while compete against other Pilots.

The game will be a multiplayer Asteroids game (singleplayer example), where you destroy small asteroids to charge up your Life-Seed gun (with materials collected from the destroyed asteroids) and shoot the special Life-Seed gun to implant the seed of life on bigger asteroids. You will compete against another (hot-seat) player. Be warned, destroying the players ship with your lasers is frowned upon and you will loose points (property destructions is not profitable for a space company).

We will try to log as much as we can and hopefully have something to show for it in the end.

Submitted

So, the GitHub repo is up an running. Still need to add the README. Some other time, perhaps :)

Currently the game is what you get when you go through the William Mora tutorial. Thank you Will for this tutorial, it was a good start.

Marija is also getting into the libGDX, she added what will be our main/title screen and some logic to switch between it and the game. So far so good! I toyed around with the tutorial code getting a bit more familliar with box2d and scene2d rendering.

Tomorrow we will visit our coleague Ivana and hopefully make our first screenshots!

Submitted

So, we met today at Ivanas place to do some work!

We removed almost all references to the tutorial code and art. We are contemplating to include the alien image from it since it is too cute! I guess we could, the image is from asset Jesus Kenney. We will update some screenshots if we use it in the end.

We now have a playing field and a FitViewport for our game. For now, black bars that fill up space are better than stretching.

We changed the background image, something space-y is better than nothing.

Well here is a screen. The boxes are box2d shapes, drawn here so that we know everything is fine :) The little alien guy looks like he fell out of the ship, heh.

And here is a gif of the ship in motion, boxd2 makes for some smooth physics!

What remains is to find a nice font for our game, finish up the main menu, create the games UI, add asteroids, shooting, sounds... Oh my... a bit overwhelming.

In any case, we will continue tomorrow!

Submitted

Another exciting day at Ivanas!

We added some tutorial aniamtions on the main screen, started work on some blooming animations and added asteroids and seeds to the game. Also, another ship!

How it looks right now:

Tomorrow we will add blooming flowers to the asteroids and setup the game progress. We were thinking to have the asteroids continually come from the top/bottom and leave the playing area and the player can collect his/hers ensemenated asteroids.

Well, it is friday, gotta go recuperate from a whole day of development. Cheers!

Submitted

Wow, it feels like weeks have passed. To think we only started working on Space Seed Inc couple of days ago. In any case, I think we will be able to finish up the game!

Blooming animations are in! They were a bit of a hassle to draw and a bit tricky to implement but here they are:

Now you know which asteroid was insemenated by which player. Also, Kenney aliens are so damn cute, we decided to leave them in the game. They do not do much, just float about and collide.

We found some appropreate music, yay! That was tough. Here it is in case someone IS reading this. dig.ccmixter.org is a nice source of free music if someone (everyone) needs a last minute background audio. We still have a bunch of sounds to add tomorrow, hopefully we will find time to do so.

Marija was hard at work with the main screen scene, she added bunch of text, couple of buttons and more importantly a tutorial! We decided to try and have a tutorial explaning how the game is played on the main screen and have it animate around the effect of pressing buttons. I have no idea if it will be clear to the players, but it seems nifty. Here is a screenshot:

What is left, besides communist, are forementioned sounds, connecting game UI (points and time) to the actual game, fixing lasers, destroying asteroids with lasers (this includes some simple particles and animations), drawing the icon. Perhaps adding some colour to the main screen? Who knows. So much to do yet so little time.

Hope you are checking us out and see you soon in the submissions feed!

Submitted

This Jamming thing is quite interesting, I can imagine how intense it would be if it lasted only 48 hours. We slept over at Ivanas place so that we could get an early start. I am glad we are all involved so much in this, it is nice to be creative and make stuff with your friends. The only downside is that it is a bit draining on our wellbeeing.

Kind of sad it ends today. Kind of happy too.

Submitted

The final touches are ariving and the codebase is metastasizing. I hope there will be an hour or two of time left to clean it up a bit!

In any case, here is some blooming of asteroids and their subsequent destruction by lasers:

Still need to find sounds and actually test out the gameplay. And create the submission page :) And stop posting last minute dev logs!

Submitted

A lot of circular referencing these last hours, everything links to everything, so here it is... OUR SUBMISSION

Today was an exciting day for all of us! This is Marijas and Ivanas first game to be published. Although I think they just want to go to sleep right now (so do I).

We finished the asteroid destruction and creation of smaller asteroids. Fixed a bunch of little problems. Tweaked the gameplay, the usual. And most importantly, we added sounds! That was energy draining process, since laser sounds are really, really annoying. Luckily, Marija found great sounds and I used Audacity to edit the sounds a bit. The audio feel of our game is not perfect, but it is ok. Some sounds might be a bit louder/quiter, but that is ok. Ivana made the games icon and poster for the submission. We even managed to cleanup the code a bit, remove the remnants of the initial tutorial (but not completely).

What is left now is to edit the README on the git to include credits to audio and images we used and to spread the word.

This was imensley fun and in the end we are happy with the game we made. It is a fun thing to play, unfortunately you need to have a buddy to play it with. But hey, it is hard to be perfect nowdays :)

Submitted (1 edit)

Technically, development is not over yet... As Mario of badlogicgames said, we can post bugfix updates without any content change. So we decided to do that and update the DevLog accordingly. This will be a bit more technical one.

The code was a mess with a lot of c/p code and unnecessary loading done in the background. We had several places to do some cleanup and optimization.

Our sound was always created on the spot using the Gdx.audio.newSound. This is not that bad, it does what it has to. But, we do not know if the newSound method checks if sound was already loaded, also Sound objects should be disposed when they are not used and that is a tricky thing to know. Our guess was that if not leaking, such on the fly sound loading is at the least slowing the game down. So we created a SoundManager that preloads sounds (optionally) and newSound is only called once per sound file. Since we do not have a lot of sounds it should not be a big memory issue. In the previous version one could notice a small lag before a sound was played for the first time, now that lag is gone. The manager itself is quite simple, one enum for all sounds with path/volume/pitch info and a map of loaded sounds.

Another thing was that our MainStage and GameMultiplayerStage were unconnected classes with a lot of underlying code just c/p from one another (downside of working fast with new technology) and we decided to clean it up. One GameStage later and no more copy paste code! It was a good OOP practice for Marija.

We had this pattern scattered through our game object classes (Ship, Asteroid, etc.)

private static TextureAtlas classAtlas = null;
private TextureRegion getSomeRegion( String regionName ){
  if( classAtlas == null ){
    classAtlas = new TextureAtlas( atlasPath );
  }
  return classAtlas.findRegion( regionName );
}

It was a simple and useful pattern that prevented a bunch of atlases being created and was simple enough to c/p (again). But it was unsustainable. Instead, now we have AtlasUtils (an atlas cache) that does the same job, only it uses a static map of atlases and can be filled with any atlas. The downside is the overhead of digging through the map, but that should not be such a big deal. Again, the project is small, the added memory footprint of always having the atlases at hand is negligible considering the gain. A more advanced game should have some sort of cleanup mechanism for the atlas and sound caches.

Another thing we noticed was unnecessarily spawned were the animations. Flower blooming animation was created every time with every flower. Basically, all flowers have the same frame animation so we just made it static it in the Flower class and instantiated once. A similar thing was done on couple of other places.

And there you go, a bit smoother experience :) We have no idea how other people work with libGDX and Java, and to fix that I will check out other people's repos this week. If you are interested in our code, here is our repo. Check it out, tell us what you think!