Welcome to Planet Chili. I am the one known as the chili. I don’t use this WordPress thing because it’s dumb. Click on the button above to proceed to the forum. It’s the right thing to do.
It’s like Ninja Scroll, only with more feces.
I threw together a little demo project which shows how to implement scrolling in a game. It uses the familiar Pooface code base, so it should be easier for you guys to grasp than a completely new project. I’ve also added some comments to aid comprehension. I’m so fucking nice it hurts.
New lesson today or tomorrow at the latest!
The framework now has sound! Yay! Fart noises, yay!
I also did some other tinkering with the framework. The details are as follows:
- Added sound support (duh)
- Fixed a bug in DrawLine (special case where p1 == p2)
- Changed mouse behavior (now it continues to receive mouse input even if the mouse goes off the screen as long as at least one of the buttons is being held down)
- Added error checking code to the guts of the framework (Assert() macros that halt the program on error and give you some feedback about where your program puked. Assert() macros are only compiled in debug mode, so they don’t slow down your release builds either!)
One more thing: A boardie who goes by the handle LuX has made a very nice little utility for converting image files into source code text (PutPixel() calls). So if you simply must add sprites to your project but can’t wait until the Chili teaches file access, check his proggie out. You can get it here. Big thanks to LuX for whipping this one up and sharing!
Yesterday a somewhat nice lady sliced my gums open with a scalpel, ground away part of my jaw bone, cracked one of my wisdom teeth into 5 pieces, and yanked them out of my mouth. All in all, good times.
Anyways, I’m having trouble opening my mouth today, so I took the day off work. Normally if I were stuck in the house all day with nothing better to do, it would be a perfect time to make another tutorial. Unfortunately, it’s kinda hard to talk without opening your mouth (I guess I’ll never make it as a ventriloquist after all).
So how has Chili been idling away the hours then? Well, let me put it this way: how does sound support for the framework sound to you?
Yes, your guru has been busy at the keyboard lovingly crafting some audio classes for you guys to use in your programming practice. It will be a simple but elegant way to add sound effects to your little projects. I’ve also made a small modification to the mouse routines which will allow your program to track the mouse if it has gone off of the screen so long as one of the buttons are still pressed.
I want to stress that this has nothing to do with the tutorials. These features are just some bells and whistles to make it more entertaining for you guys to play around and sharpen your coding skills. I also want to reiterate that this framework is not intended to be used for a serious gaming project. It is only a vehicle for teaching game programming-related topics. So don’t plan your next big project around the Chili Framework. And don’t worry, after I’m done with you guys, you won’t need any kind of framework to write a DirectX engine; you’ll be able to code it all by yourself from scratch exactly the way you want it.
When I am finished with the sound stuff I will package this stuff up and make another release of the framework. In the meanwhile, I have a challenge for you.
Well, for you guys it does at least. The Chili (that old softie) has decided to bestow upon his disciples the gift of mouse input. Praise be upon him.
However, there is one condition. You must figure out how to use the new mouse object on your own. I do not have time to write a guide or make a tutorial on this, so you will have to make due with your own resourcefulness and figure this one out. I have provided you with a couple of example programs so you can see how the new mouse object is used. Take advantage of them and learn.
I’m not saying that you can’t ask for help on the forum if you are completely stuck. Just do not expect a response from the Chili. Perhaps some kindly board member will take pity on a feckless n00b and render his or her assistance.
Greetings disciples, the Chili speaks.
I just thought I post a little update here on the blog. A state of the channel address, as it were.
First I’d like to thank you guys for the support you’re giving me. I wouldn’t have continued this far without it. We’ve also been seeing some of the board members posting their own creations for the community, and this is awesome. Big shout out to Dlotan and x_eqis. Luskas also posted a creation of his a month or so ago, so check them out. I’d love to see more of this stuff, so keep it coming guys! The difference between people who talk about learning to program and people who actually do is that the people who actually become proficient are the ones who get off their asses and make shit.
I also updated the ‘Welcome’ post in the forum. It now includes a guide on how to effectively prepare your solutions for posting in the forum. The title of the post has changed to “READ THIS FIRST!”. Check it out!
We are now entering the endgame for learning the ‘C’ part of C++. Here is a rough (subject to change) sequence of what you can expect in the upcoming lessons:
Lesson 14 – Solution to L13 and structures
Lesson 15 – Pointers
Lesson 16 – Strings [console project]
Lesson 17 – File IO [console]
Lesson 18 – Loading sprites from a bmp
Lesson 19 – Loading a font and rendering text
Lesson 20 – Dynamic memory allocation
Note that this is rough, and thus some topics might get merged into a single lesson and others might be added. Once we have finished these topics, I will begin a new series which will teach about object-oriented programming (classes, inheritance, polymorphism, basically the ‘++’ part of ‘C++’). After a few lessons on the basics of classes, you will know enough about C++ in order to understand how the framework works. It is at this point that I will go over the entire framework and explain every piece (it’s actually very small and simple so it won’t take that long).
So there you have it, our roadmap for the coming while at least. Once I’ve finished explaining the framework, what will probably happen is I will continue teaching more advanced C++ constructs, together with data structures and algorithms which are useful for games and computer graphics theory. I might split these topics into separate series, interleave them, or treat them as one integrated whole. I might even start an advanced series about hardware-accelerated 3D even before I’ve finished teaching the fundamentals. As things progress I will look to my subscribers for some hints as to what direction you would like to see things take.
Well that’s enough typing. I’ve got a tutorial to make now.
Welcome to the not-so-grand opening of my new webspace—Planet Chili! This site was launched mainly to support my programming tutorial video series on YouTube, so chances are you were sent here from my introductory video to download the framework. Click the link below to download it now.
The goal of this series is to teach an utter beginner the various programming skills needed to produce a game (I am a masochist). I begin by helping you set up the tools needed to program, and then we start learning C/C++ syntax from square one. The plan is to organize the tutorials into a series of units, each unit focusing on the development of a simple game. However, we won’t yet have covered enough material to make even a simple game for the first several videos, so that will have to wait a while.
The idea is to start with basic language features first and then move on to more advanced object oriented C++ constructs as well as general programming techniques such as data structures and algorithms. The framework that I provide will allow us to start working with graphics right from the start, and later on as we become more familiar with C++ we will delve into the guts of the framework and learn all the dirty details of dealing with DirectX.
Once we are confident in using DirectX to make 2D applications, we will move on to 3D. This will entail not only learning more about the Direct3D API, but also about some of the mathematics involved in 3D graphics and the details of contemporary 3D graphics hardware. There are also other topics that I plan on covering, such as networking, AI, multithreading, etc., but I haven’t really thought out the timing yet. In fact, all this is just a rough idea at this point, so don’t try and hold me to it later. I might even split topics up into separate series, some of which may end up running concurrently.
My philosophy for teaching and/or learning almost any subject or skill can be summed up in two words: hands on. In order to get the most out of this series, it is highly recommended that you download the software and framework and follow along with every video. It’s also important that you take some initiative. These videos are not meant to be an exhaustive survey of everything you will ever need to know about programing to make a game. You should be supplementing what you learn here with your own independent experimentation and research. In this age of ubiquitous highspeed Internet access, there are tons of free resources on the web and absolutely no excuse not to make the most of them. Google is your friend. I also have a forum available where you can ask questions if you get stuck on the tutorials or just questions about programming in general. I hope to build a community here where programmers can support each other and share new ideas.
Well, that’s about all I have to say in the way of an introduction I guess. If you made it this far I applaud your patience and/or the amount of spare time you have on your hands. I try to inject a little bit of levity into my videos when I can, but I just wasn’t feeling it when writing the above introduction. It’s probably all for the best, since my sense of humor is at about a fifth-grade level in terms of proficiency and sophistication. I appologise for that, and for the lack of professionalism in my videos, but not very sincerely. It amuses me to act like a jackass while recording, and therefore that is how I will continue to roll. I will however try to avoid sounding like a Tourettes case off his meds (when possible).
Okay, now I’m just starting to ramble. Peace out brothers (and sisters?). Don’t forget to give me some love in the Tube and sign up for the forum. Word to your mother.
P.S. This doesn’t mean that I’ve given up on any of my let’s plays. Although I plan to shift the majority of my YouTubin’ efforts to the tutorials, Joshua, Lhaeros, and Plump will all be making their triumphant returns in good time. I may even start a new LP if the fancy strikes, but only after I’ve finished chewing what I have already bitten off.