Search Unity

[BETA RELEASE!] Atlantic Crisis ... Hand-Coded "Old School" Submarine Fun!

Discussion in 'Works In Progress - Archive' started by GarBenjamin, Jul 18, 2016.

  1. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    Recently, I decided I really wanted to knock out a few small games. I've worked on large game projects many times and the idea of tackling some small games... well it's just refreshing.

    I'm actually 10 days into development on this now so figured it was a good time to make a dev log over here now that I actually have enough done to see something.

    I am targeting GameJolt and Kongregate for this simple game project
    . Yep it will be a completely free game played in your web browser. Basically I am sort of ramping up to tackle my first real Indie game project. Need to knock the rust off the fingers, pay a bit of attention to visuals (actually choosing colors that work well together) and so forth. What better way to do this than to fill out my web game portal accounts a bit?! :)

    July 8th


    ABOUT

    Atlantic Crisis (working title subject to change) is a sort of remake of an old 2600 game called SeaQuest. Set in the Atlantic ocean you are control of a submarine and must rescue divers. Dangers include sharks, stingrays and enemy subs.

    You simply rescue the divers one at a time and take them to the surface. You must also defend the divers from the dangers below. The entire time your sub is underwater vital oxygen is being used up. You must periodically surface to refill the air tanks.

    So far that is basically the SQ game in its entirety. I'm playing around with some ideas to add more to it such as multi-screen stages, additional objectives to complete and so forth.

    BUT... I am not sure if or how much of the extra stuff I will do because like I said at the beginning the point of this is to drop down to some very simple game projects.

    At any rate, my goal right now is just to get the core game experience completed.

    I started on some graphics last weekend and the only thing I have done since that time is make a shark image (well and a few more just before this post).

    Basically, I've just making a mock-up so far. Getting the visual style down that I want to achieve. I chose a very clean and simplistic low res pixel art because a) I really like this style and b) it will help to reduce the workload compared to using higher res pixel art.


    24-color mockup of the game in action. Many of these colors are used for the break between water surface and sky including the horizon sunset effect.

    The image above represents the real size of a scene that in the game will cover the full screen. Everything will be scaled up 5x to 6x.

    Tonight more graphics were created (some included in the screenshot). A shark, jellyfish, stingray and also the divers (not shown). In addition I made the Air meter.


    NOT MY NORMAL APPROACH


    In recent years I almost always knocked out very simple prototyping graphics which are simply colored rectangles and in the case of animations numbers are stamped on them. This allows me to focus more on programming it all to bring it to life without getting bogged down into graphics work which can become a sort of black hole sucking in all time a person has available.

    However, for these new small games I am using an approach I used long ago where I am focusing on all of the graphics and mocking up the game scenes, getting the colors right and so forth first. After the graphics are completed I will then focus on bringing it all to life.


    WHAT'S NEXT?


    I'll be finishing off the graphics either tonight or tomorrow and then start on the framework of the program.
     
    Last edited: Jul 18, 2016
  2. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    July 11th Update

    Just a tiny update here. Didn't have much time over the weekend to spend on this but I now have basically all of the graphics and animation done. This is primarily due to hiring an artist to help me out by creating the jelly fish, stingray and handle the animation on my plants and shark images.

    So in total now I have about 75 images including all of the game sprites for the animation of the subs, ocean life, divers and so forth.

    Knocked out the Title and a couple other screens:


    And knocked out the image that makes objects near the top of the water look they are out of the water.


    Of course, all of these are ultra low res low color ranging from 8 colors on the Learn and Credits screens to a whopping 18 colors on the playfield including the player sub. I expect the full gameplay will have up to 32 colors on screen at one time.

    I'll be starting on the Enemy Wave Manager tonight that is responsible for sending out the enemies. I spent a little time thinking about it yesterday and decided the enemies will appear in groups of 1 to x enemies. This way I can have a school of jellyfish appear and travel together or a single shark.

    My goal for tonight is to get the enemies appearing in each wave (level).
     
    Last edited: Jul 18, 2016
  3. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    July 12th Update

    So I finally put some more time on this tonight. It's how it goes for a part-time game dev we just spend the time we can here and there.

    Anyway, I have the Level Manager foundation done and added the handling of sending out groups of enemy subs.

    Nothing mind blowing of course, but hey I now have subs on the move.


    Of course, later I will probably add a bit of polish to these so there are some bubbles or whatever to help bring the idea of moving through water to life.

    Eventually instead of subs some of these enemies will be sharks, jellyfish or stingrays.

    I'll just keeping doing a bit here and there as I have time and it will be done soon enough.
     
  4. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    July 14th Update

    I don't know about other part-time game devs but for me summer is the hardest time to work on game projects. I still enjoy it but just don't feel like being on the computer as much. Probably because I really enjoy being outside (not to mention my brain is sometimes pretty fried after working my day job). On the bright side tomorrow is Friday! And then the weekend is here! :)

    Anyway, I completed all of the enemy appearance, movement and animation control tonight.
    Also went ahead and added the little plants on the bottom. The plants will be animated eventually. I have the images for the animations just didn't feel like coding it tonight.

    Current state:


    Total Dev Time So Far: 8 hours
    Calendar Days: 7
     
    Last edited: Jul 18, 2016
  5. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    July 15th ... 20% Complete

    Just a quick update here. Got the animation done on the plants. In fact, I can use the procedural generation buzzword because the scene is partially procedurally generated. Yes it is true. The plants are randomly placed and the code does a check to make sure one plant is not right on top of another. Oh... also procedural animation because the plants animation is done programmatically with some randomness. Gotta love these buzzwords for things game devs have been doing for decades.

    I suppose eventually if a person is writing code instead of using a GUI design tool we'll see "100% hand-coded!" Hmm... actually considering I develop in Unity very differently than the norm (the same way I used to in C & Allegro, AMOS, Blitz and C & Gamesmith on the Amiga and so forth) I guess I should maybe use that term in all marketing.

    Here are two different runs of the game on Day 1



    Total Dev Time So Far: 8.5 hours
    Calendar Days: 8
     
    Last edited: Jul 18, 2016
    Perrydotto likes this.
  6. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    July 16th ... 30% Complete

    Tonight I added the player and enemy sub firing, collisions and destruction. I also made another pass on the plant animation.


    Then I added the divers. This is only the most basic control for the divers at this point. In this game the divers will have the most complicated AI. I'll work on this more tomorrow.



    Total Dev Time So Far: 12 hours
    Calendar Days: 9
     
  7. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    July 17th ... 40% Complete

    Today I added the real swimming pattern for the divers. As they cross the screen they swim a ways, stop briefly to catch their breath then swim again.

    Then I added their reaction to being in danger. When danger is coming their way they turn and swim in the opposite direction. If the danger is eliminated they return to their normal swimming behavior however they turn around and swim back the other direction.

    It took a few iterations to get their behavior right. I think it ended up interesting.

    Although watching the gif I can see a bug in there. An easy fix. I'll add a line of code right after I make this post and it will be fixed.

    I already have a chomping animation for the sharks just didn't get it in this dev session. That is something I am filing under Polish at the end. Also thinking about adding oxygen tanks to their backs. Right now just focusing on the basics.



    Total Dev Time So Far: 14.5 hours
    Calendar Days: 10
     
  8. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    Maybe a different effect when you destroy a living creature compared to destroying an enemy sub.
    Some residual blood in the water slowly floating down after a big shark gets destroyed would be cool.

    Have you thought about adding some additional things in the water for the sub to avoid? Just thinking to - increase difficulty and appearance some reefs coming from the bottom would be a nice touch. Something all enemies could pass through but would damage the player sub if they ran into it.
     
    GarBenjamin likes this.
  9. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    @theANMATOR2b Thanks for the feedback!

    Chunks that float around and eventually "wash" off screen are on the list for the polishing stage. I am just focusing on the basics now.

    Also chomping anim on the shark, bubbles, some sea shells on bottom, kind of sparkly wave effect on ocean surface, etc. Just not important right now until the game is all done. After I actually have a game I will definitely focus on polishing it up.

    I did consider some mines but ditched it. Some environmental obstacles could be cool though. Thanks! I will add that to the list of things to consider during the Refinement phase. Which is kind of like Polish but focuses on gameplay instead of visuals.

    Just a note here: I am not sure how much of that refinement & polishing stuff I am going to do. Just depends on when I get tired of working on it. lol
     
    Last edited: Jul 18, 2016
    Perrydotto and theANMATOR2b like this.
  10. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    And now these logs happen on the same night as I complete the updates.

    July 18th ... 50% Complete (It's an actual game at this point)

    This update adds the following:
    • The player can now collect divers (one at a time) and deliver them to the ladder waiting at the top of the playfield.
    • I also added the tracking of the number of divers needed to be rescued in each round and when all have been rescued the round advances to the next one.

      In this game, rounds represent hours. You start in hour 1 which is relatively slow-paced and work your way through hour 2, 3 and so forth until finally you have rescued every diver and won the game. Of course, that only happens if you don't lose the game first. ;)
    • Added in the progressive difficulty as far as the the delay between the divers appearing and the delay between the enemies appearing. These delays change as the hour increases.
    • I also knocked out a ladder image and the idea is you deliver the divers to the ladder to complete their rescue. Basically, I just wanted to fill out the original concept a bit and I thought it would make sense if a helicopter was up there to receive the divers. I'm planning on making the ladder drop down when you collect a diver and then have it go back up after the diver is delivered. That is a polish thing though. For now it is perfectly acceptable to just deliver the divers to the ladder coming down from the rescue chopper.
    • Seems like I did something else... oh yeah, I also updated the diver appearance so it checks and if the number of divers currently active (on-screen) plus the one in the sub (if there is one in there) are equal to the number of divers remaining to be rescued no more divers come out. It just looks better to not have the hour end with a diver or two still visible. Kind of seems like you've left them behind.
    Overall, another solid dev session. I've been trying to put in more time the past few nights. Usually 45 to 90 minutes per evening is what I spend on this stuff. However, if I can average 2 or maybe 2.5 hours per evening that is enough time that I will be able to make really good progress and knock out these small games quickly.

    In this clip, I have already rescued most of the divers in Hour 1.



    Total Dev Time So Far: 17 hours
    Calendar Days: 11
     
    Last edited: Jul 19, 2016
    Master-Frog likes this.
  11. JamesLeeNZ

    JamesLeeNZ

    Joined:
    Nov 15, 2011
    Posts:
    5,616
    Here's some inspiration if you need it. This game was a classic... I thought it was gonna be this game when I saw the thread

     
    GarBenjamin likes this.
  12. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    Thanks! I've played In The Hunt many times online. It is a solid game. I enjoy sub and underwater games in general and there aren't that many of them comparatively speaking.

    Unfortunately, it's too far in the future for me to tackle at this time. That game is only a dream at this time. Made in 1993. 2,048 colors. I'm currently working on the best games from 1978 or any (of the best) Atari 2600 games of any year:

    I decided recently to go "all the way back to the beginning". Then work my way forward until game dev starts to become a real pain. I will stick at that generation of games.

    If I make it up to AAA games of 1993 I may well take a crack at doing my version of In The Hunt but if I do it definitely won't look like In The Hunt. Maybe like an NES version of the game. Just way too much work to make all of the graphics at that level of quality. I'd probably spend at least a year or two just doing the graphics alone for such a game. lol

    Although heavily inspired by classic games I am making my own version of them with some upgrades visually and gameplay. This is the inspiration for Atlantic Crisis:


    Anyway, give me a year or two and I may reach 1993. Actually, don't even need to be quite at that point. Probably NES/SMS era is enough. That's only 7 years or so away at this point.
     
    Last edited: Jul 19, 2016
  13. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    July 19th ... 60% ....... I've made it to the top of the hill and soon will be coming down the other side! :)

    Tonight I focused on the major feedback systems and also implemented the Air system (as in it being used up, destroying the sub and being able to refill it).

    I decided to make the gifs 50% bigger so it is easier to see things.

    First I added the display for the divers remaining to be saved in the current hour:


    While underwater the sub uses the air supply. If all of the air is used up the sub is destroyed. To refill the air supply take the sub to the surface.


    It's always interesting working on things like this. There are many different ways to do things like indicators for the divers remaining. Sometimes just a single image followed by an X and a number, perhaps an image followed by a number, a row of icons running across the screen, etc. I like to try to come up with things that make the display a little more interesting and try to balance it out. So hopefully people find this readable for easily being able to determine how many divers are left to rescue.

    Soon I will be moving on to the final steps of adding sound FX, getting the Title screen in and then the polish stage. :)


    Total Dev Time So Far: 19 hours
    Calendar Days: 12
     
    Last edited: Jul 23, 2016
    Rombie likes this.
  14. Bending-Unit-22

    Bending-Unit-22

    Joined:
    Apr 8, 2016
    Posts:
    29
    It's probably on your #todo list, but are you considering adding a small fraction of interpolation of moment in last direction. So when when you steer submarine it keeps its velocity in last direction for short time. This could add more fun i think.
     
    Last edited: Jul 20, 2016
    GarBenjamin likes this.
  15. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    During polish - consider adding an animation of the divers climbing up onto - and up the ladder.
    Might also add an additional level of complexity of delivering the divers, if the sub has to wait a quick moment for the diver to climb out of the sub to be safely secured onto the ladder.
     
    GarBenjamin likes this.
  16. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    @Bending-Unit-22 Hmm.. you know I actually hadn't considered that. Mainly because I was trying to stay true to the very responsive control of the original. I do like that kind of thing as far as realism goes. I'll add it to my list to consider for the end. I think I could add just a very tiny amount enough to be slightly noticeable but not hamper gameplay. If so I will do it. Thanks!

    @theANMATOR2b When the player's sub collects a diver that ladder will drop down from the chopper at a random horizontal location. That is already planned. I tend to think way more about gameplay elements than anything else.

    However... the little dudes climbing the ladder is something I hadn't thought about. And it is a great idea. Feedback is always good. So instead of just a little success sound playing I will do that. Have a little diver appear on the ladder and scurry up or actually better yet to reduce workload have him on ladder and whole ladder will raise pulling him up. Thanks! I'll add that to my list.

    This is why I wanted to go back in time to the beginning with very simple games. Because when done right even something this simple has a lot in it.

    Appreciate you both checking out my dev log and providing helpful suggestions! :)
     
    theANMATOR2b likes this.
  17. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    July 20th ... 70% ..... I've made it through all of the basic stuff. Tomorrow I knock out the Title screen, game won, game lost screens. Then it is on to the polishing stage.

    Finally! I made great progress tonight and was just about to post my dev logs when I got a call from work. Ended up spending over 2 hours helping a co-worker troubleshoot an issue. Anyway... now I am back on free time and can get this log done!

    Getting real close to entering the final phase of this project.

    Tonight's additions:
    • Added the scoring system for adding and displaying the score. Although I will need to add one more digit but that is easy. It is fully automated. Add another digit to the scene and it will be used automagically.
    • Added the indicators showing the number of subs the player has left in reserve.
    • Selected all of the sound fx and added them in. Always a nice improvement when sounds are added. Brings the game to life.
    • Added the collisions between the player and the enemies

    And now since sounds are in here is a YouTube video:


    NOTE: The clicking/chopping sound is the helicopter that will be lowering the ladder. When you collect a diver the helicopter comes out bringing the ladder. I just haven't got to that yet so for now the rescue ladder is just stuck at the top of the screen. Tomorrow....


    Total Dev Time So Far: 22 hours
    Calendar Days: 13
     
    Last edited: Jul 23, 2016
    Master-Frog likes this.
  18. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    Coming along. This game has the potential to be pretty frantic. Haha, now just to implement all the "little" stuff...
     
    GarBenjamin likes this.
  19. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    Thanks. Yep, either tomorrow night or Friday's dev session I will be moving on to the polishing stage. Won't be long now. Basically whatever I get done in time for a release this weekend is what I get done

    Well for the initial release anyway. If people play it and leave feedback I'll probably do an update or two. If not I will file it all away for the future when I revisit the game. :)
     
  20. Whiteleaf

    Whiteleaf

    Joined:
    Jul 1, 2014
    Posts:
    728
    I'm suge a huge fan to old Arcady games like this. I never grew up with the NES or whatever console the original game was on, but I've downloaded since emulators and played a few of the games. Looking great. :)
     
    GarBenjamin likes this.
  21. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    Thanks for checking it out and I agree completely. Sometimes (many times for me) you want a game you can can just pick up n play and get straight into the fun.

    And thanks! I am glad you like it. I'll be working on polishing it up a little soon. Nothing major because that would destroy the point of doing a game like this. But some little touches here and there should make a nice difference and keep the same general feel.
     
  22. Perrydotto

    Perrydotto

    Joined:
    Jul 18, 2016
    Posts:
    42
    Looking really neat so far! I'm digging it. The only thing that bothers me a bit is the display of how many divers you still need to rescue - It's confusing, at least to me, whether you need to save 2 or 4 people when you got 2 divers portrayed on each side of the air bar.
     
    GarBenjamin likes this.
  23. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    Thanks for that! I appreciate it.

    I was trying to make it a little more interesting of a display and balance it out more. Every diver portrayed represents one that is left to be rescued.

    I am now on the polishing stage and as soon as I am done with the current item I will address this to make it easier to understand. :)
     
  24. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    July 21st ... 80% Complete

    Another night... another update. :)
    • Created the "Game Won" and "Game Lost" screens
    • Added the Helicopter Ladder Control System
    • Added chunks for the sharks being destroyed
    • Added a hint at the start of Hour 1 to hopefully make it easier to understand the "Divers Remaining to be Saved" display


    As you can see I have made it to the polishing stage.

    I have 6 things left on my Polish List. Not sure I will do them all but I will definitely do another solid dev session tomorrow night.

    I've been pushing hard the last couple of days. Might not seem like it but 3 freaking hours of this after working all day in software development is a lot to me. Especially when I am running on Turbo the entire time. lol


    Total Dev Time So Far: 25 hours
    Calendar Days: 14
     
    Last edited: Jul 23, 2016
    Master-Frog likes this.
  25. SteveJ

    SteveJ

    Joined:
    Mar 26, 2010
    Posts:
    3,085
    Can you not accidentally shoot the divers? I think you should be able to.
     
    GarBenjamin likes this.
  26. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    I've debated that. In the original game that inspired this one the divers cannot be killed by the player's shots. In fact, I think think they can't be killed by anything.

    It definitely would add to the challenge but I am not sure I want to make such a massive change like that to the core gameplay. I will put it on the list for the future if/when I revisit the game. Maybe make it an option. Also if I had difficulty levels like Normal and Hard it would fit well under Hard.
     
  27. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    Yes.... accidentally...

     
  28. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    Honestly, now that it all comes together, it's super nice! I love the chunks of shark floating around... the "eereehh" sound, the ladder, the chopper sound, it all works together. It looks so fun.
     
    Bending-Unit-22 and GarBenjamin like this.
  29. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    Thanks man I appreciate it. Hopefully people will get some fun out of it.
     
  30. Bending-Unit-22

    Bending-Unit-22

    Joined:
    Apr 8, 2016
    Posts:
    29
    Once @Master-Frog mentioned it yes those chunks are really nice :)

    How about some vignette-like background effect in a form of pixels rewarding player for points collection with intensity linked with amount of points|combo.
     
    GarBenjamin likes this.
  31. Aiursrage2k

    Aiursrage2k

    Joined:
    Nov 1, 2009
    Posts:
    4,835
    Maybe you could add some music, and different stages so if you got to hour 8 he packs up for the day and goes to a different area. So each level could have different enemies and you could have different hazards. Or at least some combo multipler for rescuing multiple divers in 10 seconds.
     
    GarBenjamin likes this.
  32. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    July 22nd ... 90% Complete

    Got a late start on game dev tonight. But that is expected, right? It's Friday! :)

    I ended up putting the new Batman vs Superman movie in and watched it while I worked tonight. So this dev session ended up being longer than normal. That's okay though because it was very relaxing. Darn good movie to set up the Justice League. Lot of action.

    Okay, so... here are updates for this session:
    • Added bubbles rising up from the ocean floor
    • Created a water surface effect
    • Updated the Score counter to have an extra digit
    • Recreated the Learn and Credit screens to use a different font (plus I wanted to add the music credit)
    • Updated the particles to die when they reach the ocean floor
    • Added music that was composed specifically for this game by a friend
    • Implemented a toggle for the music


    This is basically done at this point. Tomorrow, I will play test it and fix any issues I encounter but since I have been doing that continually during development I don't expect to find any.

    I might add a little more polish here and there.

    Total Dev Time So Far: 29 hours
    Calendar Days: 15
     
    Last edited: Jul 23, 2016
    Master-Frog, Whiteleaf and Rombie like this.
  33. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    Great job, man! Showing people how it's done. You probably complete more projects than anyone else around here, or at least you're up there.

    I do have one issue though... I refuse to believe that anybody would ever want to turn down the background music.
     
    GarBenjamin likes this.
  34. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    July 23rd ... 100% Complete ... Yes, IT IS FINISHED! :)

    It's time...


    I am pleased to announce the release of the most fun & authentic "old school" style game within the past several years.

    Play ATLANTIC CRISIS - A Game Inspired by SeaQuest (released 33 years ago)

    Today's updates:
    • Added a fast submarine that appears near the ocean surface if the player has been sitting up there too long
    • Play-tested the game many times balancing the difficulty
    • Added an "old school" style scroller to the Title screen

    Yes... the game has been released and is available for play right now on GameJolt.

    My final updates today:



    Total Dev Time So Far: 32 hours
    Calendar Days: 16
     
    Last edited: Jul 24, 2016
    Bending-Unit-22 and Whiteleaf like this.
  35. Aiursrage2k

    Aiursrage2k

    Joined:
    Nov 1, 2009
    Posts:
    4,835
    the second time i tried no diver spawned. Or they did but hour 2 never triggered and they didnt. Reopening the app fixed it, so its probably a staic variable or something.

    I go to hour 7, mostly by always staying in the dead center of the map.

    Maybe you should drop some barrel bombs there occasionally, an maybe you want to indicate where the fish spawns on screen before spawning.
     

    Attached Files:

    Last edited: Jul 24, 2016
    GarBenjamin likes this.
  36. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    Thanks man, I just checked back here just to see if any more info was posted about it. Apparently I broke it at some point today or yesterday. lol It happens.

    I don't have any static variables in the code. Probably some edge case of timing or something. I am creating a Monitor Manager right now to monitor the relevant pieces of data for things that should never happen. Then I will make it override and fix them. Then put a new build up for that.

    Then I will comment out the fixing part and replace with Debug.Log for my internal testing so I can fix it at the root.
     
  37. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    If you don't mind give it a test again and see if you have the same issue.

    I completed the Monitor Manager. This is checking the status of everything each frame and if it sees something out of whack it corrects it.

    I also spent 30 minutes or more just running tests replacing the self-fixing pieces with Monitor debug.log it but nothing ever appeared.

    If I don't encounter the issue soon I will just recode the key parts to be even more simplified. I should have done that to begin with but I ended up making a bit here and there do just a tad more complex than it needs to be trying to save on code. Never a good thing. Always nice to break it down.
     
  38. Bending-Unit-22

    Bending-Unit-22

    Joined:
    Apr 8, 2016
    Posts:
    29
    Enjoyable ;], it could benefit from high-scores table possibly overall and this month only. I've seen someone using google doc for this so it can be done easily without a service.
     
    GarBenjamin likes this.
  39. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    High scores were a very big thing in classic games. I think I will get to that point in time. Certainly once the games are made for desktop. For web just seemed like a lot of work for a little bit. Mainly because I was thinking on web I'd need to set up a sql db on one of my sites just for such a thing. Not a big deal I work with sql every day for my job but it opens a whole new can of worms and security concerns.

    Google docs eh? I may check into that. Could work well for the web.
     
  40. Aiursrage2k

    Aiursrage2k

    Joined:
    Nov 1, 2009
    Posts:
    4,835
    GarBenjamin likes this.
  41. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    That's excellent! I never did anything with their API yet. I guess I will spend some time reading up on that this coming week while figuring out what my next game will be.

    Priority today is solving the issue at its core and I know where it is now due to reports of the latest build (with the new Monitor) having more divers than needed coming out.

    Then I can publicly release the game. Right now it is only on GameJolt if you have the direct link to its page until beta testing is finished.
     
    Last edited: Jul 24, 2016
  42. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    You say, and God laughs...
     
    GarBenjamin likes this.
  43. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    Ha ha. Well it is completed as far as I am concerned. But there are always phases. Now is Beta testing and maintenance but actual game development phase is done!

    I think I nailed the issue this morning and put a new build up. The game is still not live on the site (as in publicly visible in search results and such). I'll keep it that way until tonight or a day or so then fully publish it over there.

    Then it's on to the Promotion Phase next week. Basically this game is just a "test run" for fun and "warming up".
     
  44. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,512
    Threads like this make me glad I haven't been tracking time for my projects... The amount you've gotten done in 32 hours is unfathomable to me. So kudos on that alone.

    You really nailed the old school feel, and the game loop is so clean and easy to immediately understand. Fine work, man.
     
    GarBenjamin and Bending-Unit-22 like this.
  45. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    Thanks. Well in fairness the only reason I can develop fairly fast is from having done it so many times over the past 3 decades and now I am using Unity in the same way. So it is all "old hat" so to speak". For me nothing is faster than just straight programming. And even more so from throwing out all of the modern practices which just add complexity and time to everything.

    If I was still flipping back and forth constantly between the Editor and scripting I'd have been slower due to the deadtime "stop points" of flipping back and forth. If I was trying to use more of the Unity stuff and / or the modern "best practices" of added complexity it'd have been slower too because I inevitably would have ran into something that seemed like it "should" work but didn't then wasted hours trying to figure out why. As it was I just programmed.

    A few times I ran into a minor issue but since it was all in my code it was very easy to find and fix. I am very happy that I can now develop the way I am used to (more or less anyway). :)

    Nice hint at Fathom... maybe that will be one of the next games. :)
     
    Last edited: Jul 25, 2016
  46. iamthwee

    iamthwee

    Joined:
    Nov 27, 2015
    Posts:
    2,149
    Wow just played it and it was awesome. Controls intuitive and gameplay quick and easy to pick. Only 29 hours as well. It always staggers me how people can complete so much in so little time especially for a 2D bitmapped game where every animation frame has to be draw by hand. I tried 2D but never had the patience for it.

    Sorry if you mentioned it before in the thread but do you use any 2D tools for this or was it all done inside unity.

    Also can you give us some ideas on how you make the music if it wasn't a sound asset. The sound effects and backing track goes rather well with the game.

    Lastly, in regards for typography in the game, is it a set font or custom bitmaps. If it is the latter kudos for fitting the time to do that?

    Oh and I forgot, perhaps not visually as interesting but any chance of posting a snippet of your game manager code, I like to see how other devs are approaching this, being a newbie scripter myself.
     
    Last edited: Jul 25, 2016
    GarBenjamin likes this.
  47. iamthwee

    iamthwee

    Joined:
    Nov 27, 2015
    Posts:
    2,149
    Another question I had but forgot to ask :oops:

    Massive props goes to you for finishing the game. I have a big problem with finishing something, can you explain how you kept motivated, especially to complete 75+ sprite images.

    Did you keep a spread sheet of your tasks? And did you complete the tasks in a logical order or did you work on all parts of the game at one go, kinda like 'scrum vs agile' development?

    What did you find works best and what would you change if you had to do it again.
     
    GarBenjamin and Schneider21 like this.
  48. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    Thanks. Glad you like it.

    First keep in mind, this game was based on an existing game. That saves a lot of time because I didn't have to come up with completely new & original game ideas from scratch. All I had to do was develop the game and enhance it with a little more depth and overall upgrade it a bit. I see old games as sort of these lumps of coal. I mean I do enjoy many of them a lot. But most of those games even if they were not executed greatly back then have a lot of potential because most of them have at least some good ideas. So I can just keep the good ideas, lose the bad ideas and add more good ideas.

    For this game that just meant updating everything somewhat. I kind of imagined what the developers might have done if they had just a tiny bit more power to work with. That meant updating the graphics somewhat while still keeping the retro style. More colors and choosing colors that worked well together while still being pretty faithful to the original. A little bit higher resolution. Sound FX that are still retro style but again higher quality.

    I like games that have a little more to do. So, in this case instead of just collecting the divers I added an extra objective. I added a helicopter (that is never seen and does not exist in reality) that comes out and drops a ladder down when you collect a diver. You complete the rescue of the diver by delivering them to the ladder so they can climb up to the safety of the chopper. A simple thing but it adds a lot of depth and sort of completes it in my mind. Not sure how others feel about that but I like it.

    I used no 2D tools other than Paint Shop Pro 8 to draw the graphics and create sprite sheets. Sometimes I use Pyxel Edit but I didn't use it for this game.

    In total I used Paint Shop Pro, Audacity, Unity Editor and Visual Studio.

    I set up everything in Unity the same as I did for my Vampaders game so the pooling was done in the Editor.


    Then I went into Visual Studio and programmed everything as usual with various Object types and Manager singletons.

    Interestingly, the DebugMonitorManager was added this past weekend when reports came in of a bug where divers were no longer coming out so levels could not be completed. That singleton simply monitors the others by using public methods I added to the other Managers. It gathers data it needs such as how many divers are left to be rescued, how many divers are active on the screen now, how long has it been since a diver has been spawned and so forth. If it finds something that should not be happening it calls the appropriate methods on the other Managers to fix the problem. It also helped me to track down the issue which should not be happening any more.

    To get more info including a full project source of how I do things check out my thread How a longtime programmer develops in Unity. Unfortunately, due to the craziness we had with them trying to switch forums the updates I had made to post the source and the performance tests near the top of the thread were lost.

    To get the pixel perfect display all managers responsible for objects position the Unity GameObjects at whole pixel positions. This is done by using a simple (int)Vector2.x and (int)Vector2.y to update the GameObject transforms ensuring they only move to whole pixel positions.

    Sprite sheets have at least 1 pixel worth of transparency around the outside of each image. This is because I battled with this a lot back when I first started using Unity. Previously (before Unity) I always packed my sprites as close as possible. I found out the hard way you don't want to do that in Unity.

    The controls are a standard thing I do because different people like different things. Some only use WASD and others use only the arrow keys for movement. I learned this when throwing out WIPs in the Feedback Friday forum. So ever since I now make sure I support control schemes to suit the different preferences. And this way I don't have to bother setting up a control config system.

    All text in the game is bitmapped. But it is simple to do. Just open your favorite paint program and start typing. Then when you are done you can add color FX like I did on the score digits to dress it up a tiny bit in a common retro style. I did spend time searching for open source fonts but it was quick & easy. I found some Open Fonts. And actually I think the title screen just uses standard Arial or Tahoma or something. Really don't remember now.

    The music was composed by @Master-Frog and gifted to me. He made the music specifically for my game by watching the game while composing it. And I think he did an awesome job. You may want to ask him more about his music making process. @Master-Frog is a friend of mine on these forums. I don't know him in real life but I think he is a very sharp and talented person.
     
    Last edited: Jul 26, 2016
    Bending-Unit-22 and Aiursrage2k like this.
  49. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    I wanted to make the game just for me and people who love retro style games. Well and honestly so I could fill out my GameJolt account some now that I am seriously thinking of moving from Hobbyist developer to Indie developer. So all of that was my motivation. I kept the scope tiny. That made it possible to finish it quickly.

    The art style I chose is one that I can knock out quickly. Like I drew the shark in 5 to 6 minutes. Most things were drawn quickly. Not quite as quick as I was in my previous WIPS. I did spend a little more time because I wanted it to look good. But I also see no sense in spending tons of time on just how something looks. Just my view on it because I know all too well a person can spend weeks and months just remaking the same graphics over and over.

    In addition, like it shows on the credits screen I hired an artist from these forums to do some of the pixel art. For example, I hired him to take my base shark image and animate it. And I hired him to do the stingray and jellyfish and also to animate my plants. He actually made some nice animated divers but I thought they were a little too large so I made my own divers and used them instead. Wasn't his fault. He drew the diver according to the size I asked him for. But I had just guestimated it too large. ;)

    If graphics work is holding you back from being able to create a great game then I highly recommend you simplify. Find the simplest way you can get your message across. Focus on making the graphics readable not on HD, highly realistic and so forth. For me this is the biggest thing that makes it so I can complete a game in a timely fashion. Simplify.

    I didn't have any list of tasks until one day early on I was having a conversation with @Master-Frog and he asked how the game was coming along and I wrote this....

    There is still a good amount of work to do.
    • Divers Control System
      • When an enemy sub or sea critter is nearby they will swim away from it
      • Enemy subs and sea critter can push divers off screen and they are "lost"
      • When not in danger they swim toward the player sub a short ways, stop to rest then continue on
      • Player Sub collects divers
    • Air Control System
      • When the player sub is not on surface air continually drops by a configurable amount each frame
      • When the player sub surfaces air supply slowly refills
      • Air Supply is reflected in the Air Supply meter
    • Level Control System
      The entire game (mission) takes place in a single day across 12 hours and round represents one hour
      • Need round intro... Day 1, Day 2 ... Day 12
      • As each hour passes more divers must be rescued
      • As each hour passes the enemies become more threatening. This might be more of them on screen at one time. Moving faster. Slightly moving toward the divers or the player.
    • Stats Control System
      • Divers Remaining, Score and Current Hour will be displayed across the top of the screen
      • Scoring
    • Screens
      • Victory Screen
      • Failure Screen
    • Sound FX
      • Player firing
      • Enemy sub firing
      • Diver enters playfield
      • Diver in danger
      • Diver lost
      • Diver collected
      • Air supply low
      • Air supply refilling
      • Air Supply full
      • Enemy destroyed
      • Player destroyed
    • A bit of polish
      • Bubbles for movement and destruction
      • Decorative sea shell or two or three randomly placed on ocean floor
      • Occasional bubble comes from plants or sea shells
      • Water surface animation, basically a simply animation like I did for Sea Salvager
    • Final Playtesting & Configuration Refinement
      • Playtesting a dozen or so times tweaking parameters until everything feels right
    Maybe a little more once I get back into it but off the top of my head I think the above is pretty accurate. So far I have mainly focused on just the graphics and some basic movement of those things.

    So then that became the list I worked from and added more to it as I thought of more things to do. I just picked whatever I wanted to work on that night and did it. When I was done and had time left I picked another thing and got to work.

    BTW - the sound FX were from asset packs I purchased on the Asset store. I just took one of my nightly dev sessions to listen to a huge number of different sounds and choose the one I felt was most appropriate for the message that needed to be delivered. I see graphics and sounds as messages. A means to communicate with the player.

    I found that for me it really does work best if I just program the games from scratch like I am used to doing. An "old school" approach that might not make much sense to most folks around here. But it is what I prefer.

    The thing I will do different is to simplify more. I do a pretty good job of this but what ultimately caused that bug I mentioned about divers not coming out is because I tried to be lazy and combine some things instead of breaking them out and writing more code.

    The more (simple & straightforward) code you write, meaning the more explicit everything is, the simpler it all becomes even if that means having two methods with nearly identical code. And simple means less bugs and faster development time.

    When you try to "be smart" and end up writing code that is more complex than is necessary because you want to use some clever abstraction or try to reduce the amount of code thinking it will save you time it will probably cause bugs and tracking down & fixing those bugs will require far more time than the amount you saved (if you even saved any to begin with).

    Hope that helps and I hope I answered all of your questions. If I missed something let me know.
     
    Last edited: Jul 26, 2016
    iamthwee likes this.
  50. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    Updated to version 1.0.4 with the following enhancements:
    • Pause function is in. P to pause / resume
    • Esc to return to Title Screen
    • Score is displayed on the Game Lost screen
    • You earn an extra sub at 100,000 250,000 and 500,000 points.
    Play Atlantic Crisis
     
    Bending-Unit-22 likes this.