Jump to content

  • Log In with Google      Sign In   
  • Create Account

Banner advertising on our site currently available from just $5!

1. Learn about the promo. 2. Sign up for GDNet+. 3. Set up your advert!


Member Since 16 Feb 2000
Online Last Active Today, 07:36 PM

#4995862 Animating for 2D games

Posted by joew on 31 October 2012 - 10:25 AM

If you don't need a skeletal system it is actually quite simple. The easiest way is to build a sprite sheet with something like Texture Packer or Zwoptex and then you just change the texture region over time based on the animation time. You can think of it almost like a flip book where you are just presenting slightly different images to show motion.

#4995509 Are you planning/making a Windows 8 (metro) app?

Posted by joew on 30 October 2012 - 12:31 PM

SiCrane I admit that saying it would only take a single year would be quite a fast move, but I did have some reason for it and was thinking more along the lines of indies rather than the big guys. Of course I could also be absolutely wrong with my statement as well.

Basically my thinking is that it gives indies another storefront to stand out and sell their titles having broad reach as long as the potential customer base does in fact move over. In theory (and if it follows iOS, etc) give indies and smaller studios help in recognition either by being featured on the store, and having one place to look rather than people having to surf the web looking for a game they want to play. It doesn't solve the issues in marketing, branding, etc... but it does make it ten times easier to find games and applications having them all in one place (for example when they added the MacOS App Store I found a bunch of small tools and apps that I would have been using all along but I had no idea they even existed!)

Regarding the submission fee I am not in full agreement, but again I could be wrong. Of course people don't like to have the submission paywalls (i.e. Mac, iOS, Steam) but if someone builds a game that is polished enough to actually be worth selling they can probably come up with the submission fee. I know I am generalizing/guessing on that point but that was also a something I read a lot regarding the iOS app store when it launched but I really haven't heard it since then.

Finally, this is a board where a significant fraction don't even target Windows, much less a specific version of Windows.

I agree with you there, the only reason I boot into Win7 is to play games or work on a port :) The sole reason I'll be picking up Windows 8 (at some point in the future) is for porting our title to metro.

#4995261 Moving from Java to c++

Posted by joew on 29 October 2012 - 08:19 PM

And of course, the IDE in debug mode didn't give me the error (Or even a warning message).

The reason is because it is not a warning or error to the language. Also this is a big reason that you should use initializer lists in all constructors to initialize the class members, or in the rare case that you don't (say in a vector4 or matrix44) you need to be careful never to use it until it has been assigned a value. Note the reason it works fine in debug mode is that values will be initialized whereas in release mode they are not.

First Tip: Delete dynamically allocated memory as soon as possible. Whenever you do, set the pointer to null.

I disagree with both. It is actually much better to reuse dynamically allocated memory at runtime than to delete and reacquire. I would only delete when it is no longer needed. Although this is really a non-issue if you are using C++11 due to having std::unique_ptr, std::shared_ptr, and std::weak_ptr.

Regarding setting the pointer to null after deletion this is something I absolutely disagree with and is just inviting bugs to linger in your codebase. By setting to null you won't catch any double delete errors, etc which would be found and handled easily by attempted to delete something that has already been deallocated.

#4995022 How/Who create the GameObjects?

Posted by joew on 29 October 2012 - 06:07 AM

If you plan on only supporting OpenGL, RGBA is the correct solution.

Also note that depending on chipset (i.e. PowerVR) with GLES 1.0/2.0 the native format is BGRA

#4994883 Enum help

Posted by joew on 28 October 2012 - 06:54 PM

Also note that if you are able to use C++11 you can do the following:

[source lang="cpp"]enum class ItemType{ Weapon, Armor, Consumable, Trash};[/source]Which gives you a type safe enum.

#4994358 Create an operating system

Posted by joew on 27 October 2012 - 12:53 AM

...Y'know, I'd be interested in buying a good book on writing an OS, if anyone wants to write one and put it up on Amazon.

You mean like Tenenbaum's books Modern Operating Systems and Operating Systems Design & Implementation? Or something more like Design of the UNIX Operating System? There are literally tons of them on Amazon!

#4993936 ageism in games industry?

Posted by joew on 25 October 2012 - 03:36 PM

When I'm in the process of hiring I have never once taken into account a persons age. The only thing I care about it how excited they are about the position and making sure they are the absolute best fit.

#4993701 Favorite little known or underused C++ features

Posted by joew on 25 October 2012 - 12:45 AM

I don't know how often it's used, but man do I love auto.

I think we'll see auto become heavily used in the future (at least I hope!) since it makes code so much more readable especially for things like iterators in for loops, etc. Although mind you I would very rarely do that now anyway considering you can for_each with a lambda or the new for loop syntax to cycle complete containers.

My favourite things that I use heavily but I'm guessing are underused at the time:
for_each / lambda
default and deleted functions
final classes
override on virtual methods

#4993225 Favorite little known or underused C++ features

Posted by joew on 23 October 2012 - 03:58 PM

If you really need to do something like this, then an array decays to a pointer. You can always store just the 2-dimensional array and cast back to the single dimension as needed.

I have no idea why it was like that as the code was extremely old and just never touched. I believe it was due to passing to an API but that still doesn't make any sense considering the cast is a NOP so it wouldn't even save anything.

#4993183 Favorite little known or underused C++ features

Posted by joew on 23 October 2012 - 02:09 PM

Out of curiosity I'm guessing it was left out of the C++11 standard do to ambiguous naming as functions/variables would live in an unnamed inner scope?

#4992113 2D Game art help

Posted by joew on 20 October 2012 - 05:02 AM

You should definitely check out Pixelmator which is very user friendly and low cost.

#4992109 Best game engine for MMORPG?

Posted by joew on 20 October 2012 - 04:55 AM

I'm not going to get sucked into an internet argument but I'll respond to a few points generally and it will be my final response.

Trion has stated multiple times that RIFT was built using Gamebryo engine. I wouldn't imagine them lying about not having their own engine for the game.

Certain engine core components being rewritten due to horrendous performance issues in various subsystems were done.

The ability to do so fairly directly is a big advantage Gamebryo has over other game engines such as Unity.

I agree that not having source access to the client is a big disadvantage to using Unity for a game like this.

As for the architecture being "old and stale", this is an opinion. If I were investing millions into a game, I'd definitely prefer a traditional and proven approach rather than a radical and risky one especially for a game engine. If the company wants to take more risks, they should develop their own engine in favor of unproven solutions.

No it isn't an opinion in the least. The core renderer is nearly replaced in every game using it, the scene graph is cache miss heaven and the old way of doing things which doesn't scale with hardware, there is virtually no multithreading due to not having a job proper system. Also note that as I mentioned BigWorld and Hero Engine are proven solutions.. just because you don't like the gameplay or design decisions it rarely has to do with the engine.

By "too managed", I mean the scripting language seems like very high level code in contrast to a much lower level language like C++. The reason I said "seems", was because I haven't played around with it much, but I have played SWTOR for awhile and in my opinion the controls and overall gameplay is quite clunky compared to games like WoW or RIFT.

You can also write extensions in C++ without a source license if you run into scripting performance issues. Also controls and gameplay in SWTOR are design decisions you could easily clone WoW or RIFT with it if you chose to do so.

Unity is a good engine for browser clients. That's about as far as it goes from what I've seen. Both examples you cited only use Unity for their browser client. In my opinion, if you're going to have 64+ players visible in one area, you're heavily limiting your performance by forcing players to use a web browser.

You could just as easily cross-compile a native desktop application if you wanted to. Not to mention there is no 64 player limit unless you are going to use the default Unity networking subsystem... which they will even recommend you not to use and to go with Photon, Smartfox, etc.

Your definition of AAA is very different from mine.

AAA is commonly known as big budget titles and has nothing to do with whether you like the game or it was a flop commercially.

You're right about UE3, but I would still prefer it over Big World or Unity for developing non-browser clients due to the quality of the engine coupled with the successes of RPG games using it.

Then you've never looked at the source... the amount of work needed to modify the networking subsystem is extremely substantial. Ask anyone who has worked with UE3 how fun it would be decoupling the networking and building a new system. Sure it definitely has been done before but the amount of work is staggering. At the same time the OP isn't asking for a 6-7 figure engine... which you would need since you couldn't do it with UDK alone.

You seem bias against enterprise-level solutions in this discussion.

Not at all, Big World and Hero Engine are the enterprise level solutions that come boxed and ready to go without extremely heavy modifications.

No development company with a large enough budget to make a decent MMORPG is going to use Unity for an MMO as anything other than a browser port.

Completely your own opinion once again. Companies like BigPoint, EA, Cartoon Network, etc have large budgets and have put together some great games using Unity. None of them are "browser ports" but that is their target. If they wanted to they could have distributed Windows and Mac binaries by cross compiling.

Unity is great for many genres of games, but MMORPGs doesn't seem to be one of them. I'm not implying that it's impossible to make a multi-platform MMORPG in Unity, but it's definitely unreasonable.

It's already been done multiple times.

Also for the record I've actually worked with GameBryo, UE3, Unity, Reality, and have worked on more than a few custom engines.

#4992044 Graduating Computer Science Major From UTEP

Posted by joew on 19 October 2012 - 10:46 PM

Realistically I would just keep doing exactly what you have been. You mentioned you have done a "starting" version of pong... what does that mean? Was it complete? If not then you should definitely finish it off and really polish it. Once you're finished that I would start moving on to more complex games like snake, breakout, etc.

#4992034 Best game engine for MMORPG?

Posted by joew on 19 October 2012 - 09:21 PM

I'm not sure about FPS MMORPGs honestly, but here are the "only" engines currently for sale(without private connections) that I would consider using for an MMORPG.

Regarding GameBryo there is a reason that Trion and Bethesda use a heavily modified version of GameBryo. I know that Trion only uses some of the tools (which were to get them up and going while building their own engine) and Zenimax Online is not using it for their MMO. The architecture of this engine is old and stale and the main reason Bethesda stayed on it for single player games is because they built on it over many years and games. GameBryo is very similar to the Wild Magic engine in architecture although it has evolved slightly over the years.

Regarding UE2.5/3 it has been used by numerous companies in the past but you *need* a source license and a lot of work in order to get anything up and running for a massive online game. Also I really don't see any benefit to using UE3 over something tailored directly to the genre.

(HeroEngine has a great feature set, but seems to be too managed for an MMORPG)

Star Wars TOR (heavily instanced / story based), The Repopulation (complete open world sandbox), Faxion Online (traditional type MMO) have all been built on HeroEngine and as I mentioned in brackets they are extremely different types of games. I'm not sure what you mean by "too managed"? The tools are extremely in-depth and give you everything to build, run, and manage an online game. Also note that Zenimax Online licensed HeroEngine for The Elder Scrolls Online just for the use of the toolset so they could get started on world building, design iterations, etc while they build their own custom engine.

Another great choice is to use a combination of Unity and a socket server like Photon (definitely the best to pair with Unity). You can download the free version of Unity and Photon and get started right away... plus they even give you a small sample to get you started quickly before you have to dig into the docs. Unity has been used for MMO games such as Battlestar Gallactica, FusionFall, etc... so I don't see why there is an issue there either.

The reason I've limited my list to three is because no other engine on the market has been proven to work with an AAA MMOG.

Actually HeroEngine and Big World have a massive number of AAA MMO games built using their technology and the above you listed really only have a couple (being a few that use a modified UE3... the only MMO I count for using GameBryo is Dark Age of Camelot as the others use a version that isn't even recognizable. Meanwhile UE3 hasn't powered that many either and the ones that did used it had to heavily modify and add to it as well.

#4991903 C developper, but newbie gamedev, where should I begin?

Posted by joew on 19 October 2012 - 02:06 PM

Actually I believe we both agree on the same point! Although I just took in the human factor of him being a professional C programmer to figure that he would achieve both optimal performance and development time with the language he is used to.

Core language wise of course you could compare something like the templated introsort of std::sort and the C library qsort and the C++ will kill it performance-wise as due to templating it will be typed as well as not need an indirection and there are many places this could be pointed out... although if someone really had a performance concern in C they wouldn't be using qsort (so as you mentioned the human factor). And as Spiro mentioned people may point out virtuals as performance issues due to the cache miss but if a virtual is truly warranted it likely would have been coded the same way in C anyways (by building a vtable of function pointers).

My bad for reading your post incorrectly, I had assumed you meant that you would see a raw performance benefit just by using C++ or C# over straight C but that was not the case.