Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411504 Posts in 69373 Topics- by 58429 Members - Latest Member: Alternalo

April 25, 2024, 06:18:07 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsAlithia Engine DevLog Splat Thread (in cyberspeace 3D matrix colors)
Pages: [1]
Print
Author Topic: Alithia Engine DevLog Splat Thread (in cyberspeace 3D matrix colors)  (Read 2903 times)
Bad Sector
Level 3
***


View Profile WWW
« on: August 26, 2010, 08:24:36 PM »

Cool

This is a DevLog thread about a minimalistic 3D game engine (oriented to FPS games because that's what i like and love) i'm writing called Alithia Engine (Alithia means "truth" in Greek). I wanted to have this here earlier but i decided to wait for a bit until i was sure i'm going to actually work on it instead of writing a few lines of code and dumping the thing altogether in the Great Unfinished Projects Void.

Grin

However i also decided (after the previous decision) that i will never be sure about that so the choices were two: have it here or not. Now, i know there are many unfinished projects around here and adding yet another isn't helping anything. Besides i will feel (slightly) bad if someone actually likes the project and i fail to finish it. Not that "finishing" an engine makes much sense though, there is always something neat to add or modify. Or remove. So this is my unofficial excuse.

Smiley

The engine has a minimalistic design. This means i'm going to do as less as i can think to have things working, i'm not going to spent more than needed time to make things go fast and that only if they actually prove to be painfully slow (in my own hardware, which includes an Acer Aspire One netbook - yes it works so far, no it isn't fast but a game will be playable i hope). The structures, world, etc all are simple and implemented in the first (and easiest) method that comes in my mind. If that's bad or slow, it'll be proven in practice while the engine runs: is it really that bad? If so, i'll rewrite it. Otherwise i'll leave it there and put on extra armor to help me survive the CS zombie apocalypse.

Undecided

The inspiration of the engine was the somewhat popular Cube 1 engine, so you have an initial idea of what to expect (don't worry there will be screenshots and videos in this thread). The world is made up of a 2D grid will cells that contain ceiling and floor height, textures and other stuff and the engine shoots rays from the camera to the world to figure out what is visible and what not. There is also the ability to put arbitrary 3D geometry in the world so stuff-over-stuff can be made although it's not as optimal. There is an in-game editor where you fly around the world and modify stuff like changing textures, adding and removing entities, putting lights, getting stuck, wishing for real 3D structures, cursing me for my incompetence, wondering why you're using that engine, etc. Still the Cube 1 engine was used only as an inspiration, none of its code was used or harmed at the process of writing Alithia Engine.

Huh?

Alithia is written with slightly more modern hardware in mind, even if the screenshots will remind you of Quake -1 and the code doesn't use any newer GL feature than what was available in OpenGL 1.1 (except multitexturing and possibly something else i don't remember right now). Still, despite the initial WTF impression, the engine performs very good in limited hardware such as the aforementioned Acer Aspire One which contains a puny GMA 950 or something slow like that, on a similarly slow CPU (let's all remind ourselves, no matter how painful it is, that three-digit-ed GMAs do vertex processing and lighting on the CPU). So, in a nutshell Alithia is fast. Ok it isn't but it tries a little.

Lips Sealed

In a failed attempt to be a good netizen, i decided to give the source code of the engine away for free under a very permissive license, zlib. This means that you can do whatever you want with the engine as long as you don't claim you wrote it yourself and that i can't sell it for billions, be rich and have crocodiles with castles or something like that. However as i said, the attempt failed and i'm not much of a good netizen, but don't worry because thanks to the force of habit the engine is and will be free for eternity or at least until i break free from said force. For anyone interested, the engine is written in plain pure simple C, SDL and uses OpenGL. Beyond that it contains its own everything, which includes rendering, model format, Blender 2.5 exporter, GUI system, bad physics, awful controls, scripting language, etc. Actually the scripting language part isn't specific to Alithia Engine, but it is a generic embeddable scripting language i'm writing called LIL (for Little Interpreted Language - cute isn't it?).

Mock Anger

Ok, now some screenshots:

Open area


Eh, closed area

WTF

Also for anyone interested in stuff you can download here are some links:
http://github.com/badsector/alithia - this is the engine's site at GitHub
http://github.com/badsector/alithia/downloads - this is the download section of said site from where you can download the Alithia Engine Prelpha Zero release, the first Ever release of this engine. It contains binaries (executables) for Mac OS X, Windows and Linux.
YouTube Playlist with many videos i've uploaded and i'll upload while developing the engine. Don't worry i'll also mention them here!
The never up-to-date "howitworks" document which tries to explain in more detail how the engine works. So far only the world rendering is explained but that's okay because beyond that most other parts are pretty standard.
git://github.com/badsector/alithia.git - public git repository. It doesn't contain the data files which you need to download from the GitHub site above (actually you probably need to download the Alithia Engine Prealpha Zero archive - i'll upload new data files soon-ish).

Droop

So, until i have anything new to mention (something that i do quite often, unless i have nothing new), feel free to comment :-). As a starting point,

. Note that the feature mentioned in the video's comments (skybox lighting) isn't available in the preview above but it is available in the last commit.

Have fun! :-)
Logged

~bs~
swordofkings128
Level 6
*



View Profile
« Reply #1 on: August 26, 2010, 08:54:54 PM »

This is really cool Kiss! I love first person shooters!

Keep up the good work, bro.
Logged

RCIX
Guest
« Reply #2 on: August 26, 2010, 10:29:30 PM »

Very impressive! I'm not one for FPS games but it looks like you're doing a good job here.

I'd recommend looking at Lua instead of making your own scripting language; Lua is practically an industry standard and a really great choice.
Logged
Bad Sector
Level 3
***


View Profile WWW
« Reply #3 on: August 26, 2010, 11:44:06 PM »

Nah, i prefer to write my own scripting language, its one of the programming topics that interest me :-).

Besides i'm sure lil is more dynamic than Lua (although i can't say the same about speed).
Logged

~bs~
RCIX
Guest
« Reply #4 on: August 27, 2010, 12:42:03 AM »

Nah, i prefer to write my own scripting language, its one of the programming topics that interest me :-).

Besides i'm sure lil is more dynamic than Lua (although i can't say the same about speed).
No problem, i was just suggesting it so you could spend more time on the actual engine part. FWIW, i'm very interested in the subject of designing programming languages too Smiley
Logged
Bad Sector
Level 3
***


View Profile WWW
« Reply #5 on: August 27, 2010, 04:32:28 PM »

Can you see the sparkles?



No? Of course not... they're not here anymore!.

Yes, i fixed the t-junction and the inaccurate visibility rays issues. Not really "fixed", more like "throwing the issue under the carpet" by making the skybox render only in the actual skybox polygons as opposed to the whole screen. But sparkles are gone (ok almost gone - if there are skybox polys behind a wall which isn't an occluder you might see some), gaps are gone and the overdraw is reduced a lot which means speed is also improved :-).
Logged

~bs~
Alomard
Level 0
**


View Profile
« Reply #6 on: August 28, 2010, 10:19:02 AM »

a coachgun Smiley
Logged
Bad Sector
Level 3
***


View Profile WWW
« Reply #7 on: August 28, 2010, 07:27:31 PM »

a coachgun Smiley

So THIS is how it is called!  Shocked

*searches google*

Thanks, now that i have reference images i might model a better one  Beer!
Logged

~bs~
Bad Sector
Level 3
***


View Profile WWW
« Reply #8 on: September 04, 2010, 05:47:43 PM »

I decided to try some new styles. One that i seem to like (and i'm actually able to produce... somewhat) is pixelarty textures. Here "pixelart" refers to the textures' look not the rendering, okay? :-P



, try the 480p version :-P

Unfortunately QuickTime mutilated the colors a bit...

Here is a shot for those who don't feel like watching a video (although the video shows much more *and* the editor in action!):


Logged

~bs~
moi
Level 10
*****


DILF SANTA


View Profile WWW
« Reply #9 on: September 04, 2010, 05:50:17 PM »

That looks good, nice texture work. That's a pretty solid engine you got there.
Logged

subsystems   subsystems   subsystems
Bad Sector
Level 3
***


View Profile WWW
« Reply #10 on: September 10, 2010, 02:29:55 AM »

This is engine-related (as opposed to game related), so i'm posting it here instead of the Pseudosentience thread...

I added the ability to expose some C variables via scripting like

Code:
script_reg_var("overdraw", RVT_INT, &overdraw);

so the user can type in console (or to a script)

Code:
set overdraw 1
 .. or ..
set overdraw 0

to enable/disable overdraw rendering mode.

Also i implemented said mode and wireframe mode. Both can be used to tweak world geometry for culling. An example of these in use:



The first image shows the normal view, the second the same view with wireframe overlay, the third the same view again with overdraw mode and wireframe and finally the fourth image shows the same view with overdraw mode and wireframe with occlusion culling turned off (controlled by the "novis" variable).
Logged

~bs~
Bad Sector
Level 3
***


View Profile WWW
« Reply #11 on: September 13, 2010, 08:05:26 AM »



Trying yet another style :-P

Basically similar to the previous one, but now i sub-texture the panels and do some lighting painting in edges :-).
Logged

~bs~
increpare
Guest
« Reply #12 on: September 13, 2010, 08:12:44 AM »

Textures are a lot sexier : )
Logged
Bad Sector
Level 3
***


View Profile WWW
« Reply #13 on: September 13, 2010, 11:21:58 AM »

People over at internets told me that the texturing sucks. One of the issues was the trims, or more precisely, the lack of trims. The engine doesn't allow for freeform 3D so i couldn't just put more geometry for trims. So i decided to add special optional trim materials in cells for an upper and a lower trim. Since the engine is mostly an indoors engine, i think this won't be too much of a special case and trims will be used more often than not. So here is the result...



The other texturing issues were the totally random use of the texture in the steps slope and that the ceiling and the floor look too similar. Well i can't imagine a fix for the latter but i'm going to try a fix for the former tomorrow. However both have to do with making better art while the trim one needed engine modification improvement.
Logged

~bs~
mokesmoe
Level 10
*****



View Profile WWW
« Reply #14 on: September 13, 2010, 03:25:47 PM »

The trim is nice. Hand Thumbs Up Right
Logged
Scut Fabulous
Level 4
****



View Profile WWW
« Reply #15 on: September 13, 2010, 06:35:44 PM »

This looks great.  New textures and overlays remind me of demoscene aesthetics.
Logged

Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic