Trending Games | World of Warcraft | Overwatch | Anthem | Entropia

    Facebook Twitter YouTube Twitch.tv YouTube.Gaming Discord
Register
Quick Game Jump
Members:3,835,960 Users Online:0
Games:948 

Show Blog

Link to this blogs RSS feed

IfThen Software

Development log for IfThen Software. IfThen Software is a family owned and operated indie game development company. http://www.ifthensoftware.net/

Author: InvisibleLf

Newsletter #57 - 3.0 In Progress Again

Posted by InvisibleLf Thursday December 31 2009 at 7:19PM
Login or Register to rate this blog post!


News

Stick Adventures Online version 1.2.4 has been released! This version adds a ping display to the lower right corner of the game window.

Overall progress for the Loradon 3.0 Preview has reached 97%!
www.ifthensoftware.net/loradon_online/progress/


From the Programmer
Written by Invisible

A general warning to those of you who are porting from Direct3D8 to Direct3D9: VSync is disabled by default in D3D8, but enabled by default in D3D9. Naturally, this will cause Direct3D to stall and will force your program to be capped at 60FPS (probably). While this is probably not a problem in some cases, it can be very confusing if you are comparing FPS results between the two versions. I was quite puzzled when one of our older games was running quicker than a new one.

The font system is finally at a stage in which it can perform all duties required of it. The way in which it handles varying font sizes and styles is clunky at best, but it works well enough to create a demonstration video.

If you are having trouble with grainy sound coming from DirectSound, make sure that you do not have an old version of it's DLL anywhere that the OS might find it. After 6 hours of debugging, I finally tracked down the problem to being caused by an old dsound.dll file in the "Debug" output folder. I most likely put it there originally to make use of a debug version of DirectSound.


Artist's Easel
Written by GreyKnight

iScribble Sketches #15

(Click to enlarge)

(Click to enlarge)


Community Spotlight
Written by pifreak

This has been an anxious few years for many of us in the community; waiting for the Loradon 3.0 preview to be released. It is interesting to see all the work that has been finished and all the features which will make the upcoming game more enjoyable.

In the Stick Adventures Online forums, SadisticusMaxim has posted a comic with the underlying theme of forum etiquette played out with analogies. The title is "The Supreme Generation" and the description or subtitle: "The Battle is Over, but the War is Never-ending." This fan-made comic has inspired some light-hearted comics to follow, such as the spoofs jay and miotatsu created: "The Supreme Parody".  DarkTrinity also posted a comic titled "a Dark Comic" with an SAO setting.

There has not been much activity in the Loradon Online section of the forum, but there are a lot of fun games and discussions going on in the Off Topic section. And, as always, IRC is active and it is easy to join even if you don't have an IRC client. Remember that you can visit http://irc.ifthensoftware.net/ and start chatting with the community and developers! Happy New Year to everyone out there!

Newsletter #56 - Clock Problem

Posted by InvisibleLf Thursday December 17 2009 at 7:48PM
Login or Register to rate this blog post!


News

There is no news to report this week.


From the Programmer
Written by Invisible

Earlier this week I realized that there was a problem with the clock system in the engine. In order to time various events, the game uses a "clock". The state update code would use either GetTickCount() or QueryPerformanceCounter() (indirectly through a system that wrapped them). This in itself works fine, but the problem occurs due to the way the state is updated. I use a fixed timestep, which means that when the state is updated, it is being updated for a specific point in time which is most likely in the past. So the counter provided by the previously mentioned functions will be slightly incorrect for the time that the state is updating for. The problem gets worse after a "lag" spike (the program freezes for a certain amount of time for whatever reason), since the main loop will attempt to catch up and update all of those missed states at once.

The problem has been fixed by using a 0 based counter that is set to the correct time for the update that is currently being performed. The counter represents how many milliseconds are between the start of the program and the current update. The update code can access this counter using a function supplied by the core system. This also ensures that there is only one counter value throughout the update, which was not true before.


Artist's Easel
Written by GreyKnight

iScribble Sketches #14

(Click to enlarge)

(Click to enlarge)

 


Community Spotlight
Written by Jay

This week, an SAO player known as RageMan1990 suggested that a boss-like monster be added to SAO in the next update. Though it's not an original idea, the thought of having a boss brought along a discussion of what a boss would be like. Whether or not a strong boss creature is added in the future, many players will always have hopes that one will one day appear.

Newsletter #55 - Building an Engine

Posted by InvisibleLf Thursday December 10 2009 at 7:32PM
Login or Register to rate this blog post!


News

There is no news to report this week.


From the Programmer
Written by Invisible

After struggling with manually keeping track of system dependencies and which systems need to be rebuilt due to changes in other systems, I have found a way to automate this.

Microsoft Visual C++ 2005 has a couple tools which make keeping track of a complex engine much easier.

  • Project Dependencies - Using project dependencies in a solution, you can set the order in which the projects are built.
  • Custom Build Step - Gives you the ability to copy the header files required to use the engine into the output directory when the engine is built. Additionally, this makes your header files part of the build process, meaning it will check if they need to be copied to the output directory or not, and cleaning the project will also clean out the headers from the output directory.

I'll give a short tutorial on how to set this up.  This tutorial assumes that there is an "include" folder located in the same folder as the solution which will contain the header files for the engine once it has been built.

  1. First off, you need to create the engine's solution and add the system projects into it (right-click the solution in the Solution Explorer and select "Add->New Project" or "Add->Existing Project").
  2. Right-click on the first project in the Solution Explorer and select "Project Dependencies..." (this option will only appear if there are multiple projects in the solution).
  3. In the window that appears, place a check-mark next to each project that this one depends on.
  4. Repeat steps #2-3 for each project in your solution.
  5. In the Solution Explorer, right-click on the first header file that is required to use the engine. Select "Properties" from the menu that appears.
  6. In the Configuration drop-down box, select the first configuration that you want the automatic header output to apply to (probably "Debug").
  7. In the tree to the left, select "Configuration Properties->Custom Build Step->General". The header file we have selected is called the "Input" for the custom build step. We want to copy this header file from its current location into the output "include" folder. So make use of the "copy" DOS command by placing this into the field labeled "Command Line": copy "$(InputPath)" "$(SolutionDir)include\$(InputFileName)"
  8. Now we need to tell MSVC++ what file the command line that we entered previously will be outputting. MSVC++ checks if the output is an older version than the input, and runs the command line if it is (or if the output doesn't exist). Place this into the field labeled "Outputs": $(SolutionDir)include\$(InputFileName)
  9. Repeat steps #6-8 for each configuration that you want this to apply to. (probably just "Release" after you finish "Debug").
  10. Repeat steps #5-9 for each header file in the solution that is needed to use the engine.


Artist's Easel

Written by GreyKnight

iScribble Sketches #13

(Click to enlarge)

(Click to enlarge)


Community Spotlight

Sorry, there isn't a community spotlight article this week.

Newsletter #54 - We Are Back

Posted by InvisibleLf Thursday December 3 2009 at 7:08PM
Login or Register to rate this blog post!


News

IfThen Software's servers are back online, after last week's long downtime due to maintenance. Sorry for any inconvenience that the downtime caused.


From the Programmer
Written by Invisible

I spent most of last week reinstalling our dedicated server, so I don't have much to say on the topic of programming.

I am currently working on getting the font and text systems finished. So far, the font system works well enough for raster fonts, and the text system supports basic text storage and style changes. Getting rich text to work will be fun, and will involve creating some sort formatting system, possibly similar to HTML. I'll give further details when I get to that point.


Artist's Easel
Written by GreyKnight

iScribble Sketches #12

(Click to enlarge)

(Click to enlarge)

 


Community Spotlight

Sorry, there isn't a community spotlight article this week.