Page 1 of 4 123 ... LastLast
Results 1 to 10 of 39

Thread: Project: Miniverse

  1. #1

    Project: Miniverse

    My project is called "Project Miniverse" and yes, it's another game engine... It's a cross platform project and hopefully it will compile and run at least on various versions of Windows, Linux and Mac OS X.

    It's the fourth game engine, I've coded one before (about 5-6 years ago) using OpenGL for Windows and couple more before that for good old DOS. The last one used a commercial game engine, but I got tired of the limitations and I like to know what happens "under the hood", besides I wanted to have a shot on cross-platform coding...

    Basically I'm doing this for the fun of it and I'll probably never finish it, let alone create a game with it. But that doesn't matter as long as it's fun and I learn new things...

    I'll probably ask some more stupid questions on the forums regarding OpenGL and stuff as I have forgotten too much of it since I last time used it for anything...

    Anyway, big part of the game engine logic is already done and now I'm porting it to use OpenGL and other cross-platform libraries. I'll probably rewrite whole lot of it along the way, but that's how software gets better and better...
    If you develop an idiot proof system, the nature develops better idiots.

  2. #2

    Re: Project Miniverse

    Quote Originally Posted by vgo
    Basically I'm doing this for the fun of it and I'll probably never finish it, let alone create a game with it. But that doesn't matter as long as it's fun and I learn new things...
    You are made from the same cloth as me. Fun and learning are the only reasons I do this sort of thing. The journey is more important than the goal (what goal?) Good luck with it.
    [size=10px]"In science one tries to tell people, in such a way as to be understood by everyone, something that no one ever knew before. But in poetry, it's the exact opposite." -- Paul Dirac[/size]

  3. #3

    Project: Miniverse

    Looks like it's been a while since I started this thread...

    Thought that I might write a bit more about my project. My PGD 2007 entry was part of this, but it went badly. I just didn't have time to work on it so I had to pull out from the competition.

    I'm still working on the actual game engine and I've written whole lot of prototypes that I've used to experiment with various things, but the space sim genre seems to be the one I always come back to.

    I've started working on a planet rendering system, nothing fancy yet, but hopefully it'll lead to some cool things...

    The theory behind my planet renderer is pretty simple:
    Take a cube and normalize it, then subdivide and subdivide and subdivide...
    Store the results in a quadtree and calculate normals and bounding spheres, links to neighbours etc. for each node. Process the quadtree nodes based on the distance and visibility and subdivide more when needed, then generate the actual vertex data based on current node LOD render it and store for later use, when the distance is big enough discard the generated data to save memory.

    Here's my test planet that I call "The Sphereworld", yes it's a perfect sphere that started it's life as a cube, I've extended the sides and then subdivided the hell out of it.
    Also visible the normals of the nodes from the quadtree.


    Here's the surface just 2.6 meters away, the radius of the "planet" is just 100 meters, but it's good for some initial testing, I've also experimented with Earth-sized planets and there the biggest problem is the crappy precision of 32bit floating point numbers, also the Z-fighting is very bad indeed.


    Here's another with visible node normals and vertices. These are not from the actual geometry that will be rendered, which doesn't exist yet.


    Here's some normals beyod the horizon, I've been tweaking my horizontal culling method so that as few extra nodes are visible as possible but still the high points like mountains would be.


    I've already experimented with some random heightmap based vertex patches, but more on that later.
    If you develop an idiot proof system, the nature develops better idiots.

  4. #4
    Legendary Member NecroDOME's Avatar
    Join Date
    Mar 2004
    Location
    The Netherlands, Eindhoven
    Posts
    1,059

    Project: Miniverse

    Try adding a earth or moon surface (texture) + heightmap.
    NecroSOFT - End of line -

  5. #5

    Project: Miniverse

    I found some Mars textures with bump maps and they are arranged into sets that can be wrapped around a cube, I'm gonna try those and use the bump maps to calculate heights for the vertex patches. Should be quite easy to do, I just have to interpolate the texture coordinates for texture and height information.

    If someone has planet textures arranged so that they can be used on the 6 sides of a cube I'd be interested to get my hands on those.
    If you develop an idiot proof system, the nature develops better idiots.

  6. #6

    Project: Miniverse

    Perhaps try this for planet textures, it is great and free, used it for my game "Commando Xenidis":

    http://www.gharat.net/pages/planetgen.html

  7. #7

    Project: Miniverse

    Thanks for the tip.

    I've installed the program and it seems to generate textures only to use with spherical mapping. My program uses the six sides of a cube, assigns texture coordinates for those and then interpolates them as the cube is subdivided into a sphere. Either I have to calculate spherical mapping coordinates or make a tool that takes textures like that and converts them to separate front/back, left/right and top/bottom textures...
    If you develop an idiot proof system, the nature develops better idiots.

  8. #8
    Legendary Member NecroDOME's Avatar
    Join Date
    Mar 2004
    Location
    The Netherlands, Eindhoven
    Posts
    1,059

    Project: Miniverse

    I guess you are looking for something like this?:


    Download link: http://www.humus.ca/index.php?page=Textures&&start=8
    NecroSOFT - End of line -

  9. #9

    Project: Miniverse

    Yes! That's exactly what I was looking for.

    But I can easily calculate the texture coordinates for spherical mapping too as I interpolate the vertex normals.
    If you develop an idiot proof system, the nature develops better idiots.

  10. #10

    Project: Miniverse

    Wrapped some textures around my planet:




    There's some ugly seams between the sphere segments, but I fixed them by using texture coordinates like 0.001 and 0.999, this way the edges are filtered perfectly, I can't see the seams anywhere anymore.

    Next step: surface geometry using height maps. Should be fun.
    If you develop an idiot proof system, the nature develops better idiots.

Page 1 of 4 123 ... LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •