Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 26 Jun 2009
Offline Last Active Dec 14 2014 02:27 PM

#5120219 Self-Taught Programmer Stuck in a Rut

Posted by Steve_Segreto on 30 December 2013 - 09:52 PM

Ok so it's been 10 days and not two weeks but I think it's ready to show smile.png

I wrote a crappy engine (doing that went waaaaaaay past my comfort zone - it was awesome) and in like no time at all I wrote this little Procedural City thing.




There's a current screenshot of it, I have a lot of plans for it, and it's gonna be doing some cool things soon.


Anyway it had been about a year and a half since I programmed something like that, so I figure that's why I felt so stuck in a rut.


Thanks for the advice guys!

Great work! Have a look at this great blog. http://www.shamusyoung.com/twentysidedtale/?p=2940

#5116923 Self-Taught Programmer Stuck in a Rut

Posted by Steve_Segreto on 14 December 2013 - 01:55 PM

While programming can be enjoyable in its own right, its usually a means to an end. Focus on what kind of a project you want to create and let that project dictate the technical challenges that you will face. You should know that since you were able to disseminate and understand the concepts in Game Coding Complete, that is a very good indication that you will be able to overcome the new technical challenges you face while making a project that sparks your fancy.


For example, if you are interested in a 2-d platformer with good jump/attack physics like Mario, you may find yourself learning about sprite sheets and 2-d physics.


If you are more interested in a voxel world with an organic crafting system, you may start learning about procedural content generation with a focus on making voxel terrains.


Or you might get interested in old school roguelikes and just focus on cool and interesting game algorithms and AI/pathfinding code.


The point is you can be more directed and get out of your rut, if you focus on *MAKING* a complete finished game and not just learning one piece of tech after another in a vacuum.

#5116293 Manually creating textures in Direct3D11

Posted by Steve_Segreto on 11 December 2013 - 02:27 PM

So if I do that do I need to pass only the top level full resolution image data to the initData? Or do I use UpdateSubresource on the top mip level?

My experience is you just pass the top level full resolution image and then the routine internally computes and fills in the mip maps for you. Of course then you don't have control of the mip-map quality, but at least you get the work done for free :)

#5116071 Manually creating textures in Direct3D11

Posted by Steve_Segreto on 10 December 2013 - 07:33 PM

Wait ... am I missing something,  I thought the first API supports automatically generating mip maps for you?


To generate mipmap levels automatically, set the number of mipmap levels to 0.

#5094034 3rd person cam vs walls

Posted by Steve_Segreto on 14 September 2013 - 11:42 AM

Here's another simple idea to try ... move your 3rd person camera as normal, allowing user input to control yaw, pitch and zoom. At the end of the frame (before rendering) use your physics system to cast a ray from the camera's position to the camera's eye and if there is a collision, then adjust the camera's position to a little bit in front of the collision (use a point on plane to figure out which way to push the camera position to be in front of the collision hitpoint),

#5092885 Limiting Light

Posted by Steve_Segreto on 09 September 2013 - 10:15 PM

Two simple solutions: During art content creation, either make your light radius small enough that the light never goes out of the building or move the position of the light such that the light never goes out of the building.

#5082387 Using FX files without -shipping- my FX shader files

Posted by Steve_Segreto on 01 August 2013 - 09:02 PM

Well nothing stops you from including them in the PE image as a binary resource, and then use the rc apis to get the fx file (or better the compiled bytecode for the shader, but then u have to roll ur own parts for some of the fx framework).



#5079340 Shader Unlimited Lights

Posted by Steve_Segreto on 21 July 2013 - 10:41 AM

@Steve_Segreto: Even If there are many variables?



LightDirectional directionalLight[8];
PointLight pointLight[100];
SpotLight spotLight[100];

Basically, I'm trying to set the maximum number possible.

Hi Medo,


First convert the max number of floating point registers available for your shader model from a count of float4s to a count of bytes (16 per register). Then you need to take the sizeof( LightDirectional ) in bytes (multiplied by 100, since you want that many), plus the sizeof( PointLight ) in bytes (multiplied by 100) plus sizeof( SpotLight ) multiplied by 100. Now subtract that from the number of bytes available for variables/constants and that should tell you if you could compile that declaration within that shader model. Or you could just run fxc from the command line and try it out :)


Also if you were confused because I said 256 const float registers, I was just using some terminology I've seen in DX9 docs, I believe those same registers are used for uniform externs that you can set from a C++ program (i.e. variables)

#5075855 This Friend of mine

Posted by Steve_Segreto on 07 July 2013 - 12:49 AM

Well I can give an opinion ... I think its important for you and your friend to work together - it's great experience. I think DX9 FF is still broadly accepted and I don't think your OpenGL experience will be terribly valuable in transitioning to Direct3D. I think you should just start working with your buddy on the engine he already created and make a game. Have fun guys!!!

#5075301 Combining multiple .x files into a single .x file

Posted by Steve_Segreto on 04 July 2013 - 01:55 PM

You don't need to do this programmatically. You can do it from the command line or using a batch script.


Assuming all your X files are in text format, just trim all but one of the X Files on disk so that they only have "AnimationSets" in them. Leave one of the X files so it has the other skinned mesh pieces (like Frames and Meshes), now just use 'copy' from the command line to concatenate all the files into one.




copy /A bugbear.x + bugbear_walk.x + bugbear_idle.x bugbear_all.x


This leaves a file bugbear_all.x that has the primary skinned mesh as well as the walk and idle animation sets. Unfortunately the copy command leaves a redundant EOF character at the end of the file, which you will have to remove somehow.

#5072761 Easy GUI for 3D engine

Posted by Steve_Segreto on 25 June 2013 - 10:08 AM


#5072665 Easy GUI for 3D engine

Posted by Steve_Segreto on 25 June 2013 - 01:11 AM


Qt is non-standard garbage and going the way of the dinosaur fast. Best bet is to use a Microsoft approved offering, like DXUT.

Considering a whole OpenSource community lives around Qt (KDE), I find such a flamebaity post without any evidence to back it up ... extremely difficult to believe.



It's not really flamebaity, Qt is very difficult to compile/build for Windows platform, has many non-standard tools and code, looks like crap compared to officially approved GUI technologies for Windows  and seems to have compatibility issues with Windows 7 and above. For Linux Qt is the one-eyed man in the land of the blind. Everywhere else its just a one-eyed man smile.png


I meant also that mouse-based GUIs are going the way of the dinosaur fast.



#5072661 Easy GUI for 3D engine

Posted by Steve_Segreto on 25 June 2013 - 12:48 AM

I recant.

#5072658 Confused and lost

Posted by Steve_Segreto on 25 June 2013 - 12:15 AM

I bet you can make something like this with Java. Still recommend you learn how to do sprite-based animation, 2-d concepts, text drawing, platform physics and so no.

#5072653 Confused and lost

Posted by Steve_Segreto on 24 June 2013 - 11:48 PM

Ah OK, that's a stylized grey scale 2-d platformer.


Some areas to learn are sprite programming, 2-d programming, text drawing, platformer physics, tonemapping and greyscale, and pixel shaders for blur and fog. I have no idea what language you should use, but I would suggest C++ just so you can keep the application native and (relatively) portable.