I’m scared of programs like Dreamweaver, Unity, Game maker, and Construct 2 where people can make software or websites easily without need to program themselves. I have worked hard to learn php, java, javascript, html, css, and MySQL, to be able to create what I want. But I’m afraid I work really hard to make a game in java, and then someone else comes and makes a better game a shorter amount of time with one of those programs, it makes me question if it’s worth programming in java, or if I should start to use Unity instead. But there is a part of me (my ego?) that hate’s that idea since it’s not programming. I mean, if there is a software like that which would allow me to build games faster, easier, and maybe even access the code to edit in things the software can’t do. Then why just stick with pure java, or any other programming language for that matter?
That’s the question I’ve asked myself almost 2 years ago. Then after some thinking, these are the answers I’ve got to continue with programming.
Premium Tools
I was a kid then and I didn’t like premium or shareware programs. I doesn’t know what my skills are and doubted that if I bought it, and then I couldn’t do what I intended, it would be a waste. Moreover, my father didn’t believe in e-commerce (It was slowly appearing in the country), so I didn’t like many tools.
High Learning Curve
I tried to use the trial versions of GameMaker and Multimedia Fusion2, and both involved some learning curve. It took me nearly 45 days to make my pong in GameMaker (I tried to understand those functions first) and I have never completed a game in Fusion. They both are totally separate in the appearance, and bewildered me.
Limiting Functionality
I dropped up on Fusion and started focusing on GameMaker, because it totally based upon pre-defined actions. I played with it for almost 2 months, and started to find it lacking. It required me to learn GML to implement the missing library functions for my game. From day by day, I ended up more time googling for issues and my productivity decreased by a lot.
With these issues, I decided to write my own games in code, and I started learning Java. Now, I’m more satisfied as I can do anything that I like to do. Now I also understand the basics of my games and it works well. As for unity, I attended a workshop on it last year. I think it would be fine, if our instructor had explained what those functions are. I didn’t like it only for that reason (again it requires a high learning curve).
Some people work hard creating programs from pure assembly or machine code, while you get to use a programming language which is easier to use and has more tools.
Then why just stick with pure java, or any other programming language for that matter? You still get more control, flexibility and potential. If you make games because you want a final product that you can show off or sell, do whatever is easiest for that goal. I still think there are many advantages using Java compared to unity depending on what you want to do.
Personally I rather use Java + Libgdx over Unity/Game maker because I find it more enjoyable and still able to produce the same results. Besides, Unity has a pretty steep learning curve; people who use it also would have worked hard to learn it. And by the way, with PHP, I think it’s starting to become out of date, being replaced with other web frameworks like Ruby on Rails.
BTW I also have a feeling you like programming because it makes you feel like you have more skill, and other people find it more impressive (nothing wrong with that of course :)).
We’re using Unity
I have these observations to make about it.
-
Bloody hell, you can’t half get some stuff done so fast. The vast majority of game development wank - you know, lighting, shaders, just loading 3D models let alone rendering or animating them, game loops, etc. - all works and been done for you. All you have to do is “make game”.
-
It’s not exactly super-fast but then that’s because it’s super-flexible within the bounds of its design remit. So you won’t be making Dawn of War or anything with 5,000 units running around but for mostly anything else… it looks like it’ll cope.
-
The ability to deploy on mobile devices as well as desktops is of course still the massive red herring that it is with every other cross-platform dream environment. You do not make desktop games to run on phones, nor vice versa. Just give it a rest already. If you base a decision to use a tool because you can magically make the same sourcecode run on the other, you need to get your head out of your arse and think about what the hell you’re up to.
-
C# (on Mono), everyone will tell you, is superficially similar to Java and that they’re functionally identical. I can now tell you that they’re not really at all. C# is a fairly atrocious language that seems to have been designed by hackers and bodgers trying to play catchup with Java and C++ as fast as possible. It has readability almost as poor as C++, performance seems to lag Java by a decade (and that’s because of shitty libraries mostly), and all manner of inconsistency and missing functionality and shittiness that you only realise you were spoiled with when you’ve used Java for any length of time and try to use something else. It really is a half-baked hack compared to the hundreds of man-years of academic effort and maturity and testing that seems to have gone in to Java.
-
The Unity IDE is a bit temperamental and buggy, but then what IDE isn’t? It’s particularly poorly integrated with Monodevelop, which is itself, a total crock of shit compared to Eclipse. Navigation is non-existent. Stuff like integrated Javadoc you take for granted. Browsing class libraries. Basic formatting and syntax colouring. All terrible, bugridden, non-functional or anti-functional (I usually have to type everything twice just to get the fucking stuff to format properly because it auto-formats stuff wrongly for me - every single time).
-
Oh, it turns out that you can string together trivial tech demos in Unity in no time at all - because all the tech has been done for you. But it then turns out if you actually want to make a game you’ve got to get pretty clever with C# “scripting” anyway. And in fact you end up doing all the hard stuff in C#. And you need to actually design a game too, which IMHO is actually the very hardest part of game development. I used to be worried about Unity coming along and “democratising game development” (read: suddenly opening me up to vast competition) but actually it turns out that the “engine” development part of game dev - the bit that people worry about the most because it looks the hardest - is actually one of the smaller aspects of game dev.
-
Being able to easily target PS and XBone at the same time as Steam is a massive advantage if you have the right connections and understanding. Java is a major hassle in this respect… well it would be if I hadn’t just managed to run Ultratron, unmodified, using IKVM. Hmmm.
Cas
Unity, Blender, Gamemaker, RPGmaker and whatever game maker type thing there is can never take away my pleasure in programming. If people want to create a game with those tools, I wouldn’t care too much because I’ll stick to progamming anyway. I program and make games that way because I can, and because I find it a great pleasure and a fine way to spend my free time.
Monodevelop will take away your pleasure in programming. :emo:
Cas
That’s why I don’t use Monodevelop
Edit: Whoops, mistook it for monogame, that’s two different things :P. But yeah, Monodev too takes away your pleasure in programming.
thanks for sharing your experience with unity Cas.
take it easy. these are just tools, tools are made for a purpose. naturally, games made in unity (or any engine) will have “look” or “flavor” leaning towards the tool itself. either by limitations or the opportunities given to expand, neither good or bad.
games/tunes/graphics/whatnots made with unity/unreal/rebirth/[insert tool here] look/sound/feel/taste/smell/[…] like made with these (to some degree, with exceptions!).
so if you like your own stuff - and you do not just want to release as quick as possible and get filthy rich as fast as possible - and want to create something unique, outstanding, if you like art - code stuff by yourself. then it is truely you in the end.
on the other hand, it’s never bad to go ahead and play around with as many tools as possible/available. not just “game-engines”, there are tons of different, interessting “authoring tool” aiming all kind of “media”. what the heck.
Haha, yeah monodevelop is a nightmare. Used to crash a lot for me too, don’t know if they fixed that yet.
Every now and then I just download the latest version of Unity to have a look at it, but I can’t really do much with it.
Last I heard they have a 2D Engine now, or they have more support for 2D stuff, something like that. Maybe I’ll give that a try now.
Then again, your basic pong probably weighs ~30 MB with all the overhead you have to distribute it with. Meh, don’t know. I like it for it’s “ease of use” (once you know wtf you’re doing) and I don’t really like it at the same time
Only one crash here in a month or two of use, which is par for the course.
Eventually also programmers are going to come to realise that programming is just quite a small part of games development these days. You’re pretty much dead in the water unless you find an artist. I know pixel art is all the rage at the moment but it might be a fad based on the age of certain demographics and also… there’s pixel art and there’s pixel art And don’t forget Unity is probably rather better for doing 3D work and 3D ain’t easy content-wise.
Cas
I think what some people have hinted at is that programming is a process, not just an end-goal.
You say that you’re afraid other people will create games faster than you. Well, that’s true. That would be true if you were using anything. Somebody out there can probably create a game faster than you, using machine language. Other people might take twice as long, using Unity.
It’s a bit like saying “you know, I was enjoying this lovely walk, but look how fast the people in cars are going!”
If you enjoy the process of using Java (or libGDX, or JOGL, or whatever), then that’s enough. Face it: most of us (including you, and including the fictitious Unity developers you’re jealous of) will never make a cent on any of our games. So why not enjoy the process instead of getting hung up on going as fast as possible?
And even if you are gung-ho on making money off your games, not every artist uses the same tools. Did paintings become irrelevant when sculptures were invented (disclaimer: I am not an art history major so maybe those are reversed, man this is a bad analogy)? Did theater become irrelevant when movies were invented? Did the acoustic guitar become irrelevant when the electric guitar was invented? Stick with something you enjoy and stop worrying about other people.
The one thing that bothers me about things like Unity and Game Maker is that they’re way too restrictive. We have an entire generation of “programmers” growing up only knowing Unity or Game Maker, which is fine for making games- but what happens when they want to create a GUI application? (Ever hear game developers complain about not being able to program GUIs?) What happens when they want to program a server?
My school offers a “game development” major to undergrads, but it sorta frustrates me since all they use is Unity. That’s extremely restrictive, especially when compared to a “real” computer science degree (which, incidentally, uses Java in most of its classes).
No it’s a means to an end.
If I had people programming for me, as I tell them what I need, I would hardly ever program again.
I think it’s a slightly depressing outlook.
Making some is actually trivial today if you apply yourself.
And when you are dead, your unfinished projects don’t really count for much.
Life is short. We have a limited time to reach goals and create content.
I appreciate that you enjoy programming/engineering, most of us do on some level. But I love GAMES. I want to create games, stories, characters, dialogues, worlds, maps, scenarios, game play mechanics, conflict, drama, maybe comedy.
Telling a machine what you want is inherently tedious.
Yeah, that’s the other school of thought. I suppose you’re more of a “manager” and I’m more of a “code monkey”. Different strokes for different folks and all that.
I’m going to try very hard not to be offended by the implication that I don’t apply myself and that all I have are unfinished projects, haha.
My only point is that if you’re only doing game development because you want to make money, you’re going to have a bad time no matter what tool you use. That’s true of any craft, I suppose.
This is a valid argument, and I can’t disagree that many people think that way. My only goal was to hopefully provide OP with another way to look at the “problem”. There are more factors at play than “it’s easier to make games in unity than straight Java”. It’s a tradeoff.
You should spend some money and use visual studio + resharper. It’ll probably boast your productivity by an order of magnitude. You may even import an Eclipse Keymap (havent tried)
Even though it may not be possible to use with Unity, at least have it integrated, I totally agree. If Unity is fine with you just editing the source files in a different IDE definitely use VS and Resharper. I use that at my job and it boosts my efficiency to twice of what it would be without Resharper.
Well managing is better I guess, but it again is just a means to an end. I wanna see the game come to life.
I want people to play my game and talk about it, thats the goal.
My point is just selling something on like the app store doing just SOME advertising, you will sell at least some copies.
It is:
http://docs.unity3d.com/Manual/VisualStudioIntegration.html
http://blogs.msdn.com/b/visualstudio/archive/2014/07/29/visual-studio-tools-for-unity-1-9.aspx
Oh awesome, it’s neat that they’ve done that. If I ever work with Unity I can feel at home now
My thoughts exactly, I really don’t like monodevelop but unity streamlines so much that I can take using it.
Any idiot can pick up a paintbrush and make a painting, but it takes brilliance and skill to make a work of art.
- Jev