Expatriates (aka eXpat)(Day 2)
So a name appears for the game, as well as adding on to the storyline.
Xpat story: You are one of a faction of humans who have fled Earth in an attempt to find peace...and perhaps find themselves. Everyone who has joined your convoy was disenchanted with their nations, with the governing of the planet, and now you are a long way from home. An expatriate, everyone one of you. To the peoples of Earth, you are known merely as a faction called eXpat, and that name stuck amongst the crews of the ships you travel in.
After a long time spent traveling, forging a home through space travel and reflection, you have been noticed by distant alien nations. Their long-range military forces have hassled you for a long time, and now they are putting the pressure on you and your fellow eXpats. Diplomacy and communication are both impossible this far out. Will you survive the onslaught?
Expanding On Game Modes
Mode 1 - "Escape": Alien military fighters have arrived en masse, a strong long-range force meant to destroy your colonial convoy. You have launched in your own fighter to defend your convoy, but the engagement with alien forces has pulled you too far away from the hyperdrive bubbles of the colony ships, and laser fire knocked your weapons offline. Disengage and survive long enough to charge your hyperdrive and join your convoy!
Mode 2 - "Defend": The convoy has called on you to defend against a scout group of alien fighters. Defend and destroy!
Mode 3 - "Engage": Your colony ship has intel that there is a small installation of aliens nearby producing minerals and fuel for their forces. Assess the situation and destroy their forward operating base!
Mode 1 is going to be locked to moving forward + left/right/up/down. No moving back or around when you're running away. Mode 2 will have all axes of rotation unlocked, as will mode 3. Mode 1 will be completed for the game jam, 2 and 3 are possible but unlikely. I'll do my best though!
A Task List Is Something You Ignore, Apparently (Main Menu)
Looking at the task list from the last devlog, it seems I was supposed to be working on the game itself. WELP. That didn't bloody happen. It's okay, though, because last time I jammed, I left the main menu for the end and I don't want to repeat that error of judgement again. Going to build a full product/prototype from start to finish if I can.
I forgot how annoying it is to make menus in Unity. You could use the built in Event System, but that requires setting up some Input axis entries and hell if I want to do that.
My menu script is fairly simple - based on input, it increments an Int between a 'min' and 'max' value and changes the pointer's Y value. Then, when 'enter' (aka Z) is pressed, it does things and stuff. Presently, "Escape" doesn't do anything because I haven't made the game mode, but Quit does trigger Application.Quit() which forces the game to close.
I also got some preparation done for the rest of the game by getting my GameManager script set up with some input helper stuff. Always good to put your ducks in a row early.
Don't Code While Tired, Kupo
Total time spent on Day 2's stuff? Roughly 4-5 hours.
Total time spent realizing I hadn't called a method? 1-2 hours of the total time.
Yeah. Coding late in my day isn't always the brightest of options. I get the job done though.
Plans For Tomorrow
With the main menu out of the way, there's a game mode to be built and some music to be made. I'm going to try to focus on the "Escape" game mode, but I might end up popping open FamiTracker instead. I used it last time for CityScape, and I'll be making music and sound effects in it this time where possible.
Task list + notes for myself follow:
Decide whether or not to run seperate game mode in seperate scene.- ✔ A seperate scene is cleaner to work with, has less active scripts at once.
A combined scene has everything in one place, doesn't rely on loading scenes. There's not really an upside to this though.
- ✔
Player movement.- ✔ "Escape" will feature forward-only movement, with left/right
/up/downstrafing. - ✔ The player ship will be visible and close, so you will see input reflected with basic animation.
- ✔ "Escape" will feature forward-only movement, with left/right
- Scenery.
- Ideally, I'd be randomizing stuff so that every scenario feels different, but that doesn't get me play-testing early.
- There will be a very basic "ship hull" (read: cylinder) to go through, but the player has the option to fly on the side of it.
- ✔ There will be stars. I've never done starfields in a 3D setting before, though, and it'll probably really basic.
- UI
- There will be an element showing "hyperdrive charge" - textual, of course.
- Other UI, potentially? Unsure.
- Enemy AI
- Enemies should shoot bolts of something. It should hopefully be noticable as bolts of something.
- Enemies should have various programmed patterns.
- Drive-by: Enemy shoots at the player while flying past.
- Strafe: Enemy shoots at/towards the player while flying past sideways.
- Cone: Enemy appears, shoots a cone of beams (particle system?), then disappears.
- Spiral: Enemy shoots beams in a spiral pattern towards the player.
- Spray And Pray: Enemy simply shoots wherever it is looking.
- Spray And Pray - Line: Enemy sprays untargeted bullets in the player's direction as it strafes across the screen.
- Mitosis Pass: An enemy phases in, then clones itself, and then does a normal strafing pass.
- Enemy shooting patterns can be achieved in code or in animation.
- The Animator does not animate keyframeless values - you can rotate a ship with animation while moving it in script, for example.
- For variety I can make multiple animation clips + motion values per type.
- Other stuff.
- I'm too tired to remember everything.
- Music.
- FamiTracker with Konami VCR6 expansion for extra Pulse channels.
- Those extra Pulse channels help with SFX, too.
- Sound effects.
- Enemies should make noise when shooting.
- The ship should make noise when taking damage.
- There should be noises for colliding with stuff?
- Other noises?
- Hyperdrive charging + "Hyperdrive @ 100%" noises.
For the trouble of reading all of that, have a picture of Day 2's final build
And for bonus points, the gif below :D