Showing posts with label Unity3D. Show all posts
Showing posts with label Unity3D. Show all posts

StarEagle: Defenders of the Galaxy Game Reveal!

StarEagle: Defenders of the Galaxy
Game Reveal!


Background

     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
          OR
        • 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!


Ultra Air Hockey v1.1 Android port, now on Google Play!

UAHDX v1.1 Android Port,
now published on Google Play!


   Ultra Air Hockey DX (UAHDX) has been updated to v1.1, as well as an initial release of a new Android Port, both as a side-loadable app, and as an officially signed app at the Google Play Store! Due to lack of full-version purchases for the PC version (read: none!), the demo and full-versions of the game have been merged into a single, full, freeware version! It is strongly encouraged to give a donation of any amount to EagleSoft Ltd for future developments and motivation :).

Enjoy!

UAHDX Release!

Finally, its here! The release of Ultra Air Hockey DX for PCs!

    Starting in October 2014, EagleSoft Ltd worked on its first Indie Unity3D video game, Ultra Air Hockey DX, not only for fun and for software engineering experience, but also as a university project for a Fundamentals of Software Engineering class programming project. This project was much more difficult than we first imagined, since we had to self-teach ourselves and to learn quickly a new programming language (C#), a game engine (Unity3D), and fundamentals of software engineering, including creating documentation such as an SRS, a Gantt chart, and a plethora of other documents. Nevertheless, through hard work and persistence, we finally finished programming the game in early January of 2015, and are ready to release it as a purchasable download from the shop section of the website! The game is currently available for Windows 7 (x86/x64), Mac OS X (x86/x64/universal), and Linux 10.04 (x86/x64/universal). A demo of the game for all of the previous OS and bit combinations is also available (the demo only has Air Hockey mode available) on the UAHDX Page and at the shop (for free).


       Everything is finished with the game (all powerups, all 3 modes, and all game assets), except for online multiplayer. We plan on implementing this complex feature, as well as any other bug fixes, post-mortem as a update patch.


Below is an advertisement for the game, showing off all of the gameplay features.


We hope you enjoy the game as much as we had in creating it!

Cordially,
EagleSoft Ltd and UAHDX Dev Team

2014 Recap, Plans for 2015

Recap of 2014, and Plans for 2015

(Rather than make about like 5 different posts on things I need to say, I thought I would combine everything into this post.)

     It's that time of year again, where EagleSoft Ltd gives an overview of last year's accomplishments and plans for the new year! Unfortunately, not very much was completed last year, due to "real-world/life" commitments such as university life. However, EagleSoft Ltd did begin work on a retro homebrew port of its famous Ultra Air Hockey game to the Sega Genesis/Sega CD using a basic programming language called BEX, began work on a 3D, Deluxe multi-platform edition of the game called Ultra Air Hockey Deluxe using Unity3D, and added more content and extensive visual changes to my old fan game, Sonic CD Breakout.

    For 2015, unfortunately, due to technical difficulties and limitation of the BEX programming language, the BEX retro port of Ultra Air Hockey is being cancelled, but moved to the Sega Genesis Development Kit (SGDK). Likewise, the BEX GSpriteLibrary which was being developed in parallel is also being cancelled, and will not be ported to SGDK, since SGDK has most the library's features built-in. The SGDK is a C-based dev kit for the Sega Genesis, which is more powerful and stable than the glitchy BEX compiler, and which compiles code through the GNU GCC compiler in your IDE of choice. (I am using Code::Blocks.) It includes advanced features such as virtual Fix16 and Fix32 floating point data types, trigonometry, sprite and spritesheet management, input controls (Sega Genesis 3 and 6-pad joypads, Sega Mouse, Light gun, etc), and more. Due to this set back, the publishing and release of Ultra Air Hockey (Retro) is now greatly delayed; however, the end result show be a more polished, professional product.

  Furthermore, EagleSoft has finished a large chunk of programming for Ultra Air Hockey DX. We currently have everything completed except online multiplayer. Initially, we were going to release the game as a Windows 8 app in the Microsoft App Store without online multiplayer support before Christmas 2014, and were going to simply add that feature in a future update post-mortem. Unfortunately, we also want to publish it as a standalone W7 executable (especially since Windows 8 is a heretical, blasphemous, Satanic abomination to computing), but the Windows Store only allows for Windows 8 apps. This would have caused us to create a separate update/serial system, in order to allow Windows 7 customers to be able to download an update without re-purchasing the game. Instead, we are going to publish it once, after multiplayer is coded. After done with UAHDX, we plan on creating yet another original indie Unity3D game. No details or plans on what that game will be yet...

   Lastly, we are continuing to work on our Sonic CD Breakout fan game. Although this is a low-priority game, we are continuing to develop new zones, special stages, and other features by removing limitations and extending features of the BreakGOLD game engine.

   In conclusion, although not much was completed last year, we are working to make next year better, and to create more exciting video game projects!

-EagleSoft Ltd


UAHDX Progress #5: Rebuild and Thanksgiving preview

UAHDX Progress!
Part 5: Rebuild and Thanksgiving Preview


   Unfortunately, after co-developer Josh looked at the coding from the previous post, he determined that we needed to recode everything from the ground up. Not only was this due to my lack of knowledge of how the OOP in C# for Unity3D works, but also because, due to what he described as the "spaghetti code" and how I structured it similar to a procedural-based language, nothing would have worked in a network multiplayer game, due to objects lacking their own methods. In the past few weeks, we have recoded everything from the ground up, so that it would be optimized with the OOP features and for multiplayer.

   In the process, we have fixed scripts, added scripts and features, and optimized features. It took days to finish, but we plowed through all of the grudging work and reigned victorious over our personal and professional work outside of this project. Specifically, we have added self-illumination textures so that pucks and paddles will glow with a parallax diffuse, mostly finalized the Credits screen, and cleaned up the Battle game modes. Specifically, we have finished all powerup objects (except Army, and Swap places, which may be scrapped entirely), added powerup handling in order to activate and deactivate powerup effects, added a proper music support, added a powerup HUD, and have added a username text to float above paddles. Furthermore, at the request of our professor, who gave us a creeping requirement on our project's SRS, we have added a feature allowing the players in a netgame to email each other the results.



    Below is a YouTube video demonstrating all of the new changes. Although not shown in the video, the core code of the game also works with the other difficulty settings of the Battle Mode. (We have yet to adapt the existing code and test it for the 2p Air Hockey mode and for the Pinball mode.) What is left to complete for the video game project is to integrate netcode for online multiplayer, implement AI, implement proper raycasting for each player in their own player fields, and adapt the code for Air Hockey and Pinball modes.



  C&CC welcomed! Planned ETA to device/PC software stores is early 2015.

  -EagleSoft Ltd

UAHDX Progress #4: Gameplay, Scoring, Powerups

More UAHDX Progress!
Part 4: Gameplay, Scoring, and Powerups

       It been a week or two, but the UAHDX team (Josh and I) are kicking it high gear for more development action, especially since our time for working on this school project is running out! (It's due by the first week of December, and we still have much to do in a short time.)

       Since our last post, we have coded and begun to implement many features. We are currently working on the Medium difficulty, Battle Mode game scene. Due to how we are coding and designing the game, each game mode/difficulty combination is modular, and relies upon a core set of scripts and resources. After finishing with our 1st game scene (the Medium Battle Mode), the rest will go downhill. We have plopped our 3D game models into the game, have implemented proper scoring, the announcer for scoring, and a scoring HUD. We have also added the ability for both a human and CPU to control the paddles. The former feature is quite functional and bug free, while the latter feature is in the early stages of development, and needs improvement, especially with coding an intelligent AI with removal of collision issues. Each paddle can only move within a certain area, with some interlap between these fields for multiple players in the Battle Mode.

    Furthermore, we have imported and implemented a majority of the main game sounds. A powerup collectible object has been created; however, the glue-logic for allowing a player to keep powerups and use them at will is pending to be written. This glue-logic will be performed using an invisible powerup thinker. We have, however, begun implementing some of the powerups, especailly those which are based upon physical objects. Such powerups include blockade, bumpers, portals, multi-puck, and army. These powerups will be dis/enabled by the game engine using our powerup thinker object.

    Below is a video showing everything is action, as to the time of this writing. As a developer of the game knowing its inner-workings, I cheat (a lot), in order to show off the features. My paddle (the red one) can move anywhere, and I can dis/enable Unity gameObjects and features on-the-fly using the Unity Editor during runtime. I do this so that I can focus the video recording on specific aspects of our progress. There are a few bugs in the video, but overall, the progress is fine.



C&CC welcomed! Also, if you know me personally in the real world, and want to Beta test the game, email me. I'll be sure to add you to the Credits screen :).

-"Tamkis" (Tony) from the UAHDX team/EagleSoft Ltd

UAHDX Progress #3: Menus & Graphics

UAHDX Progress #3: Menus & Graphics
 
Much has happened in the last month with video game development of Ultra Air Hockey DX.
In Fundamentals of Software Engineering class (which is the university class for which are creating this game for a grade, as well as for EagleSoft Ltd to sell the game and create our first Indie video game title), we created a Software Requirements Statement (SRS) for the game, and classmate Joshua and I have pinned down the main functionality of the game. Furthermore, we have now formally begun development of the game, officially!
 
 
 
    For our 1st week of formal development, we have created the menus for the game, finalized game assets, and fixed textures on all 3D models. You can look at the 3D models on the new models page on the EagleSoft Ltd website, which are 3DPDF files. Furthermore, you can check out the amazing menus in the video below. The GUI has been finalized, but implementation of the options screen actually change game variables and showing message per category and item still need to be implemented. Also, animated gifs of the intro FMVs need fixed.
  
C&CC welcomed!
 
More progress to be shown as work is done!

UAHDX Progress #2: PoC Air Hockey Gameplay

UAHDX Progress #2: PoC Air Hockey Gameplay
 
 
A few weeks ago, co-developer "Josh" and I made some progress in creating a rudimentary, quick and dirty, Proof of Concept of the Air Hockey mode gameplay for Ultra Air Hockey DX! You can check out the video below. Unfortunately, we had problems with textures, so ignore the wrong colors, and also the placeholder menu.
 
 
 
For progress to be shown as we develop it!

Ultra Air Hockey DX Progress #1: Art

Ultra Air Hockey DX Progress #1: Art

Classmate "Josh" and I have made some minor progress on Ultra Air Hockey DX in the past few weeks, for our Fundamental of Software Engineering class project, and for the game which will eventually be available as a paid, indie game, published by EagleSoft Ltd. We've outlined file resources (especially music and sound), and will be creating an Software Requirements Statement, so that we can plan and execute our project.

Most importantly, I have already drawn the 3D Google Sketchup art to be used in the game. You can look at the cool art, and read about the synopsis of the project, at its page on the site. We also are working on a prototype for the collsion system, but are having problems with proper puck collision.

More to show for the project as things develop!

Copyright EagleSoft Ltd. Powered by Blogger.