And now for the case of the missing Journal Entry. It’s the post below, I just forgot about the naming convention .. this is the post.
Anyway, on with the show.
So the project is progressing well. Ups and downs. My brain really has trouble with the simplest of physics stuff, but handles the database side pretty well. Have been having a ball going back to simple vector stuff, coordinate geometry, circle and pi equations .. it’s all learning, or re-learning as the case may be.
I’ve just realised I need to implement States. I know, should’ve been prelim stuff, but i guess we’re still in the prelim mode, so that’s okay. States for each Object. It will be a simple bunch of states to choose from, depending on the type of Object. Not sure about them yet, have to think it through more. It’s basically to say, "This object is moving", or "This object has hit something", or "This object is now rebirthing". That sort of thing.
I have simplified the design for the moment. I was getting too complicated, trying to have lots of different functionality, but just thinking that through was bogging down the project. So I cut it down to bare bones.
One current problem i’m waging war against, is that of the AI movements of the objects. There are a bunch of spheres in the gameworld that are homing in on one particular set of coordinates. There are some random numbers being thrown into the vectoring/movement coding .. but it’s pretty lame. And they home in particularly wierdly. Straight line to one of the axis, then straight to the focal object.
Anyway. Am rambling a little. Brain fried. Need some relax time.
Have done away with the post naming for journaling the gaming project. Can’t have my imagination going to waste :).
I had some cool ideas today, in regards to making the gameplay simpler, more intuitive. What sparked these ideas was the discovery of a little gem called POV-Ray. This is an awesome little rendering machine that lets you get something out the door lickety-splick. Especially in my case where the project is mainly for learning purposes, and the graphics just need to be simple and pumped out quick, without having the learn the nuances of a big piece of software.
POV-Ray runs from files that are similar to c/c++. Which is cool. And my memory of the computer graphics course done at uni came back with a bang. The Left-Hand Coordinate System, setting the camera, making objects. This thing does it really quickly. You set the camera position, the point it’s looking at, add the objects, a little light, press G .. and BAM. It renders.
In other news, I read this article today talking about how Microsoft is planning to release six versions of Windows Vista. Six! I guess the more products they package and push out the door the more dominance they will have. Heh. I can’t wait to see how this is done. The marketing especially. How they try and make it an easy choice for the buyer. Which one of these six fine ladies .. ha ha. Can’t Hardly Wait flashback.
Haven’t managed any further coding on the game project. States is still the next step.
Over and out.
What follows is the journaling of my experiences developing the latest Dev Dawn Project.
Spent most of the last few days restructuring the classes. There was almost zero structure anyway, just hotch-potch code. Now there is a definate heirarchy within the classes, although still a long way to go.
However, what I take heart in is that I don’t have to design the greatest piece of software. There are specific goals for this project, and what I have to do is attain those, and then see what happens.
To begin with, on paper for me, I worked through the basis of the game.
Firstly, I had to break out of imagining writing a game as if I were playing it. Very important. I have to break down to the foundation of the game mechanics, the design.
What makes up a game? Well, there are menus, loading screens, introductions, credits, other modules … and the game itself.
So the game, as a player thinks of it, cannot be the basis of the game code, so to speak.
What then, was the structure. I’d already passed it.
Like a house, you lay the foundation. So, my first class, from which everything else comes from, is the Foundation class.
From here I control whether the user/player is in the menu, the game, watching credits … etc etc. The loading of games is here to, I think. Haven’t got there yet.
- That’s another thing. My initial desire with this project was to show how Clarion can be used as a database for a game. Moreso, I wanted to amalgamate my experiences with Clarion with my love for gaming. Because as a project, there’s nothing more I have wanted to do than make a game.
- And more every day, it becomes clear. Games are just more numbers being pushed around. You know what I’m saying. And their usually not hard numbers either (on the face). Look at Tetris, Pong, and the others from your early memories.
So anyway. I have now a Foundation.
Each time I grasp some mechanic/truth about the code/c++/gameplay, I then tend to pull the wool over my eyes once more, stumbling around in the darkness. So in this project, I’m trying very hard to listen to that little voice that says, "Maybe that should be a child-class, an object of it’s own", or, "Maybe you should make that private, and then call a function to manipulate it".
It’s hard not taking the lazy root. But that’s what this project is all about. Investigatory Journalism. Ha ha. I mean, it’s about learning and getting better.
So I move on to what lies within the Foundation.
This is what I’ve got so far.
- The Game
- Various Game Objects, the Player Character, the NPCs, …
- The Menus
- Functions to load the engine, start the game, end the game, …
There are probably more, but I’m running low and need sleep.
There is a lot more I want to journal about this project. It’s pretty exciting. I added a right-click piece of functionality the other day, and it was awesome. I almost, almost, got sucked into pursuing that, and other little pieces of functionality, but my sensei’s words of wisdom beaten into my head (well, not beaten so much) ring true. Get the base right before the other fluff.
It’s a rule that stays true no matter how much you do. Because the little things, the fluff, is most of the time so much more attractive. Adding a right-click functionality doubles the user’s input (from the mouse). But for the purposes of getting the structure and intial goals realised, it was nothing. Especially because the functionality didn’t actually do anything important.
Anyway, babbling. Bedtime.