Well hello all of you! I'm back, after a somewhat lengthy hiatus from posting here. I've been working hard on getting WasTeLanD back up to the point I was at before I switched to C++ from DarkBasic Pro. I'm glad to say that as I have just finished implementing the physics engine(Bullet), I'm actually making good progress towards the Transitional Build. I've started using Git for source control as well, so you can follow the progress of the project at http://www.github.com/Dar13/Wasteland.
I'm off to get the player controller up and running, wish me luck.
P.S. I was also working on a proper website for the game to be based at, so patience please. I'll post here when that change happens.
Saturday, November 12, 2011
Thursday, August 11, 2011
Rewriting sucks
Rewriting an engine in a different language(DBPro -> C++) while also using the greatest extent of that language's abilities is a pain in the butt. I gotta say though, I like the flexibility C++ gives when using OO or procedural programming. So far, I've got a working wrapper for PureGDK that gives me some more degrees of control over the getting and setting of positions/rotations/etc.
I won't be posting much on the blog for a while due to Real Life catching up to me after a good 2-3 months of break. I'll be working on the game no matter what however.
Dar13, WasTeLanD Primary developer
Friday, August 5, 2011
Some thoughts
This post is just going to be some ramblings about game development in general, challenges I'm facing currently, and other various things. Just an FYI.
I've been programming for a while now( a good 3 years going on 4), and I've noticed some things that stick from language to language(BlitzBasic, DBPro, C/C++). One of these things is the paramount need to create a system that allows additions. A system that can handle the loss or addition of a new part without too much fuss. How does that relate to game development? Well, a game is basically a big ole glob of parts that work together to create a multimedia entertainment program. How is that? Think of a game, like Halo for example. When you think of Halo what do you think of? The weapons (like the Spartan laser or the assault rifle), the characters(Master Chief/Cortana), the driving, the physics, the enemies(Elites/Brutes), the enemies' artificial intelligence, etc etc etc.
All of those things are the building blocks of Halo. Separate from each other they are nothing, possibly less than nothing because they might rely on another building block to function. What Bungie(Halo's developers) did was fit all these parts together into a framework that allowed each module to be mainly self-contained while giving/taking data from other modules efficiently. That framework is the basis of the game.
That framework is the problem I'm hitting right now. I built my framework without a few critical modules, mainly the story and all the logic systems that go in place for that. So I've been stuck redesigning my existing framework to coexist with the story module without causing game-crashing bugs. I'm making progress, it's just a slow process.
In addition to that programming challenge, I also have an artistic and designer challenge in the actual tutorial level and scripting. Some of you might have noticed, but my current 'level' is a smorgasbord of placeholder media and thrown-in finished pieces. My enemy is a WWII airborne trooper, while my game's setting is in a post-apocalyptic modernistic age. My floor is tiled with the actual word 'Floor' all over it. There's nothing to prevent the player from falling off the edge of the world, the 'arena' is an island in a sea of black at the moment. I'm also working on that as well, with some more indepth maps and better media coming in through the amazing community at The Game Creators.
So don't give up on this project yet. I've been working on this, either through mini projects to work on mechanics or smaller games to build up my skills, for more than 3 years now. It's not gonna die anytime soon.
Dar13 WTLD Developer
I've been programming for a while now( a good 3 years going on 4), and I've noticed some things that stick from language to language(BlitzBasic, DBPro, C/C++). One of these things is the paramount need to create a system that allows additions. A system that can handle the loss or addition of a new part without too much fuss. How does that relate to game development? Well, a game is basically a big ole glob of parts that work together to create a multimedia entertainment program. How is that? Think of a game, like Halo for example. When you think of Halo what do you think of? The weapons (like the Spartan laser or the assault rifle), the characters(Master Chief/Cortana), the driving, the physics, the enemies(Elites/Brutes), the enemies' artificial intelligence, etc etc etc.
All of those things are the building blocks of Halo. Separate from each other they are nothing, possibly less than nothing because they might rely on another building block to function. What Bungie(Halo's developers) did was fit all these parts together into a framework that allowed each module to be mainly self-contained while giving/taking data from other modules efficiently. That framework is the basis of the game.
That framework is the problem I'm hitting right now. I built my framework without a few critical modules, mainly the story and all the logic systems that go in place for that. So I've been stuck redesigning my existing framework to coexist with the story module without causing game-crashing bugs. I'm making progress, it's just a slow process.
In addition to that programming challenge, I also have an artistic and designer challenge in the actual tutorial level and scripting. Some of you might have noticed, but my current 'level' is a smorgasbord of placeholder media and thrown-in finished pieces. My enemy is a WWII airborne trooper, while my game's setting is in a post-apocalyptic modernistic age. My floor is tiled with the actual word 'Floor' all over it. There's nothing to prevent the player from falling off the edge of the world, the 'arena' is an island in a sea of black at the moment. I'm also working on that as well, with some more indepth maps and better media coming in through the amazing community at The Game Creators.
So don't give up on this project yet. I've been working on this, either through mini projects to work on mechanics or smaller games to build up my skills, for more than 3 years now. It's not gonna die anytime soon.
Dar13 WTLD Developer
Wednesday, July 27, 2011
Getting closer to releasing Transition Build Blend
As I'm approaching finalizing the last few little features or accomplishments before releasing Transition Build Blend(#1 and #2 together), I've noticed that both my coding ability and debugging ability has undoubtedly increased in quality and quantity over less time. Just today, I've added gun animation handling, ammo handling, and a part of the EWS 'Warning' logic. A good 100-200 lines of working code. Plus I've made some little customizations in the feel of the game, such as the EWS update rate at lower framerates.
I've finished most of what I wanted for this build, all that's left is scripting the tutorial level out fully and getting the locker room level mapped out in placeholder graphics.
Wish me luck.
I've finished most of what I wanted for this build, all that's left is scripting the tutorial level out fully and getting the locker room level mapped out in placeholder graphics.
Wish me luck.
Sunday, July 24, 2011
HUGE AI update!
So I've just completed a gigantic update to the AI system, in which the Idle,LookAtPlr, and MoveTgt behaviors are implemented and the others are to be finished later as the game progresses on.
In addition to the large AI logic update, I've implemented animation for the enemies using the Enhanced Animation plugin for DBPro which allows for much increased ease of use and control of the animations for all animated objects in WTLD.
After this large update is finalized( some optimization and consistency issues to clean up but nothing too large), I'll move on to the gunplay. Specifically the animations and sounds while using the guns.
Until next time,
D13 - WTLD Primary Developer
In addition to the large AI logic update, I've implemented animation for the enemies using the Enhanced Animation plugin for DBPro which allows for much increased ease of use and control of the animations for all animated objects in WTLD.
After this large update is finalized( some optimization and consistency issues to clean up but nothing too large), I'll move on to the gunplay. Specifically the animations and sounds while using the guns.
Until next time,
D13 - WTLD Primary Developer
Monday, July 18, 2011
AI update
Here's another update about the AI system. I've had to throw out my entire system, in order to implement a more dynamic AI.
The new system is based on behaviors instead of specific actions. These behaviors will be hard coded in the engine(such as to improve debuggability[Like that word?]), and then the Lua function responsible for that enemy's specific AI will tell the program which behavior(s) to do.
Behaviors:
Idle - Enemy does nothing, plays an idle animation or something.
Reload - Enemy reloads his weapon
Move Target - Enemy moves to a target given by the Lua function
Look-At Player - Enemy looks at the player, utilizing the head limb of the enemy.
Follow Player - A complex behavior, has the enemy follow the player at a certain distance.
Shoot Player - Enemy shoots player with current weapon.
Cover - Enemy will find the nearest cover, usually to either regain health or reload weapon.
So far I've implemented the Idle and Look-At Player behaviors, now I've got to reimplement the pathfinding so I can create the Move Target, Follow Player, and Cover behaviors.
The new system is based on behaviors instead of specific actions. These behaviors will be hard coded in the engine(such as to improve debuggability[Like that word?]), and then the Lua function responsible for that enemy's specific AI will tell the program which behavior(s) to do.
Behaviors:
Idle - Enemy does nothing, plays an idle animation or something.
Reload - Enemy reloads his weapon
Move Target - Enemy moves to a target given by the Lua function
Look-At Player - Enemy looks at the player, utilizing the head limb of the enemy.
Follow Player - A complex behavior, has the enemy follow the player at a certain distance.
Shoot Player - Enemy shoots player with current weapon.
Cover - Enemy will find the nearest cover, usually to either regain health or reload weapon.
So far I've implemented the Idle and Look-At Player behaviors, now I've got to reimplement the pathfinding so I can create the Move Target, Follow Player, and Cover behaviors.
Friday, July 15, 2011
Status Report
Just wanted to give a quick status report since I haven't posted recently.
This is the current progression of features needed to release Transition Build #1:
Intermediate EWS implementation: 100%
Animation/sound during gunplay(M9SE): 50%
More functional/visually appealing main menu/options menu: 100%
Arena Scene(Tutorial) fully scripted out(appstate/Lua): 0%
Appstate engine to modularize level areas: 80%
Two scenes fully or partially laid out using placeholder graphics(MapScape): 50%
Enemy pathfinding/AI(A*): 95%(need to add framework for dynamic AI based on behavior)
As you can see I'm very close to being able to release the next build, but I've hit a motivational roadblock. Which should I finish first?
1. AI
2. Placeholder graphics
3. Tutorial scene
4. Gunplay(animation/sound)
Please comment and give me an opinion of what I should do!
Wednesday, July 6, 2011
Saturday, July 2, 2011
Progress on Artificial Intelligence
I have now officially integrated the pathfinding utility I'm using(IanM's A* routines for DBPro) into my mainline program with the input for the AI's final destination being determined by a superfast external Lua script. In addition to that, the A* map that the routines search is also determined by an external file so I can now edit the entire behavior(movement for now) of the enemies in WasTeLanD.
Total progression on this build:
Intermediate EWS Implementation: 95%
Animation/sound during gunplay: 50%
More functional/visually appealing main menu/options menu: 100%
Arena scene fully scripted out(Appstate or Lua): 0%
Appstate Engine: 50%
Two scenes fully or partially laid out using placeholder graphics: 50%
Enemy pathfinding/Artificial Intelligence: 95%
Total progression on this build:
Intermediate EWS Implementation: 95%
Animation/sound during gunplay: 50%
More functional/visually appealing main menu/options menu: 100%
Arena scene fully scripted out(Appstate or Lua): 0%
Appstate Engine: 50%
Two scenes fully or partially laid out using placeholder graphics: 50%
Enemy pathfinding/Artificial Intelligence: 95%
Monday, June 27, 2011
Back!
I'm back from a mission trip up in Asheville, NC so progress on WTLD is moving again.
I've pretty much got the pathfinding into the main program, then all I need is to customize the AI using external Lua scripts.
After that, I'm going to move on to script the entire arena tutorial and arena locker room scenes.
Should only take until Wednesday for the AI, but the scripting is probably going to take longer, most likely a week or two.
Bear with me, when I release this transitional build it will be worth it.
I've pretty much got the pathfinding into the main program, then all I need is to customize the AI using external Lua scripts.
After that, I'm going to move on to script the entire arena tutorial and arena locker room scenes.
Should only take until Wednesday for the AI, but the scripting is probably going to take longer, most likely a week or two.
Bear with me, when I release this transitional build it will be worth it.
Friday, June 10, 2011
Basic Pathfinding/AI demo
Ok, here goes nothing.
I've put together a small little demo for you guys to try out.
To run the demo, you need 2 things:
1) DirectX 9.0c August 2007 Runtimes(http://www.mediafire.com/?cwawz0wfv73gntj)
2) A willingness to fiddle around with a script file(optional)
To change the script, you need to go into the 'media' folder and look for the file called 'ai_test.ai'. You can open this file in Notepad or Wordpad/MS Office Word(it's just a renamed .txt file). The instructions to edit the script are inside, follow them precisely or you might break the program.
Once the program starts, there is no user interaction whatsoever. Either click the Close button at the top of the window or hit the 'Esc' key.
Download link for the demo:http://www.mediafire.com/?gr3ybb8log193oy
I've put together a small little demo for you guys to try out.
To run the demo, you need 2 things:
1) DirectX 9.0c August 2007 Runtimes(http://www.mediafire.com/?cwawz0wfv73gntj)
2) A willingness to fiddle around with a script file(optional)
To change the script, you need to go into the 'media' folder and look for the file called 'ai_test.ai'. You can open this file in Notepad or Wordpad/MS Office Word(it's just a renamed .txt file). The instructions to edit the script are inside, follow them precisely or you might break the program.
Once the program starts, there is no user interaction whatsoever. Either click the Close button at the top of the window or hit the 'Esc' key.
Download link for the demo:http://www.mediafire.com/?gr3ybb8log193oy
Tuesday, June 7, 2011
Some code, with the guidelines
Sunday, June 5, 2011
A change of plans(nothing bad mind you!)
So, instead of following my rigid agile developmental progression, I've decided to blend two of these transitional builds together so I can actually code something instead of doing some meaningless art that'll be replaced anyways.
So here's the updated goals for this new stage of development->
So here's the updated goals for this new stage of development->
- Intermediate EWS implementation(visually/functionally)
- Animation/sound during gunplay(M9SE pistol only)
- Menu upgrade(visually/functionally)
- At least one section of the demo scripted out
- At least two sections of the demo laid out using placeholder graphics
- Enemy/NPC pathfinding(A-Star)
- Implement an appstate engine, utilizing modularity of the program
Approximately 30% of this is already done, since I was finishing up the initial Transition Build(#1) but got stuck in a grind of trying to generate media.
Another update in about a week, please contact me at dar13creations(at)hotmail(dot)com if you can help me out with quality, textured 3D models or with other visual effects.
Friday, May 27, 2011
Progress
WasTeLanD is coming along, albeit slowly. Real life is finally coming to a somewhat calm state, so I can finish my little graphics upgrade I'm doing for the next transition build. Once that's done, I'm going to go back and re-optimize as much of the code as I can.
After all that's done, I'll upload that build for whomever reads this to try.
Current Feature list:
After all that's done, I'll upload that build for whomever reads this to try.
Current Feature list:
- Basic EWS implementation
- Animation during gunplay for the M9SE pistol
- More functional, expanded main menu/options menu
- More detailed environmental graphics, outlining entire level.
The next build is where I'll be implementing the Artificial Intelligence Pathfinding routines, and the player collision routines. After that is adding the scripted events to the level(warning in elevator, chase up the stairs, etc), and then after all that I'll do another visual upgrade. After the Artificial Intelligence Pathfinding and the player collision goes in I'll release another build.
After that however, I won't be releasing another build of the game until it's at least in Pre-Alpha mode or Alpha stage.
Friday, April 29, 2011
PrePrePrePre Alpha release available
I have adopted a more agile(http://en.wikipedia.org/wiki/Agile_software_development) type of software development system, where a team or individual would work on making a full program by incrementing the quality/functionality of all of its parts instead of building up just one or two parts to finished status.
So I've devised a series of 'builds' that have specific goals in functionality, game-play and visuals that will eventually get WTLD to alpha or beta status after which I will officially release for player testing and feedback. I will be allowing full access to each build after completion through a link to a Mediafire hosted .zip file.
WARNING: This game requires Win XP/Vista/7 and DirectX 9.0c November 2007 for optimal performance. I do NOT guarantee that this game WILL NOT crash or harm your computer, so don't come yelling or crying to me about how I erased your hard drive. These are pre-pre-pre-pre alpha builds so bugs and inconsistencies are expected. Notifications of these issues will help those issues go away however(Please provide steps to recreate the issues).
Enjoy what you can, here is the Mediafire for Version 0.0.1(Initial):http://www.mediafire.com/?afaqitgtf3s2y4d
So I've devised a series of 'builds' that have specific goals in functionality, game-play and visuals that will eventually get WTLD to alpha or beta status after which I will officially release for player testing and feedback. I will be allowing full access to each build after completion through a link to a Mediafire hosted .zip file.
WARNING: This game requires Win XP/Vista/7 and DirectX 9.0c November 2007 for optimal performance. I do NOT guarantee that this game WILL NOT crash or harm your computer, so don't come yelling or crying to me about how I erased your hard drive. These are pre-pre-pre-pre alpha builds so bugs and inconsistencies are expected. Notifications of these issues will help those issues go away however(Please provide steps to recreate the issues).
Enjoy what you can, here is the Mediafire for Version 0.0.1(Initial):http://www.mediafire.com/?afaqitgtf3s2y4d
Monday, April 11, 2011
Changing some stuff up
Seems I've hit a wall with C++/Ogre/Irrlicht/DGDK. I've decided that I can code the demo at least in DarkBASIC Professional, while making whatever mini-plugins I need in C++.
I've also made some progress within the EWS system, in that I've figured out how to do the dynamic text in the texture without using get image(), a VERY slow function in DBPro. In a test program, I can print various letters/words and make a new image every loop and get >1300 frames per second. If I only update every 10 frames, then that statistic jumps up to >1800 frames per second. That is very important, as I want to have at least 1000 frames per second before I start to add frame rate draining visual effects like bloom or whatever to WTLD.
In other news, this memblock-text generating system will be released to the public at http://www.forum.thegamecreators.com in the Code Snippets section, and will be used in my RTS project in order to save my frame rate from the D3D monster.
More WTLD news will be forthcoming this next week, as I finish up this add-on and start work on the bulk of EWS and WTLD.
I've also made some progress within the EWS system, in that I've figured out how to do the dynamic text in the texture without using get image(), a VERY slow function in DBPro. In a test program, I can print various letters/words and make a new image every loop and get >1300 frames per second. If I only update every 10 frames, then that statistic jumps up to >1800 frames per second. That is very important, as I want to have at least 1000 frames per second before I start to add frame rate draining visual effects like bloom or whatever to WTLD.
In other news, this memblock-text generating system will be released to the public at http://www.forum.thegamecreators.com in the Code Snippets section, and will be used in my RTS project in order to save my frame rate from the D3D monster.
More WTLD news will be forthcoming this next week, as I finish up this add-on and start work on the bulk of EWS and WTLD.
Tuesday, March 22, 2011
More project stuff plus project progression style.
No update on WTLD yet, I haven't had a chance to really work on it. However, I would like to tell you about my setup and development process.
Setup: MSVS 2010 Professional, DarkShader, Win7 Premium Home Edition, Nvidia GT 220, 1 GB RAM, 1.5 TB of HDD.
Process: Generally agile, but in the early stages its more like a traditional approach to programming. I have to code the basics first right? Then I can move on in upgrading everything at the same time.The farthest I've gotten to a full agile setup is with my Bullet test project(getting used to Bullet and learning how to set it up properly,etc), where I had collision/physics, a map, and limited player movement.
Hopefully by the weekend I'll have a more substantial post to let you chew on.
Sunday, March 20, 2011
I guess I've arrived in the blogosphere...
Hello all of you random readers out there. I'm new here. I play video games, and I make video games. This is my journey through making a true, real game with innovative gameplay and acceptable art.
The project: WasTeLanD
Date started: Real programming started almost 2 weeks ago.
Language: C++
Libraries: Irrlicht, Micropather, irrKlang, Bullet, and Boost ( all subject to change )
Progress: 10% - framework is done, working on basic gameplay mechanics, programmer's art only
Thoughts: So far it's been a great experience in programming for me. I've learned how to make a true OOP framework for real time applications(aka games), and how to utilize a manager class to run the logic and bind all the different classes and functions together to (mostly) prevent global variables ( I have a global struct that holds a few ints and bools and a couple of void pointers to pass around).
Right now, I'm working on the Environment Warning System, the main innovative gameplay mechanic WasTeLanD will employ. EWS gets rid of the HUD. Entirely. There is no health, no ammo counter, nothing except perhaps a small status icon in the corner of the screen. All the HUD's data is displayed either in the environment through a holographic projection or on the weapon/item the player is holding(ammo count on the weapon's stock, tablet has readout of HUD information,etc). This should help the player better immerse themselves in the world, while creating a different type of experience in a frantic firefight. The point of EWS is not to force the player to remember how many bullets he's shot, but instead to let the player focus on the firefight without constantly seeing miscellaneous items in the HUD that don't apply to the situation.
The most interesting thing about EWS, is that it isn't truly updated in real time. The only time it is updated constantly by the game, is when there is a warning(hence the name) where the player must know this information immediately. When this warning state is entered, then the EWS system automatically displays on the environment in the top left or right corner of the screen, with a different alarmed color scheme and animation to tell the player the information(low ammo/health/shot from behind/etc).
Once I'm done with that aspect of the game, I'll be implementing some slightly better media, and then moving on to the gunplay of the gameplay.
Hope you enjoyed my presentation of my new mechanic, I'll update this soon to reflect my progress.
The project: WasTeLanD
Date started: Real programming started almost 2 weeks ago.
Language: C++
Libraries: Irrlicht, Micropather, irrKlang, Bullet, and Boost ( all subject to change )
Progress: 10% - framework is done, working on basic gameplay mechanics, programmer's art only
Thoughts: So far it's been a great experience in programming for me. I've learned how to make a true OOP framework for real time applications(aka games), and how to utilize a manager class to run the logic and bind all the different classes and functions together to (mostly) prevent global variables ( I have a global struct that holds a few ints and bools and a couple of void pointers to pass around).
Right now, I'm working on the Environment Warning System, the main innovative gameplay mechanic WasTeLanD will employ. EWS gets rid of the HUD. Entirely. There is no health, no ammo counter, nothing except perhaps a small status icon in the corner of the screen. All the HUD's data is displayed either in the environment through a holographic projection or on the weapon/item the player is holding(ammo count on the weapon's stock, tablet has readout of HUD information,etc). This should help the player better immerse themselves in the world, while creating a different type of experience in a frantic firefight. The point of EWS is not to force the player to remember how many bullets he's shot, but instead to let the player focus on the firefight without constantly seeing miscellaneous items in the HUD that don't apply to the situation.
The most interesting thing about EWS, is that it isn't truly updated in real time. The only time it is updated constantly by the game, is when there is a warning(hence the name) where the player must know this information immediately. When this warning state is entered, then the EWS system automatically displays on the environment in the top left or right corner of the screen, with a different alarmed color scheme and animation to tell the player the information(low ammo/health/shot from behind/etc).
Once I'm done with that aspect of the game, I'll be implementing some slightly better media, and then moving on to the gunplay of the gameplay.
Hope you enjoyed my presentation of my new mechanic, I'll update this soon to reflect my progress.
Subscribe to:
Posts (Atom)

