StarEagle: Defenders of the Galaxy Game Reveal!

Leave a Comment
StarEagle: Defenders of the Galaxy
Game Reveal!


     Way back during Fall 2015, for graduation from RMU with my now-obtained, B.S. Engineering w/conc. Software Degree, all engineering students had to take a class known as Integrated Engineering Design (IED) class. Basically, this class was a senior project, where students would use their knowledge and skills learned throughout their college career in order to research, to engineer, and to make/do something related to their engineering major.

     As frequent followers of EagleSoft Ltd and this blog may already know, earlier during my Software Engineering college career during Fall 2014 semester, I designed Ultra Air Hockey DX in Unity3D/C# for PC and Android. This game was a deluxe, 3D version of Ultra Air Hockey, which was my first real video game written in QB64. UAHDX was created for Fundamentals of Software Engineering class, which received an "A" for the class project, which received RMU's Software Engineering Award in Spring 2015, and which was my first Unity3D/C# game. Fundamentals of Software Engineering basically taught about the basics of proper, industry-standard Software Engineering practices (Software Requirements, SDLC/waterfall and other scrum-based methods, basics of Software Verification and Validation, Gantt Charts, and other tools for proper project management.)

Original game prototype

Ultra Air Hockey DX Trailer

Academic achievement unlocked!

    During Spring 2015, the fellow classmate/co-developer of Ultra Air Hockey DX and I had to take Distributed Systems class (but at different time slots, unfortunately). All students taking the class (regardless of time slot) had a class project of writing an application utilizing distributed systems concepts. Basically, Distributed Systems class taught about distributed systems architecture, which is distributing computing power between multiple machines/servers over a local network or across the Internet. The project was to write an application fetching data from a database in a language of choice, from both a primary and a secondary server. If the primary server went down, the data should be fetched from a redundant, secondary server. (One requirement for the project intentionally was to disconnect access to the primary server, and prove that the secondary server would kick in for usage.)

    For the Distributed Systems project, a different classmate and I took up an alumnus' unfinished Distributed Systems project, which was written in MIT App Inventor Classic (eww) for Android and called The Equator. This unfinished application was an educational application which would fetch a mathematical equation name, the equation itself, and an image related to the equation from an online database, cache everything offline into a local database on the device, and display all of the equations in a list. The images were hosted on The Equator's project page at EagleSoft Ltd. Once an equation was clicked from the list, it would bring up the default email client on the device, and allow you to send an email to somebody with all of the equation information. If the primary server went down, the secondary server would kick in, in order to download and to update the local, offline database cache on the device.

   The other classmate and I finished The Equator project, by fully implementing the features detailed in the previous paragraph. We imported the project into MIT App Inventor 2, which is a fake, noobish "language" and "IDE" that allows younger programmers to write Android applications by connecting literally code blocks (graphical puzzle pieces with language syntax keywords on them, and other interconnects for parameters and data for each language keyword). This programming "environment" abstracted away both Android programming internals and networking support (no need for handling networking sockets or ports), but had the drawback of having to write complex if/then/else blocks to get everything to run. Overall, MIT AI2 is really meant for younger programmers, instead of college students (whom really should be writing code by then in real programming languages/IDEs, such as C# or Visual Basic in Visual Studio), but the only reason I had to use it was due to the original, unfinished application being written in MIT AI Classic ¯\_(ツ)_/¯.

The Equator app icon

Main app form

  Meanwhile, my other classmate (the UAHDX co-developer) at his Distributed Systems class wrote a simple Unity3D/C# PC tech demo game, called Colonial Combat. This game was a simple prototype, which was a 1-on-1 2D fighting game, consisting of two recolored Megaman characters looking like some school's mascot. Players could walk around, jump, and hadouken swords to deplenish each other's health. No endgame scenario was programmed in (the game would just continue running on player death). To comply with the class' projects requirements, the game had simple online multiplayer support. Two machines running the application within a wired LAN network could type in each other's IP address in an UI dialog box within the game, could connect to each other, and then control one of the characters and play against each other. The game utilized RPC functions, so no intermediary servers were needed (it just did a direct IP connection for online multiplayer). The game had a bug where if you jump and collided with level geometry properly, the player could rotate, and thus would cause movement to move parallel with the new rotation, causing space-like physics. The game was simple, but very incomplete. That classmate graduated in Spring 2015.
   After the release of Ultra Air Hockey DX, I had plans to work on a new, more ambitious Unity3D/C# game. During summer 2015, during lunchtime breaks at an internship, I was working on a new Unity3D/C# game called StarEagle: Defenders of the Galaxy. At the time, it was a game planned to be a Shadow Squadron/Stellar Assault (Sega 32x) 3D space simulator shmup clone. Unfortunately, all of the Unity3D project files were lost sometime after Fall 2015, except for the game's WIP music (which was at the time uploaded and re-downloaded to/from EagleSoft Ltd's music section), a wallpaper of the title screen, and a promotional 3D printed model of one of the game's characters (King Flight). All I had of the game at that time was a rudimentary Main Menu, a Training test level (where you could fly your spacecraft StarWing in a 6DoF environment and shoot down asteroids), some music and sound effects, a simple FMV system, and an introduction FMV. The game had no UI, no endgame scenario, and literally was just a test level prototype for flying.

Shadow Squadron (32x) Review

   Come Integrated Engineering Design class, and my group and I had to decide whether to make a Unity3D/C# video game of StarEagle or finish my other classmate's Colonial Combat video game. Due to lack of 3D experience for the game's scope, due to the StarEagle's project scope being too large for the class' timeline, we chose Colonial Combat instead. Post-graduation in 2016, I was underemployed for a year in fast food, while working on finishing Colonial Combat outside of school and Socket the Hedgeduck. Fortunately, I then got hired at a local game studio and from 2017-Fall 2018, and even got two commercial games released there (Coffee Crisis for Sega Genesis as co-developer and Coffee Crisis for PC/Xbox One in Unity3D/C#). Unfortunately, I ended up leaving that job in Fall 2018, and have been underemployed since at the time of this writing.

  Due to development on Socket the Hedgeduck and Colonial Combat in 2016, due to having a professional gamedev gig from 2017-2018, and due to losing most of the Unity3D project, StarEagle: Defenders of the Galaxy went on the backburner. However, now with a lot of freetime on my hands outside of underemployment jobs, StarEagle is now back in development! Due to having a lot more experience with Unity3D (including new professional Unity3D assets to streamline and simplify development), I believe I now have the means to realize the game's technical and artistic vision.

About StarEagle: Defenders
of the Galaxy

    "StarEagle: Defenders of the Galaxy” is an in-progress, story-driven, Indie shmup video game that is a combination of a 3D scrolling on-the-rails and free-roam shmup game. It is a story-driven game with an art style modeled after the early, flat-shaded, low-poly 32-bit and 64-bit 3D polygon video games. It is heavily inspired by classics such as StarFox (SNES), StarFox 64 (N64), and Stellar Assault (Sega 32x, aka Shadow Squadron). The game has on-rails flight sections, 3D free range sections (similar to "All-Range Mode" in StarFox 64), and 6DoF space battles similar to those in Star Wars Battlefront 2 (2005 Pandemic, not the EA garbage), and player movement/action control scheme similar to StarFox 64's. Game planned to be released sometime late during 2020 for Windows, Mac OSX, and Linux through Steam.

   Essentially, the game is a StarFox 64 clone but with an additional flight mode of Space Mode for 6DoF levels, and has the following unique features:

  • Original, hand-drawn, low-poly, flat shaded 3D polygon models
  • 16-Bit MS-DOS -like UI graphics (White-on-Blue text and some ASCII art)
  • Sega Genesis and Soundblaster chiptune music and sfx 
  • SteamWorks support
  • StarFox 64-styled cutscene dialog system for teammates and enemies
  • StarFox 64-styled gameplay (including 3 helper teammates)
  • Gameplay
    • Standard StarFox 64 StarWing actions
    • 3 gameplay modes
      • Current mode changes at different points in levels
      • On-the-rails mode
      • 3D Free Range mode
      • Space Mode
    • Powerups
      • Same types as in StarFox 64
      • Rings
        • Checkpoint
        • Small Silver Rings
        • Big Silver Rings
        • Gold Rings
      • Bombs
      • Laser powerups
    • Story Mode
      • Ability to save/load up to 3 game slots
      • Levels
        • 7 missions per story
        • Branching story paths
        • 2 different endings (good/bad)
        • 18 levels available
        • Medals earned for beating devteam's highscores
      • Map system
        • Each planet has up to 2 available paths
        • Map system rotatable on X, Y, and Z axises
        • Map Menu
          • Ability to change which path to take on certain planets
          • Retry the previous mission (sacrifice a life)
          • Go back to main menu
    • Training Mode
      • Teaches the player how to play the game
    • Video Settings menu
      • Allows tweaking of various retro video settings
      • Can preview current settings
        • Console palette colorspace in use
        • Sample paletted image with the colorspace
        • Rendered scene displaying settings
      • Tweakable graphics
        • Retro palette colorspace to render graphics in
        • Dither texture style, strength, and size
        • PSX Shader texture distortion
    • VectorVision™
      • Branch of Linux MPV co-utility that can vectorize the game's graphics and output vector graphics to
        • A retro, CRT-based monochrome oscilloscope in XY Mode
        • Raster-based CRT monitor converted to a fancy color vector monitor using Fred K's kit.
      • Uses a custom VGA circuit
    • Peripheral support (Unity3D Rewired library)
      • Remapping of buttons (flightstick/gamepads) and of keys (keyboard)
      • Supported peripherals
        • XBox 360/One controller support (XInput)
        • Generic dual-analog stick
        • Generic HOTAS flightstick support 
        • Saitek ST290 Pro flightstick support
        • "Unknown" controller support
          • Everything else that Rewired library doesn't natively detect
          • The "unknown controller" will work as long as it supports the minimum amount of axises/buttons the game uses for remapping everything
    • Various game options
Full details and progress on the game's development can be found both at the game's project page and here at the blog, respectively. Below is a video of a test level showcasing a quick engine test.

More details about the game's development as it comes at this blog!


Post a Comment

Please login with either OpenID or a Google Account, and then post your comment. Please be respectful and courteous; no spam allowed.

Copyright EagleSoft Ltd. Powered by Blogger.