Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 08 Apr 2013
Offline Last Active Jul 26 2016 07:25 PM

#5077852 When to load the Final Boss in a Game

Posted by on 15 July 2013 - 07:52 AM

I have to agree with makr and menyo. Loading content when you need it is good, but the added complexity could be a bit much. It's better to load everything you need at the beginning of the level and if it becomes a bottleneck, then optimize it. If you have 20 hours of content, you'll have to break it up into levels. Load everything when you load a specific level. There are some times in a game where the game-play has natural breaks where you can load things like when you enter a special area, or switch to the world map, or when you enter a town or building. If you find that these load times are too slow, then you can try loading as you go which could mean adding worker threads to load things in the background.

#5063164 2D vs 3D for a solo programmer

Posted by on 20 May 2013 - 12:23 AM

To be honest, both can be difficult. I think overall though, 3D is harder. If you're going to make something very story based in 3D, eventually you'll have to deal with creating, loading, and animating 3D models. Basically it all comes down to your goal. Do you want to make something quickly, or do you want to learn.

If you have limited game programming experience, creating a 2D or 3D game from scratch could take a long time either way. If this will be your first project and want to start from scratch, go 2D.

If you want to make something quickly in 2D, try game maker or rpg maker. If you want to make something quickly in 3D, find an engine. If you make it from scratch, unless you have a lot of experience, just coding the basics could take up to a year from my experience.

#5062478 Massive memory leak

Posted by on 16 May 2013 - 10:54 PM

edit: just a note, I wasn´t popping the objects. I was doing "erase" from std::vector. I am still doing it but now I delete them before that. I read somewhere that I should nullify AND also delete. Is this correct?

You must call delete otherwise the object will still exist, but you don't need to set the pointer to NULL if you call erase or delete the entire vector as the pointer will be "destroyed" anyway. Actually setting it to NULL will be a wasted instruction.

#5061388 How do i implement linear interpolation

Posted by on 12 May 2013 - 07:38 PM

The equation for linear interpolation is quite easy.


x = x_start + ((x_final - x_start) * time) 



where time is a number between 0 and 1.


However; as Alvaro said, this equation doesn't work well with rotations. For rotations, you should look into quaternions.


Here's an article with some information. 

#5061237 What's the true worth of an initial game idea?

Posted by on 12 May 2013 - 03:22 AM

If the initial idea successfully describes how to entertain people in a way that can actually be implemented - it would be the *most* valuable contribution

Everything else is just manual labour

I respect designers and I think they can do a lot, but comments like this show no respect for programmers. I will no longer comment on this topic. An idea guy can't lead people that he doesn't repect. Programming is difficult and requires a lot of creative effort.

#5061199 What's the true worth of an initial game idea?

Posted by on 11 May 2013 - 08:49 PM

While I think that this is a positive evolution, it's still a bit lacking. In stead of trying to please a publisher, the game designers are now trying to please the end users. This is of course a significant improvement but not the way to go if you want to make art. Don't get me wrong by the way, by far not every video game should strive to be high art.

How do you know this is what happens? Publishers won't make much money if they don't care about pleasing the end user. Yeah some games may not turn out to be the best, but that doesn't mean that they didn't try. It's hard to implement a good game. If it was easy, everyone would be doing it.

As to what it has to do with idea guys, some people are simply better idea guys than other people, those people should be recognised and encouraged to learn about game design and possibly other aspects involved in game making, because that person could be the Rembrandt of the game industry. As opposed to a very talented programmer or 3d artist.

Making a video game with a team is not like making a painting with one person. It's comparing apples to oranges. If you want to be the Rembrandt of game development, you'll have to make the complete game alone. Then it's a fair comparison. Artist, programmers, musicians, etc are creative people. There's no way to stop them from adding their ideas. This happens automatically in the creative process. Yes, programmers are creative.

In your opinion, what does the idea guy do? Don't give general statements. Can you give a detailed list with say 10 to 20 bullet points? You have to move from philosophy to real world. If you can not write down those bullet points, you don't adequately know how to express the idea and are not qualified to tell ideas to programmers or artist.

In the real world, everyone has to pay their dues (unless you have a lot of money). Someone may have good ideas, but it doesn't matter if noone believes. Designers need to prove themselves, build prototypes and refine their craft.

#5061028 What's the true worth of an initial game idea?

Posted by on 11 May 2013 - 04:52 AM

People hate on the idea guy, because an initial idea is nothing by itself. A game designer doesn't write down an initial idea, put it in an envelope and wait for it to be made. Designing a game is a collaboration between everyone involved. The designer, the programmers, the artists, the animators, the audio staff and the business managers all work together as a multi-disciplined team. As with all art, you often have to work within constraints. The programmers and businessmen are often the ones that will be dictating constraints to the designers and artists, who then have to work within that space. Also, programmers may unexpectedly defeat constrains, and open up new avenues to design within. Actually, every department is dictating contraints/requirements/limitations/possibilities to every other department, and reacting to the options they're given.


The people that do this kind of design work are real world game designers.


I think this sums it all up very well. On hobbyist projects, idea aren't usually wanted because everyone has ideas. If it's just a hobby, why just sit and take orders? If I do that; it's not a hobby anymore. It's a job. There's so much work involved in making a game; if all someone does is talk about their great idea, there will be resentment.

#5060242 Alternatives to singletons for data manager?

Posted by on 08 May 2013 - 03:36 AM

I USED TO use a lot of global variables and singletons in my code until I started expanding my functionality and noticed that many things that I thought that I had only needed one of, I actually needed more. Even some "managers" and "systems" worked better and was more intuitive with more than one instance. Sometimes this was because of resource or system lifetimes and some other reasons that I can't think of. (I'm typing this on my phone while eating dinner. ) I found that passing references to managers and factories, as well as having some resources keep a pointer to their managers made things much nicer. Globals and singletons looked nice at first but in the end it made things more difficult. Later when I'm on my computer, I may post some examples. (If I remember)

#5060204 Conditional linking against already compiled library

Posted by on 08 May 2013 - 12:49 AM

Have you considered dividing your engine into two separate projects and then have two separate libraries? You can have one lib file with the core engine stuff and the other lib file with just the networking. Then games that need both should link with both libraries. Otherwise just use the core lib file.

If you use 2 library files, make sure that none of the code in the core library references any of the code in the network lib. If you do, you'l have to include both libraries no matter what.

I do this, and it works very well. I noticed this technique when looking at the Nvidia PhysX code.

#5057769 Handling other languages and font.

Posted by on 29 April 2013 - 08:40 AM

If you go on the Angel Code site, there's a good program for generating textures for different language fonts. There's also some code and examples for loading the files albeit in Direct X 9. The sample code is a little old, but it could be useful as a good base.



#5051628 Abstraction layer between Direct3D9 and OpenGL 2.1

Posted by on 09 April 2013 - 04:36 PM

Why is it easier to build higher level functionality that way? It's probably that, if you don't follow the Dependency Inversion principle, it might be harder to build your functionality the other way round, but to say generalizing that the low-level approach is easier to build upon is just... wrong, at least IMHO.


In my more low level implementation, I have about 4 or 5 basic interfaces (textures, vertex buffers, shaders, etc) Personally I found it quite easy to build higher level systems from this initial more low level abstraction. I also have another interface for handling states and draw calls. Now all I need to do is call these things and I'm fine. I still use this approach for myself. I can now just switch out implementations based on which API I want to use.


The more higher level approach was for code that I'd like to share because the interface is easier. (High level systems should have a cleaner interface in my opinion or what's the point.) I guess in the end, you are correct, I really shouldn't say either way is easier and I probably misspoke a little.

#5051437 Starting the multiplayer part of game

Posted by on 09 April 2013 - 02:49 AM

Unless you want to learn all about sockets, I recommend you use a more high level network library if you want to get things working quickly. I recommend using RakNet. That has a system called ReplicaManager that can be used to serialize and replicate object and player data at regular intervals. You could then interpolate between the positions. It works really well and there are a lot of samples.

I'm not sure what kind of game you are making but if you are making an FPS or some other type of fast-paced game this may work well for you.