October 17, 2017, 09:40:29 am

Hi, I've been using Sphere 1.5 for about three to four years now, originally finding it when I was struggling to write functional game code in Python. I have tried joining before but now that the registration page finally works correctly I've finally been able to get that activation email.

Anyway, I enjoy writing games, and find programming subjects like AI, and 3D rendering, lately I've also been getting into Neural networks but my insufficient knowledge of algebra makes learning how to create neural networks difficult.

Anyway, it's nice to finally be able to join this forum, I'm hoping to further my skills here and possibly even be able to help others while I'm here as well.

Welcome to the community! While miniSphere does have some 3D functionality, there isn't really enough of it to create a fully functional game without a lot of effort on the developer's part, but if you just want to create 2D (or predominantly 2D) games, it's a great engine and it's cross-platform too, more so than 1.x.

@SilicateWielder welcome to spheredev/spherical. Recently there's been more conversation on the discord channel: https://discord.gg/F49sVP But the forum is still good for conversations we want to last. Sorry to hear you've had problems joining.

As for 3d; I think proper 3d support could come in miniSphere 6....

TBH all we need is an ability to draw shapes that have z coordinates, most of the hooks are there just a bit of internal plumbing missing.

After that we'd want a method for loading some common 3d formats - wouldn't be too hard to write some loading scripts I assume.

We may run into performance issues at that point if we tried to do anything too big with 3d stuff but I dunno - miniSphere with chakra is pretty fast but we're currently locked to being single threaded.

@SilicateWielder welcome to spheredev/spherical. Recently there's been more conversation on the discord channel: https://discord.gg/F49sVP But the forum is still good for conversations we want to last. Sorry to hear you've had problems joining.

As for 3d; I think proper 3d support could come in miniSphere 6....

TBH all we need is an ability to draw shapes that have z coordinates, most of the hooks are there just a bit of internal plumbing missing.

After that we'd want a method for loading some common 3d formats - wouldn't be too hard to write some loading scripts I assume.

We may run into performance issues at that point if we tried to do anything too big with 3d stuff but I dunno - miniSphere with chakra is pretty fast but we're currently locked to being single threaded.

Okay, thanks for the info! It would be cool to see 3D graphics implemented in Sphere by default. What I've been doing with 3D rendering is actually implementing my own 3D space and rendering framework from the ground up; I've found it to be a great learning experience. Right now I'm implementing a function for wrapping textures onto polygons using a transform blit. I don't believe this feature is available on Minisphere but it seems to work fine under linux.

I lost most of my old Sphere games and resources when my laptop died (milk +laptop + seizure = spilled milk and a dead laptop), but I remember someone created a rudimentary 3D test game that rendered some cubes with textures from Minecraft, and you could move around the camera.

I lost most of my old Sphere games and resources when my laptop died (milk +laptop + seizure = spilled milk and a dead laptop), but I remember someone created a rudimentary 3D test game that rendered some cubes with textures from Minecraft, and you could move around the camera.

You could always do it with transformBlit and some maths but it's a bit of a pain.

I lost most of my old Sphere games and resources when my laptop died (milk +laptop + seizure = spilled milk and a dead laptop), but I remember someone created a rudimentary 3D test game that rendered some cubes with textures from Minecraft, and you could move around the camera.

You could always do it with transformBlit and some maths but it's a bit of a pain.

Sorry about the long delay between responses, between my ADHD and school sometimes I can forget things, like having an account on here.

You definitely can! I'm currently writing a 3D graphics library for a game I'm developing, it's primarily using the Sphere v1.5 functions but once I can learn how to use MiniSphere properly I plan on updating it to the newer engine. I'll share it here on the forums once I have it in an operable state (And have ensured my code isn't a heaping tangle of spaghetti).

It most likely will require defining models within your code at first, but eventually I'm hoping to make it possible to import .obj files and the likes. I'm still wrapping my head around how to manage polygons and reducing the rendering load by not rendering invisible polys.

I'm still wrapping my head around how to manage polygons and reducing the rendering load by not rendering invisible polys.

I don't remember what it was called, but I know John Carmack (former lead programmer at id Software who pioneered 3D graphics on the IBM PCs and PC clones) wrote an algorithm for handling that kind of thing. I think it was first implemented with the Doom engine.

I'm still wrapping my head around how to manage polygons and reducing the rendering load by not rendering invisible polys.

I should note that miniSphere has hardware-accelerated APIs for drawing stuff ("Galileo") so you don't have to do this yourself, you can let the GPU do it. Sphere 1.x dates back to the 90s and is primarily software-rendered, so that's why you had to do this kind of thing yourself. Not so much in a modern engine like miniSphere.

Modern GPUs render everything as textured triangles, this is true for both 2D and 3D graphics. The specific projection is determined by the transformation matrix in use (in Sphere v2, a Transform object).