Posted by GuardianX
on 07 December 2014 - 03:10 PM
It is sad that you have chosen dead language in gamedev, but apparently you want to go that way. Whatever. Sadly I don't have enough time to blow all of the points which AppropriateUserName provided.
He clearly haven't seen any benchmarks, doesn't know that C++ is multiparadigm, thus you don't pay for what you don't use, doesn't know about Turing-complete compiler, templates, RTTI, RAII, lambdas and proper memory management, not rudimentary GC which will kill the app in most unpredictable way possible. Praising Eclipse - the most unstable piece of sh** I ever used. Especially compared to VS+VA. Java is for business and server apps (the later is questionable lately).
C++ will give you the power of native machine. Again, you don't have to mess with everything C++ has to offer - and it offers much more than Java - this is why most of demanding applications are written in C++. All desktop and console game clients are written with C++ and C. There is no place for Java in performance-narrow applications, such as games.
Posted by GuardianX
on 06 December 2014 - 03:50 AM
As far as I know there is a huge demand on C++ programmers for mobile game programming, since this language can be used both in Android and Apple devices. If I were you, I would try to learn cocos2d-x and later I would go straight to OpenGL ES 2.0 + C++. Later approach will give you much more understanding of underlying infrastructure and hardware capabilities.
Notice, that there are alternatives:
1. Unity3D, which, in my personal opinion is subpar. Best for making prototypes, but complex games require you to completely change workflow and write a lot of customization code for serialization and other vital features. Not to mention that it is very buggy, crashes a lot. Once it completely erased our Assets folder, where all of our game assets were stored. Personally, I wouldn't recommend it to anyone.
2. Flash+Starling on AIR platform. Really nice mature framework, which is accelerated by GPU. However, AS3 will not be as useful for you as C++ or C#.
3. HTML5, which is useless, unless mobile developers incorporate asm.js into their browsers. Considering that even WebGL lacks support on mobile devices, I wouldn't expect it to become available even in middle-term perspective.
Posted by GuardianX
on 09 November 2014 - 03:08 AM
Very interesting topic. I also find myself lost in code, when the codebase increases significantly. It just doesn't hold fully in my head so if I have to change something, firstly I have to recall where it is placed. I guess refactoring is a good suggestion, but sometimes you don't really have the time, needed to refactor core architecture decisions.
Java is very popular C/C++/C# alike (which means you will be able to grasp those languages fairly quick if you already know Java) object-oriented, performant language used almost in any sphere of the IT. I would strongly recommend you learn it, instead of Python, which is used for scripting tasks mainly and sometimes for backend development, but not by a mile as often as Java. Basic Java concepts are very easy to comprehend, too.
If you never made a game by yourself, start with something simple like tetris, star attack, life-game or something similar. However, don't hesitate to read about advanced topics aswell and try things out. I have no doubt that you will be able to produce the demo you are dreaming about, when you'll get all of the parts of the development flow together and understand them, through testing and writing small games or demos for proof of concept.
I'm gonna advertise the technology our company is using right now to make social games. It is called Starling. Utilizes high-level programming language - ActionScript 3. Free. Works on Mobile and Desktop with minimum efforts per platform (basically 99% of the code is the same for every platform). GPU-accelerated.
Flash is not dying by itself yet. Google tries to degrade Flash's quality in order to push their HTML5 technology, but HTML5 for games is very unstable right now and will be in forseeable future. Check this issues for example https://code.google.com/p/chromium/issues/detail?id=309540 This illustrates that built-in PPAPI version of Google Chrome lacks in performance and Google cba to fix that issue with their plugin for more than 6 months already.
In the other hand, Adobe constantly increases the quality of their player. For example they added GPU acceleration not so long ago, so your game can run on top of actual GPU meaning you no longer care about CPU load - with this technology it is almost 0. Not only this option available for desktops, but for mobile devices as well thanks to constantly evolving Adobe Air technology, migrating to which is basically few clicks if you already have flash application for browser. The performance of Air GPU-accelerated games on mobile is comparable to that of native mobile games.
That's just my opinion.. I don't like Flash, but if you do and believe that it is good, than go on for it .
Can you add Multiplayer in Adobe Flash
Absolutely. Our studio is using RESTful service atm in our games, but we want to migrate to Thrift/native sockets in order to add real-time multiplayer component to our gameplay.
I work at relatively small game making company. We are making the flash games for social networks right now. I work approx. 40 hours/week with flexible work hours. My day consists of:
1. First of all, the cup of the green tea xD
2. I have a small conversation with our leading programmer in highly friendly environment about things we need to do/things we want to add to our game in future.
3. I go to my seat right at the big window through which I can enjoy watching one of the biggest rivers of my country.
4. I think about things I have to do today, plan things etc. For example, I can have a task which I should accomplish within one week, so I focus on it.
5. Our company is small and new, so we don't have advanced development techniques and a lot of our work is not automated at all. So I usually test the new functional manually (not that I even know how to do decent TDD with AS3, where everything is a sprite and logic is highly coupled with views).
6. Occasionally I watch inspirational gamedev videos or read something I like. Usually it happens during my lunch break.
7. Since I'm very lazy to wake up, and I really like to do stuff at nights, my work starts at 12pm and ends about 20pm =)
I'm new in gamedev, but so far I like it so much.
Regarding your questions. Well we don't measure the productivity by the lines of code written per day, so that number is completely unrelated. Usually it is the best practice to write less, but do not hurt lucidity of the logic behind the code, obviously. In our company we are not restricted by the numbers of classes you should create to complete your task - you just do what you think you should do to accomplish your goals without breaking everything =)
All those developers who wrote games with assembly for nintendo and co did that because hardware was very specific, which is why nintendo should have developed their own high-level language compilers, which they clearly cba to do. The development process in which high-level language utilized goes a lot faster than that based on assembly.
Posted by GuardianX
on 10 December 2013 - 04:06 PM
If you do not plan to use graphics, it is easy enough. You can focus on your game engine only, which will be relatively easy to code (things you enumerated are easy to do) if you know C++ and how to utilize OOP concepts. The only question here is how much of your time you can dedicate to think about architecture and do the actual coding.