English Amiga Board


Go Back   English Amiga Board > Coders > Coders. Contest > Coders. Entries

 
 
Thread Tools
Old 01 September 2018, 08:23   #1
betajaen
Registered User

 
Join Date: Apr 2018
Location: Wales, UK
Age: 36
Posts: 76
Entry: Shade

Title:
Shade

Genre:
First Person 3D Action Adventure

Original concept:
Yes

Expected game size:
Hours

Team members:
Betajaen (Robin Southern)

Targeted spec:
A1200 with 68030

Tools to be used:
Blitz Basic
Personal Paint
Cinema4D

Description of game:
TBD
betajaen is offline  
Old 02 September 2018, 13:00   #2
Ian
Global Moderator

Ian's Avatar
 
Join Date: May 2001
Location: Derby, UK
Age: 40
Posts: 2,141
Discussion thread is here:

http://eab.abime.net/showthread.php?t=94029

Please keep this thread clear for betajaen's updates only.
Ian is offline  
Old 02 September 2018, 16:43   #3
betajaen
Registered User

 
Join Date: Apr 2018
Location: Wales, UK
Age: 36
Posts: 76
The Story

The game is set on a planet (well moon really) where human-like Aliens live, they orbit a massive Saturn style Gas Giant. Every 20 years or so the entire population of the planet must live underground for a few years, cramped together in underground cities. This is because their second sun unexpectedly collapsed into a white dwarf a few hundred years ago. The Gas Giant shields most of the planet from the harmful radiation and material spewed out by the jets of the White Dwarf, but the Gas Giant orbit takes it dangerously close to the Star, making it too dangerous to be outside.

This particular orbit is very nasty for some reason. Contact with some of the other underground cities have been lost for months now, and things are starting to look grim. You’re tasked to find out why the other cities failed, and if how – the solution to stop it before it happens to yours.

Your to venture to the surface, and into the nearest city, and contact them – if anyone is there, and if not search for survivors, documents or materials.

Setting

Shade is is inspired by the System Shock and 3D Fallout games. The game itself is presented in 3D, from a first-person perspective. The game will feature outdoor and indoor environments presented in a stylised matter. Taking cues from System Shock and Fallout, much of the narrative will be presented through stories, journals and radio conversations. Rather direct NPC interaction. Although the game may feel a little lonely by yourself, it won’t be.

Design

The game is written in Blitz Basic. It is intended for an Amiga 1200 with a 68030 processor, and some Fast Ram. This is the Amiga I’m developing on, so this is the minimum specification.

Progress

I sometimes stream game development on the Amiga at twitch.tv/betajaen and I hang about on the AmigaBill Discord channels. But I will keep a diary of what I’m going on in here as well.
betajaen is offline  
Old 03 September 2018, 18:46   #4
betajaen
Registered User

 
Join Date: Apr 2018
Location: Wales, UK
Age: 36
Posts: 76
Technical

I've been experimenting with various triangle drawing algorithms. It's slightly non-standard from the traditional top/bottom/split method, but it seems to do the job nicely, for now.

That out of the way. I proceeded to think about how to do some basic drawing optimisations. All my research led me to doing Chunky was the lesser of two evils. How Frontier, Carrier Command, F117-A did realtime 3D graphics on stock Amigas must be actual black magic.

Blitz has many chunky-to-planar libraries. I decided from the get go, I wouldn't need many colours for this game. 32 at most, but I can get away with 16. All of the chunky libraries revolved around AGA, and they must use 256 colours. A waste for me, and obviously a performance hit.

I decided not to use Mildred, BChunky or whatever, and just us assembly direct. Which finally led me to this treasure trove by Kalm.

At first, I tried the chunky 2 5-bit planar. I just hand-typed it over from PC to Amiga, not the best way of doing it, but I felt I learned something. Once I understood, how to get into 'Assembly mode' in Blitz, and safely exited. I had something on the screen, not a lot, but it was something. But; I couldn't get the 5-bit planar routine working very well. With certain colours, the screen would get corrupted around those particular colours. However; When it was running, the tool I used, said I get around 62FPS at 320x180 on my Blizzard-III @ 50Mhz. NICE!

So I tried the generic 4-bit version, and it works. Really well. The following screenshot, shows me just writing random pixels to the screen. There is plenty of optimizations to go, but it's a start, and I can make head way on the 3D to 2D drawing routines.

Story and Gameplay design

I've thought more about the story and the world it's set in. I very much like the concept that your playing an Alien. Not to terribly Alien, but different enough from a Human, that the game and world should feel different and mysterious enough for the player. I'm imagining them to be human-like, possible no or little hair, around 4 and half feet tall, 10 fingers and toes, no tail. No scales. Just your average Star Trek alien.

Our protagonist is a part of a scientific group, as a apprentice of a scientist/teacher. The protangoist is very young, two years old, and was born underground, in this current orbit. The alien race matures very quickly, but has a reasonable life span of about 100-130 years. The alien races, uses a mentor/mentee form of teaching, where small groups are assigned to professionals to learn what they need to learn. Typically a person will go through several careers/professions in life as they master them.

As the game is following parts of System Shock in design, I'd like to have a research notes system - a notebook as such, which is filled in as the game progresses. Such as learning about new elements, molecules, scientific theories, names of people, events in history, sports teams, methods of entertainment, jokes! and so on. The game will feature lots of puzzle elements in. Getting through doors, getting past traps, key-codes, or other types of puzzles. You'll need to refer to the notebook to get past these.

That's it really. Not bad for a weekend.
Attached Thumbnails
Click image for larger version

Name:	shade1.png
Views:	78
Size:	750.0 KB
ID:	59663  

Last edited by betajaen; 03 September 2018 at 18:58. Reason: My English is terrible today!
betajaen is offline  
Old 25 September 2018, 17:30   #5
betajaen
Registered User

 
Join Date: Apr 2018
Location: Wales, UK
Age: 36
Posts: 76
Hello again

Sorry, I haven't put anything up. I've been a bit busy with Nim and other things. However; I post more frequently on AmigaBill's discord.

So I decided to move over to C (then probably Nim when it's a bit more stable), and the bulk rendering code in assembly. I've added in Chunky to Planar support, which works great, and I've also added in triangle drawing, which is half assembly/half C.

So today and bit of yesterday, I was working on 3D to 2D projection, and here it is.

Nothing to special. There is no culling at all, and no depth buffer as well. But as many OpenGL/DirectX programmers will say, once you have a triangle on the screen - you're 90% there; or at least I say it.

(And I'm know I'm being a bit cheeky with Visual Studio and WinUAE, but my A1200 takes ages to compile in C )




Secondary, I've been reading on BSP and Occlusion Culling. I've decided to use Unity (of all things), to be the Editor for the maps. I've written a little BSP algorithm, and using Recast (again of all things!) AI path navigation, I can use the triangle walk mesh, to calculate visible triangles. I do this via a clever system, of taking panorama shots - and colouring each triangle in it's own unique colour. Using a simple histogram/hashset, you have a knowledge of what exact triangles are visible, and how big they are. Couple that with the depth buffer sampling, you can get a pretty good picture of what triangles the Amiga should draw first, and ones that less important.

Next step, is to add in proper frustrum culling, backface culling, phong-ish shading, etc. Angle support for meshes and cameras, and your standard 3d engine functions; lookAt, etc. I'll leave optimisation alone for a while, I just want feature-feature-feature for now, until I have something that is playable.



Edit

I forgot, I did a video of the Visualisation Technique. Here it is.

[ Show youtube player ]

Last edited by betajaen; 25 September 2018 at 17:33. Reason: Added video link
betajaen is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Entry: ModSurfer arcanist Coders. Entries 7 Today 02:20
Windowblinds rollup shade etc. squidbass request.Apps 4 06 February 2017 11:30
No entry for Argonaut's A.T.A.C.? Aegis project.aGTW 10 02 February 2016 14:43
False entry ? Another World HOL data problems 1 21 August 2008 23:12

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 13:26.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2018, vBulletin Solutions Inc.
Page generated in 0.11619 seconds with 16 queries