Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411500 Posts in 69373 Topics- by 58429 Members - Latest Member: Alternalo

April 25, 2024, 01:20:34 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsProject Mephisto
Pages: [1]
Print
Author Topic: Project Mephisto  (Read 2862 times)
ekun
Level 1
*


caffeen


View Profile WWW
« on: September 17, 2013, 04:48:18 AM »

mephisto

This devlog will be detailing our project's development from the very beginning. I may also crosspost updates to our new blog at http://blog.nukenine.com if they're substantial enough. Otherwise, you'll find everything here.


origin
Back when I was still in school, Kyle and I started working on a game. It was a simple idea at first, a typical metroidvania, but it didn't stay simple for long because of feature creep our awesome ideas. After two years of off and on work we ended up with a pretty nifty game engine prototype. Its features included procedurally generated dungeons, UDP-based online networking (for coop play), animated 3D backgrounds, and a sweet custom lighting engine. For various reasons, we stopped working on it and the game we planned on making fell to the wayside. We kept meaning to come back to it, but didn't really have the time to make it happen.


a screenshot of our original engine

Now, years later, it's finally time to finish what we started.

plan

Although we spent a good amount of time on our original engine, it was a huge learning experience for both of us. We were both relatively new to game development and the code really showed it. As a result, we decided to scrap the original engine (mephisto.v1) and we're rewriting everything from scratch. Luckily, we're both much more experienced than we were before, and we've got some new, fresh ideas.

inspiration

  • Diablo
  • Castlevania
  • Metroid
  • Quake
  • Roguelikes
  • Spelunky

features (not final)

  • Cooperative, fast-paced online play
  • Procedurally generated levels
  • Roguelike Elements
« Last Edit: September 18, 2013, 09:31:39 PM by ekun » Logged

Meatsack
Level 0
***


View Profile WWW
« Reply #1 on: September 17, 2013, 08:42:52 AM »

It's a start.  Metroidvania style games are a favorite of mine.  I'll be back from time to time to see how things are going.
Logged

Writer, Game Maker, Day-Dreamer... 
The current project is Super Gunball DEMO
ekun
Level 1
*


caffeen


View Profile WWW
« Reply #2 on: September 18, 2013, 06:35:57 PM »

These past couple of days, I've been working on getting the network code in a better state.



Yesterday, I added a couple features such as the reliable packet layer, player list, and chat messages. The Console subsystem I wrote for a previous project is becoming incredibly useful for debugging and development. It allows me to bind any key to a test function, as well as any c++ variable to a console variable(cvar). This means, instead of recompiling the project to try out a player gravity of 0.8, you can simply type something like 'sv_gravity 0.8' into the console. As you might be able to tell from the screenshot, the Console is very much influenced by the Quake/HalfLife engine Smiley


Today, I added entity interpolation and a basis for client prediction.

I'm really happy with the interpolation code I wrote. The way the engine is structured, the game logic tickrate is completely separate from the graphics tickrate. So even though the server and client's logic run at 20 frames a second, the entities are drawn on the screen interpolating smoothly at over 100 frames per second. All I need to do is structure this new code to be applicable to all objects, not just other players.

In addition, I added basic client prediction to your character. It works in the sense that the player's input is immediate, but because there is no interpolation for your own player it still feels jerky. I'll be fixing this soon for sure.

Feeling good about progress right now! My sleep schedule is really off, but I can say I'm productive  Wizard

Immediate TODO:
  • Generalize interpolation code
  • Smooth out player prediction
  • Do some online testing with four people
« Last Edit: September 19, 2013, 10:51:10 PM by ekun » Logged

ekun
Level 1
*


caffeen


View Profile WWW
« Reply #3 on: September 19, 2013, 10:50:28 PM »

Smoothed out the prediction code today, and the interpolation code now lies in the GameObject class (the parent class for all networked game objects).

I didn't get to do any online testing, but I did discover and fix a couple of bugs by doing local testing with multiple clients. Fun stuff!


Logged

ekun
Level 1
*


caffeen


View Profile WWW
« Reply #4 on: September 23, 2013, 12:37:29 AM »

I made a much needed change to how networking works. Now, the client tickrate is completely separate from not only its graphics tickrate, but also the network send/receive tickrates.

I've noticed that interpolation is a little bit jerky, especially when jumping. I'm hoping to fix this by changing the algorithm from linear to cubic spline interpolation.

Logged

ekun
Level 1
*


caffeen


View Profile WWW
« Reply #5 on: September 23, 2013, 10:22:44 PM »

Put in a chat system and fixed a couple of bugs with the Console.

I'm considering assigning each player a unique color, so that their name always appears as that color in the chat log as well as the player list.

Logged

Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic