3dbuzz C++ Video Tutorials


fade

Active Member
Joined
Sep 19, 2004
Messages
664
Website
Visit site
Hi guys, i haven't posted in the developers corner before, but i thought this might help out a few people. I used to use the 3DBuzz site to learn 3D animation packages, and a few other things. But they also have a C++ Video Tutorial course consisting of 21 videos split over 3 sections. It goes from introductions and explaining early concepts, up to building a basic dos based game.

heres the link:-

http://www.3dbuzz.com/vbforum/sv_home.php

Just choose C++ from the video category on the left.

I realise that this is windows based stuff, but it covers the basics.

It also got me thinking tho, has anyone a bit more in the know here ever considered the idea of creating video based programming tutorials to help people learn the basics of developing simple games, and maybe the specifics of developing for ARM based platforms? The structure of the 3DBuzz tutorials could perhaps be used a basis for how to structure them?

From some of the postings I see, there are a lot of people keen to get started with games programming, but dont know where to begin. Might structured video tutorials help fast track this a little? Personally I find having things like this presented visually and having someone explaining it at the same time a much more rapid way of learning than just reading and trial and error alone.

Anyway, there are a load of other subjects on the site as well to use, an they've helped me over the years. I hope they help someone else.

Cheers
 
Most online tutorials only cover the most basic c++ skills (just like those video's), about enough to make an animated tic-tac-toe.
Then there is a whole gap of nothing before arriving at open-source 3D engine's.


The technical specs (especially the amount of memory) of the :pandora1: allow for 2D games with huge tile sets and even huger maps. However finding well tested and documented data types to do simple things like box collision detection on such scales are impossible to find.
 
Why are they impossible to find? Arent these the things people need to know to be able to make the games they really want to see?
 
fade said:
Why are they impossible to find? Arent these the things people need to know to be able to make the games they really want to see?

I'll give you an example:
I have a simple SDL app, it visualizes a map and allows zooming and panning
The basic data structure is a 1000x1000 array of pointers to a structure which hold the data, the data comes from a CSV file (from a browser based game)
It reads the CVS file at application startup, and this data stays in RAM for the entire execution.
This structure always takes 84 megabyte RAM, the app runs at hundreds of FPS on any PC I've ever tried it on.

It *should* work without modifications on the :pandora1: but that's only because the :pandora1: has 128 megs of RAM, and it runs linux which supports swap file (i think the :pandora1: will)

That's not yet a real problem, although it doesn't leave much RAM for future additions

I tried porting this APP to my PSP slim, it compiles just fine, but the psp can't allocate that much memory. the biggest continuous block of memory you can allocate is 24 megabyte or so.

The solution is loading data on demand but:
i had to switch to multi threaded programming to preload the data from disk when scrolling, otherwise the app freezed for a second with every load operation and then it was still a choppy experience.
the zoom functionality is limited (i would have had to render parts of the map, buffer the resulting bitmap, unload the current data, and repeat for every part of the map required)

it became a mess and i gave up

the point beeing:
there are techiques to overcome these problems, i was thinking in the right direction, but i just don't know how to do it efficiently enough for portables. I tried searching for a 2D game that streams it's levels, but only very advanced 3D engines seem to do this
game programming in low memory environments seems to be a closely guarded trade secret
 
Last edited by a moderator:
I have two links in my signature with books and links to get started in programming.

As for streaming on the go, you have to break up your map into smaller chunks. Rather then having one large 1000*1000 map, you have several 256*256 and you can load each new chunk when the player goes through a 'tunnel' or enters a building etc.
 
Hey there Yaustar! Nice to see an old face from the GBA scene around here :)

And yeah, streaming is all about figuring out what data you need access to at any given time, and using what memory you have available to minimize the frequency of loads while keeping the size of individual loads low enough not to cause a delay. I think it's just not needed often enough on simple games for people to write tutorials about. Or anyone who knows how is too busy working on their game :)

But if the file system is so slow that even the smallest size load causes a delay, then you're pretty much out of luck on finding a general solution anyway. You have to start predicting what data you'll need before you actually need it so you can get the load started ahead of time... very game-specific and painful.
 
dekutree64 said:
Hey there Yaustar! Nice to see an old face from the GBA scene around here :)

Hey! How are you doing? I haven't been to gbadev for a long while although I remember some of my (less educated) posts there :).

Nice to see more developers coming to the Pandora scene.
 
Last edited by a moderator:
I tried following these tutorials when I first started learning C++ but I don't think they're very good. Videos aren't really a good means for learning a programming language as whenever you want to try and understand something properly you have to either rewind the video or pause. And that happens a lot.
Also unless you have a dual monitor setup it's difficult to keep one eye on the video and one on your own code.
I found that these videos don't really go into depth properly on some topics. Pointers and references especially, which is covered in one video. It just seems like a very rushed explanation
 
@ Chris R - Normally when working from videos on any subject, i just have 2 windows open side by side. If your resolution is high enough its not too bad. I hear what you're saying about the videos seeming a bit rushed tho, if you (or anyone for that matter) know of any other good introductory C++ programming video tutorials by all means please post them.

@ yaustar - Thanks for posting, the links in your signature are great, i'm still picking through them. Your account of how you broke into the games industry was a great read. :)

@ Yannick - I'm not experienced enough to comment really, but when you said 'game programming in low memory environments seems to be a closely guarded trade secret' - Isn't this the kind of programming they were forced to do all the time back in the 80's on Speccy's, Amstrads and C64s due to such low available ram?

Personally I'd like a set of tutorials that for instance firstly talk you through the concepts you need to know. Introduces the software you'll need, and then takes you through creating a really simple game like maybe a pong clone or something from start to finish, and then perhaps gives advice on how to advance after that. Or additionally explains a bit about the different game libraries that are available, what they are essentially and how to use them properly. The kind of games i'd eventually like to be able to create would probably be simple platformers, as im a huge retro fan an i loved the speccy years.

I have a little programming experience, but not with C++, and as a beginner i have a look at all the resources that are available and think 'where am I supposed to start?'.
 
fade said:
@ Yannick - I'm not experienced enough to comment really, but when you said 'game programming in low memory environments seems to be a closely guarded trade secret' - Isn't this the kind of programming they were forced to do all the time back in the 80's on Speccy's, Amstrads and C64s due to such low available ram?
Well yes but, most of those games actually fit in the memory of those machines. I meant more like modern consoles, 64 or 128 megabyte of RAM but the levels are several hundreds of megabytes. while walking around the game is constantly loading/unloading meshes and textures.

Its more like dekutree64 said i think. the people that know how are too busy or not interested in sharing the knowledge.

I'd like to see the source for a game like zelda or finalfantasy (the 2D versions) you can walk around for hours in a 2D environment without hitting a loading screen.

actually the more i think about it, the more i seem to think you just need a bad ass level editor, one that can generate lookup tables to know what needs to be loaded depending on the camera position.

anyhow, I haven't seen an open source game or tutorial using techniques like that
 
Last edited by a moderator:
Yannick said:
Its more like dekutree64 said i think. the people that know how are too busy or not interested in sharing the knowledge.
A pity, i think many people are keen to make a contribution to the homebrew scene if they could just figure it all out. You might be right about just needing a bad ass level editor.
 
Last edited by a moderator:
Yannick said:
I'd like to see the source for a game like zelda or finalfantasy (the 2D versions) you can walk around for hours in a 2D environment without hitting a loading screen.

If they are on cartridge, then they didn't need any load screens data that didn't change at runtime could be stored on the cartridge and used without transferring onto the console's RAM first. If you did need to do a memory copy then the read times for cartridges are ridiculously fast IIRC.
 
Last edited by a moderator:
I think the secret is long hallways :p

Thanks for sharing the links to the videos. I'm always sort of trying to learn...the nice thing about videos is they grab your attention, unlike long scrolled pages :(
 
rokdcasbah said:
the nice thing about videos is they grab your attention, unlike long scrolled pages :(
Np rokdcasbah, thats what i think too.
 
Last edited by a moderator:
chris_r said:
I tried following these tutorials when I first started learning C++ but I don't think they're very good. Videos aren't really a good means for learning a programming language as whenever you want to try and understand something properly you have to either rewind the video or pause. And that happens a lot.
Also unless you have a dual monitor setup it's difficult to keep one eye on the video and one on your own code.
I found that these videos don't really go into depth properly on some topics. Pointers and references especially, which is covered in one video. It just seems like a very rushed explanation
I felt the same about 3dBuzz's PHP/MySQL tutorials. Although, the Photoshop series was very good.
 
Last edited by a moderator:
Back
Top