I’ve a couple of ideas for simple games, and after doing a little research decided on giving Unity a try as a platform, and C# as a language.
I was reluctant at first as I found I could only get it to work on Windows… in hindsight I could have probably used a Virtual Box, or even Wine, but there’s still time to change.
Python was my first choice, although Unity won me over with the user friendly GUI and heaps of free content, tutorials, assets, and community discussion to reference.
Not saying that I’m no longer playing with Python, just not for this project.
Unity Personal is a great place for beginners and hobbyists to get started. It includes access to all core game engine features, continuous updates, beta releases, and all publishing platforms.
Here’s the Wiki Unity extract:
Unity is a cross-platform game engine developed by Unity Technologies, which is primarily used to develop video games and simulations for computers, consoles and mobile devices. First announced only for OS X, at Apple’s Worldwide Developers Conference in 2005, it has since been extended to target 27 platforms.
Six major versions of Unity have been released. At the 2006 WWDC show, Apple named Unity as the runner up for its Best Use of Mac OS X Graphics category.
Unity is marketed to be an all purpose engine, and as a result supports both 2D and 3D graphics, drag and drop functionality and scripting through its 3 custom languages. The engine targets the following APIs: Direct3D and Vulkan on Windows and Xbox 360; OpenGL on Mac, Linux, and Windows; OpenGL ES on Android and iOS; and proprietary APIs on video game consoles. Within 2D games, Unity allows importation of sprites and an advanced 2D world renderer. For 3D games, Unity allows specification of texture compression and resolution settings for each platform that the game engine supports, and provides support for bump mapping, reflection mapping, parallax mapping, screen space ambient occlusion (SSAO), dynamic shadows using shadow maps, render-to-texture and full-screen post-processing effects. Unity also offers services to developers, these are: Unity Ads, Unity Analytics, Unity Certification, Unity Cloud Build, Unity Everyplay, Unity IAP, Unity Multiplayer, Unity Performance Reporting and Unity Collaborate which is in beta.
Unity is notable for its ability to target games to multiple platforms. Currently supported platforms are Android, Android TV, Facebook Gameroom, Fire OS, Gear VR, Google Cardboard, Google Daydream, HTC Vive, iOS, Linux, macOS, Microsoft Hololens, Nintendo 3DS line, Nintendo Switch,Oculus Rift, PlayStation 4, PlayStation Vita, PlayStation VR, Samsung Smart TV, Tizen, tvOS, Wii, Wii U, Windows, Windows Phone, Windows Store, WebGL, Xbox 360, and Xbox One. Unity formerly supported 5 other platforms including its own Unity Web Player. Unity Web Player was a browser plugin that was supported in Windows and OS X only, which has been deprecated in favor of WebGL.
Unity is the default software development kit (SDK) for Nintendo’s Wii U video game console platform, with a free copy included by Nintendo with each Wii U developer license. Unity Technologies calls this bundling of a third-party SDK an “industry first”
Unity – Space Shooter tutorial
I’ve been working through this awesome tutorial for the last few days, completing all but the final section.
Bug checking and seeing a working final product has been satisfying, Adam Buckner is a great teacher who I owe several pints to for his great guidance.
I now feel confident enough to try a couple of my own ideas, and will hopefully finish this last part of the tutorial and publish the finished product to Android.
In the mean time here’s a link to a Mega repository containing a working Linux version of the Space Shooter game I built from the tutorial, have fun 🙂
Mega: Linux Space Shooter
Here’s a summary of the course contents, I went in as a n00b and found it understandable and achievable.
1. Introduction to Space Shooter
Game setup, Player and Camera
1. Setting up the project
2. The player GameObject
3. Camera and lighting
4. Adding a background
5. Moving the player
6. Creating shots
7. Shooting shots
Boundaries, Hazards and Enemies
2. Creating hazards
4. Game Controller
5. Spawning waves
Scoring, Finishing and building the game
2. Counting points and displaying the score
3. Ending the game
4. Building the game
Extending Space Shooter
1. Extending Space Shooter: Enemies, More Hazards, Scrolling BG…
2. Mobile Development: Converting Space Shooter to Mobile