Game Development Community

dev|Pro Game Development Curriculum

T3D Proto 90

by Demolishun · 07/27/2013 (5:10 pm) · 10 comments

I am writing a series of blogs at my website that tracks my progress of a game prototype in 90 days. This has many goals: getting leverage on myself, inspiring other developers using T3D, bringing attention to my skills as a programmer, getting more exposure for T3D, and hopefully being a fun read for everyone.

Here are the 2 blog posts thus far:
T3D Proto 90: A Game Prototype in 90 Days
T3D Proto 90: Determining Requirements

I am also keeping a log as to the engine changes as I progress. Mostly the tech changes. From time to time I will list those changes so people can see how modified that engine becomes. I am basing the game off of T3D MIT 3.0.

This will not be a generic how to use T3D using standard features. I am going to be using any technology I can apply to the engine to help achieve my goals. This means it will not be a step by step guide. I may post blurbs of code, but I won't guarantee it will work with your engine as compiled. I think it is unrealistic to think that the T3D engine can produce a game of every type using the builtin tech. I know it can produce an FPS off the shelf, but my game is not going to be an FPS. Although I will leverage as much as I can of those features.

To give you an idea of what changes I have made so far:

  1. ScriptT3D to allow me to develop the majority of the game logic in Python and use the V8 engine for user side scripting. This also gives me access to databases, advanced web tech and a lot more.
  2. SimObject serialization to string. This allows me to dynamically generate object strings for database storage. This means database driven missions and characters.
  3. Many more to come based upon requirements.

So the next 90 days will be a great adventure and my blog posts will be a pre-post-mortem, sort of...

About the author

I love programming, I love programming things that go click, whirr, boom. For organized T3D Links visit: http://demolishun.com/?page_id=67


#1
07/27/2013 (11:49 pm)
This is cool! Really looking forward to see how you get on with things. From the look of it you've set yourself some very ambitious goals. Best of luck.
#2
07/28/2013 (12:06 am)
@dB,
The goals are out there, but it what I really want to make. I am sidelining working with Polyvox for now and will "fake it" until I decide if that is the way I want to go. I really really want to have Voxel terrain and avatars, but I that will keep the gameplay testing to be longer in development. So I am doing a proto to give to my play testers and they can experiment with gameplay options. So I am trying to be practical at the same time.

I have a feeling recast will be in there at some point too. I just have not fleshed out the AI side yet.
#3
07/28/2013 (5:18 am)
Great series! This will give a great insight on how to develop games!
And will show how the process works with T3D! Good luck with these blogs!
#4
07/28/2013 (1:55 pm)
Break a virtual leg or two, or should I say break a few machines ;)

Will be following your progress with much interest
Now, what is it with this resurgence of voxels, seems so mid-90s, which I guess is long ago enough for a retro feel, hehe. Seriously, voxel terrain was a pre accelerated 3D technique, iirc.
Or is it for the pixelated look ?
Just curious,
Cheers !
#5
07/28/2013 (2:26 pm)
@Nicolas,
Voxels (volumetric terrain) are not a terrain technique. They are a way to represent a 3D pixel, box, etc in a grid type pattern. They are used in medicine to allow 3D surgeries to be performed on real body data scanned from cadavers. They can also be used to work on a virtual tooth or visualizing 3D imaging.

So, the way I intend to use them is to make a volumetric terrain and volumetric objects/avatars/entities. There are some really good libraries available to handle the voxel data (including paging, ie endless terrain). One of those is Polyvox. This will allow you to modify in game the terrain and expose the layers of the ground. Minecraft is probably the most famous for using this technique. So basically what I want is a voxel terrain that I can expose different layers that the player can remove or add to. With polyvox I have the option of controlling the density (which affects smoothness) per voxel. Polyvox will return a mesh of the exposed voxels along with any other data I have associated with those voxels.

The stuff that was done in the 90s was a bit different and was a way to get around the rendering limitations of the hardware. With newer voxel libraries they return a mesh that you use for your terrain/collision.

The avatar stuff is so people can have the ultimate avatar editing capabilities. Most avatar editing is limited to textures. There will also be gameplay reasons for building an avatar.

This is an example of smooth terrain using Polyvox:
Bill Vee's Volumetric Terrain

Polyvox also supports density of smooth terrain and the marching squares method which is more like Minecraft.
#6
07/28/2013 (2:59 pm)
I know what voxels are. Just curious as to their resurgence in gaming, and a lot of people calling them a new technique when there was a fair amount of use and research on them in the pre-voodoo/pre-GPU days for gaming, principally in terrain engines. I guess for the same reasons as now : caves, overhangs, destructible/deformable terrain. And in the software rendering days, you weren't limited by the fact that GPUs only like pixels and triangles as efficient primitives ;)

My curiosity has to do with their resurgence in gaming, and I guess Minecraft has a lot to do with it, something which has entirely bypassed my interest like facebook, farmville, and other things ;)

Cheers !
#7
07/28/2013 (3:12 pm)
Try playing MC for a week or a day. The game is a great example of user interface design, horror (scared me more than Half Life 2), user creativity, exploration, and simple game play design. On top of that the modding community is second to none. You really have not played MC until you have piped lava from the Nether into the Overworld and used them to power your geothermal generators.
#8
07/28/2013 (10:23 pm)
" the majority of the game logic in Python and use the V8 engine for user side scripting."

did u integrate V8 with t3d?
or you r feeding python's generated javascript to V8?

" I am sidelining working with Polyvox for now and will "fake it" "
any chance to have a resource on that?
#9
07/28/2013 (10:35 pm)
@ahsan,
V8 has a module for Python. Combined with Python I have absolute control the of the contexts (functions JS can see) within Python. This gives me a very safe user side scripting environment.

I will be using Polyvox down the road so I am thinking of creating a resource around that. To fake a voxel terrain I will just use a list of coordinates and place some sort of game object in those locations. It won't be fast, it won't be scalable. It will allow me to test things until I can get Polyvox in place down the road.
#10
07/29/2013 (9:38 am)
Best of luck with this Frankinator_1138!

Having goals is a great way to make sure you make steady progress, and having people who know about it, and who can encourage you to meet those goals is a brilliant strategy. I'll bust out the whip if I see you lag too far behind.

Just don't beat yourself up if that happens. Remember, this is meant to be fun.