Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 18 Mar 2013
Offline Last Active May 24 2016 11:56 PM

#5241472 Has anyone got a feeling of this when you were starting as game developer?

Posted by EarthBanana on 20 July 2015 - 01:28 AM

Im already on my 20s.
Brain keeps developing until 25.


Oh man... Im 26


Its all over

#5240196 Help in creating a game engine.

Posted by EarthBanana on 14 July 2015 - 12:04 AM

I'm going to take the opposite approach and yes. If you have a team who have some knowledge of 3D art and programming. And you are making a BASIC 3D game engine. Then yes. It doesn't have to be able to render every type of 3D game. It just needs to render and run one type of 3D game. For emphasis, BASIC 3D game engine.


+1 for this - I would like to agree here.


A lot of people argue to not create a game engine but use an available one - this is great advice if your trying to just make a game. But for me, making a game wasn't/isn't enough and I set out to make my own 3d game engine. I have been working on it now for over 2 years by myself, and it can do a lot of cool stuff I think. I havn't worked on it full time - and there are lots of 3 to 4 week periods where I didn't even touch the code.


Its by far not the best, and would not even be competitive with the best. It lacks in tools and features, and you can't make any game in the world with it. But...


It has been one of the most rewarding projects I have ever set out on and I have learned so much that I would have never learned had I not taken on the project. It is really great when you see stuff come to life that you have invested so much time and energy in.


So, understand that you can make a game engine, but that it likely won't be comparable to most available engines. But you can do it, and you can make games with that engine. Depending on how many you are working with, how experienced you guys are, how much time you will have to work, and a lot of other things, I think it could be done in a year.


You need to concretely define your requirements.


Follow this advice - lay out a list of basic features that you will need, decide on a genre that you want the engine to make games for, figure out what targets you want to support. Start getting triangles drawn to the screen.

#5239316 Best Game Launcher

Posted by EarthBanana on 09 July 2015 - 01:43 PM

I vote Qt - I don't know of anything better for cross platform GUI dev especially if your already familiar with c++

#5238394 Logic behind grid terrain

Posted by EarthBanana on 04 July 2015 - 07:07 PM

I wouldn't really match up tile for tile on your terrain unless you have a per tile terrain system (ie like your 2d tiled rpgs where maps are made out of tile sets) which it sounds like you dont. If you just want to map a single textured quad to fit under all of your tiles just make the quad bounds match up in world space to your data structure bounds.


If your data structure is 1 by 1 tiles, then the whole thing is 64 by 64 in your world space coords, which means you need to figure out how to make your textured quad 64 by 64. Also your quad's center should be at 32, 32.


It depends on what libraries you are using on how you could do this. In my engine (c++) for example I would do something like

Entity * ent = engine->createResource<Entity>("terrain");
RenderComp * rcomp = ent->create<RenderComp>();

rcomp->setMaterialID(0 /*submesh index*/, engine->resource<Material>("terrainmat")->id());

uint tformid = engine->currentScene()->add(ent, 
    fvec3(32.0f,32.0f,0.0f), // position in world coords 
    fquat(), // orientation 
    fvec3(64.0f, 64.0f, 1.0f) // scaling (64 times 1)

But what your using should have some sort of facility to translate and scale the quad geometry in the scene.

#5232579 graphics programming with C++

Posted by EarthBanana on 03 June 2015 - 10:22 AM

OP - have you heard of handmade hero?




This guy is a very talented and experienced programmer and goes through game creation with no external libraries at all - it is aimed at those of us who are curious about what sorts of "magic" are happening behind the scenes at the low level

#5203805 Looking for a good way to make games in C/C++ on linux for cross-platform

Posted by EarthBanana on 12 January 2015 - 06:08 PM

Although you will need additional libraries for other features such as file searching, etc.


lol You will need additional libraries, like OpenGL in order to load the shaders that you might write, and to give those shaders anything to possibly draw

#5203804 Weird framerate drop

Posted by EarthBanana on 12 January 2015 - 06:00 PM

Any time I have had weird frame rate drops like this is has been either because my program was sending stuff to the GPU to render in some format it didnt like (for instance mapping to GPU vetex buffer with some parameters set incorrectly) or because im allocating/deallocating memory in a bad way


With java I know it does all of the allocation and de-allocation for you - so I'm not sure how you could go and check something like this. Possibly run without doing certain things and see if you still have the issue.

#5203634 Whats the task of the programmer in this video game?

Posted by EarthBanana on 12 January 2015 - 03:40 AM

This would take a very long time to implement even using tools such as Unity or GameMaker..


One project that is kind of similar (in the sense that it uses 2d background painted images) is a project launched in a kickstarter campaign which aims to create another "infinity engine" style game. The link is here:




This project, which perhaps is a bit larger in scope than what your thinking, has taken a lot of very good programmers, artists, tools developers, etc over a couple years to build. They are using Unity with 2D graphic backgrounds for all of their game areas.


I'm not trying to discourage, just try to get yourself some well defined realistic bounds. For example, write a plan of creating one small dungeon with this art style etc.. If you keep your goals smaller then you can always expand on them if all goes well. But when developing games, there are always these random things that make stuff take a long time compared to what you though it would take.


Good luck!

#5203601 Getting Visual Studio and Dreamspark

Posted by EarthBanana on 11 January 2015 - 08:31 PM

It really doesn't matter what you download - you will be able to build a c++ executable as long as it has the build tools. All the other stuff is extra - doesn't hurt you but it will be a long time before you ever really care about any of it.


This is actually where my biggest problem with VS comes in - it is a really nice tool for debugging - and I don't have any complaints about its compiler - but I will say that it really seems to aim at making you think building a c++ program is more complicated than it is. I really feel like there are a lot of programmers today that wouldn't have a clue on how to use the command line compiler - that is if there was no IDE they would be at a loss on how to build their program.


I highly recommend you take your time and learn how to use the VS command line build tool without the IDE - im not saying always do this.. but if you take the time and learn how it works and what it is doing it will really save you a lot of time down the road. It will especially be a lot easier for you to figure out things like linker errors and such.


I see a lot of posts around the internet which basically show VS linker error printouts and people clueless on how to fix them.. This really comes from a lack of understanding in what a compiler is actually doing.


Just my two cents

#5194501 introducing myself, guidance requested

Posted by EarthBanana on 24 November 2014 - 05:26 PM

Python is a great language - its just plain useful to know, and very generous in teaching programming concepts. Great choice!

#5194363 Entity Component System - Accessing Components

Posted by EarthBanana on 23 November 2014 - 11:59 PM

Are you using a base component class such as Component and deriving all of your components from this type, with an array of components given to each entity?


If so then I'm assuming you get a component from a given entity - IE

Entity * obj = new Entity(); // Lets pretend it is created with a TransformComponent

TransformComponent * tForm = obj->getComponent("TransformComponent");

If you are using your entities as component containers then you could use a std::unordered_map with a string key type and Component * value type - then every time you make a component you could create a static function that returns the typename  so that you could type

Entity * obj = new Entity(); // Lets pretend it is created with a TransformComponent

TransformComponent * tForm = obj->getComponent(TFormComp::getTypeString());

You could then make your entity class support a templated type for your component so that you could do

Entity * obj = new Entity(); // Lets pretend it is created with a TransformComponent

TransformComponent * tForm = obj->getComponent<TFormComp>();

and in your Entity class use the static method to actually get the value from your std::unordered_map like this

// Inside your entity header file

class Entity
typedef std::unordered_map<std::string, Component*> CompSet; // typedef to make accessing the unordered_map less verbose
// Other functions

template<class CompType>
CompType * getComponent()
	CompSet::iterator iter = mComponents.find(CompType::getTypeString());
	if (iter != mComponents.end()) // check to make sure it has the comp
		return (CompType*)iter->second;
        return NULL;
CompSet mComponents;

Something along these lines



the std::unordered_map operates using a hash table internally so it should be constant look up time

#5193693 Need some tips for a Project

Posted by EarthBanana on 19 November 2014 - 05:43 PM

In my experience professors are going to be more interested in the publication/development process rather than any final game product - that being said you will probably want to do research and talk about all of the different choices there are for the development process. Then choose the shortest possible development time route for yourself and make the simplest possible game - and then talk about the different choices and options for taking it through to publication.


I would suggest that you do not put a lot of effort or time in to the gameplay or graphics or anything like that - because your professors simply are not going to care. Just get a bare bones game working - possibly even a game clone.


If you want to start a game project with the goal of making a really fun/cool game - I would suggest you do it after the semester ends not as a part of this particular project.


Just my two cents - I'm a graduate student in EE and have a lot of experience with this type of thing

#5193387 Live re-sampling playback speed changes using SDL mixer?

Posted by EarthBanana on 18 November 2014 - 12:09 AM

I don't know anything about SDL - can you supply the sampling frequency anywhere for SDL for the individual tracks playback? If so just reduce the playback sampling frequency by the amount you want the soundclip slowed - ie if your sampling frequency is 44.1k and you want the speed to be 2/3 of normal, set sampling frequency for that clip to 2/3 * 44.1 kHz for playback.

#5178571 Best 2.5D Game Engine for beginners?(obviously little programming)

Posted by EarthBanana on 06 September 2014 - 01:06 PM


#5173692 Normals question

Posted by EarthBanana on 14 August 2014 - 03:01 PM

So I solved the problem - thanks to a closer look at the shader which was inspired by the above post by Buckeye.


As mentioned at the end of the last post - the problem was within the normal map reading.. but it wasn't exactly what I thought. In the shader I have a couple bools (hasDiffuseMap, hasNormalMap, hasOpacityMap, etc.. ) that are set on a per material basis..


Well in the rendering code I was setting them to true for materials that had it, but not false for materials that didnt.. Since the same GBuffer shader is used for pretty much all materials these bools remained true even when there wasn't a map available.. this resulted in invalid texture reads for the objects that didnt have normal maps


I fixed it by setting the hasMap booleans to true or false for every single material


This fixed a lot of other strange lighting artifacts I was having with specular also