Skip to content

v0.1.7

Latest

Choose a tag to compare

@Ghoster738 Ghoster738 released this 21 Apr 00:53
· 3 commits to main since this release
a07fc60

🧺πŸ₯šπŸ‡ The Easter Release πŸ‡πŸ₯šπŸ§Ί

I did not expect to release this project on Easter, but here it is. I had made a lot of improvements since v0.1.6. The primary being actor support.

You can view the video for a demonstration of this project here.

Improved Actor Support and Ground Casting

Thanks to BahKooJ's notes, I now support more actor types. The maps now looks more alive than before. You can finally find the player. In a mater of fact, some actors move across the map. To list the improvements and additions would thicken these notes. So, I decided not to list them all. Note: That the actor pathing support is not accurate yet. Ground Casting is also vastly improved. It is both faster and more accurate.

Before

actor-before-0
actor-before-1

After

actor-after-0
actor-after-1

Fogs and Decals are Supported.

These quadrilaterals added much detail to Future Cop. It improves the look of Griffith Park's map.

Before

quad-before-0
quad-before-1

After

quad-after-0
quad-after-1

Map Vertex Color Upgrade/Fix

I had improved the reading of vertex colors for map sections and now they show up properly in the map viewer. This fixed the glitches found on the maps, and the maps now look both better and brighter.

Technical Details

It turned out that the vertex colors in the color palette stored in map sections are actually 16 bit rather than 15 bit. The color format used 5 bits for each channel. The three channels are red, green, and blue. The last bit was used to double the brightness of the color rather than being unused.

Before

shading-before

After

shading-after

Added "shading" to Model Instance Polygon Rendering.

I also worked on giving shading to model instances that should have this shading. This gives the models a little bit more detail. Right now it does not blend in with Future Cop, but it is better than nothing.

Before

model-instance-shading-before

After

model-instance-shading-after

Incomplete Software Renderer

This renderer is only useful for rendering cut-scenes, font and images. It does not render map geometry yet. It also uses most of your CPU. It is not recommended for use yet, and it is there to practice my optimization skills.

Graphics Configuration

I am now giving you the configuration file support. This will enabled you to edit some of the graphics options. The renderer has two options GLES2 or Software. GLES2 is the default, and Software is not useful as of this release. GLES2 has two graphics options semi_transparent_limit is the triangle limit adjust the semi-transparent triangle limit. force_gl2 if set to true would make the program try to use OpenGL 2 then to OpenGLES 2. Software right now only has one option pixel_size. If you increase this option it should make the program go faster, but at a reduced resolution.

[general]
version_major = 0
version_minor = 0
renderer = GLES2

[gles2]
semi_transparent_limit = 131070
force_gl2 = false

[software]
pixel_size = 1

Controls Configuration Update

I decided that it was weird to use JSON rather than INI to store key-mapping. So, here is what configuration files look like now. The section "player 1" holds the configuration mappings. This does mean that the program will no longer read from controls.json file. I recommend that you remove it if you want to save a little bit of data storage.

[general]
control_library = SDL2
version_major = 0
version_minor = 0

[player 1]
menu = Escape
up = W
down = S
left = A
right = D
rotate_left = Q
rotate_right = E
weapon_light = J
weapon_medium = K
weapon_heavy = L
action = ;
jump = Space
camera = Tab
change_target = T
map = M

Video Volume Adjustable in "sound.ini"

I added the video_volume parameter to adjust video volume. 2 is the max and 0.0 is the minimum.

[general]
music_volume = 1.000000
sfx_volume = 1.000000
announcement_volume = 1.000000
master_volume = 1.000000
video_volume = 1.000000

[listener]
sound_limit = 32

[announcement]
queue_limit = 32

What's Changed

Full Changelog: v0.1.6...v0.1.7