[an error occurred while processing this directive]
MAIN ADD ARTICLE NEW ARTICLES POPULAR SEARCH
ARTICLES
IN-HOUSE AND MORE!


   
Snok – Can you handle the size?

Introduction

 

A few days after we released the beta/demoversion of Snok, I was asked by CFXweb to write a small, technical article about it. In this article I will try to point out some interesting technical aspects from the project. I do not say that any of these algorithms is the way to do things, it's just our way of solving the problems.

 

For those who haven't heard; Snok is a first person multiplayer 3D snake game. I guess, or even know, we're not the first human beings with the idea of creating such a game. But don't think we ever stole this idea from someone; it's nearly six billion people on this planet and similar ideas may appear at the same time at different places.

The demo/betaversion of the game may be downloaded from...

Snok Rating: 10.00, 1 Votes Rate It!

First Person 3D Snake Game, for up to 6 people!

A beta/demoversion of the game Snok. It's the result of several years of hobbyprogramming and a schoolproject, ending up with a first person realtime multiplayer 3D-snake game.

Added: 3-Jun-2000 [News] [ Add Review!] [Homepage] [DOWNLOAD!] (6,778 Kb)


Additional Files

Level Editor & Snok Bugfix (Level Editing Tutorial available)




Please consider this game as what it is: a schoolproject. It's not a commercial production, developed by professional programmers or artists.

PS: I just wrote a tutorial on how to create your own levels for Snok. You can find in the "download" section on the snok website.

 

Aquarium

Snok is based on a 3D engine called Aquarium that I've developed over the last few years. It was originally programmed for the purpose of creating realtime graphical demonstrations (or demos, as we like to call them). These demos may be downloaded from www.tls.no. They must all be run in dos/win95/win98 environment (not NT or Win2k).

The engine is heavily based on importing models and keyframing by using Lightwave file formats. It's very easy to develop converters for these formats, as they are very well documented. Like every other 3D engine in this world, Aquarium has loads of other more or less spectacular features. Instead of listing up every tiny little feature, I want to present the overall design idea of the entire engine. For people who have programmed some 3D, but still haven't got started on the Engine of Their Life, this could be very interesting. Again: I do not claim that this is the way to design an engine. Still, there may be some "aaah..."s and "of course..."s for many of you. This design is entirely developed out of my own ideas, and has proven through four demos ( please check out www.tls.no ) and the game of Snok to be very scaleable and robust.

Aquarium: (html) (word)

PS: I will start to redesign some parts of my engine soon, and the model described in that document will probably be changed to some kind of tree-structure. The flat structure, where all objects (Fishes) exist side-by-side appears not to be suitable in some situations.

 

Collision detection

The collision detection library was the first major part to be developed for Snok. In a game where the main goal is not to crash, such a library is quite vital. :) As many of the classes and datastructures from Aquarium was to be used, some of the design were already done. The following document describes the collision detection algorithm we designed for the game of Snok. The description is totally independent of programming language and application design. Please note that we actually developed this algorithm entirely on our own without any

Collision detection (html) (word)

 

Snake Generator Algorithm

The last part I'll talk about is the algoritm for generating the Snok's geometry as it's running. Of course, this is not an algorithm that may be reused for a lot of purposes. Also it is more independent of programming language and application environment than the previous. Anyway, if any of you guys are interested, here goes:

Snake Geometry Generator (html) (word)

 

Torbjørn Vik

Cyberfish/TLS