About this blog
some rambling of beginner game developer
Entries in this blog
so, i have been playing with adding shadow mapping and I guess its not really so hard. The problem will be keeping the shadow map within the view frustum. For now I am just drawing the entire scene into the depth texture and it works ok for now.
I also got the ms3d animations working now. I am using that zombie model everyone seems to hijack from turbosquid just for testing.
No idea where I am going with this. Lel.
Wasn't I working on some drag racing game? I decided to play around with camera angles and such. So I created a full isometric 3d view just to try it out for giggles. Now I am knee deep into shadow mapping algorithms and environmental mapping. I am now thinking this might be the perfect perspective for a zombie game I was thinking about earlier. This kind of view might also be better for spectating races or something...
I guess me working now full time I dont feel like I am obligated to finish things in order. I wanna screw around with cameras and a few opengl effects. I might even dabble into glsl.
I still want to get working on redoing the entire car simulation + tire physics, but I guess that will have to wait a bit.
I have been sifting through the physics papers from www.kjmsoftware.co.uk which he kindly put together. Alot of good stuff in there.
I am still redoing my engine, adding one thing at a time again but im cleaning it up. Its gonna be a little while longer until I get to the point where I can screw with the tire physics.
So far I have this. I took out the sdl code and the windowing works alot better now.
cpu usage pic.
I am gonna move out of moms house this week I think. I cant drive 100mi a day like this forever. I am putting too many miles on my new car and I pay as much for gas if I rented a place. This means I will have 2 hours extra a day though so I can work on this crap more :D.
btw, kitty says hi
been a while again since i updated. few things happened.
1. pipe world is being sold all over the place now
2. got a job as a software engineer
3. still working on that car game, but haven't touched it in a couple months
so, i guess i have a pretty good job now. Took me a while to actually find a coding job and I landed in a fairly small company doing atm transaction software. I bought a new car too :p. Its a 2006 Mitsubishi Lancer Evo 9. Ive wanted one for a while, its kind of a cheaper dream car of mine, lul. (yes thats my actual car, has 13k mi on the clock)
I have worked a bit with the torque game engine, but its just a bit too generic for a fairly slim car sim. I made a basic fps demo with some bsp interiors and zombie spawning with a gun and packpack you can pickup, but i think im gonna put that project on hold.
note sure exacly how pipe world is doing from the distributor side, but ive sold a few more from my site. I need to spiffy that site out alot more still i think. :-/
right now im trying to add the semi-realisitic pacejka tire physics. im gonna only add the basic forumula, but ill probably be on this for some time.
oh, and a pic of me autocrossing my go kart to relieve some 'stress', lol
Well, I added an engine torque curve, transmission and engine sound to the game. Also made a new video. All i need is like 10,000 people to give a dam :D. Details on my new blog page.
Im gonna leave tonight actually for the 12hr of Sebring race that will start tommarow at 10:30 am, Yay for free ticket :D.
Teaser screeny. I am gonna be adding networking in a few weeks.
So, I made a new blog that I will be posting majority of my crap in now. I may post here once in a great while still, but basically this is my last real update.
I am starting to really like how the new game is turning out. I added a bunch of new stuff to the suspension. Read the details and watch the new video at my new blog.
I haven't updated in a while, so I thought I would throw in a little update.
I am currently trying to find some type of programming job locally. I am still working on Bench Racer, and I actually have gotten far in it. I can drive on terrain and I have 2 camera types. I made a small video driving around also.
I might be making a different blog page so I can embed videos into the page and more importantly I want a blog that will load faster then gamdev can provide. I guess Ill post a link here whenever I am ready to move.
an awesome screen + vid
i stole a model and added a ms3d importer for my framework. The cobra model is about 8,000 tris. The model doesn't have any textures, and it looks really good anyways. I am just using materials specified in milkshape for now.
next up is diggin' deep into ode physics
my new framework
So, with the development of bench racer I have also made a new platform independent framework. I tried a number of game engines such as ogre and ilricht, but I concluded that these engines are great for general purpose graphics, but I would like to make something myself that is simpler and I have more control over. So far I added these libraries to the framework...
-SDL - platform independent api for games (gl context,input,joysticks,maybe sound)
-OPENGL - platform independent 3d gfx api
-ODE - physics
-LIBPNG - png image deflate/compress
-ZLIB - compression lib used by libpng
-TINYXML - xml parser/encoder
-RAKNET - platform independent high performance game network library
I also added some of my own stuff
-BMFONTS - load anglecode fonts and render with gl. they look really nice and render fast
-MD2 Loader - load md2 models and render them with textures and vertex lighting
-PAK Files - support for a basic pak file system, no compression or encryption
So far I really like how it looks, everything except sdl is compiled into the exe. Its kind of frustrating though when I have to design everything, I guess I am more of a game designer then an engine programmer, but at the same time I don't like the black box approach to making games. I am a mistake of a programmer i guess D:
I will be throwing out the md2 format I am pretty sure, Its just too picky. I need a format that has material groups so i don't have to use a texture to paint everything. Also I cant have a shiny wheel and a matte tire on a model with md2's. I also will eventually need transparent faces for glass. I think the milkshake 3d format seems to cover all those really well, and its easy to parse.
lunar lander game
python with pyopengl is just too fucking slow to make anything commercial like this lunar lander game. I think python is a great tool to RAD a game out, but in practice it can only work for VERY simple 2d games. I couldn't get the text drawing out fast unless I built a display list for the text. Just one page of text using immediate mode brought my x1950 video card to its knees. I cant deal with that, especially if the text is dynamic.
So I will still see this game through, but with my c++ framework instead. I want this to be my 3 month project. March is my goal of releasing this game. I guess that is a really optimistic goal since I am not sure what the gameplay will be all about since the python version of the game just had boxes you can attach to and move.
So, I have been saying there are bigger plans for this game. This is a long term project of mine. I want to make smaller games that will have fast 3-6 month production times, but this game will be my 12 year old's MMORTSFPSRPG project.
There is still alot of crap I have to do to my framework before I even dig deep into the physics and networking. Mainly I have to get a good model format that will give me better control over fixed function rendering of the models. I shouldn't even care about models at this point and just use boxes and cylinders for wheels, but who the hell wants screenshots of that shit :D? Its gonna be 2 weeks more of work before I start getting real physics working in this game. The "tracks" are nothing more then just straight drag strips, but I might think about adding undulations to make things more interesting. The tracks might just be xml files defining a height map for a track and models/positions for scenery items.
Here is a semi-updated version of what I have so far. The physics is de-coupled from the drawing loop and now ive got crappy md2 vertex lighting. Its crap, but better crap then no crap :)
now i need a mac, and build my linux box so i can get this crap working on those too :p
super awesome 2d lunar lander physics game
I haven't really done anything but played with some of the physics for the lunar lander game. I figured out how to set the springiness of a slider joint, add compression/rebound dampening and how to make anti-roll forces. With all these figured out I am able to get very realistic looking landings now. I hacked the suspension together for the contest entry so the lander wouldn't bounce around everywhere, but now its truly using a suspension system like a car except the feet are stationary unlike a wheel.
Would anyone actually want to play an ultimate version of lunar lander with awesome physics, ship upgrades, etc? I don't know if anyone would want to play anything like this game. =/
">clicky for video of the new version
I was thinking about just screwing this 3d racing game and dump it into a 2D version. It would simplify a lot of stuff for sure, but I want tree deeezz :(
Only the people that submitted a final game for the contest are allowed to vote for the winner. I still have like 45/50 games to vote. Its basically a job to download the games and figure out how to play them with little or no instructions on wich keys to press. Its kinda annoying. Wish more people put an instruction page when the game starts like I did.
Finally made the binary. I had some trouble with it, but whatever. Before you say it sucks, please remember that I made this in ~25 hours, never used python before and i never really made anything with a physics library. Have phun ;>
download - binary executable for windows
I managed to finish a game for the ludumdare 48 game compo. Theres like 60 entries I believe. To be honest I think my game doesn't stick with the theme well, but I have never programed in python or really made anything with a physics library. So I don't really care if it doesn't stick with the theme well. The game looks great and its PLAYABLE. There was a point where I wanted to quit because there was literally 4 hours left and there was no gameplay. I stuck through it though.
I have to give credit to phill and his buddies that ran the compo. They put together a nice website where everyone can post every detail of their progress. I think there was a total of 12,000 pictures posted during the competition. If you want to read through my progress the page is here
for those that actually have python,pygame,pyopengl,pyode installed...I do have all my source files so you can run the game. I still have to make a binary. download
a quick screenie of the game for screenshot whores.
So, the last day or so I have been dwelling deep into the python cave. I have pygame + pyopengl running with a basic framework.
I always thought script languages were slow and gay. I was right about the slow part, but python is much easier to just write code with and get shit done. In c++ you have to lay down your entire design in header files and all that shit.
python = sucks + rules
In python. You just write the dam code. All the variables magically appear in the class as you define them in the actual functions. Its cool just to start writing a function and get workable code to use instantly. Oh yah, and no compile time, woot.
The bad part of python is I think it hates opengl. I wrote an Anglecode BMFont loader and render just like in my C++ code, but just a 30 character or so piece of text eats 1500fps or so. I am running an x1950 card now and a 1500fps drop from just some text is kind of stupid. I run 3500fps in my C++ code with text all over the dam screen.
I doubt its my code. I think its just the fact python is an interpreter language. I thought about trying py2exe, but that doesn't really "compile" the code. It just packages all the crap needed to run the program without the python install.
Either way I think its a great tool. With computers being wicked powerful and cheap I really don't know why I am complaining. Python is a great tool for small 2d games for sure. although its a BAD idea to use python for a larger 3d game, scripting the game code with it would work nicely for SURE.
48 game competition tools
I think I am ready for the game compo. The last piece I need to add is pyode and code up some more basic functionality to complete my RAD framework
the development environment is so much simpler with python compared to the big fat ide's of alot of languages. :P
I don't have any real progress this week except for a few boring things.
I signed a contract for Pipe World to be distributed to a bunch of places, so you might see it at a bunch of portals i reckon.
Havent really worked on my super awesome 3d racing game.
I am "trying" to learn python/pygame/pyopengl/pyode (lots of py's) so I can make something cool for the ludumdare 48 hr game contest this weekend I hope. Turns out when all you programmed in was c++, learning a script language isnt really easy to get used to, but i should know what the hell im doing by friday.
I also have been thinking of doing my smaller physics 2d game in python. I love c++, but for prototyping I feel like I have to prep the space shuttle for launch or something.
I need to stop picking my nose and actually make good progress on my projects every week, not every month. Thats pissing me off more then anything.
k, meanwhile im waiting for pipe world to get on a portal...
I am poking my stick at ODE trying to figure it all out. I managed to get a bouncy box...bouncing =/. Half the code to do this stuff I am just typing blindly since I have no idea what I am doing, but thats what SDK's are for right?
Next i am going to figure out how to make the box the "car" and ram it into some planes repeatedly.
The professional coder reading this: screw you. We all feel stupid trying to make a box into a car the first time around. Lol.
screenshot of the box bouncing...astounding.
Wow, dan's journal (radioactive software) makes me feel lazy. It also modivates me a bit. Thanks dans, zomg ! ^_^
Ok, well I have been tryout out a few different modeling packages over the last few days and finally I realized Blender was the only one that exported md2 very cleanly. Also, its an awesome modeling package. What other modeling package has this FFS.
27mb download gets you:
f***ing awesome 3d modeling/rigging/materials/animation tools
full blown physics game engine
non-linear video editor (LOL? yes, blender has a video editor)
I also found out I am a horrible modeler and skin artist. :D
This is "supposed" to be a 1990-1994 Eagle Talon aka Mitsubishi Eclipse that I created from scratch. It looks pretty bad, but its basicly my first real model with full texturing. The other screen is when I was playing with the uv unwrap functions in Blender. I actually find it extremely easy to create very clean uv unwraps in Blender. I guess I just need to bust out my wacom tablet and learn to do real skins because the mouse seriously sucks when trying to draw in shading.
Yah, it all really sucks. I have been thinking about ditching the md2 format since you cant define any materials like specular highlighting and alpha blending faces, but whatever for now, I wanna keep shit simple.
I was also playing with increasing the performance. I added mip texture chains and that alone gained 100FPS from the scene with the grass tiling 50 times in the x/z plane. The models also are draw from a compiled display list, but I didn't see a difference with that. I think I might try VBO's next, but unless I have ALOT of triangles I wont see a difference. For a low poly game, whats wrong with just using display lists? Probably nothing =/.
Next I think I need to add ODE or some other physics lib next, I am pretty sure I can skimp on the visuals for now. I am just not sure if I should use the SDL millisecond timer to use with the physics or write a high rest timer for each platform I want the game to run on (windows/mac/linux). I see many people run physics just using a 1ms timer running the physics at 100-200fps and it seems to perform ok. I will have to play with all that I guess =/.
pipe world has a clog.
Well, I have been trying to get Pipe World on a few portals the last 3 weeks, and only one portal responded, Instead I should say that a company that works for a few large portals responded. They want to contract the game, but I just hope it gets on the portals soon, I don't want to pass up on the Christmas consumer whores =/. Maybe the other portals didnt mail be back is because of 2 reasons.
1. the game sucks.
2. everyone is spamming their match 3 game at them for a quick buck.
It might be a mix of both. lol.
awesome awesome awesome game.
In other news...I guess I am starting a new project, although it may be a bitambitious, crazy, and probably is a failure. Ok, now that the disclaimer is out of the way...
Its a 3D Online Drag Racing Game. Yah, you can vomit now.
Well, unfortunetly there IS one 3d online drag racing game HERE, and it actually came out less then a month ago. Its actually not a bad game, and these games actually have a huge market for them. Nitto 1320 has like 100k people registered or some crap? Anyways, I think all these games lack soo much that I believe I can deliver.
Well, i doubt anyone knows that I am actually a mechanics junky. I actually built my car and helped other people build a few cars, and I rebuilt an older race kart which it hauls ass ATM.
Anyways, my plan for the game is to implement these features.
Oh, and the unoffical name is Bench Racer. Bench racing is a form of racing with numbers. For instance I have 400hp @ 3000lb, I will beat your car that has 300hp @ 3100lb. In the game though your the chassis/engine tuner and thats going to be the main method of getting the car fast, winning on the bench lets you win on the track.
md2 model rendering
shadow mapped shadowing
ODE Physics SDK
rigid body collision & response
different suspension simulations (solid axle/independent)
different types of transmissions (automatic/semi-auto/manual)
not sure about the tire model, but something will be made
probably 3000 things I cant think of
World (track) files
simple text files or xml
file describes placement/size/orientation of models, primitives and heightmaps, and also describes their properties (collision, explode etc)
probably 3000 things I cant think of
simple text files or xml
placement of parts for the vehical (engine,wheels,seats), and for performance parts, the description of the effects on the car (bowling_ball ++10kg)
probably 3000 things I cant think of
Car Upgrade System
robust parts system (first one EVER that will be realistic for once, ea/need for speed - GTFO)
tuning of parts (fuel map/ignition tables, multistage nitrous, cam timing etc)
first ever real dyno in the game (yes, the wheels spin a real drum and does real-time calculation)
probably 3000 things I cant think of
server will be kind of like an mmo structure, but no avatars can be visible except in the chat and in the races
custom dbase for speed might be used, but mysql may be better
probably 3000 things I cant think of
All that shit is probably way too much for now, I have a basic SDL/OpenGL framework implemented at the moment drawing out some car models on a straight track. At the moment I am trying flesh out the camera system i am going to use and finish the basic physics I have right now (simple z axis movement). Then I might attempt making a simple server people can join and race using the simple z movement physics.
Once I get to that point I think I will know If I am ready to take on this kind of game, its a big project that might take many months to get to alpha stage with working physics. Since I never made a 3d game and worked with real physics maths, I want to take baby steps. :D
Ok, my old site really blew. Although I was tired I managed to sit down and crack open my html bible and make a half decent design. I think this design works quite well now, it still needs some work, but I think I got it.
In other news, I emailed gabe @ valve and big fish games about my game a day ago, I am waiting for a reply from both still. I know big fish will take the game, but valve might not, Ill just cross my fingers.
I also have been experimenting with google adwords and I have put up a couple ads, ill have to see if anything comes from all that noise I guess. Here are some screens of my ventures....
I deleted the keyword "game" because...after just 1 hour of putting the ad up,I received 800 impressions and 9 clicks...its probably a waste of money to use that keyword.
heres an ad I made in a few minutes that I will use, maybe ill modify it a bit more =/
this s*it better sell, lol
I realize I need to add alot of stuff to my website, but I have been just fixing alot of small bugs in the game that came up. 5 People bought the game so far, 4 people that i somewhat know, and one person from the indiegamer forum. Thats after 50 demo downloads and 20 buy page views.
I haven't really advertised the game yet, I will be looking into that shortly after I fix every bug and clean up the game more. After I am certain all is well, I might put the game on some game portals, but I have to do this before December if I am at all.
Pipe World is finally up for grabs. I guess there isnt much more to say except go grab the demo at www.impellerhead.com and if you really like it, buy it!
Pipe World is...drum roll...
The ink is still dry though. I haven't really decided on the registration system I want to use. From what I have seen, many successful indie developers accept payment through a register like BMT Micro and send a download link to the full version of the game. Although that method is really weak, they still make a bunch of money.
I know early on I decided this to be a portal game, but I would like to try selling it myself first or at least do direct sales. I don't think you could be considered a real game developer if you don't even sell the software with your own name on it for christ sake.
Maybe some new screens are in order =:D
its been a while, so I thought I would post something.
Pipe World is complete for the most part, waiting on artist to complete some stuff he wants to add. I hope the game will start being released within a week. Did I mention the dam pipe game changed the name again? Oh i didn't? Well it did. Pipe World is the final name...for real.
In other news, been working on my first real attempt at a 3d engine, but not just any 3d engine. I have been wanting to create something multi-platform. I am using SDL now with OpenGL along with a few libraries such as libpng zlib tinyxml. The rest I wanted to do myself. So far I have gotten basic materials such as texture mip chains and vertex lighting working. Another thing I always wanted to add was some variable width fonts. I used the bmfont program to generate them. I also made a custom pak file system. I hope to use this framework for my next game. I am still not sure what the next game will be.
a small screen of what I have so far...colored text is just done like quake 3 using ^0-9
Ok, so the game isn't done yet. So what?
I am trying to make the best game i could possibly make, and the problem is im constantly learning more and more, so I guess ill never finish the game. lol.
In all seriousness, the game IS really almost done. The matching mode works flawlessly, it just lacks the cool effects when you actually match a row. Its also missing a few more things I think should be added.
Delete effect when you match a row of pipes (blow up sprite over each pipe)
Score for each pipe matched to be gained floating above each pipe and slowly rising with decreasing opacity
Some kind of power up you route pipes through and when the row matches with the pipes routing through the power up, you receive it.
Create a new tutorial
This I would like to add, but may not
A store you can visit after each level to buy special items that clear the entire game board of pipes, give you more time to play the round to match more rows, etc
Tutorial pop ups as you progress through parts of the game.
one thing I am very proud of adding which is a first of many things I have done with this game. In-game, online, high score chart :D. I will have a top-10 and top 200 on the front page of my website when everything is said and done.
Thats it for now, not much longer now :D
Well, I added the match 3 mode and its working pretty good. I do a flood fill remove the pipes if more then 2 are connected and do a pretty scaled explosion sprite over each one. Turned out that was the easy part.
There was the problem of moving the pipes down to fill the empty voids you created when removing the connected pipes. The problem is my entire map is draw based on an array of tiles in layers. I came up with an evil genius way to get around that. I made an array of floats that will be used to offset the pipes from their "real" location, and once they move past one tile in pixels I teleport their tile location and set the offset back to 0. There is some overdraw as the tiles move, but they move so quickly you can barley notice it.
I made my first pipe mania video preview if anyone wants to look at a REAL puzzle game :D. The career mode is the match 3 prototype thats going to be used for the real gameplay. Of course I am only doing a flood fill only when I rotate a pipe, so thats why you can see alot of connected pipes that are magically staying on the map. ">
Ok well I think im scrapping the entire idea of making the career mode from a system of puzzle solving by buying pipes to solve the level using a simple money system. Instead I though why not make some kind of fast pace matching modes for the career game. So I ended up making these flow charts and I think I like this idea. The best part I think is the fact I don't need to make any levels.
Match 3 - basicly you need to connect 3 or more pipes together to get a "match", then new pipes will drop in to replace them.
Tetris - have to connect a row coming from the water pumps on one side to the cities on the opposite side. Any pipe along the path thats connected will get deleted along as well.
That screen shot is real, but I added some of the gui on top to see what it may end up looking like, but its definitely going to be all on a small map that fits on one 800x600 view.
Time to start cracking the whip and see how this goes.