Adam's Lair Forum

game development and casual madness
It is currently 2017/12/13, 20:53

All times are UTC + 1 hour [ DST ]




Post new topic Reply to topic  [ 3 posts ] 
Author Message
PostPosted: 2017/11/18, 04:23 
Newbie
Newbie

Joined: 2017/11/17, 18:21
Posts: 2
Role: Hobbyist
I've never made a game before. I have written database software for my company, but I did it in VB.NET. Their idea not mine. I wanted to learn C# and finally break away from VB.NET. So the jump to C# is going to be rough, but I'm looking forward to that part. As far as game engines go, this is a very big first for me.

I have common sense. Which I think will help. A friend of mine thinks he can rewrite a game like Skyrim in a week when he's never written a single line of code. I've been programming for two decades (started when I was 10) and I still have trouble taping into an API. It's mainly because I've never had an interest in writing a non-mud game. My programs are utility to the max. Learning how to make a game seems like a fun venture. I'm still wrapping my mind around how I'm going to setup classes for all the parts, where I need to put things. It's exciting and a little scary. I'm not expecting to make an amazing multi million dollar product. All I want to do it have a little fun.

I've been toying with the idea of remaking a game for the last few weeks.

The game I'm remaking is ancient, but still in development. It was created in RPG Maker 2000. The menus are terrible, the scripts are unpredictable, it crashes or locksup randomly, and the code is just awful. Typical of stuff programmed near the turn of the century if the software I rewrote for my company is anything to go by.

When it comes to engine choice, I decided on Duality because I like the idea of a community project. The original is an open source bag of crazy, which is why it has all the weird stuff it has. Every one with an ounce of programming knowledge can jump in and add to it. I'm remaking it since the original project is in Japanese and the setup requires a ton of effort on the end user. I think rewriting it will give me experience in game making. I'm going to try and create a framework that is easy to use, understand, and extend. My style of programming focuses on encapsulation, and re-usability. I hate redundancy with a passion. If I do a good job, future perverts will be able to just jump right in. I plan to support multiple languages right out of the box and make translating the game easy and painless.

I've begun the simple task of remaking the maps from the game. I go around in game, take screen shots, and then piece the screenshots together for later reference. I'm currently taking these maps and using them to construct a tile map.

All that stated:

I've created six over world maps, and about twenty in house maps. Now I need to turn them into tilemaps. Which brings me to my first question;

The tilesets that come with the game are small. Each tile is 16x16, which I was able to set correctly. The grids are 30x16 tiles (480x256 pixels). A lot of these tiles have the same things on them. They're not identical, just similar. I was thinking about putting them together. There are 129 sets. Now I'm not dumb enough to think putting them all into a single tileset is a good idea. I would still divide them based on content. What I can't figure out is how do I use more than one tileset for a single Tilemap or is it even possible?

What is a good size for a Tileset?

I've accidentally put a tile down on the wrong layer. How do I delete a tile after I've put it down?

There are a bunch of animations in these tilesets. How do I animate a tile?

In the case that I decide to start over, is there a way to export my Tilemaps so I don't have to redo them?

Going forward, I'm planning on reverse engineering the samples. The tutorials were good in helping me understand the basics, but the tilemap one just stops at the good part. I'm expecting quite the learning curve, further slowed by my full time schedule. I'm hoping that the jump is easy enough and that I can understand it.

Some of the things this game will need;

  • Movement system. The original had sprites for every clothing type, which involved five slots. Needless to say, it's a LOT of images, but I think I'll just take the different parts and somehow create a sprite during run time by overlaying the different parts. I'm on the fence regarding movement types. For instance, do I grid lock like the original, or take advantage of free movement? It'll make path finding a bit harder if I use free movement.

  • Combat System, the original is fairly deep. I need to keep track of stats, combat formula, and character growth.

  • Ability to conjure and dismiss actors on the spot. (for cut scenes)

  • Camera manipulation. It needs to move away from the actor in a smooth motion. It also needs to lock to other actors, make an actor wait until in focus and directly under camera.

  • Dialog methods, menu methods. I think these are all part of the same thing. I think this is also where I need to keep my language settings, maybe an XML file can contain all the strings. If debug mode is active, the Dialog windows can show the line location in the XML for easier translation. I plan to use placeholders or free asset packs for inventory items since the original doesn't have graphics for the items. This part will bare little resemblance to the original since the original menus are terrible.

  • Quest System - I'll need a way to keep track of world changes. It needs to be flexible so that a quest can be easily edited.

  • AI - A* Pathfinding, as well as other NPC movement controls. Monsters sometimes have erratic movement paths so I'll need to figure those out. On this note, I'll need a faction system since Monsters can and will attack both the player and other NPC's. Ally NPC's need to know which targets they can attack as well. I could use faction to prevent friendly fire.

  • Saved Game Format - I'll probably use XML for the saved game format. This would allow debugging as well as version compatibility.


I know this is a huge undertaking and I expect I'll start over a few times before it's over. I figure it'll take a year or two before I have anything worth releasing. I'll try to focus my questions. These particular questions should be under 'Editor and Tool' however I think my questions will get more and more generic as I move forward with this massive undertaking. If any one has sources for RPG's using Duality that they would be willing to share the code for, please do so. I especially need sources for Secret of Mana/Legend of Zelda style games since this game uses a similar system.

In any one knows of a service that will host a game like this one, please tell me. GitHub won't since their TOS goes against some of the content of this game. My home archive may use ZFS raidz2, but that doesn't mean I won't lose it due to extreme hardware failure or house fire/flood. It's best to have it in multiple places.

P.S. I'll keep future posts short.

Edit: Removed game name.


Last edited by Kayot on 2017/11/18, 23:03, edited 1 time in total.

Top
 Profile  
 
PostPosted: 2017/11/18, 21:18 
Site Admin
Site Admin
User avatar

Joined: 2013/05/11, 22:30
Posts: 2031
Location: Germany
Role: Professional
Hey there, and welcome!

First off, glad to hear you're starting this off with patience and realistic expectations. :) :1+: But let's get to your questions:

Kayot wrote:
The tilesets that come with the game are small. Each tile is 16x16, which I was able to set correctly. The grids are 30x16 tiles (480x256 pixels). A lot of these tiles have the same things on them. They're not identical, just similar. I was thinking about putting them together. There are 129 sets. Now I'm not dumb enough to think putting them all into a single tileset is a good idea. I would still divide them based on content.

The main thing to consider when creating a tileset is how many pixels you're going to occupy, and how big the texture will need to be to contain them with regard to the systems you're targeting. 2048x2048 is a super safe bet for desktop machines nowadays, and with a tile size of 16x16, this would allow you to put 128x128, i.e. 16384 tiles into a single tileset without much of an issue. In practice, it will be slightly less tiles due to internal pixel margins around them, but still - you get the idea. At this tile size, I think the more important thing to worry about is how many tiles in a single set you can manage, content-wise.

Kayot wrote:
What I can't figure out is how do I use more than one tileset for a single Tilemap or is it even possible?

When you build a map in Duality, each Tilemap component only has a single Tileset resource it uses, but you can have any number of Tilemap components in there, which you can layer to create more complex maps.

Kayot wrote:
I've accidentally put a tile down on the wrong layer. How do I delete a tile after I've put it down?

Tilemaps do not have a concept of a "non occupied cell" - all the cells have a tile all the time. By default, they will be filled with the first transparent tile from the Tileset at map creation, so you'd just paint your designated transparent tile over them again.

Kayot wrote:
There are a bunch of animations in these tilesets. How do I animate a tile?

Two approaches: Either write your own TilemapRenderer component that animates using logic you come up with, or have everything that isn't static as an actual object.

Kayot wrote:
There are a bunch of animations in these tilesets. How do I animate a tile?

Not out of the box, but you've got all the data available via code, so you can write an exporter for a format of your choice.

Kayot wrote:
Going forward, I'm planning on reverse engineering the samples. The tutorials were good in helping me understand the basics, but the tilemap one just stops at the good part. I'm expecting quite the learning curve, further slowed by my full time schedule. I'm hoping that the jump is easy enough and that I can understand it.

Yeah, the docs definitely could be more extensive - sorry about that ^^ Reverse engineering the samples is a pretty good idea. In case you're stuck, feel free to ask more stuff.

Kayot wrote:
The original had sprites for every clothing type, which involved five slots. Needless to say, it's a LOT of images, but I think I'll just take the different parts and somehow create a sprite during run time by overlaying the different parts.

That shouldn't be too big of a deal - look into writing a custom Renderer component for this! Actually, the ActorRenderer from the tilemaps sample would be a good place to start.

Kayot wrote:
I'm on the fence regarding movement types. For instance, do I grid lock like the original, or take advantage of free movement? It'll make path finding a bit harder if I use free movement.

Barsonax has done a lot on the topic of pathfinding with tilemaps and also did a plugin for that - could be worth a look :)

Kayot wrote:
Camera manipulation. It needs to move away from the actor in a smooth motion. It also needs to lock to other actors, make an actor wait until in focus and directly under camera.

The samples don't have specifically what you need, but got you covered on smoother camera movement and camera control in general. Check out the camera controller one! The tilemaps sample also has a derivative of that, so maybe check out that one as well.

Kayot wrote:
In any one knows of a service that will host a NSFW game like this one, please tell me. GitHub won't since their TOS goes against some of the content of this game. My home archive may use ZFS raidz2, but that doesn't mean I won't lose it due to extreme hardware failure or house fire/flood. It's best to have it in multiple places.

Definitely, you need version control for a project like this. No idea about those specific usage terms though.

Kayot wrote:
I've been toying with the idea of remaking a game for the last few weeks. It's a NSFW game called <removed>. It's an RPG.

Although I'm always happy to see project worklogs around here, I think we need to make an exception here, as this is not an 18+ board and NSFW content is off limits. Be around and ask questions and all that as much as you want, just the project thread itself needs to be somewhere else. Sorry about that.

_________________
Blog | GitHub | Twitter (@Adams_Lair)


Top
 Profile  
 
PostPosted: 2017/11/18, 23:01 
Newbie
Newbie

Joined: 2017/11/17, 18:21
Posts: 2
Role: Hobbyist
Adam wrote:
Although I'm always happy to see project worklogs around here, I think we need to make an exception here, as this is not an 18+ board and NSFW content is off limits. Be around and ask questions and all that as much as you want, just the project thread itself needs to be somewhere else. Sorry about that.

That's understandable. I suggest removing the games name from your post as I'm going to do the the same. Last thing we want is someone to google it.

I'm glad I can make slab Tilesets. There is a lot of duplication in the tilesets. In all honesty, I can remove about half of them when it comes to duplicates. The sets themselves aren't duplicates, just tiles in them.

As far as animation goes, for now I'll use static tiles until I learn how the animation system will work or how I'll write it. Now that I know how Tilesets mostly work, I can build one or two and get map making.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 3 posts ] 

All times are UTC + 1 hour [ DST ]


Who is online

Users browsing this forum: Bing [Bot] and 9 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group