Jump to content

  • Log In with Google      Sign In   
  • Create Account

OddGames development journal


Posted by , in Nimrord Editor, Medieval Story 27 January 2015 - - - - - - · 1,446 views

Great news! Medieval Story has been greenlit! Since I don’t update this journal as often as I should there might be readers wondering what Medieval Story is about. Well, here’s a short summary…

Medieval Story is a single player game which features action, puzzle and RPG elements. It is played from an isometric view point which can be zoomed in and out.

There are no experience points to be earned (so no level grinding). Instead different equipment and potions make your character stronger. Players can follow the main story arch and finish the game more quickly, however it is encouraged to explore the world. The game will be episode based and the world will get larger as I release new episodes.

Medieval Story is currently in content creation phase, progress is pretty slow since I am making the game on my own. The last few weeks I have focused on script writing, dialogs and map making.

This is done using lua, a scripting language used in many other applications and games. I use it to control character dialogs, changing of maps, setting character and object properties among other things.

The dialogue is displayed via a special a GUI window. Here you can follow the conversation and make critical choices for how the story will unfold. Alongside the conversation is a hand drawn character portrait for each NPC you meet.

Map making
I have developed a level editor called Nimrod the Isometric editor. Nimrod (for short) is tightly connected to the game. It can place actors and objects, assign scripts and set animation behaviour among other things.

The game will be released on steam in the near future.

Posted Image Posted Image

Posted Image Posted Image

Posted Image Posted Image

Thanks for reading!

Sneaking and bows

Posted by , in Nimrord Editor, Medieval Story, Graphics, Programming 12 September 2014 - - - - - - · 627 views

Been a while since the last update. I’m still working on Medieval Story, my *long* running project. The engine is more robust and I have changed my windowing framework to the latest glfw-master branch from GitHub. I decided to switch from 3.0.4 in order to get the latest mouse cursor support. Previously I rendered a textured quad and used that as a cursor. With the new cursor support in glfw I get much better mouse response. It is especially noticeable when the frame rate is low.

In regards to gameplay I have also made improvements. Both the mouse and keyboard controls have gotten more precise after tweaking the physics engine. The player slides better along walls and climbs stairs more easily. This is achieved by modifying the friction of the object that the player collides against (bulletphysics only has one friction value for the entire rigid body). When an object is walked upon it has a high friction value, it is treated as a floor. If the player walks up against the same object the friction value changes to a low value, it gets treated as a wall. I know this could be done more elegantly by dividing the objects up by walls and floors… but this would mean the double amount of physics objects.

Posted Image

I guess this sort of problem is not so common in ordinary 3D engines when objects are not treated as a whole. My world objects can often be walked on top of and slide along or against.

The camera has also gotten smarter. Instead of just chasing the player the camera focuses on the area that is ahead of the player. However, when in battle it focuses on the player so it does not to miss any action.

I have come to realize I will have to cut down on the scope of the game. I begin to worry that I might not actually finish it. However… there still are a few mechanics I feel the game should benefit from. One such item are Bows, they can be used to pick off enemies from a distance (*duh*). I might implement more types of ranged weapons in the future (crossbows, magic stuff) but right now I feel they are quite sufficient.

Posted Image

Another of these items are the possibility to sneak around your enemies. I have adjusted the level editor to compensate for this. I can now adjust the awareness radius of an actor right inside the editor (this was hard coded until now). Each actor has a max and minimum radius from where he can spot the player. The maximum radius (blue) is used when the player runs and the minimum (green) when the player uses sneak.

Posted Image

Posted Image

I think this will allow for more intricate quests where you are unable or forbidden from just killing your enemies.

Well that's all for now, thanks for reading!

... Oh, on a last note. I hope you consider voting for Medieval Story on Steam greenlight!

Entry #129, show must go on...

Posted by , in Graphics, Medieval Story, Nimrord Editor 30 July 2012 - - - - - - · 1,313 views

Hello, time for a new post! :-)

I've quietly continued working on the save mechanisms, it's rather intricate to get working right... hence there has been no new journal entries for a while. Right now the inventory is acting up between maps (occasionally) but I think I am going in the right direction.

However, sometimes the inventory doesn't act up. This allows me to go down a cellar and beat some rats with a new found sword. Too bad they are immortal at the moment...

Posted Image

DIE RATS! DIE! *doh*

On the editor side I've implemented a raise and lower map function. By pressing either button the entire map is shifted in the desired direction. This allows for instance building cellars to buildings that I maybe didn't think of in the initial design of a map. I have been thinking of doing a X/Y offset to the total map also... but my UI-space is getting more and more crowded. Having X/Y offsets would probably be just as useful as the raise and lower feature. I need to make more room, move some UI elements around a bit (ugh).

Thanks for reading!

Video time!

Posted by , in Graphics, Nimrord Editor, Programming 04 April 2012 - - - - - - · 1,389 views

I've implemented an auto transition function in the editor. I have always thought that this would be a handy thing to have but thinking it would be too cumbersome to implement due to the nature of my data storage, I use linked lists instead of a two dimensional array. However, now its done and it is pretty sweet :-) I have even made a bad quality video showing it all in action. In the later part of the video you can also see some regular editing going on.

I have also implemented the animation system discussed in the previous post. Now I can edit how fast and how much an object should sway its vertices.

Fixes and features

Posted by , in Graphics, Medieval Story, Nimrord Editor 29 March 2012 - * * * * * · 1,156 views

The last few days I have been working on updating the navigation mesh tool in the editor. This will then be a matter of copy and paste to get into the game.

The reason for this is that I found some strange bugs in certain areas when doing path-finding. The found path would sometimes lead to x0, y0, z0 which isn’t something I would ever want. I checked if there were any newer versions of recast & detour and surly there was. I went through the demo project source and didn’t notice any real big changes to the navigation mesh building phase but I decided to implement the new version anyway... Maybe there were bigger changes “beneath the hood”. When re-implementing the library I found that there was a variable named edge max error. I had overlooked this parameter setting in my own editor. It was just a hard-coded value in the source (a rather big and bad value at that). Now I’ve made a GUI element where I can adjust its value and after a few preliminary tests I haven’t noticed any paths leading to wrong places. So I am hoping this have fixed my problems once and for all…

I have also made some graphical changes to the game. Water and vegetation looked stiff and unnatural without any animation. Animating trees and smaller vegetation can be quite a big undertaking. To circumvent the issue I have thought about moving the vertices of the vegetation but I hadn’t gotten around to it yet. Now I had a few hours to spare so I thought I would try it out. I decided it would be sufficient to move the vertices of the treetops to begin with; the trunk (which is most often another object) could be still. Also it should only be needed to move the outer most vertices of the treetop. The reason for this is to simulate that the treetop is stiffer the closer it is to the trunk. To make things easy and get results more quickly I choose to implement this in the game itself, leaving out the editor (I might go back and incorporate this later).

I searched the resource name of the graphic. If the filename contained the word “plant” or “treetop” it would animate, simple as that. Then I just needed a random wind-seed-number and move it around using cos and sin. To my astonishment it looked quite good the first time around! :-) As a matter of fact it looked so good that I decided to go ahead and implement a similar routine to make the water go slightly up and down. This was a bit trickier as a water tile has to line-up with its neighbours. The illusion of a water surface disappears if there are gaps between each tile/wave. It’s hard to describe in words how mush it does for the vividness of the scene; Here's a small video showing it in action.

The animations are hard to see unless the 720p video is viewed. The water waves could still use some tweaking.

Thanks for reading!

Recent Comments

Latest Visitors