For game and app development, Studio Pepwuper loves to use Unity 3D as our main software. If you’ve been thinking about getting into game or app development, or are a client looking for app development and are wondering what software to have your app/ game built with, here are our top 10 reasons why we choose Unity!
1. It’s FREE to Get Started with Unity
Unity3D comes with a Free version and a Pro version, but unlike most software with both payment options, Unity3D’s Free version is feature-complete. There are definite advantages to paying for the Pro version once you’ve progressed with the program (e.g.: audio filter, video playback and streaming, 3D texture support, custom splash screen and more) but in the meantime Unity allows gaming wannabes to create full games without the obstacle of price.
2. It’s Multi Platform
iOS, Android, Windows Phones, Macs, PCs, Steam, Playstation, Xbox, Wii U…etc. There are many platforms your game be published on, and Unity makes it easy to take your game from one platform to the rest. Porting a game to a different platform that utilizes a different set of technology used to involve massive effort — it was often times outsourced to another company and took up months of development time. With Unity, porting to a new platform is a lot simpler. You still want to take each platform’s unique features into consideration when building a game for it, but Unity makes it a lot easier to port.
3. The Thriving – and Supportive – Community
Indie game development can get lonely sometimes, but with 2 million+ developers using the Unity software (a number that is growing every day), it’s great to have multiple online resources to share the love and frustrations of the program with. If you ever get stuck on a developing issue, want to chat with like-minded people, or are even looking for an artist or developer to collaborate with on your next big idea, there are tons of forums out there where eager Unity fans unite. And speaking of Unite, there’s the annual conference that Unity puts on (Unite), where you can meet your online Unity buddies in person in either Europe or North America each summer.
In addition, there are several Unity meetups all over the world that are not affiliated with Unity, but are acknowledged and supported by them. If you find yourself in Seattle, come and join us at the Seattle Unity Meetup, which I organize monthly for a presentation and network. At the time of writing, we have over 600 Unity 3D loving members!
4. The Asset Store
The Unity Asset Store is a great place to a) find what you need for your game without making it from scratch (a character, a building etc) or b) a nice place to make a little extra revenue if you’re an artist, musician, or modeler.
There is a submission process you must go through in order to sell your assets in the Unity store, but once you’re approved, you’ll get 70% royalties on each purchase which can be a fantastic way to fund your next game!
5. Scripting Languages
6. The Ability to Create 2D Games
Although Unity is great for 3D animation, there is of course still a place for 2D development. With the latest version Unity 4.3, there is a built-in 2D engine that allows you to create 2D games. It handles sprite animation, 2D physics, animation dope sheet…etc. and lots more goodies.
7. The Ability to Create Multiplayer Games
Some of the biggest multiplayer games on the web and mobile are built with Unity (Marvel Superhero Squad, Solstice Arena). Building a multiplayer game is a massive under-taking, and with the set of tools Unity provide and the support of the community, we are able to create our multiplayer game, My Giants, the way we wanted – a task that would have been impossible without it!
8. Online Tutorials/ Classes Make it Easy to Learn
The really beautiful thing about Unity is how easy it is to learn. Sure, there’s a bit of a learning curve in the beginning, but considering what you can do with the software, it’s incredibly easy. With several online courses and tutorials teaching the basics of Unity available, you can learn how to get started with it for a very low cost – and from the comfort of your own home.
Unite used to be a yearly event where early adopters of Unity got together and talked to the guys at Unity about all things new and exciting in the world of Unity. Now with the rise of the Unity community, Unite happens multiple times a year all around the globe. It’s an amazing place to meet fellow Unity developers and learn the cool technology that’s about to come — one of my favorite gaming conferences for sure!
10. The Ease of Use
It’s very easy to get started with Unity, and you can instantly see the result of what you are working on in the editor without having to wait for the game to compile and build. This is huge! From the interface all the way down to the workflow and how art is imported, you can see the brilliant execution the Unity’s idea of “democratizing game development” in what we think is the best game software around today.
Brandon is teaching a 4-week beginner class on making games on Skillshare, starting next month! We’ve worked with Skillshare in designing a course that’s easy to digest, and worked with Unity and Hutong Games in providing top students with awesome free tools. If you have been playing games and been on the sideline waiting to dive into game development, this is a great first step!
Start Making Games!
What do you do when you have a great idea for a game but no programming background? Before you give up, let me introduce you to the world of indie game development. With the technology and tools available today, you can start creating the game you’ve always wanted to make as soon as, well, today!
Who is This Class for?
What You Will Need
Put aside 7-10 hours a week for 4 weeks as we dive into the process of game development.
A modern PC / Mac with 3D graphic compatibility (if you bought your computer in the past 5 years, it should be good enough.)
Download and install the Unity3D game engine http://www.unity3d.com/. We will be using Unity 3D for this class. Don’t worry about the seemingly complicated interface. We will go over it in the class – piece of cake!
Students will be provided a special version of popular Unity 3D Tool – PlayMaker! This is the tool that enables us to create games without writing codes.
What You Will Create
Together with the class, we will re-create two gaming classics to get you started with game development – Breakout and Doodle Jump! Feedback will be provided throughout the course and be sure to attend the weekly Office Hour on Google Hangout for Q&A. We will build these two games for computers – PCs and Macs, and towards the end of the course we will discuss what to do if you want to build games for mobile, tablets, browsers, and/or consoles.
Top student to receive a Unity 4 Pro license ($1500)
Top 3 students to receive a PlayMaker commercial license ($95)
Marvel Super Hero Squad Online is one of the biggest Unity3D based browser MMO games (if not THE biggest), and we are very excited to have our very own Chad Berry from the Seattle Unity3D User Group, who was one of the key developers on the game to come and talk to us about the journey of creating a multi-player of massive scale with Unity!
Time: March 13, 2012 7:00 PM Location: Smashing Ideas (map)
PlayMaker is one of the most popular plug-ins on the Unity Asset Store. It started out as a tool to create and manage FSM, and is now a powerful visual scripting tool for designers, artists, and programmers. I will talk about my experience with using PlayMaker for the Run Megan Run prototype and how to get started with this amazing tool!
Creating multiplayer game logic for My Giants turned out to be a very challenging task. There are many concepts and different layers of complexity that need to be addressed in order to get good results. For us, the major decision was which kind of server logic we want to build: non-authoritative, authoritative or semi-authoritative.
A non-authoritative server exists only as a kind of proxy between all the connected clients. The server relays messages sent by clients and doesn’t know anything or very little about the game logic. All of the game logic is implemented on a client. Such setup is prone to hacking and cheating, since it is possible to change the original game logic on the client. Hacking software even exists that can automatically search and modify important game variables like lives, score, etc… On the other hand, since all the logic is on the client side, the server requires much less cpu and memory resources than an authoritative server.
Authoritative servers are the most secure in terms of cheating because all game logic runs on the server. The server contains proper game state at any moment and it can detect and override possible client’s attempts to cheat. For example, on the client side character speed is hacked in order to gain advantage over the other players. However, this does not make any difference for other players, because the server calculates the movement of the hacked player and only the server result is relevant.
Semi-authoritative server is a blend between the two aforementioned approaches, giving some authority to the client over certain aspects of game logic. For example, in semi-authoritative setup, client reports to the server when an opponent is hit and should receive damage, and the server keeps track of a player’s health status and decreases it accordingly.
In the course of a few months our networking game logic went through many iterations of improvement and experimenting, trying three networking technologies:
I’ll try to give an overview of our experience with the three technologies, some of the difficulties we had and a few core differences. Our networking logic is still in development and there will probably be other observations as we progress, but this is as good time as any, to share some of the things we picked up along the way.
For #ScreenshotSaturday today, we are taking you to the slowly developing city in which Run Megan Run takes place. We are experimenting with a few different ways to set up the scene, and this is the setup this week. Like? Dislike? Let us know! :)
If you are using PlayMaker plugin for Unity3D and are struggling with touch input in your game built with mouse events, I made a FSM to convert touch input into mouse input in my project so that it will work on my Mac and iPhone at the same time. Just drop the prefab into your scene, or create a GameObject, add FSM, and paste the template in the .asset file.
Basically, when a user touches the screen (Touch Began), this FSM will send a MOUSE DOWN event to the object touched, and send a MOUSE UP event to the object touched when the user lifts his/her finger (Touch Ended).
I’m going to explain why this is going on, and then how fix the specific “Base SDK Missing” problem. You can skip to the bottom for just the fix, though I recommend reading all of this. I also recommend John Muchow’s excellent take on this issue.
If you are specifically interested in the Xcode 3.2.4 upgrade, which has a strongly related problem, you might want to confer here.
One SDK to rule them all
Here’s the deal: 4.0 is now the only SDK version allowed for submitting new or updated iPhone-only apps. This is direct from Apple’s iOS 4 Readiness Checklist (reg reqd):
All new applications and updates to existing applications must be built with iPhone SDK 4. Please note, the App Store will no longer support applications that target iOS 2.x.
Presumably — I’m guessing here — iPad-only and universal apps should use the 3.2 SDK. That is why 4.0 & 3.2 are your only choices for SDKs.
That is also why your project is now broken, since the SDK it was previously mapped to is deprecated, gones-ville.
(But) 3 is a magic number
Relax. You can still target devices running iPhone OS 3.0 (but not lower). The SDK you use to compile does not limit — downward — what iOS version you can program to or support. Once you’ve patched things up in your project etc. (cf. next section) you can set “iPhone OS Deployment Target” to a lower iOS version. For a quick shot of how to do this, cf. step 7 in the next section.
Note that you are now entering some tricky terrain. Your usual Xcode 3.2.3 compiler will no longer be enforcing your compliance to 3.0-only calls, nor does it have a simulator for these. And if you want to support 4.0 features, you’ll have to do some conditional code to prevent crashes on 3.0 devices. Fun.
You can still download (from Apple!) and install a previous Xcode version or SDK (cf. here). Yes, you can install multiple Xcode versions, in different directories, i.e. put only one version in /Developer. You can use the old Xcode to test your app’s compliance vs. a 3.x SDK, moving the hard work to a fancy compiler, and simulator. But you can no longer use the products of the previous SDKs to submit to the app store.
FWIW, I plan on doing just this check before I ship.
From the menu, select Project > Edit Project Settings…
Under Architecture > Base SDK, choose one of the available device options: iPhone 3.2 or iPhone 4.0. If you are iPhone-only, 4.0 is the way to go.
Close that window.
From the menu, select Project > Edit Active Target “YourTarget”
Under Architecture > Base SDK, choose one of the available device or simulator options: iPhone 3.2 or iPhone 4.0.
If you want to target previous iOS versions, then in that same window, under Deployment > iPhone OS Deployment Target, select the lowest version you want to support. Note that support for 2.x versions through the app store is deprecated. See the “Readiness Checklist” quote above.
More detailed information on this topic can also be found in the first answer to this question. There’s also some useful info here.