Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

AppGameKit/AppGameKit Studio Showcase / [WIP/Blog] AstroSurvival [Win]

Author
Message
Ched80
14
Years of Service
User Offline
Joined: 18th Sep 2010
Location: Peterborough, UK
Posted: 28th Jan 2014 22:22 Edited at: 4th Mar 2014 07:01


[the short version]
An open world survival game set in the asteroid belt.

[download]


[the slightly longer version]
AstroSurvival is an open world survival game set in the asteroid belt. The simple aim is to survive as long as possible.

The world is 2D and the navigation utilises the 2D physics of AGK.

You design your own droid from scratch selecting and combining components from a tool box. You then take your craft into the depths of the asteroid belt where you need to drill into the nearby asteroids to yield fuel and energy to continue your adventure.

Navigation is performed with W,A,S & D for the thrusters and Q & E for the torque wheels.

Asteroids can be targeted using the left mouse button identifying the mass, distance and relative velocity of the asteroid.


...and the point of this thread is...
This thread is my first attempt to blog the development of my game. My aim is to post as frequently as possible. I tend to work on the game each day, spending about 1-2 hours during my commute to and from work. So my aim is to post something each working day, but depending on progress this may drop to weekly posts.

I started coding on the 10th January and this tread is a record of how I progress

[Current Screenshots]




[Latest video/trailer]


The plan is to eventually move the project onto AppGameKit v2 to take advantage of the 2D shaders, but until a more stable version is available the project is built in AppGameKit v108 in Tier 1.

[credit where credit's due]
Asteroid images - Phaelax - here
Music - Mike Williams - here
Title Music - odD - here


[change log]
[2014.01.10] - coding started
[2014.01.28] - first post
[2014.01.31] - moved project onto v108.21
[2014.02.23] - alpha demo released

Attachments

Login to view attachments
Ched80
14
Years of Service
User Offline
Joined: 18th Sep 2010
Location: Peterborough, UK
Posted: 29th Jan 2014 21:10 Edited at: 29th Jan 2014 21:10
Today wasn't too bad despite getting a puncture and dropping my broke light!

Managed to add two status bars showing the current fuel and energy levels of the droid as shown in the screenie at the bottom.

I added two extra functions into the DroidParts.txt file "SecOffsetX:" and "SecOffsetY:". I should probably explain that all the droid components that you can build with are defined within a text file within the media folder. This allows the user to customise components to their own desire or even create their own. There are various functions such as "image:" which defines the image file for the component and "type:" which defines what class of component it is. There is also a function to define a secondary image in addition to the primary component image. The reason for the secondary image is so that drills can have an extendible part that moves in relation to that of the main component image. In this case "SecOffsetX:" defines the nominal offset of the secondary image from the primary image in the x (horizontal) axis. When I finally get around to releasing a demo, i'll list all the DroidPart functions so they you can customise the demo as you wish.

I added the basics of mining such that the game now detects when the mining drill is interacting with an asteroid.

I managed to tweak some of the component values so that you don't run out of energy and fuel too quickly.

I believe I have fixed a weird bug where sometimes AppGameKit would not copy the sprite ID number into an array. For example In the game there are nominally 24 asteroids on screen - if the player moves far away from an asteroid the game kills off the asteroid and makes a new one closer to the player. So that the game doesn't place the new asteroid over an existing asteroid, it loops through the positioning sequence until no collision is detected. When a good position is found it copies the sprite ID to the array. If the ID is not copied correctly it creates a new sprite. The weird thing was that the bug didn't happy every time, it only occurred now and again. Anyway I think i've captured the bug by checking that the sprite id has copied correctly - if it doesn't it deletes the new sprite and tries again. So far, it's not returned.

Tomorrow's task is to add a storage component so that the mined material can go somewhere and possibly start the basics of crafting.



Attachments

Login to view attachments
unlikely
12
Years of Service
User Offline
Joined: 5th Mar 2012
Location: Ohio, USA
Posted: 30th Jan 2014 19:27
Hi Ched80. Sounding great so far! Just the type of game I would love to play.

(Just an additional comment before you get tooo far... "Droid" is actually a trademark of Lucasfilm. Pretty sure it extends into software as well. If this is just going to be a small hobby project, you may be fine (I hope so.) )

Anyway, yeah! Looks like a great start and looking forward to following your progress!
Ched80
14
Years of Service
User Offline
Joined: 18th Sep 2010
Location: Peterborough, UK
Posted: 30th Jan 2014 21:15
Cheers unlikely, this is a game idea I've had for a while and I've only just got the motivation to bite the bullet and make it

Good point about the trademark - I'll have to think of another name as I would like to release this on Desura and I don't want to run into any silly issues like that. Also I really should have done a simple google search as there are already three other games on the Android Play store titled AsterDroids!!!

Ah well, I'm sure I'll find an suitable name before too long.

And judging by today's progress that could be quite some time! So today I expanded on the mining mechanic, but soon ran into a few annoying bugs.

The bit I implemented was to define the 29 elements that will eventually be used in the crafting system. The 29 elements are based on elements from the periodic table and the player will extract these elements by mining the asteroids.

So my idea for the mining mechanic is for the player to manoeuvre close to an asteroid and deploy the drill into it. The longer the drill is in the asteroid, the more material will be extracted, but if the player hasn't matched the speed and rotation of the target asteroid, the drill will snap off.

But assuming the drilling has been a success, the player will now have a random amount of elements to play with.

I'm not sure how to actually implement that part yet, but I want it to be quite experimental where the player will mix the various elements together to create components, upgrades, fuel and repairs.

But I hit several bugs before I managed to test my implementation so testing is tomorrow's job. One of the bugs I hit was all of my own doing. I wrongly assumed val() returned a float and not an integer and that simple mistake meant the drill wouldn't deploy when I ran the game!

The second bug was stranger. I have a log file that I create when the game is ran to report various statuses and player actions, all time-stamped. But weirdly AppGameKit would crash claiming it couldn't find the file, despite having written to the file several times before it crashed. I also spotted the last time stamp would have corrupted characters. But one restart of my PC later and the bug vanished.

The one bug I still can't resolve is the one where the game crashes when it closes. I'm hoping this will go away when I change how the game ends, but for the moment every time I quit the game, it freezes and crashes.

I really need to shorten these blog entries.

unlikely
12
Years of Service
User Offline
Joined: 5th Mar 2012
Location: Ohio, USA
Posted: 30th Jan 2014 21:33
Ah, the elements / mining mechanic sounds interesting. 29 elements should provide a lot of room for experimentation and crafting. (Asteroid mining is a concept I've been playing with a bit in a little project of mine lately as well--though a bit different mechanics-wise.) Hope you those strange bugs don't bog you down too much!
Ched80
14
Years of Service
User Offline
Joined: 18th Sep 2010
Location: Peterborough, UK
Posted: 31st Jan 2014 20:33 Edited at: 31st Jan 2014 20:33
Another buggy day - and today got much worse - I couldn't even run the game without getting some weird memory error after trying to create 24 sprites!

Anyway I eventually spotted v108.21 had been released solving some memory leaks and all is well again.

Mining now works (technically) and I've also managed to add the basics of weaponry.

The screenie below shows a mounted laser turret that constantly points towards the mouse pointer. Eventually left clicking will fire the laser, but that's not in yet.

So to get the turret to work so far I've added two extra functions into the DroidParts.txt:

SecRotating - to identify secondary sprites that rotate towards the mouse pointer.
SecTop - to identify secondary sprites that sit above the core droid structure.

(I'm still going to use the term droid until I find a better word )



Attachments

Login to view attachments
Ched80
14
Years of Service
User Offline
Joined: 18th Sep 2010
Location: Peterborough, UK
Posted: 3rd Feb 2014 23:17 Edited at: 3rd Feb 2014 23:18
A pretty productive day today.

I implemented a lot of the laser weapon code, improved some of the graphics for the components and made a good start on the media for the crafting/experiments part.

Short post today though as it's late and I need sleeeep!



Attachments

Login to view attachments
Ched80
14
Years of Service
User Offline
Joined: 18th Sep 2010
Location: Peterborough, UK
Posted: 5th Feb 2014 06:31
Another pretty good day. I think I have solved the memory leak problem I was having.

All the data concerning the asteroids is held in a global array called asteroid[], but I had originally only dimensioned this array asteroid[1] despite the fact I was trying to create 24 asteroids. Weirdly the compiler never reported an out-of-bounds error for this, it would run, but just crashed the game from time to time with a memory error. Having now dimensioned the array correctly the game runs without any errors.

I have started the crafting/experiments mechanic, but I've not got anything worth showing yet.

In a stroke of luck Phaelax has created some great asteroid images for free. You can pick them up here.

Today's task is to continue with the experiments mechanic.

Ched80
14
Years of Service
User Offline
Joined: 18th Sep 2010
Location: Peterborough, UK
Posted: 5th Feb 2014 22:27 Edited at: 5th Feb 2014 22:27
Made some pretty good progress today - the basic experimental part is almost complete so I will have something to show on Friday.

I also managed to incorporate Phaelax's asteroids as shown in the screenie below. I love them even though I'm not animating them (even though they are intended to be animated) and i'm also purposely stretching them by up to 600% to get a more pixel-art style from them.



So since I'm not animating them, I've suddenly jumped from 1 asteroid image to 48 and the game instantly has some nice variety in it.

I also tweaked the mining code a bit and fixed a few bugs.

So all in all a good day. Taking a day R&R tomorrow so the next update will be Friday.

Attachments

Login to view attachments
Phaelax
DBPro Master
21
Years of Service
User Offline
Joined: 16th Apr 2003
Location: Metropia
Posted: 6th Feb 2014 20:09
Sweet looking asteroids!

Ched80
14
Years of Service
User Offline
Joined: 18th Sep 2010
Location: Peterborough, UK
Posted: 8th Feb 2014 09:05 Edited at: 8th Feb 2014 09:06
Thanks Phaelax Sorry to pixelate them so much, but that's the style I'm going for here.

Made some good progress yesterday. I've got the basic experiments mechanic working (seen below) so you can now replenish fuel and energy with the items you've mined and you can dump the elements you don't want.

I've not started on the true experimental mechanic yet where you have to try out recipes combinations to see what item is yielded. maybe next week.

I tweaked a few things here and there, such as adding a force bubble when you explode, but not much else. My next challenge is to include enemies. After that i'll probably put out a small demo.



Attachments

Login to view attachments
Ched80
14
Years of Service
User Offline
Joined: 18th Sep 2010
Location: Peterborough, UK
Posted: 10th Feb 2014 21:29
Made reasonable progress today despite adopting a lovely cold. Yes. I was that annoying guy on the train constantly sniffing the entire journey! Things got so bad i ended up wiping my nose on a spare pair of socks i had in my bag! not my finest moment.

Anyway - game wise I've introduced damage into the mechanics so if you collide with the asteroids you damage your craft slightly. Damage can also be repaired with Aluminium which can be mined.

This is all setting up for the introduction of basic enemies which i started work on as my train pulled in and getting all the basic enemy parts made will be my aim for the rest of the week. Once that's in I may do a short video.

Oh I also added some music from my friend mike. You can find his music here on soundcloud.

Ched80
14
Years of Service
User Offline
Joined: 18th Sep 2010
Location: Peterborough, UK
Posted: 11th Feb 2014 20:20 Edited at: 11th Feb 2014 20:21
Not much progress today - I continued with the enemy implementation and hit a brick wall for most of today trying to get the random enemy design to work.

My idea is that the game will try and make it's own droid designs to attack you with - which is basically me being lazy so I don't have to design the enemies - but the lazy way has been unexpectedly difficult.

I still think I'm on track for the basics to be implemented by the weekend.

Anyway here's a pic with the health bar that I added yesterday.



Attachments

Login to view attachments
Ched80
14
Years of Service
User Offline
Joined: 18th Sep 2010
Location: Peterborough, UK
Posted: 12th Feb 2014 21:00 Edited at: 12th Feb 2014 21:00
Better progress today. Got a second track from my mate integrated - I'm following the way FTL composed their music where there is a second - faster pace version of the same piece of music that is triggered when enemies appear. The second piece I integrated today was the faster paced track and it fits really well.

I also got the enemies appearing as shown in the image below, but they don't have any logic yet so they just float around as dead physics objects.

Tomorrow job is to start the basic AI.



Attachments

Login to view attachments
Ched80
14
Years of Service
User Offline
Joined: 18th Sep 2010
Location: Peterborough, UK
Posted: 13th Feb 2014 20:14 Edited at: 13th Feb 2014 20:15
I got the very basic AI implemented - it far far far from perfect. At the moment all the AI does is try to get close to the player and constantly fire the laser whenever it can see the player.

There's no energy, fuel or health preservation and no collision avoidance implemented yet so still far from the final goal.

Tomorrow will be improving the weapons so that they can actually damage other droids.

Anyway here is a pic of the current enemy battles.



Attachments

Login to view attachments
Ched80
14
Years of Service
User Offline
Joined: 18th Sep 2010
Location: Peterborough, UK
Posted: 15th Feb 2014 15:51 Edited at: 23rd Feb 2014 15:27
I didn't post yesterday as I wanted to get a little video out of the current state of the game.

So here its is:



Attachments

Login to view attachments
Ched80
14
Years of Service
User Offline
Joined: 18th Sep 2010
Location: Peterborough, UK
Posted: 18th Feb 2014 06:48
Yesterday was more f a tweaking day.

I did implement a storeage bar to show how full your craft is and i also added a little icon to show the status of the drill, but nothing major.

The tweaking was to do with the sprite scaling - i've now forced all droid parts to be at 150% scaling to control the pixelation and also to help with the physics scaling - which is today's challenge

Ched80
14
Years of Service
User Offline
Joined: 18th Sep 2010
Location: Peterborough, UK
Posted: 19th Feb 2014 06:54
Another tweaking day. I changed the physics scaling to make the game run a bit more solidly, but this had the knock-on effect of affecting all the force and torque balancing I had done, so that all got tweaked too.

I also changed how the thrusters were joined to the body so improve their stability.

I also finally added damage to weapons so you can actually destroy the enemy craft now. The battle is a bit one sided at the moment as they can't hurt your yet, but that's today's challenge.

I think i'm reasonably close to a demo now. I need to tidy up a few things but I'd like to upload something simple within a week or so.

Ched80
14
Years of Service
User Offline
Joined: 18th Sep 2010
Location: Peterborough, UK
Posted: 20th Feb 2014 06:55 Edited at: 20th Feb 2014 06:56
Yesterday was all about content.

I created a few more droid parts, some examples are shown below.



I also got a great suggestion for a new name "AstroMiner", which I think sums the game up better than Asterdroids, so I'll be renaming the project in the next few days.

Today is going to be about making sure these new components work within the game

Attachments

Login to view attachments
Ched80
14
Years of Service
User Offline
Joined: 18th Sep 2010
Location: Peterborough, UK
Posted: 20th Feb 2014 21:56 Edited at: 20th Feb 2014 21:56
More content tweaking again today and here is a shot of the new parts in action. I also decided to re-draw all the original parts to make them look nicer.

I also changed the standard part diameter from 32 px to 64 px so the parts show a bit more detail and I think it makes a big improvement.

Going to focus on balancing and bug fixing tomorrow as I still want to hit the first demo out by next week.



Attachments

Login to view attachments
BatVink
Moderator
21
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 22nd Feb 2014 16:46
If you want some more media for this kind of game check out these too:
(No offence meant to anyone already involved, this is just more good stuff)

Planets
Nebulae
Stars/Suns



Ched80
14
Years of Service
User Offline
Joined: 18th Sep 2010
Location: Peterborough, UK
Posted: 23rd Feb 2014 15:53
Cheers for the links BatVink, you can never have enough of this kind of stuff!

So, after some last minute name changing panic, I'm now at the point of releasing my first demo/alpha of the game as the majority of the game mechanics have now been implemented, even if a lot of tweaking is still needed.

I've put the demo up on IndieDB to try and increase the exposure of the game, but this thread will remain as the main blog for the development.

The download can be found here:


And here is the trailer accompanying the release:



Ched80
14
Years of Service
User Offline
Joined: 18th Sep 2010
Location: Peterborough, UK
Posted: 25th Feb 2014 05:50 Edited at: 25th Feb 2014 05:51
What's the first thing to update after you've released a demo? The guns!

I'm cheating a little here as I'm just taking the guns I created from another game, shrinking them and then crowbaring them into this game. The first one seemed to work quite well (as shown below).

The introduction of these weapons also means I've had to expand the weapon mechanics so that not every gun is a freakin' lazer. This one shown is a single shot firing gun - a bit like a relvolver. I'm also coding in automatic guns and a blunderbuss/shotgun style weapon to give a bit of variety.

The addition of these new weapons also means I'll need to add the ability to make ammo from the resources you mine as I don't want these types of guns to have unlimited ammo.

I also think I need to introduce some mechanic to switch weapons on and off so that they don't all fire when you press the fire button. You may want all the weapons to fire at once, but if you're low on charge you may wan to switch off the more power hungry weapons.

I've also been having a few ideas about new droid parts like radioactive power sources and shield bubbles - but we'll see.



Attachments

Login to view attachments
Ched80
14
Years of Service
User Offline
Joined: 18th Sep 2010
Location: Peterborough, UK
Posted: 26th Feb 2014 07:00 Edited at: 26th Feb 2014 07:01
More gun progress yesterday. I added 10 new gun designs bringing the total count to 12, with a reasonable spread across single shot types, automatic/machine guns, blunderbus/shot guns and lasers.

None of them are balanced and most have the incorrect fire sound, but since I'm defining the sound in the DroidParts.txt using my "Sound:" parameter, I can just change the sound later without recompiling.

I also added a few more parameters into the DroidParts.txt:

- Bullet: defines the bullet image to use.
- FireRate: defines the time between bullets in milliseconds.
- FireSpread: defines the angle of bullet spread for the shot-gun types.
- MuzzleFlash: defines the 4x4 decal to animate when the gun is fired.

As mentioned above I also added muzzle flash to the guns producing bullets - as shown in the image below.

I also tweaked the asteroid creation a bit, defining the asteroids into three types:

Class-C - Canbonaceous
Class-M - Metallic
Class-S - Standard

The types will reflect the types of elements inside them, which should make exploration a bit less hit and miss.



Attachments

Login to view attachments
Ched80
14
Years of Service
User Offline
Joined: 18th Sep 2010
Location: Peterborough, UK
Posted: 26th Feb 2014 20:13 Edited at: 26th Feb 2014 20:14
Another good day.

More gun progress - this time focussing on the physics of the bullets. All the problems were basically collision related so after playing around with the collision masking all is working nicely.

Today's pic is of one of the shot-gun style guns - this one is the Waldon Blaaf firing 4 shots, spread across 15 degrees. You can't see the bullets flying off as I've increased the speed of the such that capturing them in a screen shot is pretty difficult.

The number of shots and the spread are not hard coded and can be adjusted from the DroidParts.txt file.

Apart from the guns I corrected a bug on the initial droid design selection screen where it wouldn't correctly load the correct design if the player tried to pick any design >4.

I also tweaked the droid designer such that thrusters must be placed on an existing body part, otherwise thrusters could be placed in mid air.



Attachments

Login to view attachments
Ched80
14
Years of Service
User Offline
Joined: 18th Sep 2010
Location: Peterborough, UK
Posted: 27th Feb 2014 20:19 Edited at: 27th Feb 2014 20:19
I had a good think about the weapons system last night and decided I needed to change how the bullets and weapons were going to be handled.

Originally the ammo was tided to the weapon type, but I wasn't totally happy with this as it limited how the ammo was linked to the crafting side of things and it also meant you were tied into a single ammo type for the whole game.

So to correct this I have chosen to split the bullets from the weapons completely. But, at the same time, I have made all bullets compatible with all weapons.

So now the weapon only affects things like fire rate, accuracy, etc. and the different bullets give you additional damage, speed, explosives, etc.

I think this is a much better system and will enable me to offer the play a wider range of ammo to craft.

Anyway, Today's screenie shows where the different bullet types will be shown (along the bottom). All bullets will be held in a common stash that is accessible to all of the weapons. To change ammo type, the player will just click on the ammo type they want and then fire their weapon.



Attachments

Login to view attachments
Ched80
14
Years of Service
User Offline
Joined: 18th Sep 2010
Location: Peterborough, UK
Posted: 28th Feb 2014 22:23 Edited at: 28th Feb 2014 22:24
Another strong day today, I removed a few bugs concerning the thruster placement in the droid designer screen and a major bug within the experiments screen.

But I spotted this rather scary bug in the enemy create function!



I didn't stand much chance against all those guns! I'm sure i'll figure out how to solve the issue in time.

Also managed to add the "slug" bullet type to the game and these can now be made in the experitments area.

Not doing any more over the weekend as the family are visiting, but this has been a good week and I've made some good progress.

Attachments

Login to view attachments
unlikely
12
Years of Service
User Offline
Joined: 5th Mar 2012
Location: Ohio, USA
Posted: 1st Mar 2014 03:35
Wow, good work Ched80, you seem to be making really good progress lately.
Ched80
14
Years of Service
User Offline
Joined: 18th Sep 2010
Location: Peterborough, UK
Posted: 4th Mar 2014 07:00 Edited at: 4th Mar 2014 07:00
Cheers unlikely!

Yesterday I managed to implement the beginnings of the mines. As shown in the pic, if you accidentally collide with a mine, it will explode causing your game to end.

Later I want to make it possible for you to lay your own mines to destroy enemy droids.

I've also made it possible for magnetic mines that drift slowly towards you if you get too close.



Attachments

Login to view attachments
Cliff Mellangard 3DEGS
Developer
18
Years of Service
User Offline
Joined: 20th Feb 2006
Location: Sweden
Posted: 4th Mar 2014 19:40
How did you get your indidb button to show and work in the forum ?
I tried many things but don't seam to get it to work at all?

Android 2.3 , ZTE Skate , 480x800 , 800 mhz , Samsung Galaxy Y , 240x320 , 832 mhz , Sony ericson arc 480x854 , 1 ghz
Android 4.0 , Dmtech 3g 9738B , 1024x768 , 9.7 inches , 1.2 ghz
Ched80
14
Years of Service
User Offline
Joined: 18th Sep 2010
Location: Peterborough, UK
Posted: 5th Mar 2014 07:48
Hi Cliff,

You can't directly copy and paste the IndieDB button into the forum post. You basically just copy the image link and then create a hyperlink through that image.

Something like this:

(href=http://www.indiedb.com/games/astrosurvival/downloads/astrominer-astrosurvival-alpha01)(img)http://button.indiedb.com/download/medium/66155.png(/img)(/href)

But replace the parentheses with square brackets.



I made some ok progress yesterday. Nothing new was added, I partly created a new drill part and debugged how the lazers interact with the mines, but I didn't finish either.

This project will be on hold for a few weeks while I enter the latest TGC game competition - I'm always a suck for those things! so alpha02 will also be on hold until april at the earliest.

Cliff Mellangard 3DEGS
Developer
18
Years of Service
User Offline
Joined: 20th Feb 2006
Location: Sweden
Posted: 5th Mar 2014 08:32
Thanks ched I simply managed to get the last href on a extra line down when I pasted my things in

IT works now so thanks

Android 2.3 , ZTE Skate , 480x800 , 800 mhz , Samsung Galaxy Y , 240x320 , 832 mhz , Sony ericson arc 480x854 , 1 ghz
Android 4.0 , Dmtech 3g 9738B , 1024x768 , 9.7 inches , 1.2 ghz
Cliff Mellangard 3DEGS
Developer
18
Years of Service
User Offline
Joined: 20th Feb 2006
Location: Sweden
Posted: 5th Mar 2014 23:16
I sent you an friend request on indidb so we can grabb some clicks from each other and share visits there

Team space kitten is van and i.

Android 2.3 , ZTE Skate , 480x800 , 800 mhz , Samsung Galaxy Y , 240x320 , 832 mhz , Sony ericson arc 480x854 , 1 ghz
Android 4.0 , Dmtech 3g 9738B , 1024x768 , 9.7 inches , 1.2 ghz
Ched80
14
Years of Service
User Offline
Joined: 18th Sep 2010
Location: Peterborough, UK
Posted: 8th Mar 2014 08:54
Cheers Cliff, I got it and added you

Login to post a reply

Server time is: 2024-11-21 17:50:36
Your offset time is: 2024-11-21 17:50:36