Thursday, December 31, 2009
at
7:20 AM
|
0
comments - [Click to post comment]
LRG wishes everyone a very happy new year 2010 with more development goodness coming in the year ahead !!!
Posted by
Prometheus
Thursday, December 31, 2009
at
7:20 AM
|
0
comments - [Click to post comment]
LRG wishes everyone a very happy new year 2010 with more development goodness coming in the year ahead !!!
Posted by
Prometheus
Wednesday, December 16, 2009
at
5:03 PM
|
3
comments - [Click to post comment]
Just released Aftershock's own official page: http://aftershock.liquidrockgames.com/ Will be updating it with more content to come in the future.
Posted by
Prometheus
Wednesday, October 28, 2009
at
7:51 PM
|
5
comments - [Click to post comment]
Track node editor has finally been completed with ability to define checkpoints for race route. I did a real world test with our first level and successfully defined the whole track without any issues. :D Yay! It's a bit cumbersome to use though since we don't have a proper UI. Our level editor as of now truly requires a pro. lol. Anyways, for some eye candy shot to please our fans, here it is :D
Posted by
Lf3T-Hn4D
Thursday, October 22, 2009
at
2:11 AM
|
0
comments - [Click to post comment]
Just changed our direct facebook URL to: http://www.facebook.com/LiquidRockGames
Posted by
Prometheus
Tuesday, October 13, 2009
at
7:57 AM
|
5
comments - [Click to post comment]
While waiting for my code to compile, I started thinking how we want to do re-spawn effect. Blinking the player craft directly into the track is downright ugly. Hence, I thought having some teleporting effect would be cool. Here's what I got after a few minutes of hacking into our already crazily mega shader. Imagine that + some particle effects. :D However, it'll still take a while before I actually get this into the game. I need to work on an effects system to easily apply custom effects to the scene.
Posted by
Lf3T-Hn4D
Monday, October 12, 2009
at
3:30 PM
|
3
comments - [Click to post comment]
Over the week I've been working on a very important feature; Track system. The need for this system was due to requirements of a racing game. In a racing title, we need to know if our player craft is inside or outside of the track. We also need to know how to respawn back into the track. Last but not least, we need to have a way to know if a player has finished a lap. Thus the track system come into place. With a way to define tracks, all of these will be possible. What's even cooler is the ability to give a good estimate of how long a track level is. :) However, the problem lies in defining the track. Because it's impossible to do it outside by text file, we need an editor to lay our tracks. This turned out to be quite a pain in the ass to implement. In fact it's more complex than prefab placement since we need to link tracks together to form a track chain. Anyways, I've finally got a usable editor tool in our world editor. Here's a screen shot of this WIP track edit mode: Ignore the lighting. The main point is the track. Obviously lighting is just default crap since I created a new level just to test this in a quick manner. P.S. For those who are wondering, I'm using cubic bezier curves for each path segment. Thanks to my bro, we've got quite an advanced bezier curve functions like getting arc length, finding closest point on path and splitting a set of points evenly along the path. Trust me it's no easy feat. Requires lots of integration maths and Newtonian Interpolation. That plus our rusty math, this took us almost two days to figure out. :P
Posted by
Lf3T-Hn4D
Saturday, October 10, 2009
at
11:57 PM
|
0
comments - [Click to post comment]
Catch us at our official Liquid Rock Games Twitter site! Live updates ! Rants and raves ! http://twitter.com/LiquidRockGames
Posted by
Prometheus
Must watch for indies looking to go the digital distribution route. Digital Distribution Summit - Sandra Sdraulig Opening & David Edery Keynote from Digital Distribution Summit on Vimeo.
Posted by
Prometheus
Friday, October 9, 2009
at
7:59 PM
|
0
comments - [Click to post comment]
Finally about time. Read the article here.
Posted by
Prometheus
Thursday, October 8, 2009
at
10:41 AM
|
0
comments - [Click to post comment]
Here's an update on how the ship interior looks like within the level editor plus detail maps with some test lights. no ambient occlusion map yet though as the model is not fully completed yet. Lighting will be further tweaked when the entire track is set up and finalized.
Posted by
Prometheus
Thursday, October 1, 2009
at
9:53 AM
|
4
comments - [Click to post comment]
Here's a rough lighting idea for this part of the track to convey the feeling of a dark and dank environment. Image rendered in Blender3D. Will be destroying parts of the interior later on. mini update (6/10/2009): Started destroying parts of the ship's interior. Will be working on the racing track soon.
Posted by
Prometheus
Wednesday, September 30, 2009
at
8:57 AM
|
0
comments - [Click to post comment]
Posted by
Prometheus
Thursday, September 24, 2009
at
12:29 PM
|
2
comments - [Click to post comment]
[begin rant] Man, this sucks. Just as I was getting into more fun, VC hits the brick with our core framework static lib hitting the roof for file size. It's now at 600++mb O_O. Really sad... I couldn't link the editor with it anymore. Guess I have to turn it into a standalone dll. Hope this will solve the issue. Woo hoo.. more dlls! Sheesh... [end rant] About what I'm working on, I'm building a track system to define what's an inside of a track and what's out. This system will be able to help detect when a craft falls out of the track and be re-spawned properly back in the track. It also will serve as checkpoint system. Two birds with one stone. v^_^v
Posted by
Lf3T-Hn4D
Wednesday, September 2, 2009
at
11:21 PM
|
0
comments - [Click to post comment]
I've finally fixed the problem with my float compression. Just to note, the compression technique is following the IEEE standard somewhat. I forgot to deal with normalized values (-127 exponent) which made the compressor generate garbage. If anybody is interested on how I compress, just have a look at how halffloat(16bit float) is stored. I'm pretty much using similar technique. Basically discarding some precision on the fractions and shifting exponent bias for more floating point precision at smaller values. (Note that I'm making it very specialized for delta type compression; meaning the closer the value is to zero, the more precise, the bigger the value, less precise.) Aside from this, I found out that the compression worked really well even for important objects like player controlled entities and camera. Thanks to Glenn's article describing exponential smoothing, as long as I don't snap when compared values are very close, things worked very smoothly. I'm very happy with the result thus far :) Next up is actual multiplayer race! Woo hoo!
Posted by
Lf3T-Hn4D
Wednesday, August 26, 2009
at
9:42 PM
|
11
comments - [Click to post comment]
After countless hours of sleepless nights, I finally got it going! Smoothed network physics simulation will little noticeable jerks. Yay! However, this is only for the LAN. I'm not sure how it will fare with the internet where latency isn't our best friend. It took me a while to figure out that I had to synchronize the physics time frame and not the system time frame. Top that off with bad timing for the network syncing right after physics simulation was done, I was having a lot of headache beating around the bush for naught! Sheesh... Aside from this, I'm having issues with float compression. Somehow it's giving weird values that leaps all over. Probably something wrong with the way I compress and decompress. While on this, I wonder if I should have some way to mark significant objects for non compression mode? How does other games normally does it anyways? Do they like make important objects like controlling player to always sent in non compressed mode while other non controlling objects get compressed mode?
Posted by
Lf3T-Hn4D
Wednesday, August 12, 2009
at
5:59 PM
|
0
comments - [Click to post comment]
Finally something worth blogging. I've got the game networking with input syncing working like a charm. Yahoo! Looks like my action system is doing a fine job. :) Right now I've all client players sit as observers on the server's craft. While the server is controlling, the clients get the input as well. However, since I've yet to do any entity syncing, the craft on the client screens start to steer off into parallel dimensions. lol. Either way, it's nice to see that my hard sweat Action system is working like a charm. Very excited now. :P Entity syncing here I come! P.S. Sorry, no pics for networking. I can't think of any creative way to represent them with pics anyways.
Posted by
Lf3T-Hn4D
Friday, July 31, 2009
at
3:47 AM
|
6
comments - [Click to post comment]
I got this link from my sensei classifying our company business model as the Ramen Profitable. Rather funny name. So now we're noodle shop guys. lol http://paulgraham.com/ramenprofitable.html On the side note, I've just managed to get two PC linked together and entering the game. No game syncing yet. That's to be done after this. :) While getting this done, I implemented a system I called delayed sync messaging. This system basically utilizes the time sync method I mentioned here. The concept behind this system is so that one can accurately synchronize a particular event that needs accurate triggering. For example, the beginning of the race, count down should be as synchronized as possible so client don't get a laggy start. When dealing with this type of events, the only caveat is that the server side also have to synchronize with the client side. This means that the event has to be delayed as much as possible as such that all clients will get the request before it is triggered. In a LAN environment, this usually isn't much of a problem because the ping rate is rather high; less than 1ms to 10ms. However, in the Internet scale, latency can go as high as 500ms to 1500ms or more. In that situation, time syncing becomes a necessity to accurately identify the server time. I haven't really tested the time syncing algo I've implemented in the Internet environment yet. However, in theory, it shouldn't go wrong.. I hope... :-P Sneak Peak: Don't mind the UI. It's just programmer art to keep me going. ;-)
Posted by
Lf3T-Hn4D
Saturday, July 18, 2009
at
12:03 AM
|
6
comments - [Click to post comment]
Ah.. time sure flies. Just to update, I had been busy putting a working network prototype together. While doing so, I've also did some research on scripting to ease up game logic coding later. I was thinking of using V8 at the beginning. However after digging it through, I realised that it was designed to only run on a single thread (Google Chrome is designed as a multiprocess app instead of multithreaded app). So in the end, I'm back to square one of using Angel Script. It looked like it has evolved since my last use for it when I was still in my previous game company. P.S. I did look at spidermonkey too. But getting from their source tree is a little troublesome with my ever so crappy always disconnect ISP. So I dropped it. Mercurial really sucks without the auto resume feature.
Posted by
Lf3T-Hn4D
Friday, May 22, 2009
at
3:17 AM
|
9
comments - [Click to post comment]
Interaction system. It's funny how the simplest and most important piece of a game engine could be so difficult to design. If there's no interaction, then there's no game at all. Hence, a game engine MUST have a unified way to deal with interaction. When talking about interaction, input controls come to mind. Keyboard, mouse, gamepad or even those driving force feed back steering wheels. These controls would be bound with the in game characters, crafts or even turrets. However, here lies the question. What about characters, crafts or turrets that are not controlled by the player? AI comes to mind. Better still, what about replays? Or how about in a multiplayer environment where certain crafts are controlled by some other players over the network? These scenarios shows one thing. A controller that controls any element in a game should be abstracted from the physical input devices. They should only care about what to simulate when a certain command is executed without needing to know who is executing it. Hence, I came up with what I call the Action System. Bellow is a rough idea of how it would look like in a network environment with two clients connected to a server. To cap it up, bellow is how the InputMap and ActionMap interaction will look like for an FPS. That's it. Next up I'll be talking about buffering the ActionMap for network prediction and Replay. Stay tuned. ;)
Posted by
Lf3T-Hn4D
|
Blog FollowersSubscribe To RSS Feed
Posts
Posts
Liquid Rock Games and Project Aftershock. All Rights Reserved.
|