tag:blogger.com,1999:blog-45015900118316088802024-02-21T07:49:30.844-08:00Carangil's Crazy Development BlogBlog of my personal software development projects.Carangilhttp://www.blogger.com/profile/12444531766546756959noreply@blogger.comBlogger22125tag:blogger.com,1999:blog-4501590011831608880.post-36859829613549342072020-04-06T10:44:00.001-07:002020-04-06T10:44:18.613-07:00Moved on...I don't use blogger anymore. I have my own page at mwsherman.com
Carangilhttp://www.blogger.com/profile/12444531766546756959noreply@blogger.com0tag:blogger.com,1999:blog-4501590011831608880.post-43839097117170115182013-02-23T01:12:00.005-08:002013-02-23T01:12:56.425-08:00More planet rendering
I finally found some time, and I've fixed a few things:
Texturing
Seams between dissimilar detail levels are hidden (skirt method)
Seams between sixths of planet sphere are gone (points shared along edge)
Atmosphere/fog effects
Carangilhttp://www.blogger.com/profile/12444531766546756959noreply@blogger.com0tag:blogger.com,1999:blog-4501590011831608880.post-34514416472924941872012-09-08T01:00:00.000-07:002012-10-10T10:33:13.791-07:00(part of) a planet (sort of)
A quick video for real-time planet surface generation:
It is a random midpoint displacement fractal. It has issues at the edges; I'll be fixing that soon.Carangilhttp://www.blogger.com/profile/12444531766546756959noreply@blogger.com0tag:blogger.com,1999:blog-4501590011831608880.post-24281567962829697552012-05-29T23:50:00.001-07:002012-05-29T23:54:28.815-07:00Old-style enemy sprites
After adding some basic lighting to the maze, I decided to add a simple sprite-based enemy. I decided to photograph an Aliens action figure from different angles. The famous game DOOM used scanned photos of clay models, so it a proven, but old, technique. (Reference)
Here's a short video:
Carangilhttp://www.blogger.com/profile/12444531766546756959noreply@blogger.com0tag:blogger.com,1999:blog-4501590011831608880.post-48200538761636237572012-05-29T01:21:00.000-07:002012-05-29T01:21:49.293-07:00MazesIndoor Mazes.
Very limited at the moment.
Only 1 texture (supporting different texture per block is somewhat trivial)
2D maze layout on a grid (like Wolfenstein 3D/ Ken's Labyrinth)
Has floors and ceilings (Hey Wolf3d didn't!)
Needs:
Differing height for floor/ceiling (like Rise of the Triad has)
Allow diagonal walls (like Doom/ Duke 3D)
Allow Rooms on top Carangilhttp://www.blogger.com/profile/12444531766546756959noreply@blogger.com0tag:blogger.com,1999:blog-4501590011831608880.post-58641341531447514312012-03-20T22:55:00.000-07:002012-03-20T22:55:47.392-07:00sound effectsSo this last weekend I decided to play around with OpenAL. It's a sound library with an API that's pretty similar to OpenGL. That is, if it's possible for sound operations to be similar to graphics operations.
I've abstracted the details of OpenAL away from the rest of the system by writing a little library that goes on top. The graphics subsystem of this game is already called 'gx', so I'm Carangilhttp://www.blogger.com/profile/12444531766546756959noreply@blogger.com0tag:blogger.com,1999:blog-4501590011831608880.post-91825690011847021252011-11-06T00:00:00.000-07:002011-12-27T22:57:13.516-08:00multi shipsNow there's another spaceship.
Carangilhttp://www.blogger.com/profile/12444531766546756959noreply@blogger.com0tag:blogger.com,1999:blog-4501590011831608880.post-58446618278490374022011-11-03T22:54:00.000-07:002011-12-27T22:55:40.052-08:00Better lighting
Carangilhttp://www.blogger.com/profile/12444531766546756959noreply@blogger.com0tag:blogger.com,1999:blog-4501590011831608880.post-49792245722581435972011-07-25T23:36:00.000-07:002011-07-25T23:36:03.755-07:00been busyBeen busy with other things, so I haven't done much work on this the last couple weeks.
BUT...
I've found I can have many many many more asteroids on the screen at once by using a very simple trick: Any asteroid further than a certain distance is now just a sprite. Simple, stupid, but effective.Carangilhttp://www.blogger.com/profile/12444531766546756959noreply@blogger.com0tag:blogger.com,1999:blog-4501590011831608880.post-50180335911478635942011-06-30T09:31:00.000-07:002011-06-30T09:31:40.606-07:00Next stepsWhere am I going with this project? Well, I'm developing three areas of the 'game engine' seperately, but all three using the same common graphics framework:
Open space: This mode is a very sparsely populated 3 dimensional space. This is suitable for 'outer space' situations. This is the mode used in my Asteroids test application. This is pretty much a flat scene graph: A list of objects.&Carangilhttp://www.blogger.com/profile/12444531766546756959noreply@blogger.com0tag:blogger.com,1999:blog-4501590011831608880.post-91504166448514997652011-06-21T20:44:00.000-07:002011-06-21T20:44:22.936-07:00Ok a test videoHere is a video showing some 3d gameplay.
Carangilhttp://www.blogger.com/profile/12444531766546756959noreply@blogger.com0tag:blogger.com,1999:blog-4501590011831608880.post-79429070644959767622011-05-31T23:54:00.000-07:002011-05-31T23:54:53.406-07:00welcome to my asteroid field So, as a short term goal for this project, I've decided to work on a 3D asteroids clone:
This is in 3D! So what does this do at the moment:
6-DOF 'spaceship ' camera control
Each asteroid geometry is randomly generated [(although I reuse the same texture :( ]
Each asteroid moves with a constant intertia, and rotates, independently of each other
Background starfield isCarangilhttp://www.blogger.com/profile/12444531766546756959noreply@blogger.com1tag:blogger.com,1999:blog-4501590011831608880.post-7742462157678023712011-03-03T23:40:00.000-08:002011-03-03T23:40:07.169-08:00I need a scenegraphI need a simple scenegraph for projectZ. The graphics portion (gx) can already do a lot of basic graphics tasks, and I think that gx itself should be just a renderer that draws what its told to, when its told to. It is the business of the game engine to determine which things are/n't visible. Where the camera is, which sector it is in, which other sectors are visible, etc should all Carangilhttp://www.blogger.com/profile/12444531766546756959noreply@blogger.com0tag:blogger.com,1999:blog-4501590011831608880.post-15417809236509817972011-02-12T01:32:00.000-08:002011-02-12T01:37:08.671-08:00we have OBJ file loading and some crappy lightI have a very lighting working. (Nothing special).
I can now load OBJ file meshes. This is something created using MakeHuman, exported to OBJ and loaded/rendered inside ProjectZ.
Short term projectZ goals:
-Add better lighting support (multiple lights)
-Fix portal rendering. (It is very hacky at the moment.)
Not-so-short projectZ goals:
-Implement basic skeletal animation (Carangilhttp://www.blogger.com/profile/12444531766546756959noreply@blogger.com0tag:blogger.com,1999:blog-4501590011831608880.post-17493679446720204622011-01-18T23:37:00.000-08:002011-01-18T23:41:19.134-08:00back to workOk, I've returned to this project.
Added:
A simple line-drawing API that can draw colored lines, circles, arcs and regular polygons. And it does not use immediate mode! Why make this? So far, the 2d graphics API has been sprite-only. Sprites are nice, but vector games like the original Asteroids or Lunar Lander can't be done well with sprites.
In Carangilhttp://www.blogger.com/profile/12444531766546756959noreply@blogger.com0tag:blogger.com,1999:blog-4501590011831608880.post-90258183653864737022010-12-15T21:36:00.000-08:002010-12-15T21:36:33.175-08:00distractions, distractionsOk, I've been distracted by several things:
-3d: I have been goofing around with the mandelbox. This is not helping 2d graphics, lol.
- ham radio. A new hobby to compete with my time.
-Christmas: Yes it is Christmas time. Haha.
This project isn't dead. It's just been 'paused' for a little while.Carangilhttp://www.blogger.com/profile/12444531766546756959noreply@blogger.com0tag:blogger.com,1999:blog-4501590011831608880.post-53985680672659668332010-11-04T22:37:00.000-07:002010-11-04T22:37:29.141-07:00back to 2d and memory managementI am jumping back into the 2D graphics world by adding a key function. I had very basic sprite rendering. I've now added 'rotozoom' support; when drawing a sprite onto the screen, it can be rotated about an arbitrary point and scaled.
Another thing I am dealing with is memory management. Currently my 'malloc wrapper' is a little unusual: every single invocation of the Carangilhttp://www.blogger.com/profile/12444531766546756959noreply@blogger.com0tag:blogger.com,1999:blog-4501590011831608880.post-36025399707127295892010-09-11T15:08:00.000-07:002010-09-11T15:08:42.681-07:003d stuff so farSo, continuing on the Quest to create the rendering portion of a 3d game engine from scratch in plain C, this is where I am at now:
-Load Targa image files (1, 3, and 4-channel)
2d:
-Specify rectangular regions of images to use as sprite
-User-specified coordinate mapping of screen
-rendering sprites using GL hardware acceleration
3d:
-Create VBOs and populate with vertices/Carangilhttp://www.blogger.com/profile/12444531766546756959noreply@blogger.com0tag:blogger.com,1999:blog-4501590011831608880.post-67835939364056861922010-08-25T00:54:00.000-07:002010-08-25T00:54:12.851-07:00Project back on trackHi! I've been busy with a lot of stuff lately, but this project is not dead! I have started going through some old OpenGL code, and am creating a simple graphics layer for projectZ. I have a lot of 3d code, but I think that for now, the best approach is to get simple 2D rendering off the ground. I need to get something on-the-screen otherwise the project will never get offCarangilhttp://www.blogger.com/profile/12444531766546756959noreply@blogger.com0tag:blogger.com,1999:blog-4501590011831608880.post-28365552908704034852010-06-19T23:30:00.000-07:002010-06-19T23:30:04.972-07:00Working out the more boring parts of the project like memory, linked lists, etcThis week I'm working on the more mundane parts of the project. I am choosing the 'best' version of hashtable, list and vector implementations and:
convert them over to use the newly created malloc wrapper (zmem.c), specifically utilizing the automatic destructor-on-free callback mechanism
clean them up with consistent naming
test for memory leaks
Then once i got vector.c, hashtable.cCarangilhttp://www.blogger.com/profile/12444531766546756959noreply@blogger.com0tag:blogger.com,1999:blog-4501590011831608880.post-5498763962413206712010-06-15T00:22:00.000-07:002010-06-15T00:22:09.421-07:00Started work on Project ZI have started my latest project, which, for lack of a better name, I am now calling project Z. (There are too many Project X's on github.)
What is Project Z? This is an attempt to take several years worth of writing random graphics or sound related programs I've written, and attempting to extract the useful bits out of them and create a working game development / game engine libraryCarangilhttp://www.blogger.com/profile/12444531766546756959noreply@blogger.com0tag:blogger.com,1999:blog-4501590011831608880.post-88320157246981010402010-06-15T00:02:00.001-07:002010-06-15T00:02:38.926-07:00Test PostThis is a test post. Whatever.Carangilhttp://www.blogger.com/profile/12444531766546756959noreply@blogger.com0