Page 59 of 181

Re: What's everyone working on? (tigsource inspired)

Posted: Fri May 10, 2013 2:09 am
by Jasoco
hryx wrote:Jasoco, I'm still waiting on pins and needles for your Star Fox clone. I swear, seeing it is one of the few things that warms my heart.
Here's another log for your heart fire, my good sir!

Image

Sorry the GIF is so ugly, but PhotoShop hates it being so big and also I'd rather you only download a 3MB GIF than a 20MB one.

Note the rotating cube on the screen of the computer. That's another world loaded parallel to the normal world and rendered to a canvas which is then drawn to the screen polygon. Nested worlds within worlds. Brilliant. Also the flickering CRT scanline. Some limitations due to the limitations of the Perspective.lua library, but it works.

Also note the menu animations and depth.

Also note that the computer is not plugged in. Uh oh.. how is it running?? OH NO!!!

The computer and each cube consists of an entity and a model or two. In this case, each entity has a single model attached to it. The computer in this case has an update callback that handles the rotation and the updating of the screen. Each of these computers could have their own "world" loaded and updating at once.

Re: What's everyone working on? (tigsource inspired)

Posted: Fri May 10, 2013 2:18 am
by slime
Jasoco wrote:Note the rotating cube on the screen of the computer. That's another world loaded parallel to the normal world and rendered to a canvas which is then drawn to the screen polygon. Nested worlds within worlds. Brilliant.
UmpOi.gif
UmpOi.gif (1.83 MiB) Viewed 764 times
That is so cool. :)

Re: What's everyone working on? (tigsource inspired)

Posted: Fri May 10, 2013 10:59 pm
by hryx
JASOCO YOU MAKE ME SO TOASTY

Actually, the cruddy GIFness only adds to the charm.

Re: What's everyone working on? (tigsource inspired)

Posted: Sat May 11, 2013 10:48 am
by Roland_Yonaba
slime wrote:That is so cool. :)
@Jasoco: That is so freaking cool...

Re: What's everyone working on? (tigsource inspired)

Posted: Sat May 11, 2013 10:49 am
by Jasoco
Here's a shot of 8 different computers running 8 different worlds with 8 different settings drawn to 8 different canvases and displayed on each of the 8 different screens. Total of 9 worlds including the main world.

Each computer is an object. Each computer object contains a model reference which is the points and polygons that make up the computer, a world which represents the rotating cube on screen and a canvas on which to draw the screen. Each screen world also loads up its own models, in this case the cube inside.
This changes everything.
This changes everything.
Screen Shot 2013-05-11 at 6.41.45 AM.png (104.35 KiB) Viewed 4363 times
Each world can be doing whatever the hell it feels like really. Of course this is just an experiment. Maybe a game I create will utilize this ability. I only created the Macintosh model because I wanted to play around. The actual working screen was a bonus.

And yes I understand the original didn't have a color screen, but it looks so pretty.

Tomorrow I might push the limits and load a grid of 100 computers. 10x10 array of fake computers. Sucking up my CPU cycles. I expect a framerate of maybe 12.

Re: What's everyone working on? (tigsource inspired)

Posted: Sun May 12, 2013 8:41 am
by gennn
I'm working on my first game, a MMO!
And I'm beginning to ask myself if I have any chance at all that someone will play it. :c

Anyway love it's so much fun, so let's try :)

Re: What's everyone working on? (tigsource inspired)

Posted: Fri May 17, 2013 5:15 am
by Jasoco
Spheres. Dynamically built sphere models that can have different levels of detail. Will probably use them for planets on a map screen or something.
spheres.png
spheres.png (275.38 KiB) Viewed 4229 times
The code used to return the points and polygons required:

Code: Select all

local rad = 100
local detail = 40
local data = { points = {}, triangles = {} }
local rot_inc = 360 / detail / 2
local y_inc = rad / detail

-- Create the points
local n = 1
for y = math.pi, 0, -(math.pi/detail) do
	local c = {math.random(0,200),math.random(0,200),math.random(0,200)}
	local j = 1
	for i = 0, 360-rot_inc, rot_inc do
		local r = (rad * math.sin(y))
		local x = 0 + math.cos(math.rad(i)) * r
		local z = 0 + math.sin(math.rad(i)) * r
		data.points[n] = { x = x, y = (rad * math.cos(y)), z = z }
		n = n + 1
		j = j + 1
	end
end

-- Create a colored grid to apply to the sphere
local grid = {}
for x = 1, detail * 2 do
	grid[x] = {}
	for y = 1, detail do
		grid[x][y] = {math.random(0,1)*255,math.random(0,1)*255,math.random(0,1)*255}
	end
end

-- Create the polygons
n = 1
for y = 0, detail-1 do
	for x = 0, detail * 2 - 1 do
		local c = grid[x+1][y+1]
		local p = y * (detail*2)
		local xx = x
		if x == detail * 2 - 1 then xx = x - (detail * 2) end
		local p1, p2, p3, p4 = p + 1 + x, p + 2 + xx, p + (detail*2) + 2 + xx, p + (detail*2) + 1 + x

		if y > 0 and y < detail-1 then
			data.triangles[n] = { p = {p1,p2,p3,p4}, c = c }
			n = n + 1
		else
			data.triangles[n] = { p = {p1,p2,p3}, c = c }
			data.triangles[n+1] = { p = {p3,p4,p1}, c = c }
			n = n + 2
		end
	end
end

return data
It's not the best code and creates redundant points at the poles, but without some optimization code this is as good as I can do for now. The triangles (3-point polygons) are used for the poles to make sure they appear. All other polygons are 4-point polys to speed up drawing. A little buggy. If I don't use a certain detail value it crashes. Needs work. Values of 10, 20 and 40 work fine.

And that is how I spent my day. Oh boy.

Re: What's everyone working on? (tigsource inspired)

Posted: Fri May 17, 2013 12:12 pm
by Robin
Very nice.

Re: What's everyone working on? (tigsource inspired)

Posted: Sat May 18, 2013 12:06 am
by Jasoco
I'm thinking of calling it the "SuperEffex" or "SuprEffecs" engine or something like that. Something that recalls the golden days of the early '90s when 3D was simple and mostly texture-less. I want to be able to create games with it that can vary between StarFox quality (Simple low-count polygons with barely any textures) to Virtua-style games like Virtua Racing. (Which had releases on every Sega system from the Genesis, 32X, *Saturn and Arcade with the penultimate release being on the PS2.)

Something like this:

Or this:

(The funny thing is in both videos above the preview screenshot is from the exact same level, in almost the same place on both. Amazing that wasn't planned either. I really wish I owned that Sega 3D Ages 2500 game above. The art style of the simple polygons with modern effects really makes me happy. Sucks it was only released in Japan and never put on PC.)

Is completely plausible with the engine I currently have. The actual hard part would be designing the levels themselves. Without an editor it comes down to manually typing in all the point and polygon locations and references. I already have an algorithm to optimize and remove redundancies and chop levels into chunks. It's just about creating the layouts.

I've been rewriting the engine for the past few weeks because I discovered I was focusing too much on making a game that doesn't exist than building an engine that can support the game I want to make. I now have an engine very close to that.

The Arcade version for reference:

And the Saturn for good measure:


Guess the only one I didn't post is...

Ah, Genesis. The cartridge for the Genesis version is actually bigger because it has extra processors in it much like the Super FX games. Which also helps it have a good enough framerate on the Genesis.

*I actually own the Saturn version. I have proof. Now if only I could find my Saturn. I also have the Genesis version, but sadly not the 32X version or the PS2 one.)

Re: What's everyone working on? (tigsource inspired)

Posted: Sat May 18, 2013 11:50 am
by conroy
I just finished building Nightly LOVE so that we can all test out LOVE 0.9.0 without having to build it from source. Enjoy!