Minalien.com

My brain makes things explode.

Follow me on TwitterRSS Feeds

  • Home
  • About Me

Some Changes

Apr 7th

Posted by Samantha in Life

No comments

For those of you watching my Direct3D tutorial series, I apologize for the continued delay of the Keyboard Input tutorial. I’ve been having some life issues coming up recently, and have been putting in ridiculously late hours at work, all of which take priority. I also got Red Steel 2 and Final Fantasy XIII (and a DSi XL), so my time’s been stolen. Decided it was time for a fresh start on my computer (I do that every now and then), and I was too lazy to download the copy of Windows 7 Ultimate that I had pre-ordered while I was in Afghanistan, so I installed Xubuntu for a while (I feel dirty. I really don’t like Ubuntu. It takes away the only reason anybody should ever want Linux in the first place.) Don’t worry, because I backed up the project files, and I’m going to be reinstalling Windows 7 tonight – assuming I get off work at a reasonable time – and will be able to continue the D3D Pong series.

Which brings me around to my next point. Unlike what I had planned, I am probably not going to be continuing this engine after the Pong clone is complete. I just don’t seem to have the time anymore, and I feel that my time is better spent with Erin and working on other life issues than releasing these tutorials. In short, I don’t feel that I could release the series in a timely manner. Don’t get me wrong, I’m still going to be programming, and I will still be developing tutorials – even a couple series tutorials. I’m just not going to be worrying about releasing the tutorials on any sort of deadline, and most of them will be one-shot tutorials (kind of like my XBOX 360 Controller Input tutorial at CodeProject).

Sorry if this is bad news for anybody, but you gotta do what you gotta do. I’ll still be available for help, if you want it. Best place to hit me up is #snoopy at Keyboard-Failure.

C++, Direct3D, DirectX, Erin, Game Programming, Life, Windows

Qt4

Mar 29th

Posted by Samantha in Computers

No comments

As of last night, I started looking into using Qt4 for future Application development projects of mine – and damned if it doesn’t look like the best option available to me (the best alternative being writing the UI on each different platform individually). For those who don’t know, Qt4 is an immensely popular and very powerful cross-platform application library that works with C++, and is supported on a large number of machines – from 64-bit Windows desktops to 32-bit embedded Linux solutions to the wonder that is Mac OS X. All without having to change the code – all that is required is a recompile (assuming you’ve set things up properly, of course). It even supports cross-platform project (.pro) files, and has a cross-platform toolset that accompanies its SDK – including a GUI designer, a set of debugging tools, and even an IDE that ties with a MinGW compiler.

I’ve started working again on an IRC client – now under the name alienIRC (formerly SevenIRC, which was being planned solely for Windows). I’ve also decided to make it completely open-source, and intend to license it under LGPLv3, something it shares with the Qt framework that is going to power it. I’m going to be setting up a Git repository on Gitorious for the project, and will be setting up some development pages on this blog – including issue tracking, a wiki, and some other tools. Right now, my plan is to closely emulate the mIRC interface – mostly because mIRC is my favorite IRC client – and will be working to make sure it feels native on all supported platforms. I will personally be maintaining builds on Windows (32- and 64-bit), OpenSUSE 11, and Mac OS X Snow Leopard. I will primarily be using the IDE that comes with Qt, though I will work to ensure that it compiles in X-Code 3 and Visual Studio 2008/2010.

As far as alienIRC itself goes, I’m looking at the possibility of using WebKit for the chat windows’ messages. This would make it incredibly easy to add formatting, because I could easily change messages from the mIRC color character into HTML tags before adding the text to the message box. It all depends on how it runs compared to a custom text box. I also plan to implement a number of features that are popular with mIRC, such as scripting (Lua, specifically), “address books,” nick highlighting, file sharing, et cetera. I’m currently working on some UI concept work – since it will have to be different from SevenIRC’s WPF plans and the previous OS X-only alienIRC UI concept that relied on some UI elements only found on Mac (such as Drawers).

If anybody is interested in contributing to this project, send me some messages – I’d be happy to hear your input, especially on features that you feel would be good to implement. Make sure you sign up for an account on Gitorious – and that you upload your SSH keys and such. If you’ve never used Git, and you’re a Windows developer, this is a very useful link for seting it up on Windows: Git for Windows Developers: Part 1

alienIRC, application development, application programming, C++, IRC, Linux, Mac, Mac OS X, Programming, Projects, Qt4, SDK, Win, Win32, Windows

Beh

Mar 28th

Posted by Samantha in Life

1 comment

My Erin <3

The ducks think they're so cool, being in this picture.

Alright, so I thought I’d give a bit of an update, since I was trying to release the next tutorial in the D3D Pong series today. I spent this week (meaning my twenty-first birthday) with my girlfriend, and while I have the code written and in usable condition (written while she was at work), I have some tinkering to do to get the mouse input working properly, and then I have to actually write up the tutorial. I’m also in the process of setting up a GIT repository for the game engine, in which I will store the latest changes to the engine. But right now, my mind is still in Phoenix, and I’m not in the mood to write up the next bit of the tutorial. I will give you a bit of a roadmap for what is to come in the future, though: (subject to change)

Tutorial 4: Input
Tutorial: Basic Collision Detection and building the Pong prototype
Tutorial: Audio
Tutorial: Piecing the Game Together
Tutorial: High Scores
Polishing Addon: Shaders
Polishing Addon: “Event”-based programming
Polishing Addon: Particle Systems

C++, Direct3D, Erin, Life

C++/D3D Pong Maintenance: The Game Loop/Frame Delta

Mar 25th

Posted by Samantha in C++

2 comments

Tutorial Description
While running the game/engine that we’ve been developing throughout this tutorial series, you may have noticed that the engine kind of runs… like crap. So, before moving onto the next tutorial in the series (the code for which is completed), which will cover keyboard and mouse input, I feel that it’s somewhat important to fix this. It’s just going to be some small updates to CGameEngine.cpp, so it won’t be hard.

Code Listing 1: CGameEngine.cpp -> CGameEngine::CGameEengine(void)
First, we’re going to correct an error with our game timer, which we never actually created an instance of in code – causing the GetRunTime feature to fail due to a member variable not being initialized (CGameTimer::_start). Replace the constructor for CGameEngine with the following, in CGameEngine.cpp

	CGameEngine::CGameEngine(void)
		: _windowHandle(NULL), _windowTitle(L"D3DPong"),
		_screenWidth(640), _screenHeight(480), _colorDepth(32),
		_gameRunning(true), _gameTimer(new CGameTimer())
	{
	}

Code Listing 2: CGameEngine.cpp -> CGameEngine::Update(void)
Our new Update method is much smaller than it was before. We’re still using fast-as-possible rendering and updating, so this isn’t going to fix the minor graphics tearing that you’ve no doubt noticed before this, but it is going to make things run a little better.

	void CGameEngine::Update(void)
	{
		float delta = this->_gameTimer->GetRunTime();

		GameUpdate(delta);

		this->_gameTimer->Reset();

		this->BeginRender();

		GameRender(delta);

		this->EndRender();
	}

Nicer, cleaner, shorter. This was caused by a bit of an inconsistency and laziness on my part, but things should run a bit smoother now. In the next tutorial, we’re going to be adding input, and will put the beginning pieces of our game into effect. I’ll cover enabling VSync at a later point, because I’m too lazy to deal with it right now. It’ll probably be in another “Maintenance” mini-tutorial.

Expect Tutorial 4 soon!

2D, C++, Direct3D, DirectX, Game Programming, Games, Programming, Win32

C++/D3D Pong Tutorial 03: Scene Objects and Sprite Rendering

Mar 21st

Posted by Samantha in C++

1 comment

Where's the fluffy tail? D:

Tutorial Description
In the last tutorial, we finished getting Direct3D set up, implemented a timer system to allow us to calculate the time between each frame, and set up the framework that will grant us access to our game without interfering with the core engine. In this tutorial, we are going to implement a reusable Scene Object class, which will be the parent for all future classes that we wish to enable in a scene manager. The scope of this tutorial series makes a full-fledged instance management system overkill, so we will not be building one in here. However, as this tutorial series will act as the base for future tutorials that will implement a scene manager, I am going to implement the scene object class here.

Downloads
Binary Only (18.8KB)
Full VS2010 Project Dir (28.4KB)

Starting Words
I just wanted to point out that this tutorial series borrows a lot of the structure of Jonathan Harbour’s Advanced2D game engine, from the book “Advanced 2D Game Development“. While I certainly believe it to be a wonderful book, and an excellent starting point for beginners (in fact, the reason for me borrowing the format for his engine is because I find the method well-suited for beginners), I find that I have a lot of personal quirks with Jonathan’s methods and programming habits, and there are a number of inconsistencies in it. Furthermore, there are some topics that are covered in the book that just aren’t well-suited for beginners, and can cause things to be a bit confusing and convoluted. In this tutorial series, I don’t plan to implement three-dimensional rendering, which he does cover briefly, and have no intention of including game scripting, though several more advanced tutorials will cover these aspects at a later date (read: when I stop being lazy). Anybody looking at learning to program two-dimensional games with DirectX and C++ should look into the book, but should remember that there will always be better ways to implement certain systems than what is shown to you in a book – or an online tutorial. Anybody that wants to gain a solid understanding and truly grasp the depth of these programming systems is highly encouraged to look up information on any subjects that they are unfamiliar with. I strongly recommend Safari Books Online – I read a lot of books there, and it’s certainly helped me improve myself. Advanced 2D Game Development is available on SBO, as well.

Notice: This tutorial continues from where “C++/D3D Pong Tutorial 02” article left off. Please read it if you have not already.

More >

2D, C++, Direct3D, DirectX, Game Programming, Gaming, Pong, Programming
«12345»
    • Recent comments
    • Popular posts
    • Archives
    • Categories
    • Development (12)
      • General (4)
      • Projects (8)
        • Lights, Camera, Action/RPG! (4)
    • Life (15)
      • Thinking Out Loud (2)
    • Technology (11)
      • Computers (6)
        • Programming (5)
        • Qt4 (1)
        • WebKit (1)
      • Gaming (2)
        • Challenges (1)
    • Tutorials (5)
      • Languages (5)
        • C++ (5)
      • Series (5)
        • Pong (C++/DirectX) (5)
    • August 2010 (2)
    • July 2010 (2)
    • June 2010 (1)
    • May 2010 (2)
    • April 2010 (4)
    • March 2010 (5)
    • February 2010 (5)
    • January 2010 (2)
    • December 2009 (1)
    • C++/D3D Pong Tutorial 04: Adding Keyboard Input (7)
    • C++/D3D Pong Tutorial 02: Setting up Direct3D and our Engine Framework (2)
    • C++/D3D Pong Maintenance: The Game Loop/Frame Delta (2)
    • I’m not dead. I promise. So can I please eat your brains? (1)
    • C++/D3D Pong Tutorial 03: Scene Objects and Sprite Rendering (1)
    • Donald Harris: It's funny you have lot of the same issues in your life that I have in mine. So strictly from a...
    • Samantha: Make sure that you have the latest DirectX SDK installed and make sure that you've added the DXSDK...
    • Benneb2: yes its very nice,but i am getting a error ,"cannot convert parameter 3 from 'LPCWSTR' to 'LPCSTR'...
    • Mason: Thank you very much for these tutorials!
    • FelixB: Hi, you're doing a very good job! Do you have any idea when you'll finish the next part? I know...
  • User Login






    • Register
    • Lost your password?
  • Recent Tweets

    Loading tweets...
    Follow me on Twitter!
  • Recent Achievements

Mystique theme by digitalnature | Powered by WordPress
RSS Feeds XHTML 1.1 CSS 3.0 Top
PR 2
This work by Samantha Murray is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 United States.