Day 2
On Day 1 (Saturday) I created some of the base artwork and a couple of the GUI elements. Using World Machine Pro I generated an 8k x 8k heightfield - although the map dimensions are 16km^2 (its on a 2m tessellated grid). I loaded the heightmap into UE4 (several times after playing with the params to get it just right) and then applied the landscape material from the marketplace asset PLE (highly recommend). This landscape material lacks stone and sand, so that will need to be added later for the shoreline and some nice pathways. While the 80,000+ shaders were compiling I generated two hero characters using Autodesk Character Generator. I loaded those into blender, tossed the skeletons and used Auto-Rig-Pro and Voxel heat mapper to create UE4 mannequin compatible skeletal meshes. Using the Terriblis utility I converted and downloaded a bunch of animations from Mixamo. I also started work on the buildings using Unity and a wonderful pack from 3DForge (also highly recommend). I'm not sure why he hasnt converted these to UE, but anyway I have an FBX exporter. I staged several house and inn models for import, perhaps on Monday. I started the C# server code and created a MySQL database consisting of a user table and a player table. I decided to skip any registration at this point for speed and just went with a guid. Upon initial connection, the client checks for a guid text file - if none exists, it requests one from the server and writes it. If one exists it sends the guid off to the server. User/password/email capture etc can all come later. I created a basic c# threaded socket server using TCP (stream) sockets and created classes to transfer formatted packets (first two bytes is packet length, followed by a command byte, followed by 0 to N bytes of payload). int/float is transmitted as native 4 byte packets and string is two byte length followed by the data. The send and receive code consists of assembling the commands and sending them over the socket, and receiving commands, detecting that a full command is ready and then processing the command. All of this is pretty basic but there are probably some edge cases that will need fixing.
Day 2 so far has been creating the character selection and character creation screen and integrating entering the level. After several iterations I settled on a single lobby map with multiple widgets that are shown/hidden depending on the state of the gui. The user can create a character (really just the name) which is then saved in the database. Then they can select the character and enter the level. I'm currently working on coordinating the level updates and all the netcode sync so that everything happens in the right order. By the end of today I plan to have working player spawn with position and rotation updates in multiplayer, perhaps with some basic chat.
This is the todo list so far:
for game jam
--------
combine mesh on human male and re-export
add sand texture to landscape material and apply to coastline
add cobble text to landscape material and draw some paths
build fishing village from unity assets
couple of npc - doe/deer, dragon
maybe combat
maybe inventory
chat
save/load location and rotation
a* pathfinding on server for npc with client updates
later
--------
randomize name
check return value from create player, if -1 pop message box that name is taken
display character preview in character create and selection windows
disable play button if no characters created
give error if server not found
level loading screen
on processEnterLevel - validate that player id belongs to user id
Get Darkfire
Darkfire
A fantasy MMORPG
Status | In development |
Author | FurrieBunnie |
Genre | Role Playing |
More posts
- The migration to VR beginsOct 13, 2020
- Version updateAug 17, 2020
- Removed browser support :)Aug 14, 2020
- Added browser supportAug 11, 2020
- Daily update - crypt, time of day, chat enhancementsAug 08, 2020
- NPCs!Aug 08, 2020
- Update on gameplayAug 06, 2020
- Day 4 - final submissionAug 05, 2020
- Day 3Aug 04, 2020
- Day 2.5Aug 03, 2020
Leave a comment
Log in with itch.io to leave a comment.