Jump to content
Sign in to follow this  
  • entries
  • comments
  • views

First Dev Update - Introducing COG

Jon Alma


In hopefully the first blog of a (fairly!) regular series I would like to introduce the game I've been working on for a while now.  With a working title of COG, the game is a 3D action adventure game with a Steampunk theme and strong platformer elements.


This is very much an indie project ... the coding of the home grown engine is done by me, the 3D modeling is (largely) done by me, the level design is done by me and ... well you get the idea!  About the only support I'm getting is from my kids who are doing the 'QA' (and who are super critical when something doesn't work!).


So where am I with this project?   The game engine itself is pretty much 'feature complete' and the game playable even if there is still a lot to do in optimising and polishing the different components.  Most of the standard platformer elements (conveyor belts, lifts, moving platforms, spike traps, switches, etc, etc) are already working and available through the level editor with the 'levels' (more accurately map sections) loading on the fly to create a continuous, seamless world.  Basic monster code is already in place with it being pretty easy to add new monster types as needed for the game.  The lighting and particle systems are  currently being reintegrated into the game (the code is complete, but was deactivated while creating the first builds) so hopefully the landscape will soon be full of splashing water and rising steam and smoke (pretty important to have rising steam in a steampunk game!).  


The camera system is nearing completion - it allows the player to have full control of the angle of the camera with objects close to the camera position fading out to improve player visibility (this is the last bit being worked on here with the drawing order of semi-transparent buildings being tightened up and optimised).


Looking at the content there is currently some placeholder content being used with the worst offender being the player's character which is currently a (not very steampunk) Kiwi rather than what will eventually be a small robot.  In addition, while the 3D models are almost all self created, the textures used are a mix of those I've created myself, that I've purchased and a handful of temporary placeholder textures.  These placeholders have allowed for rapid prototyping  (especially as creating textures is a slow and painful process for me), but will obviously need to be replaced in the near future.  Fortunately this shouldn't be a huge task as I'm using texture atlases that allow for easy swapping in and out of new textures ... there should be relatively few cases where it may be necessary to tweak the texture mapping.  For information the screenshots and video contain this placeholder content.


As a result of all this there is now quite a nice library of 'Lego bricks' available including a range of basic building blocks (platforms, towers, walls, pipes, etc), more exotic props (the already mentioned spike traps, barriers, lifts and switches as wells as the mandatory barrels and movable crates), plants, rocks and other landscape elements.  Finally, there is a series of animated models including waterwheels, steam engine, pistons and so on whose clanking and whirring will helpful give the impression of a living world around the player.

So things are going pretty well at the moment (especially given the limits on the time I can devote to this) and COG seems to be getting to a stage where it is moving from a process of writing code to one where the current task is to complete the game - a pretty rare thing for me!

Please let me know you think of the screenshots and video - one of the main reasons for starting this blog is to start getting some feedback to help shape the remainder of the game ... all constructive comments would be very much appreciated.  Also if there is interest in a particular aspect of the game development process I would be happy to share more details in a later blog entry.

Thank you for your time!


Recommended Comments

I love the music, the art style the limited drawing distance. It gives me a pleasant feeling of nostalgia.

Funnily enough, the only thing I want more is to have RPG elements, and then I saw on your channel that you worked on a similar looking RPG before. Were you planning on integrating RPG elements in this one? I think an RPG and puzzle hybrid could be a lot of fun.

I'm also working on a self made engine/game project and I can't help but smile when I see other people who share the passion to code.

About the title, is COG the actual name or does it stand for something?

Share this comment

Link to comment
8 hours ago, Michael Aganier said:

I love the music, the art style the limited drawing distance. It gives me a pleasant feeling of nostalgia.

Glad you like the art style - I'm trying to avoid being too cartoony while still having something colourful and sharp.  And as the whole project has been an exercise in 'comfort food' development with a lot of elements pulled out of games I've enjoyed playing in the past I'm not surprised there is a sense of nostalgia.

With the drawing distance this was initially driven by performance assumptions with short drawing distances helps keep the frame rate up in an amateur game engine.  However, the game is still managing a very healthy frame rate even in the most packed areas so I could increase the drawing distance a bit.  However, the limited visibility gives a bit the feel of foggy/smoggy Victorian England and the smoke of the industrial revolution - quite appropriate for the game.  As such, I'm planning to leave it pretty much as it is, possibly only pushing out the draw distance a bit when the player is in open countryside (where the scene density is lower in any case so performance would allow this).  I may even experiment with bringing in the fog a bit in certain factory zones where monsters could pop out of the thick smog to attack the player.

9 hours ago, Michael Aganier said:

Funnily enough, the only thing I want more is to have RPG elements, and then I saw on your channel that you worked on a similar looking RPG before. Were you planning on integrating RPG elements in this one? I think an RPG and puzzle hybrid could be a lot of fun.

The game engine is actually the same one so there is a lot of potential in this direction.  Indeed the ability to steam a seamless and in theory endless map rather than discrete levels comes directly from the RPG game.  I am also already using the scripting code to handle more complex puzzles and I plan to use elements of the dialogue system for a bit of interaction between the player and other characters in the game.  However, I would make a distinction between creating an adventure game (where there is a story that unfolds) and a RPG game with a bundle of quests, loads of stats and a lot of very diverse game content - being a team of one, working on a RPG game was eventually overwhelming.  It wasn't from creating the game engine, but from populating the world ... spending a weekend writing the contents of books that the player may possibly read or debugging a quest that keeps breaking limits the speed of any progress.  Even with a 'lighter' game it still takes a couple of days to create about 5 minutes of gameplay (what with the initial level creation, tweaking and then the testing).  I'm very wary of falling into the same trap of over ambition.

There are a couple of games that have been sources of inspiration for this project, these being Oceanhorn and particularly Hob - both have the platformer / puzzle elements combined quite nicely with adventure / RPG elements and both worth a look if you like this mix.

9 hours ago, Michael Aganier said:

I'm also working on a self made engine/game project and I can't help but smile when I see other people who share the passion to code.

Another mad person :)  It's something I enjoy doing and a nice way of relaxing after the day job.  A couple of years ago I had a go using the Unreal Engine and while the engine was clearly much more powerful (no big surprise there) it didn't give me what I wanted and I found myself fighting with the engine rather than enjoying the development process.  And there was a real loss of the sense of achievement for me (yeah that worked ... because I'm using UE).  So it was back to the home grown engine and the process of reinventing the wheel :) 

9 hours ago, Michael Aganier said:

About the title, is COG the actual name or does it stand for something?

It started with the idea that I wanted a short name for the main character.  With the steampunk theme and lots of machinery I eventually settled on Cog (the player being one cog in a bigger machine).  And then after thinking about an eventual title screen I quite like the idea of each letter in the name itself being a cog ... which would be easier to do with capital letters  :) 

Thanks for the feedback - much appreciated.

Share this comment

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
  • Advertisement
  • Blog Entries

  • Similar Content

    • By ryt
      Usually when I think of interfaces, or when I read about them, I see them as something as they are made in C#. There is a keyword for it and it's used for classes that can not be instantiated, they have to be inherited. In C++ they can be made by making a member function a pure virtual function, with = 0, where they are called abstract classes.
      When I was coding with DirectX I used "DirectX interfaces". Actually if I remember correctly DirectX uses them for almost everything. Some example would be ID3D11Buffer.
      I know that it's a COM interface though I don't know much about it.
      I never inherited them, though maybe someone would expect this because they are interfaces. I always used them as "real" objects, I would get their pointer through some function like CreateBuffer() or some similar method.
      What confuses me is why they are "called" interfaces and have an "I" in front? Are they maybe totally different from interfaces that I described, like C# interfaces, and have some other intended use?
    • By skyemaidstone
      Hi guys,
      I wanted my roads to look a little more bumpy on my terrain so I added in bump mapping based on what i had working for the rest of the models.
      It works and looks nice enough (I'll need to fiddle with the normal map to get the pebble looking just the right amount of sharpness) but anyway.. a problem cropped up that hadn't occurred to me: I don't want it applied to the whole terrain, just the roads.
      The road texture is simply added using a blend map with green for grass, red for rock, blue for road. So the more blue there more the road texture is used.
      I don't wan't the other textures bump mapped.. i mean I guess i could but for now i'd rather not.
      So the code is something like:
      float3 normalFromMap = PSIn.Normal; if (BumpMapping) { // read the normal from the normal map normalFromMap = tex2D(RoadNormalMapSampler, PSIn.TexCoord * 4); //tranform to [-1,1] normalFromMap = 2.0f * normalFromMap - 1.0f; //transform into world space normalFromMap = mul(normalFromMap, PSIn.WorldToTangentSpace); } else { //tranform to [-1,1] normalFromMap = 2.0f * normalFromMap - 1.0f; } //normalize the result normalFromMap = normalize(normalFromMap); //output the normal, in [0,1] space Output.Normal.rgb = 0.5f * (normalFromMap + 1.0f); I tried checking if the blendmap's blue component was > 0 then use the bump mapping but that just makes a nasty line where it switches between just using the normal of the whole vertex or using the normal map.
      How do I blend between the two methods?
    • By sidbhati32
      How do I detect the mouse event of moving my mouse left or right and wheel up or down?
      I have used Get_X_LParam for mouse movement and WParam for wheel movement.
      Like DWORD x = HIWORD(wParam) but both of these events return continuous values.

      for eg. if(x>0)
      //do this

      //do this

      the Wparam only returns the same value every time even if I am moving my wheel downwards. Same with Get_X_LParam
    • By Masterbuiler64
      Good Morning, Afternoon, or Evening,
      My name is Dalton Potter and I am a budding game developer looking to learn skills and develop a beautiful project me and my friend came up with a year ago or so and have refined ever since. The idea is a basically a mix of Final Fantasy and Zelda in terms of exploration and battle, but will throw in its own unique features to switch things up a bit. What we have in place so far is the main story and many connecting character back stories, a map of the over world (still not 100% confirmed however), how some of the main characters look (also not 100% confirmed), a few battle and puzzle mechanic ideas, general story progression, locations, a few beta music tracks, and lore. What we lack however is any solid assets or work done on it as neither of us have any expertise in game development, but have both unanimously agreed that this idea is too good to forget and pass up.
      We are currently looking for people to help us work on the project as time goes on and maybe, just maybe, it may grow into a full blown team of people working on a game and eventually sell it on Steam or other client services. Any replies to this topic will be read as soon as possible depending on my schedule. I have also attached a couple photos and sound files of some design concepts we have. I also have a Pastebin made of the entire story and main character back stories, as well as history into how the idea came to be, though I'll let the Pastebin be requested as needed in the future.
      Hopefully this project turns from being just an idea into something amazingly beautiful and playable......it just needs to be created that's all.....
      Thank you in advance,
      Dalton Potter
      P.S. The sound file, "Power and Prestige" is a song that sounds as though it could be used as a trailer theme, and "Curiosity" sounds as though it could be used on a farm at sunrise.
      Source of music was from YouTube, but the groups official site is as follows: http://floatingcloud.net/

      Floating Cloud - Power and Prestige.mp3

      Floating Cloud - Curiosity.mp3

    • By ryt
      I took a look at this video to see the difference between static and dynamic linking. Basically the author uses __declspec(dllexport) to export a function.
      How could we also export classes from the same file? Do we need to put the same keyword before class definition or maybe something else?

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!