View unanswered posts | View active topics It is currently Tue Sep 07, 2010 3:41 pm



Post new topic Reply to topic  [ 6 posts ] 
Progress Report 7 (27.7.2010) 
Author Message
Admin

User avatar
Admin
ArcanumAlive Developer

Joined: Wed Jul 08, 2009 5:04 am
Posts: 204
Location: Abyss
Post Progress Report 7 (27.7.2010)


Okay, there is another useless progress report for those who are interested.

Finished from previous report:
-ABaseSocket
-ATcpSocket
-AUdpSocket
-ATcpServer

New stuff:
-Network protocol - I have designed a network protocol for OpenArcanum. Took me about 2 days to implement it, make it traffic friendly and secure. After all, I have managed to shrink it to *absolute* minimum. A small intro: Packet size can be up to 256KB, header has 4 bytes, data are compressed using deflate, and footer has 4 bytes too. It also contains crc16 and header marker, so its safer than *normal* packets.

-Fixed point math - One class and over 500 lines of fixed point math stuff.

-HTTP downloading - Yop, now files can be downloaded via AFileSystem if file was not found on HDD.

New classes:
-ANetworkPacket - Class for sending/receiving packets, used for both server and client.

-AServer - Game server. Its inherited ATcpServer. Basic functions already implemented, like pinging, client logging, new account registering, etc-

-AServerClient - Client from server side.

-AClient - Client or player if you wish.

-ASystemSetting - Class to store engine settings.

-ASystemVariables - Its something similar to cvar system from Quake, basically its bank of system variables that are loaded from file and can be used in game.
Variables are added via lua configuration script, like client.lua:
setv("host_address", "127.0.0.1")
setv("host_port", 31435)

Also they can be changed via command line or ingame console.

-AScriptEngine - Lua script processing, some parts of engine are already binded to lua, like camera, gui and configuration files loading (like that client.lua), but still, its kinda lightweight...

-AMemoryAllocator - Used for re/allocating, freeing memory, basically its moved stuff from AMemoryUtils, it still supports dlalloc, nedalloc and malloc, but this time I've integrated a Boehm's garbage collector into it, which is the fastest from them all... for example, loading Arcanum.dat, which contains over 75 000 files, takes only about 800 msec, and with nedalloc, which claims to be the fastest, its about 1400 msec.

-AVideoStream - Used for loading movies. It uses a ffmpeg, so its possible to play almost any media file, including bink videos, however, I found it kinda *unstable*, because I have experienced a *lot* of nonsense crashed and I had to redownload & rebuild its libraries a several times to get full working build.

Maybe it was because I'm using a MS Windows & MS VS2008?:) who knows... now its fine, but still, that library is pretty massive, and I'm not sure if its right choice, maybe better will be to support only one video codec + file format. (?)

-AVideoPlayer - Inherited from AVideoStream, but this time it also renders decoded frames via OpenGL. Its still unfinished, only video playback is implemented, audio is still missing since AGate has no audio subsystem implemented, yet.

-ATexture - Moved some stuff from AImage to this, since a lot of new texture-only related methods were added.

New templates:
-ASingleton - Yo, fluffy clouds...
-ASharedObject - Or shared pointer if you wish...

Thats not all, but again, I'm tired already with writing :) sorry...

Here is also some source code statistics made by SourceMonitor:
Image

Have a nice day. :drool:

_________________
ImageImage
ImageImage
>>>ArcanumAlive/OpenArcanum at Facebook<<<


Tue Jul 27, 2010 9:31 pm
Profile E-mail WWW
Newbie

User avatar
Newbie

Joined: Mon Jul 19, 2010 3:41 pm
Posts: 4
Location: Unknown
Post Re: Progress Report 7 (27.7.2010)


Image
Omg :shock: 10 FPS


Sun Aug 01, 2010 8:04 am
Profile E-mail
Admin

User avatar
Admin
ArcanumAlive Developer

Joined: Wed Jul 08, 2009 5:04 am
Posts: 204
Location: Abyss
Post Re: Progress Report 7 (27.7.2010)


NeOn wrote:
Omg :shock: 10 FPS


Yep, I know, its some nasty OpenGL bug on Windows, because I've tried almost everything, and speed is still slow, even when I'm not rendering anything... it just drops from 1300 FPS to 10FPS in less than 2 seconds, and I've checked everything, its not a bug from my side... maybe I'll try it on another computer, maybe its some kind of hardware/driver problem, because in previous version of OpenArcanum, before I moved from Qt, I remember that I got more than 300FPS while rendering...

_________________
ImageImage
ImageImage
>>>ArcanumAlive/OpenArcanum at Facebook<<<


Sun Aug 01, 2010 10:18 am
Profile E-mail WWW
Admin

User avatar
Admin
ArcanumAlive Developer

Joined: Wed Jul 08, 2009 5:04 am
Posts: 204
Location: Abyss
Post Re: Progress Report 7 (27.7.2010)


Still can't fix that bug, damn... but at least I've implemented a unicode support:

Image

;)

_________________
ImageImage
ImageImage
>>>ArcanumAlive/OpenArcanum at Facebook<<<


Mon Aug 02, 2010 1:12 am
Profile E-mail WWW
Newbie

User avatar
Newbie

Joined: Mon Jul 19, 2010 3:41 pm
Posts: 4
Location: Unknown
Post Re: Progress Report 7 (27.7.2010)


Quote:
...from this screenshot, you may find out that support for multisample anti-aliasing, anisotropic filtering and framebuffer objects were added, what you can't see that also support for GLSL, vertical synchronization and texture compression (DXT1-5) were added as well :)


I would never have thought that it could be used for two-dimensional games, in addition to the isometry. :?


Tue Aug 31, 2010 10:13 pm
Profile E-mail
Admin

User avatar
Admin
ArcanumAlive Developer

Joined: Wed Jul 08, 2009 5:04 am
Posts: 204
Location: Abyss
Post Re: Progress Report 7 (27.7.2010)


NeOn wrote:
Quote:
...from this screenshot, you may find out that support for multisample anti-aliasing, anisotropic filtering and framebuffer objects were added, what you can't see that also support for GLSL, vertical synchronization and texture compression (DXT1-5) were added as well :)


I would never have thought that it could be used for two-dimensional games, in addition to the isometry. :?


Yep, AGate engine is getting advanced day by day :) everything I implemented till now can be pretty much used in both 2D and 3D games.

(For example antialiasing and anisotropic filtering can be used also in 2D games, because textures are rendered as textured quads, so improves quality of rendered frames.)

GLSL is good for post processing effects, like blur, radial blur, glow, bloom, convolution kernels and so on. For example, I've tried to use this shockwave effect in OpenArcanum: http://www.youtube.com/watch?v=8emVKwiW ... r_embedded

Looks nice right? such effect could be used for dynamite explosion :P

Also texture compression could be used to decrease video/ram memory requirements:
Quote:
<Texture> Id: 8, Original: 171KB, Compressed: 43KB, Format: DXT5
<Texture> Id: 9, Original: 16KB, Compressed: 4KB, Format: DXT5
<Texture> Id: 10, Original: 10KB, Compressed: 2KB, Format: DXT5
<Texture> Id: 11, Original: 10KB, Compressed: 2KB, Format: DXT5
<Texture> Id: 12, Original: 43KB, Compressed: 12KB, Format: DXT5
<Texture> Id: 13, Original: 128KB, Compressed: 34KB, Format: DXT5


You see? it can decrease size pretty much :)

A while ago, I also added support for multiple monitors, for people like me:
Image

...and here is when used DXT5 compression:
Image

_________________
ImageImage
ImageImage
>>>ArcanumAlive/OpenArcanum at Facebook<<<


Wed Sep 01, 2010 4:29 am
Profile E-mail WWW
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 6 posts ] 


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by Vjacheslav Trushkin for Free Forum/DivisionCore.